【艺龙SEO总监刘明】如何避免大量URL重复收录

首先声明,我们只谈论有检索意义的URL,也就是用户会从搜索引擎查找的页面.其他页面按照常用的方法做屏蔽就好了.

鉴于很多站长都爱讨论整体的收录量,我必须泼一下冷水,也许你的有效收录是1/10.

URL参数

也叫URL query,是一个最复杂,最容易被忽视,最容易被妥协的问题.他是网站运营中必不可少的元素,如果简单的去除,其他部门就无法工作了.
静态化是的话题,URL参数经常被用于以下几方面:

同一个实体的不同状态展示,比如同一个酒店,在不同时间点会有不同的房间库存.

http://www.travel.com/hotel/123/?checkindate=2015-06-09&checkoutdate=2015-06-10

为了统计不同渠道的流量

http://www.a.com/?tracking=website_a

为了统计不同渠道,具体模块的点击量

http://www.a.com/?tracking=website_a&click_spot=zone_abc

调试

http://www.a.com/product/item123/?debug=true

全世界最奇葩的是亚马逊,居然把统计参数放到了路径中

http://www.amazon.cn/abc/dp/B005TZHJEQ/ref=lp_2130608051_1_1

出现这种问题的坏处有几点:

  1. 浪费搜索引擎对你网站的各项配额,从而影响其他正常的页面.
  2. 丢失很多本应拿到的链接加分,站外渠道的链接往往是最优质的.同一个URL的分值可能分散成几十份.
  3. SEO的流量被统计到别的渠道(因为tracking字段写的是别的渠道,而且被收录被点击)
  4. 往往形成一种局面,产品用一套URL,SEO用另一套URL, 甚至不同渠道用不同的URL,后期开发和维护的成本极高.

为了解决这个问题,首先要弄清网页的URL的定义.以我的理解,每一个URL是一个静态的,独立不重复的,有意义的实体,一般也有检索意义(就是有人会搜).比如一个人,一辆车,一条道路,一个零件.而不能混入各种"状态",比如这个人生病的时候,难道就不是他自己了么? 一件商品在促销的状态难道是另一件商品了么?

理论上canonical标签就可以解决这个问题了, 但是从实际测试结果看,百度对这个标签的支持优先级非常低, 几乎可以忽略不计.那么我的解决方案是这样的:

  1. 建立好网站的思维导图和元信息. (可参考:SEO健康度 )
  2. 所有和SEO元信息相关的参数都放到路径中去
  3. 所有和SEO元信息不相干的参数都放到#后边,因为#后边不影响web服务器返回的内容.简单的说就是用"#"替代"?".
  4. 每个页面中都利用js获取#后边的参数对,通过二次请求发回给统计服务器
  5. 如果#后边的参数影响页面内容,比如酒店的入住日期.那么这部分内容用ajax加载就行,他是不稳定的,不属于页面内容的一部分.(当然还有变通的办法,暂不赘述.)
  6. 原始的#锚点定义肯定会冲突,定义一个#后边的变量,并用js控制屏幕滚动,来保证原始锚点的作用.

有人可能会想到,根据ua判断,如果是搜索引擎爬虫,就用跳转的方式去掉URL参数.但效率最高的方法必然是从一开始就不展示错误URL.那么前面的例子优化后就变成了:

http://www.travel.com/hotel/123/#checkindate=2015-06-09&checkoutdate=2015-06-10
http://www.a.com/#tracking=website_a
http://www.a.com/#tracking=website_a&click_spot=zone_abc
http://www.a.com/product/item123/#debug=true

其实我们的竞争对手早就使用这种方式了,但是由于我们的开发效率无法及时实现,还没有赶上行业的进度.所以对于一般的小网站,一定要考虑开发成本,不要轻易冒进.只要能避免问题的发生,变通的方法是很多的.

路径中使用非必要元素

很多网站仿照亚马逊的做法,把商品名体现在URL中,然后再通过id来决定页面展示的内容:

http://www.amazon.cn/博集典藏馆043•基督山伯爵-亚历山大·仲马/dp/B005TZHJEQ/

这样虽然可以提高一些相关性,但是很危险.在长期甚至短期的时间内,大量商品的名称是非常可能有变化的,那么URL也就跟着变化.成本也是非常高的,因为加大了技术实现难度,不管从站内还是站外,每次增加链接都是一个很麻烦的事情.

在我接手艺龙SEO之前,URL被全部改成了这样,对我早期的工作造成了非常巨大的负担:

http://www.a.com/Shangrila_International_Hotel-12345678-hotel/

通过日志分析发现基本所有的百度蜘蛛发起的请求都被301跳转了一次(日志分析方法可参考SEO健康度 )

细致调查后发现,从SEO拼接规则到后台的汉字和翻译数据被一直修改.也就是说,这个URL相关的元素有:

  1. 中文 (非必要元素)
  2. 由中文翻译的英文 (非必要元素)
  3. id (必要元素)

而当时负责SEO的同事把英文和id拼接在了URL中

那么这样一个URL先后变成过:

http://www.a.com/Shangrila_International_Hotel-12345678-hotel/
http://www.a.com/Xianggelila_International_Hotel-12345678-hotel/
http://www.a.com/XiangGeLiLa_International_Hotel-12345678-hotel/
http://www.a.com/Shangrila_guoji_Hotel-12345678-hotel/

跟"相关性"比,URL的唯一性和稳定性更重要.所以针对这个问题,URL的最佳策略应该是

http://www.a.com/hotel/12345678/

如果这个id是隶属于一个分类下的,比如城市,那么就可以

http://www.a.com/hotel/beijing/123/

从技术角度说, id一般是数据库的primary key,可以是数字也可以是字符串,那么这个时候URL是一维的; id也可以是联合的唯一索引,那么URL就是二维的,就像上面的(bejing,123)缺一不可.电商类网站列表页经常用到三维以上.

大小写

如果网站的技术架构用的是开源系统,一般是不会有这个问题的.如果使用了微软的技术架构,这个问题非常常见.

http://www.a.com/newyork/
http://www.a.com/Newyork/
http://www.a.com/NewYork/

我的建议是统一使用小写,大写自动跳转为小写(小心301死循环!).

目录的规范

很多网站同时存在这样的URL,无形中把收录量扩大了一倍.

http://www.a.com/product/123
http://www.a.com/product/123/

上边第一个路径的意思是在product目录下有一个123文件.第二个路径的意思是在product目录下有一个123目录,这个目录下可能有很多文件,但是他代表众多文件中的index.html或index.php或default.aspx等优先级最高的那个文件.为了避免歧义,我定义文件都是用".html"结尾的.

为了减少重复收录,那么按我的习惯是:

http://www.a.com/product/123  => http://www.a.com/product/123/
或者
http://www.a.com/product/123  => http://www.a.com/product/123.html

总结

  1. 所有部门统一使用SEO定义的URL,屏蔽非SEO URL的入口.
  2. 用"#"替代"?"
  3. 统一使用小写
  4. 保证目录的规范
  5. 把不规范的URL跳转到规范的URL

文章来源:艺龙SEO刘明博客

  • 版权声明:除非注明,本博客均为北京SEO方法的原创文章,转载或引用请以超链接形式标明本文地址,否则会在SEO圈内公开此种不尊重版权的行为,谢谢合作!本文地址:https://seofangfa.com/seo-articles/avoid-url-repeated-index.html
    本文信息:于2年前,由方法SEO发表,共 3258字。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  0   博主  0   引用   1

    来自外部的引用: 1

    • 【艺龙SEO总监刘明】如何避免大量URL重复收录 – 人也欢博客