今天写几个有密切关系经常被混淆但又不是一回事的几个概念,以及为什么要精准掌握这几个概念。 爬行是指蜘蛛在页面上沿着链接发现新页面,然后“爬”过去抓取新页面。抓取是指蜘蛛发现新页面后,像浏览器一样打开页面,把页面HTML代码存入数据库。两个概念在英文中通常都是用crawl或spider(这里是动词)表示,视上下文才能分出是指哪个。 显然,爬行和抓取是相互交织的。抓取是实际发生的我们能够观察到的过程,在原始日志中,蜘蛛的抓取是有完整记录的,比如:抓取确切时间、状态码、抓取的文件是哪个、抓取了多大文件等等。蜘蛛对页面的抓取就和浏览器读取文件是完全一样的。 而爬行只是一个形象的比喻,实际上并不存在蜘蛛抓取文件时发现链接然后立即跟踪过去这样一个过程。蜘蛛抓取文件后存入数据库,程序解析出文件中的链接后将URL存入页面地址库,然后蜘蛛从地址库中按一定规则选取URL进行抓取。蜘蛛不是真的访问页面时看到一个URL就爬过去。 索引指的是将一个URL的信息进行各种整理,如去重、分词等等,然后将关于这个URL的信息存入数据库,被称为索引库。真正用于搜索的是倒排索引,以后有机会再细说。要注意的是,索引库中关于URL的信息不仅是组成页面内容的关键词及其特征(位置、格式等),还有链接、更新情况等信息。英文索引这个词是index。 收录是SEO们最关心也最常用的词,其实也是4个概念中最不明确的。被收录指的是我们能查到页面被搜索引擎存入了索引库。但后面我们会看到,进入索引库的URL并不一定被抓取过,这和SEO们的直觉可能是不一样的。 页面不收录是SEO们最头疼的问题之一,不收录就谈不上排名、流量了。太多人在博客、论坛里问页面不被收录是什么原因,也给出了域名,但这种问题是没法回答的,即使愿意花时间去诊断也不能回答(除非列出所有可能的原因,等于没回答),因为缺了一个关键信息:页面被抓取了没有?这只有查原始日志才能知道,看网站是看不出来的,查流量也是查不出来的。了解前面的概念就知道,被抓取不一定被收录,没被收录也不一定意味着没被抓取。 如果页面被抓取过却没被索引和收录,应该往内容是否有问题(原创?采集?所谓伪原创?敏感内容或产品?复制内容?)方向去找原因。网站结构应该没有大问题,搜索引擎是看了内容之后觉得不适合收录的。如果页面压根就没被抓取过,则应该往网站和链接结构、搜索引擎不友好的技术障碍、域名权重等方面去找。
|