Reputation: 36454
Couldn't find a solution after a quick google so thought i'd pop a quick post on here.
Trying to remove a automatically added rel=canonical link (which is added by Wordpress SEO plugin - by Yoast).
I actually want google to crawl each of the different subs even though it may not move away from the parent page.
Upvotes: 13
Views: 26686
Reputation: 11
Newer versions of Yoast ingnored this code. Tested on Yoast 15.0
// Disable Canonical for - ALL pages
function remove_canonical() {
add_filter( 'wpseo_canonical', '__return_false', 10, 1 );
}
add_action('wp', 'remove_canonical');
I fixed it with a filter priority value. Here's working code:
// Disable Canonical for - ALL pages
function remove_canonical() {
add_filter( 'wpseo_canonical', '__return_false');
}
add_action('wp', 'remove_canonical', -19999);
Because new Yoast versions (like 15.0) use the negative priority to handle wpseo_head in the plugin file front-end-integration.php:
\add_action( 'wpseo_head', [ $this, 'present_head' ], -9999 );
Upvotes: 1
Reputation: 2192
You can also use this in wordpress conditional tags
Refer: https://codex.wordpress.org/Conditional_Tags
// Remove - Canonical for - [Search - Page]
function remove_canonical() {
// Disable for 'search' page
if ( is_search() ) {
add_filter( 'wpseo_canonical', '__return_false', 10, 1 );
}
}
add_action('wp', 'remove_canonical');
Remove canonical for ALL pages.
// Disable Canonical for - ALL pages
function remove_canonical() {
add_filter( 'wpseo_canonical', '__return_false', 10, 1 );
}
add_action('wp', 'remove_canonical');
Upvotes: 13
Reputation: 17936
most likely the canonical is not generated by yoast, there is a wordpress inbuilt function you can prevent it by adding this to your theme´s functions.php
remove_action('wp_head', 'rel_canonical');
Upvotes: 2
Reputation: 419
rel="canonical" has nothing to do with crawling. It has to do with indexing and prevents the same page from indexing twice or more.
Anyway, if you still want to do this you can do it by adding this code to your functions.php:
add_filter( 'wpseo_canonical', '__return_false' );
Source: https://yoast.com/wordpress/plugins/seo/api/
Upvotes: 19