2.4 搜索引擎工作原理
一个合格的SEOer必须了解搜索引擎的工作原理(如图2-16所示),毕竟多数看上去让人迷惑的SEO问题及解决方法都是从搜索引擎的工作原理出发的。
图2-16 搜索引擎工作原理
说到底,SEO是一项穿梭在用户与搜索引擎之间的工作,既要保证用户体验又需要尽量迎合搜索引擎。从某个角度来讲,SEO优化人员对于网站的优化工作就是尽量减少搜索引擎的工作量、降低搜索引擎的工作(识别)难度,致使搜索引擎能够更加轻松、快速地抓取网站页面,并准确地提取页面内容。只有深入了解搜索引擎的工作原理,从用户的角度出发考虑如何获取搜索引擎排名,才能够清晰地知道怎样优化网站,使其符合搜索引擎的友好度原则。
搜索引擎的主要工作包括页面抓取、页面分析、页面排序及关键字查询(索引)。
• 页面抓取:是指搜索引擎通过蜘蛛程序在互联网上抓取页面并进行存储的过程,为搜索引擎开展后续的各项工作提供数据支持。
• 页面分析:主要是指对蜘蛛程序所抓取回来的网页进行信息提取处理,包括页面的正文信息,并对正文信息进行分词处理等,为后续建立关键字索引提供基础数据。
• 页面排序:搜索引擎结合页面的内外部因素计算出该页面与某个关键字的相关程度,从而得到与该关键字相关的页面排序列表。
• 关键字查询(索引):搜索引擎接收到来自于用户的检索请求,并对检索信息进行切词及匹配,再向用户返回响应的页面排序列表。
接下来将向读者介绍搜索引擎的主要工作流程、原理及作用,以及在对网站进行优化时应该如何应对。
2.4.1 搜索引擎抓取策略
搜索引擎对网页的抓取实质上就是搜索蜘蛛(Spider)或机器人(Bot)在整个互联网平台上进行信息的采集和抓取,这也是搜索引擎最基本的工作。
搜索引擎蜘蛛/机器人采集的力度直接决定了搜索引擎前端检索器可提供的信息量及信息覆盖面,同时影响反馈给用户检索查询信息的质量。所以,搜索引擎本身在不断设法提高其数据采集/抓取及分析的能力。
本节将着重介绍搜索引擎抓取页面的流程及方式。
1.页面收录/抓取流程
在整个互联网中,URL是每个页面的入口地址,同时搜索引擎蜘蛛程序也是通过URL来抓取网站页面的,整个流程如图2-17所示。
图2-17 搜索引擎抓取/收录页面的流程
URL是页面的入口地址,域名则是整个网站的入口。搜索引擎蜘蛛程序会通过域名进入网站,然后对网站内的页面实施抓取。如图2-17所示,蜘蛛程序会从原始URL列表出发,通过URL抓取页面,然后从该页面提取新的URL存储到原始URL列表中(这个步骤会不断地重复,周而复始地累积扩大原始URL资源库),最后将该原始页面存储到搜索引擎索引库。
蜘蛛程序的执行步骤可以按照如下分拆步骤理解。
第一步:搜索引擎的爬行程序(俗称蜘蛛)发现网站,来到网站上。也就是说,网站首先要存在且能够被蜘蛛发现。比如秦建忠的自媒体博客如果想要被搜索引擎收录,首先网站要存在而且必须有内容。
如何让网站被搜索引擎收录呢?
方法一:主动向搜索引擎提交URL(此方法快则一周,慢则一月才会被收录)。
常用搜索引擎提交入口如下。
● 百度:http://zhanzhang.baidu.com/linksubmit/url。
● 360搜索:http://info.so.360.cn/site_submit.html。
● 搜狗:http://zhanzhang.sogou.com/index.php/urlSubmit/index。
● 谷歌:https://www.google.com/webmasters/tools/submit-url?pli=1。
● 必应:http://www.bing.com/toolbox/submit-site-url。
方法二:与其他网站建立链接关系,即“外链”。使搜索引擎能够通过外部网站发现我们的网站,实现页面收录(该方法主要看外部网站链接的质量、数量及相关性,相较主动向搜索引擎提交URL,速度快很多,一般一周左右)。
第二步:蜘蛛开始对入口页面进行抓取,并存储入口的原始页面,包含页面的抓取时间、URL、最后修改时间等。存储原始页面的目的是为了下次比对页面是否有更新,为保证采集的资料最新,它还会回访已抓取过的网页。
第三步:提取URL,提取URL包含两方面的内容:提取域名URL和提取内部URL。域名URL即网站首页地址,如www.***.com;内部URL即网站内部各页面的地址,如http://www.***.com/SEOxx/151.html。蜘蛛所提取的URL资源会持续添加到URL列表。
2.页面抓取方式
相信通过上述内容,大家对搜索引擎的抓取原理及流程有了一个大致的了解。然而,在互联网这片浩瀚的信息汪洋中,搜索引擎又怎样保证快速、有效地抓取更多的相对重要的页面呢?这就需要我们接着来了解搜索引擎的抓取方式。
了解搜索引擎的抓取方式有利于我们建立对搜索引擎友好的网站结构,使搜索引擎蜘蛛能够在我们网站上停留的时间更久,抓取更多的网站页面(即收录数量),为网站关键词排名提供有力支撑。常见的搜索引擎抓取页面的方式有广度优先抓取、深度优先抓取、质量优先抓取、暗网抓取。
(1)广度优先抓取
广度优先抓取是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的蜘蛛抓取方式,该方法的优点是可以让网络蜘蛛并行处理,提高其抓取速度。
广度优先抓取是一种按层次横向抓取页面的方式,如图2-18所示,它会从网页的最底层,也就是首页开始抓取页面,直至该层页面被抓取完才会进入下一层。所以,当我们在做网站优化的时候,不妨将一些相对重要的信息或栏目在首页优先展示出来(如热门产品、资讯内容等),让搜索引擎优先抓取到网站较为重要的信息。
图2-18 广度优先抓取的爬行策略
(2)深度优先抓取
深度优先抓取是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接,如图2-19所示。
图2-19 深度优先抓取的爬行策略
(3)质量优先抓取
质量优先抓取一般是针对大型网站,比如新浪、网易、阿里巴巴等类型的网站,由于它们的信息量庞大,而且本身权重比较高,相对来说更容易为用户提供更有价值的信息。正因如此,搜索引擎会更愿意优先抓取大型网站中的网页,以保障其可以在最短的时间内为用户提供更有价值的信息(这也是大型网站的内容抓取比小站更及时的原因之一)。
搜索引擎整理高质量的网站一般分为两种方式:一种是前期的人工整理大量种子网站,进而由种子资源出发去发现更多大型网站资源;另一种是对已经索引的网站进行系统分析,从而识别那些内容丰富、规模较大、信息更新频繁的网站。
(4)暗网抓取
所谓暗网(又称深网、不可见网或隐藏网),是指目前搜索引擎爬虫按照常规方式很难抓取到的互联网页面。搜索引擎爬虫必须依赖页面中的链接关系发现新的页面,但是很多网站的内容是以数据库方式存储的,典型的例子是一些垂直领域网站,如携程旅行网的机票数据,很难使用显式链接指向数据库内的所有机票记录,往往是服务网站提供组合查询界面(如图2-20所示),只有用户按照需求输入查询之后,才能够获得相关数据。所以,常规的爬虫无法索引这些数据内容,这是暗网的命名由来。
图2-20 携程网机票搜索框
为了能够对暗网数据进行索引,需要研发与常规爬虫机制不同的系统,这类爬虫被称作暗网爬虫。暗网爬虫的目的是将暗网数据从数据库中挖掘出来,并将其加入搜索引擎的索引,这样用户在搜索时便可利用这些数据增加信息覆盖程度。
2.4.2 页面分析
在页面收录过程中,搜索引擎已经抓取并存储了网站上的URL,接下来,搜索引擎会对所抓取的页面内容进行分析,如图2-21所示。
图2-21 页面分析流程
在这个过程中,我们看到了两个“网页”。第一个“网页”指的是刚才搜索引擎已经收录的URL资源(即搜索蜘蛛抓取的原始页面),第二个“网页”指的是搜索引擎对关键词进行重组之后所对应的网页。搜索引擎对页面的分析由该原始页面正式开始。
• 第一步:提取正文信息
这里所提取的正文信息除了包含页面内容外,还包含页面的头部标签信息(Title、Keywords、Description)等。
• 第二步:分词/拆词
提取完信息后,搜索引擎按照机械分词法和统计分词法将正文信息切分为若干关键词,这些关键词组成了关键词列表。我们大家在搜索引擎里查找内容时往往会输入关键词查找,这里搜索引擎的工作就是按照一定的规则将内容划分为词,以便以后大家搜索。
• 第三步:建立关键字索引
上一步搜索引擎已经将正文内容切分为了若干关键词,这些关键词出现的位置、频率等是不同的,在这一步,搜索引擎会将关键词逐一记录、归类、建立索引,比如关键词出现的频率(建议2%~8%是比较合理的)。
• 第四步:关键词重组
搜索引擎为页面关键词建立索引后,再将这些关键词重新组合,以关键词的形式重新组建一个新的网页,这个网页上的关键词是唯一的,全部不重复。比如,我们刚才在第三步时,A关键词出现了三次,在第四步,我们只记录A关键词1次,在重组网页后,A关键词再无重复。
至此,搜索引擎对页面的分析完成,在这一环节,搜索引擎完成了对页面正文信息的提取、关键词的切分、关键词的索引以及搜索引擎角度上的网页重组。
2.4.3 页面排序
前面搜索引擎完成了对页面的分析,将页面以唯一关键词的形式进行了重新组合。接下来进入页面排序的环节。页面排序的环节实际上是由用户配合来完成的。当用户在搜索引擎中输入关键词进行查询时,搜索引擎便开始了页面排序的工作。我们知道,任意输入一个关键词就可以在搜索引擎中找到很多网页,这些网页的先后顺序是怎样产生的呢?影响页面排序的因素有哪些?
实际上,决定页面排序的因素很多,如页面相关性、链接权重及用户行为。
1. 页面相关性
• 关键词匹配度
我们注意到在全文搜索引擎中,一般情况下搜索引擎列表中都会包含我们所输入的关键词。当我们输入关键词进行查询时,搜索引擎会首先检查网页中是否有该关键词,这是基础条件。
• 关键词词频(密度计算)
搜索引擎为了能够有效地防止网站所有者恶意操控搜索结果,会去比对页面中关键词出现的频率与该网页词汇量的比例,以此来衡量页面中的关键字词频是否合理。过高或者过低都不好,最恰当的频率一般认为是2%~8%(业界公认最优关键词密度区间值)。
关键词密度是指该关键字出现的次数所占字符数与该网页总词汇量所占字符数的比例。
• 关键词分布
关键字在页面中出现的位置会影响页面的排序。一般认为页面权重的递减顺序是左上>右上>左>右>左下>右下。
• 关键词的权重标签
权重可以理解为重要性。权重标签如< b >、< i >、< em >、< h1 >至< h6 >等,这些标签使得标签内的文字不同于其他文字,搜索引擎会给予相应权重提升。
2. 链接权重
链接主要分为内部链接和外部链接两种形式,是在制作网站页面时用来关联相关信息的,主要用来告知用户所链接页面的重要程度,对于搜索引擎而言,则是用来证明页面与页面之间的关联性、相关性或重要性。比如,某一个页面得到的链接越多,在某种程度上就反映了该页面的重要性,搜索引擎给予的重视程度就会越高。
• 内部链接
网站内部页面与页面之间的相互链接关系,一般首页的权重最高。在同等情况下,如果有两个网站的首页和内页进行比较,一般首页会排在内页前面。
• 外部链接
网站与站外页面之间的链接关系,通俗的说法叫作“外链”。外链的数量、质量、相关性都会影响页面排序。在页面相关性上,谷歌比百度更为严格,比如你的网站是做IT的,结果你去链接了很多机械化工类的网站,这时搜索引擎会很不喜欢,甚至会认为你恶意添加外部链接。
如图2-22所示,网页1与网页2之间的链接关系可以称为“内部链接”或“友情链接”,而网页3与网页2之间的链接关系则是“外部链接”(网页3是网页2的外部链接)。
图2-22 页面链接关系
• 默认权重分配
搜索引擎将页面被抓取的日期作为一个参考因素,页面在单位时间内获得链接的数量越多、质量越高,则该页面的质量相对越高。
3. 用户行为
用户对搜索结果的点击行为是衡量页面相关性的因素之一,是完善排序结果、提高排序结果质量的重要补充。
用户行为主要包括搜索、点击两项行为:搜索是用户获得信息的过程,搜索引擎通过这个用户行为学习新词汇、丰富辞典;点击是指用户对搜索结果的反应,被点击的次数越多,说明越重要,权重越高。
注 意
搜索引擎为避免马太效应,会对排在后面的链接进行点击权重补偿。
2.4.4 关键字查询
当所有页面的权重被计算完成之后,搜索引擎便会向用户提供相关信息查询服务,查询流程如图2-23所示。
图2-23 关键词查询处理流程
第一步:用户输入关键词进行查询。
第二步:搜索引擎接到用户关键词指令,将用户的关键词再次切分。
为什么还要继续切分呢?
这是因为用户所输入的关键词可能会和搜索引擎词典里的关键词不符合,这时搜索引擎会将用户输入的关键词再次切分,尤其是长尾关键词(见4.2.2小节)。例如用户搜索“秦建忠的自媒体博客”,这个词搜索引擎词典里是没有的,这个词就会被切分为“秦建忠的”“自媒体”“博客”三个词之后再去网页资源中进行匹配(如图2-24所示)。
图2-24 百度关键词切分结果
第三步:搜索引擎将关键词切分后,进入网页资源库中进行匹配,查询合适的内容,即“关键词反向索引表”。如果网页资源中有查询到对应关键词,就进行页面分析,按照页面权重进行网页排序。如果没有对应关键词,就返回给用户一个“空列表”,比如“很抱歉,没有找到你要查询的内容”。