Twitter技术问题导致抓取和URL规范化问题

6月27号Google工具条PR更新了一次,然后很多人注意到Twitter首页PR降为零。(Google首页也降到9,不过这不是重点。)7月19号Google居然又更新一次工具条PR。Google更新工具条PR值从一个月一次变到3个月一次,甚至半年一次,所以这次不到一个月就再次更新有点蹊跷。据目前透露的信息,这次更新PR貌似主要就是为了修正Twitter PR值的问题。

今天看到SEL上Vanessa Fox的一篇文章,解释了为什么Twitter的一些技术失误导致Google抓取、URL规范化、PR计算等一系列问题,很值得一读,所以大致翻译一下供读者参考。

为什么不是Google的错误,Google却这么上心,更新了PR呢?猜测原因有二,一是无论任何情况下Twitter首页PR为零,大家肯定是说Google有问题,而不是Twitter有问题,虽然其实确实是Twitter自己造成的。二是,在Google+推出的同时,Google与Twitter合作合同到期了,不能直接通过API抓数据了,这时候Twitter PR降为零,大家恐怕心里会嘀咕,这Google真是过了河马上就拆桥啊,Google不想背这个黑锅。

言归正传。

Google一位发言人回复SEL关于Twitter PR时说:

最近Twitter不断修改它们的robots.txt文件和HTTP头信息,玩得太起劲了,暂时造成Google算法处理Twitter时的URL规范化问题。现在规范化问题差不多解决了,所以我们更新了工具条PR以反映最新数据。Twitter在Google索引库里一直有很高PR,没有惩罚。

所以Vanessa Fox研究了一下Twitter到底有什么robots文件、服务器头信息、URL规范化问题。真是不看不知道,一看吓一跳。顺便提一下,Vanessa Fox是前Google员工,负责网管工具webmaster tools的。

预感这篇帖子会比较长,才刚开始就这么长了…

Vanessa Fox搜了一下自己名字“Vanessa Fox”,结果如下图:

有URL,但没标题,没说明,也就是其实没抓取,只是部分索引。

直接搜Vanessa Fox自己Twitter页面URL的结果是:

为什么出现了大写?URL最后面那个点(.)又是什么东东?到底怎么回事呢?

先来看看Twitter的robots.txt文件

twitter.com和www.twitter.com的robots.txt文件居然是不一样的。twitter.com/robots.txt是这样的:

#Google Search Engine Robot
User-agent: Googlebot
# Crawl-delay: 10 — Googlebot ignores crawl-delay ftl
Allow: /*?*_escaped_fragment_
Disallow: /*?
Disallow: /*/with_friends

#Yahoo! Search Engine Robot
User-Agent: Slurp
Crawl-delay: 1
Disallow: /*?
Disallow: /*/with_friends

#Microsoft Search Engine Robot
User-Agent: msnbot
Disallow: /*?
Disallow: /*/with_friends

# Every bot that might possibly read and respect this file.
User-agent: *
Disallow: /*?
Disallow: /*/with_friends
Disallow: /oauth
Disallow: /1/oauth

www.twitter.com/robots.txt是这样的:

User-agent: *
Disallow: /

也就是说:

  • 某些情况下,带与不带www的两个版本内容可能是不一样的。
  • Twitter貌似为了规范化网址,禁止搜索引擎爬行www版本。
  • 所以虽然www版本做了301转向到不带www的版本,但Twitter禁止搜索引擎抓www版本,所以搜索引擎蜘蛛看不到那个301啊。杯具啊。
  • 连向Twitter的链接有的是链到www版本,有的是不带www的版本,既然www版本禁止爬行,看不到301,链接权重不能传递,浪费了。

所以在第一个抓图里看到返回的是带www的版本,可能原因是这个版本外链比较多,但Twitter禁止爬行,所以只是部分索引(也就是只有一些来自链接的数据,没有页面本身的内容)。

再来看看302转向

查一下twitter.com/vanessafox这个URL头信息,居然返回302转向到twitter.com/#!/vanessafox。为什么说“居然”呢?请参考301转向302转向的区别。由于用的是302,权重没有转到twitter.com/#!/vanessafox

而www.twitter.com/vanessafox做了301到twitter.com/vanessafox,当然,由于www版本被屏蔽,链接权重也传递不过来。为什么不从www.twitter.com/vanessafox直接301到twitter.com/#!/vanessafox(这才是Twitter想要的规范化版本)呢?就算要做两次转向,也都要用301,也不能屏蔽www版本。

再来看看Twitter意图的AJAX抓取

Twitter想要的规范化URL是twitter.com/#!/vanessafox,其中的#表示Twitter希望搜索引擎抓取页面AJAX内容。(这里技术问题比较复杂,就不解释了,即将出版的《SEO艺术》有关于AJAX内容和#符号使用的解释,广告一下,呵呵)。

不过由于一系列复杂的转向,可能造成了问题:

  • Google爬行不带www带#!的URL(twitter.com/#!/vanessafox),然后被转向到twitter.com/_escaped_fragment_/vanessafox
  • 然后Google又被301转向到带www不带#!的版本www.twitter.com/vanessafox
  • 而用户访问时JS将用户又转回到带#!的版本

我读到这里时头脑已经比较凌乱了,总之,Twitter弄了一堆转向,目的是让twitter.com/vanessafox这个看着看着干干净净的版本出现在搜索结果中,但用户点击后又被转到twitter.com/#!/vanessafox。弄这么复杂干什么呢,越复杂越容易出错啊。

Rate Limiting又是什么呢

Twitter页面头信息里有一个rate limiting部分:

HTTP/1.1 200 OK
Date: Mon, 18 Jul 2011 20:48:44 GMT
Server: hi
Status: 200 OK
X-Transaction: 1311022124-32783-45463
X-RateLimit-Limit: 1000

这个limiting又limit(限制)了什么呢?Vanessa Fox不清楚,我就更不知道了,以前没见过这个参数。但limit这个词暗示着是限制了什么和速度有关的东西,要是指抓取速度就惨了。

URL中的大小写字母

最后,如第二个抓图显示的,URL中出现大小写字母,这些都是不同URL,又会造成网址规范化、PR/权重分散、复制内容等等问题。

终于到结尾了。总之,这种技术问题在很多大型网站是经常出现的,看似小问题,其实可能导致严重后果。

------首次发布日期: 2011年07月21日

作者: Zac
版权属于: SEO每天一贴
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。



424 条评论 “Twitter技术问题导致抓取和URL规范化问题

  1. 看来博主是只管SEO不玩Twitter的,X-RateLimit-Limit这个HTTP Header是代表访问限制的。Twitter对于部分页面是有每小时访问次数限制的,就是通过这个Header来反映的。

  2. 也就是说这次PR的更新是为了修正上次的错误,那可郁闷了,我的博客首页变成了1,而内页有部分上升到了2。很纠结啊,虽然PR不重要了,但是不好看啊

  3. 老实说,不太理解twitter到底是什么,是不是和facebook一样都是社交化网站?如果是的话,貌似对搜索引擎不必太感冒啊

  4. 呵呵,其实我昨天收到zac的微博以后也照着Vanessa Fox的文章写一篇,大概意思的,当然肯定是没有zac写得专业,而且我也不知道Vanessa Fox是谁,通过翻译器看的,大概意思可以说清楚一点,总的来说就是说Twitter犯了一个严重的连锁错误,为了把www转向非www。

  5. 感想:
    1.T把简单的事情复杂化了,其实最简单的办法就是跟谷歌打个招呼,随便扔点钱,让谷歌的专业工程师去做,SEO这种东西还是中小网站用的,大网站不用SEO,就像这次,谷歌会倒着回来找你的。
    2.还是发展自己最重要,依赖谷歌终究不是办法,人家只要一更新,你就会破产。这也就是T,如果是一个其他一般的网站,谷歌都懒得管你。
    3.Z神的英语真棒。膜拜ING。

  6. 好长的文章啊!昨天才看到微博请ZAC老师翻译,今天就翻译出来了!谢谢ZAC老师啦!转到我的博客了,已经注明原链接!

  7. 老师好!看了你很多文章!觉得你为SEO行业做出的贡献很大!一起以来我都是看过没有回复!觉得像你这么付出的人要值得尊重!我也会向你学习!我自己建立了一个群:118039802 是为了交流SEO所用!群里的很多SEOer向你请教你书里面的知识!也从书里学习了很多实用的东本!也应邀你能进群能抽空为我们讲解一下我们的疑惑!谨代表一百一十位seoer的请求!

  8. 您好,我是阿权站长,我的一个实验:3000个评论会引发什么?敬请关注阿权站长独立博客 您的是第89个博客留言,我会把您的博客地址也记录下来的。谢谢

  9. 这家伙博客果然非常火,跟我的博客有得一拼呀,哈哈!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!呵!!!

  10. SEO实战密码 60天网站流量提高20倍看完了
    受益匪浅,我一直业余做企业网站,最近想明白一个事情
    做企业站的核心是
    1. 客户容易找到网站。(靠SEO了,seo的核心就是排名,)
    2. 客户有给公司打电话咨询的冲动(靠页面排版,内容了。这部分核心是用户体验)
    总之需要仔细规划,策划,斟酌这些东西

    另外请ZAC老师给个http://www.zaccode.com/ 邀请码 我注册下
    邮箱是 [email protected]
    dinuan8.com 不知道SEO怎样?

  11. 我的网站www.cncaipu.info百度快照一直更新,但是百度收录一直不变,谷歌收录一直增加,但是IP也没见增加,我该怎么办?前辈能不能指导下

  12. 亲爱的zac老师,我是今天才决定在你的博客留言的。也许你并不一定看到。我是一位来自湖南的seo。做这一行没多久,在长沙做了一年,后去了上海。在那边发现竞争的激烈,自己也在那边失败了。然而自己并不害怕失败。呵呵。说老实话这个月可能是我人生中比较灰暗的时刻了。各方面的批评,家庭的不和睦,父母走到了离婚的边缘。然而那又怎样,我有自己的追求和梦想。我找到了自己的那条路。可以说自己对seo充满了狂热的喜爱。这条道路我会坚定不移的走下去。但是今天我去看看了同行的博客,那么多对seo的抱怨。说实话自己真的很生气,seo对于我来说根本就不是为了赚钱。而是一种目标,自己是从昏昏谔谔的日子里面走出来的,现在有一个目标可以让自己变的坚强和成熟。所以很崇拜在这一行做的很好的你们,你,夫唯,丘仕达,还有国平。自己都很喜欢。真希望你能说点什么给我现在的这些同僚们。不要抱怨seo这个职业。做为新一代的我们应该有年轻人应有激情和追逐梦想的脚步。

  13. 读的有点费劲!我也不理解为何twitter要搞#!这个玩意,记得那天我保存twitter.com/hi360buy,当执行这个URL的时候出现twitter.com/#!/hi360buy,以为出错什么玩意了,总之这个url看着不美!

  14. 你好,我是王宝臣,很高兴认识你。zac前辈的网络营销实战密码相当的给力,本人阅读完以后收获很多,这本书绝对可以称为当今中国站长的seo宝典之一。相当给力。高手关注的问题和普通人关注的都有所差异,更加细微化。

  15. 你的SEO技术好强大呀,想麻烦您帮我诊断一下我的新站(www.taolll.com),为什么百度不来爬我的网站了,刚上线的第二天百度来了8K多次,就那次过后在也没来我站了,这是为什么啊?

  16. 每次来ZAC老师的博客 我都会留下自己的脚印,你的博客现在很少更新了,但还是会常来看看, 看是否能捕捉到自己的信息

  17. 谷歌重大决定!所有网站PR于10月6日全部清0 !pr正式取消!!不知道zac老师是怎么看待的呢?这里是我的看法:http://www.shaowenjie.com/post/25.html

留个言呗:

您的邮箱不会被显示在页面上。标有*的是必填项。