网站收录原理
收集待索引网页
Internet上存在的网页数量绝对是个天文数字,每天新增的网页也不计其数,搜索引擎需要首先找到要索引收录的对象。
具体到Google而言,虽然对GoogleBot是否存在DeepBot与FreshBot的区别存在争议——至于是否叫这么两个名字更是众说纷纭。
主流的看法是,在Google的robots中,的确存在着相当部分专门为真正的索引收录页页准备“素材”的robots——在这里我们姑且仍称之为FreshBot吧
它们的任务便是每天不停地扫描Internet,以发现并维护一个庞大的url列表供DeepBot使用,换言之,当其访问、读取其一个网页时,目的并不在于索引这个网页,而是找出这个网页中的所有链接。当然,这样似乎在效率上存在矛盾,有点不太可信。不过,我们可以简单地通过以下方式判断:FreshBot在扫描网页时不具备“排它性”。也即是说,位于Google不同的数据中心的多个robots可能在某个很短的时间周期,比如说一天甚至一小时,访问同一个页面,而DeepBot在索引、缓存页面时则不会出现类似的情况。即Google会限制由某个数据中心的robots来完成这项工作的,而不会出现两个数据中心同时索引网页同一个版本的情况,如果这种说法没有破绽的话,则似乎可以从服务器访问日志中时常可以看到源自不同IP的GoogleBot在很短的时间内多次访问同一个网页证明FreshBot的存在。
因此,有时候发现GoogleBot频繁访问网站也不要高兴得太早,也许其根本不是在索引网页而只是在扫描url。
FreshBot记录的信息包括网页的url、TimeStamp(网页创建或更新的时间戳),以及网页的Head信息(注:这一点存在争议,也有不少人相信FreshBot不会去读取目标网页信息的,而是将这部分工作交由DeepBot完成。
不过,笔者倾向于前一种说法,因为在FreshBot向DeepBot提交的url列表中,会将网站设置禁止索引、收录的页面排除在外,以提高效率,而网站进行此类设置时除使用robots.txt外还有相当部分是通过mata标签中的“noindex”实现的,不读取目标网页的head似乎是无法实现这一点的),如果网页不可访问,比如说网络中断或服务器故障,FreshBot则会记下该url并择机重试,但在该url可访问之前,不会将其加入向DeepBot提交的url列表。
总的来说,FreshBot对服务器带宽、资源的占用还是比较小的。最后,FreshBot对记录信息按不同的优先级进行分类,向DeepBot提交,根据优先级不同,主要有以下几种:
A:新建网页;B:旧网页/新的TimeStamp,即存在更新的网页;C:使用301/302重定向的网页;D:复杂的动态url:如使用多个参数的动态url,Google可能需要附加的工作才能正确分析其内容。
——随着Google对动态网页支持能力的提高,这一分类可能已经取消;E:其他类型的文件,如指向PDF、DOC文件的链接,对这些文件的索引,也可能需要附加的工作;
F:旧网页/旧的TimeStamp,即未更新的网页,注意,这里的时间戳不是以Google搜索结果中显示的日期为准,而是与Google索引数据库中的日期比对;G:错误的url,即访问时返回404回应的页面;
网页的索引与收录
接下来才进入真正的索引与收录网页过程。从上面的介绍可以看出,FreshBot提交的url列表是相当庞大的,根据语言、网站位置等不同,对特定网站的索引工作将分配至不同的数据中心完成。
整个索引过程,由于庞大的数据量,可能需要几周甚至更长时间才能完成。
正如上文所言,DeepBot会首先索引优先级较高的网站/网页,优先级越高,出现在Google索引数据库及至最终出现在Google搜索结果页面中的速度便越快。
对新建网页而言,只要进入到这个阶段,即使整个索引过程没有完成,相应的网页便已具备出现在Google索引库中的可能,相信许多朋友在Google中使用“site”搜索时常常看到标注为补充结果只显示网页url或只显示网页标题与url但没有描述的页面,此即是处于这一阶段网页的正常结果。
当Google真正读取、分析、缓存了这个页面后,其便会从补充结果中逃出而显示正常的信息。
——当然,前提是该网页具有足够的链接,特别是来自权威网站的链接,并且,索引库中没有与该网页内容相同或近似的记录(DuplicateContent过滤)。
对动态url而言,虽然如今Google宣称在对其处理方面已不存在障碍,不过,可以观察到的事实仍然显示动态url出现在补充结果中的几率远大于使用静态url的网页,往往需要更多、更有价值的链接才能从补充结果中逸出。
而对于上文中之“F”类,即未更新的网页,DeepBot会将其时间戳与Google索引数据库中的日期比对,确认尽管可能搜索结果中相应页面信息未来得及更新但只要索引了最新版本即可——考虑网页多次更新、修改的情况——;至于“G”类即404url,则会查找索引库中是否存在相应的记录,如果有,将其删除。
数据中心间的同步
前文我们提到过,DeepBot索引某个网页时会由特定的数据中心完成,而不会出现多个数据中心同时读取该网页,分别获得网页最近版本的情况,这样,在索引过程完成后,便需要一个数据同步过程,将网页的最新版本在多个数据中心得到更新。
这就是之前著名的GoogleDance。不过,在BigDaddy更新后,数据中心间的同步不再像那样集中在特定的时间段,而是以一种连续的、时效性更强的方式进行。
转载请注明:虎哥的SEO日志 » 2-2-3 网站收录