快速谷歌后找不到解决方案,所以我想在这里快速发布一个帖子。
尝试删除自动添加的 rel=canonical 链接(由 Wordpress SEO 插件添加 - 由 Yoast 提供)。
我实际上希望谷歌抓取每个不同的子页面,即使它可能不会离开父页面。
快速谷歌后找不到解决方案,所以我想在这里快速发布一个帖子。
尝试删除自动添加的 rel=canonical 链接(由 Wordpress SEO 插件添加 - 由 Yoast 提供)。
我实际上希望谷歌抓取每个不同的子页面,即使它可能不会离开父页面。
rel="canonical" 与爬行无关。它与索引有关,并防止同一页面索引两次或更多。
无论如何,如果你仍然想这样做,你可以通过将此代码添加到你的 functions.php 来做到这一点:
add_filter( 'wpseo_canonical', '__return_false' );
你也可以在wordpress conditional tags
参考: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');
删除所有页面的规范。
// Disable Canonical for - ALL pages
function remove_canonical() {
add_filter( 'wpseo_canonical', '__return_false', 10, 1 );
}
add_action('wp', 'remove_canonical');
很可能规范不是由 yoast 生成的,有一个 wordpress 内置功能,您可以通过将其添加到主题的 functions.php 来防止它
remove_action('wp_head', 'rel_canonical');
remove_action('wp_head', 'rel_canonical');
较新版本的 Yoast 忽略了此代码。在 Yoast 15.0 上测试
// Disable Canonical for - ALL pages
function remove_canonical() {
add_filter( 'wpseo_canonical', '__return_false', 10, 1 );
}
add_action('wp', 'remove_canonical');
我用过滤器优先级值修复了它。这是工作代码:
// Disable Canonical for - ALL pages
function remove_canonical() {
add_filter( 'wpseo_canonical', '__return_false');
}
add_action('wp', 'remove_canonical', -19999);
因为新的 Yoast 版本(如 15.0)使用负优先级来处理插件文件 front-end-integration.php 中的 wpseo_head:
\add_action( 'wpseo_head', [ $this, 'present_head' ], -9999 );
您还可以禁用 wordpress 的规范网址。看这里:Desactivar rel=”canonical” de Yoast WordPress SEO o de WordPress