原文链接:https://moz.com/blog/large-site-seo-basics-faceted-navigation

对于企业网站来说,尤其是电商网站或者分类网站,常会使用多维度导航的结构,这种结构能帮助用户更好地筛选出所需要的结果。然而对SEO来说,却是个噩梦,我之前服务过的客户,经常有由于多维导航而导致的数以百万计的筛选页面链接产生,而且还是可抓取可收录的,

之前有不少帖子深入研究过这个问题,这篇文章介绍了多维导航对SEO的具体影响(https://moz.com/blog/building-faceted-navigation-that-doesnt-suck),我也写过一篇文章http://www.86i87.com/2013/06/21/crawler-resource-distribution/

本文想解决的是把梳理这一类现象,并且给出对应的解决方案。我们面对的核心问题其实是:“有哪些方法可以影响Google对页面的抓取和收录,以及这些方法的优缺点是什么?”

 

简要回顾多维度导航

一句话概括,多维度导航是指网页上存在根据一系列属性(属性之间无明显相关性)筛选结果的导航形式。以下图为例,通过处理器类型、屏幕分辨率、外壳颜色等不同属性来挑选笔记本电脑,这样的展现方式就是多维度导航

由于每种可能的排列组合属性的方式都会生成一种URL,多维度导航给SEO带来了几个问题

1.产生了大量的重复内容

2.消耗了有限的爬虫资源,而且返回给搜索引擎错误的信号

3.稀释了链接权重,同时链接权重传递给了本不该获得权重的页面。

来点具体的案例

看看一些多维度导航在网站上具体实施的例子以及对SEO的影响,你就知道为何要重视这个问题了。

 

Macy’s

在Google上搜索“site:https://www.macys.com/  black dresses”, Macys网站上符合这个条件的商品有1991个,然而Google却收录了12000多个页面。原因在于多维度导航设置的缺陷,可以从SEO的角度修复

 

Home Depot

再来看看Home Depot这个网站,搜索外开门会找到8930个页面,真的有必要让搜索引擎收录这么多相似产品的筛选页面吗?其实未必,当然也可以通过下面介绍的方法修复这个问题。

 

对于大型电商网站来说,这样的情况还真不少,我想说的是,其实这些网站在多维度导航这件事上还可以做得更阿基SEO友好一点。

多维度导航SEO解决方案

解决这个问题,首先要明确哪些内容需要被收录,哪些则是要避免收录的,以及如何达成这两个目的、我们来看看咱们手头都有哪些武器?

 

“Noindex, follow”

Noindex标签是大多数人首先想到的方案,该标签唯一的作用就是告诉爬虫别收录这个页面,因此对避免收录这个目的来说相当有用。

不过,虽然使用Noindex标签可以有效减少重复页面收录,但仍然会消耗爬虫资源,以及这些重复页面会接受链接权重,因此有效页面能获得的权重就会减少。

操作实例: 以上文提到的Macys网站为例,如果想收录“black dresses”页面,但是不想收录“100元以内的black dress”页面,在后面的筛选页面里面添加noindex标签就可以了。不过爬虫资源和链接资源的消耗是无法规避的。

Canonicalization

使用Canonical标签也是常见的应对方法。Canonical标签的意义在于告诉Google爬虫这一类页面相似度很高,只需要抓取网站返回给你的标准版页面就可以啦。Canonical标签的设计初衷就是为了解决重复内容的问题,而且链接权重也会被集中到标准版页面,看起来是个不错的方案。

可惜的是,Google爬虫的爬行资源还是会被消耗。

 

操作实例: /black-dresses?under-100/ 可以设置canoncial的URL指向 /black-dresses/.既解决了重复问题,又解决了链接权重分散的问题。

Robots.txt屏蔽

禁止爬虫抓取这部分筛选页面当然也很有效。好处是:速度快,操作方便,并可以自定义拼比页面。不过还是会有不好的影响:首先屏蔽之后,链接权重就好像被黑洞吸进去一样,彻底没有了;另外,有的时候Google也不会遵守Robots协议。比如下图,就是被Robots屏蔽的页面依然会展现在搜索结果里。

 

操作实例:  在Robots.txt中disallow *?under-100* .可以杜绝Google访问任何包含under-100参数的页面,然而如果有其他链接指向这类URL,Google仍然会收录。

 

“Nofollow” 不想收录的链接

可以通过Nofollow多维度导航链接来解决抓取资源消耗的问题,可惜的是,nofollow标签也无法彻底解决问题,这些重复页面依然会被收录,同时链接权重也依然会丢失。

操作实例:  给指向不想被收录的页面的内部链接都加上nofollow标签,意思就是告诉Google别去抓这些页面啦,抓点别的内容更好。

一起解决以上所有问题

首先,如果导航结构还没上线的话,我强烈建议通过不改变URL的方式实现多维度导航(多数通过js脚本实现),这样既不妨碍用户体验,又不会生成多个URL。可惜也有问题:有一些核心导航也能有被收录的价值,还是得给这类页面做入口。

下面这张表格也许能看得更清楚一些:

解决方案 是否解决重复内容问题? 是否解决爬虫资源问题? 是否解决链接权重传递问题? 是否允许外部链接传递权重? 是否允许内部链接权重转移? 备注
“Noindex, follow” Yes No No Yes Yes
Canonicalization Yes No Yes Yes Yes 只能用于相似页面
Robots.txt Yes Yes No No No Robots屏蔽的页面仍然有可能被收录
Nofollow No Yes No Yes No
JavaScript Yes Yes Yes Yes Yes 投入更多技术资源

所以有完美的解决方案吗?

首先,并没有一劳永逸的方案,完美的做法应该是以上方案的有机结合。下面这个例子也许适用于大多数网站,但是更重要的是了解自己网站的结构和问题所在,再给出针对性的方案。

制定方案之前先问自己一个问题,对你的网站来说,爬虫的抓取资源和链接权重哪个更加重要?不同答案意味着不同的做法。

例如:不在乎链接权重的损失,只想更好地分配爬虫的抓取资源,我会建议这样做:

1.目录页、子目录可以保留目前的可抓取状态( /clothing/, /clothing/womens/, /clothing/womens/dresses/类似这样的地址)

2.对单个目录页而言,只允许带一个筛选条件的URL被访问

a. 对包含一个及以上筛选条件的页面,该页面上的筛选链接都加上nofollow属性(比如/clothing/womens/dresses?color=black/)

b.对包含两个及以上筛选条件的页面,同时添加Noindex标签(比如/clothing/womens/dresses?color=black?brand=express?/)

3.评估一下那些筛选条件对SEO有利(例如颜色和品牌名),把这些筛选条件加入白名单,做到可被搜索引擎抓取和收录

4.正确设置canonical 和 rel=prev/next 标签(可参考这篇文章http://www.gsqi.com/marketing-blog/how-to-set-up-pagination-rel-next-prev/)

上述做法可以逐渐缓解多维度导航给网站带来的问题,另外这个方案结合了集中不同的处理方法,包含了nofollow,noindex,canonical标签的组合使用,以获得更好的效果。

 

其他注意事项

有两点需要单独拎出来说一下

面包屑很有用

如果在目录页/子目录页没有面包屑导航, 就是给自己挖了个深坑。因为对于结构复杂的网站来说,面包屑是帮助爬虫理清网站结构最好的工具。

 

固定好URL中的筛选参数

某些情况下,有的网站筛选条件选择的顺序不一样,也会产生不同的URL,这样会让重复页面成倍增长,所以请务必写死筛选条件的排序。

 

总结

希望这篇文章能给你更多改善多维度导航,提升搜索表现的想法,其实主要就下面几点:

 

1.多维度导航用户体验很好,但是往往不利于SEO

2.多维度导航对SEO影响最大的点在于:重复内容、抓取资源浪费、链接权重不能有效传递

3.最核心的问题是:如何控制Google的爬行和收录?

4.没有万能的解决方案,好的做法是组合以下工具:noindex,follow;canonical;robots文件;nofollow;ajax/js.

5.设计解决方案的前提是对链接权重和爬虫资源有个优先级的判断。

【翻译小结】其实这篇文章针对的是google,那百度又是什么情况呢,因为根据经验,canonical标签对百度用处不大,有什么替代工具呢?百度是不是也存在爬虫资源的分配和链接权重传递的问题呢?老实说,只有亲自测试过才知的,我其实也好久没有做过类似改动,因此也挺想看到类似的分享。


Leave a Reply

Your email address will not be published. Required fields are marked *