今天在使用谷歌站长工具的时候无意间发现了一个提示:“Duplicate without user-selected canonical”,意思是说页面因为没有设定 canonical 标签而导致重复出现,从而没被 Google 搜索引擎收录。如下图所示:
打开具体信息页面,发现是标签页的问题,例如下面“RCMP”这个标签,大小写都可以点开,最终导致了两个页面,所以必须用 canonical 来指定唯一的网址。
canonical标签是Google、雅虎、微软等搜索引擎一起推出的一个标签,它的主要作用是用来解决由于网址形式不同内容相同而造成的内容重复问题。利用该标签可以指定权威的某个链接,避免重复内容收录。百度也已支持canonical标签。
怎么解决 tag 页面、category 页面等页面缺失canonical标签的问题?
首先,需要判断是否是 tag 页面、category 页面等页面,要用到如下函数:
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
is_tag()
、is_category()
其次,如何获得 tag 页面、category 页面等页面的链接地址?可使用如下函数:
get_queried_object_id()
和 get_term_link()
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
最后,如何实现?可以通过如下代码实现:
- <?php if ( is_tax() || is_tag() || is_category() ) { $term = get_queried_object(); ?>
- <link rel="canonical" href="<?php echo get_term_link( $term, $term->taxonomy ); ?>"/>
- <?php } ?>
将上述代码(或稍修改)添加到主题的 header.php
文件中适当位置即可。
当然,如果你不想判断页面是否是tag页等页面类型,给所有的页面都添加 canonical标签,可以使用下面的代码:
- <link rel="canonical" href="<?php global $wp; $current_url = home_url(add_query_arg(array(),$wp->request)); echo $current_url; ?>"/>
本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved