»

给标WordPress的标签页和分类页加上canonical标签

    WordPress  
SEO伪静态插件工作访问windows主机前端IIS防盗链Wp Super CacheWordPress插件web.configApache身份认证网站优化查询CDN的问题CLB浏览器cookies数据库网站镜像htaccessCDN爬虫

今天在使用谷歌站长工具的时候无意间发现了一个提示:“Duplicate without user-selected canonical”,意思是说页面因为没有设定 canonical 标签而导致重复出现,从而没被 Google 搜索引擎收录。如下图所示:

without-user-selected-canonical

打开具体信息页面,发现是标签页的问题,例如下面“RCMP”这个标签,大小写都可以点开,最终导致了两个页面,所以必须用 canonical 来指定唯一的网址。

examples-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)。时光在路上保留所有权利

最后,如何实现?可以通过如下代码实现:

  1. <?php if ( is_tax() || is_tag() || is_category() ) { $term = get_queried_object(); ?>  
  2.     <link rel="canonical" href="<?php echo get_term_link( $term, $term->taxonomy ); ?>"/>  
  3. <?php } ?>  

将上述代码(或稍修改)添加到主题的 header.php 文件中适当位置即可。

当然,如果你不想判断页面是否是tag页等页面类型,给所有的页面都添加 canonical标签,可以使用下面的代码:

  1. <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

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 930字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →