12

快速谷歌后找不到解决方案,所以我想在这里快速发布一个帖子。

尝试删除自动添加的 rel=canonical 链接(由 Wordpress SEO 插件添加 - 由 Yoast 提供)。

我实际上希望谷歌抓取每个不同的子页面,即使它可能不会离开父页面。

4

6 回答 6

16

rel="canonical" 与爬行无关。它与索引有关,并防止同一页面索引两次或更多。

无论如何,如果你仍然想这样做,你可以通过将此代码添加到你的 functions.php 来做到这一点:

add_filter( 'wpseo_canonical', '__return_false' );

来源:https ://yoast.com/wordpress/plugins/seo/api/

于 2012-05-28T19:43:38.423 回答
13

你也可以在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');
于 2015-04-03T13:36:58.197 回答
1

很可能规范不是由 yoast 生成的,有一个 wordpress 内置功能,您可以通过将其添加到主题的 functions.php 来防止它

remove_action('wp_head', 'rel_canonical');
于 2014-12-09T12:59:21.937 回答
0
remove_action('wp_head', 'rel_canonical');
于 2015-06-27T11:25:45.837 回答
0

较新版本的 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 );
于 2021-11-26T23:09:23.127 回答
-3

您还可以禁用 wordpress 的规范网址。看这里:Desactivar rel=”canonical” de Yoast WordPress SEO o de WordPress

于 2014-03-20T15:40:54.383 回答