第2章

    了解搜索引擎

    一个合格的SEO必须了解搜索引擎基本工作原理。很多看似令人迷惑的SEO原理及技巧,其实从搜索引擎原理出发,都是自然而然的事情。

    为什么要了解搜索引擎原理?

    说到底,SEO是在保证用户体验的基础上尽量迎合搜索引擎。与研究用户界面及可用性不同的是,SEO既要从用户出发,也要站在搜索引擎的角度考虑问题,才能清晰地知道怎样优化网站。SEO人员必须知道:搜索引擎要解决什么问题,有哪些技术上的困难,有什么限制,搜索引擎又怎样取舍。

    从某个角度来说,SEO人员优化网站就是尽量减少搜索引擎的工作量、降低搜索引擎的工作难度,使搜索引擎能更轻松、快速地收录网站页面,更准确地提取页面内容。不了解搜索引擎工作原理,也就无从替搜索引擎解决一些SEOer力所能及的技术问题。当搜索引擎面对一个网站,发现要处理的问题太多、难度太大时,搜索引擎可能就对这样的网站敬而远之了。

    很多SEO技巧是基于对搜索引擎的理解。下面举几个例子。

    我们都知道网站域名和页面权重非常重要,这是知其然,很多人不一定知其所以然。权重除了意味着权威度高、内容可靠,因而容易获得好排名外,获得一个最基本的权重,也是页面能参与相关性计算的最基本条件。一些权重太低的页面,就算有很高的相关性也很可能无法获得排名,因为根本没有机会参与排名。

    再比如很多SEOer津津乐道的“伪原创”。首先,抄袭是不道德甚至违法的行为,把别人的文章拿来加一些“的、地、得”,段落换换顺序就当成自己的原创放在网站上,这是令人鄙视的抄袭行为。理解搜索引擎原理的话,就会知道这样的伪原创也不管用。搜索引擎并不会因为两篇文章差几个字、段落顺序不同,就真的把它们当成不同的内容。搜索引擎的权重算法要先进、准确得多。

    再比如,对大型网站来说,最关键的问题是解决收录。只有收录充分,才能带动大量长尾关键词。就算是有人力、财力的大公司,当面对几百万几千万页面的网站时,也不容易处理好充分收录的问题。只有在深入了解搜索引擎蜘蛛爬行原理的基础上,才能尽量使蜘蛛抓得快而全面。

    上面所举的几个例子,读者看完搜索引擎原理简介这一节后,会有更深入的认识。

    2.1 搜索引擎与目录

    早期的SEO资料经常把真正的搜索引擎与目录放在一起讨论,甚至把目录也称为搜索引擎的一种,这种讲法并不准确。

    真正的搜索引擎指的是由蜘蛛程序沿着链接爬行和抓取网上的大量页面,存进数据库,经过预处理,用户在搜索框输入关键词后,搜索引擎排序程序从数据库中挑选出符合搜索关键词要求的页面。蜘蛛的爬行、页面的收录及排序都是自动处理。

    网站目录则是一套人工编辑的分类目录,由编辑人员人工创建多个层次的分类,站长可以在不同分类里提交网站,目录编辑在后台审核所提交的网站,将网站放置于相应的分类页面。有的时候编辑也主动收录网站。典型的网站目录包括雅虎目录、开放目录、好123等。

    目录并不是本书中所讨论的SEO所关注的真正的搜索引擎。虽然网站目录也常有一个搜索框,但目录的数据来源是人工编辑得到的。

    搜索引擎和目录两者各有优劣。

    搜索引擎收录的页面数远远高于目录能收录的页面数。但搜索引擎收录的页面质量参差不齐,对网站内容和关键词提取的准确性通常也没有目录高。

    限于人力,目录能收录的通常只是网站首页,而且规模十分有限,不过收录的网站通常质量比较高。像雅虎、开放目录、好123这些大型目录,收录标准非常高。目录收录网站时存储的页面标题、说明文字都是人工编辑的,比较准确。

    搜索引擎数据更新快,而目录中收录的很多网站内容十分陈旧,甚至网站可能已经不再存在了。

    雅虎目录、搜狐目录等曾经是用户在网上寻找信息的主流方式,给用户的感觉与真正的搜索引擎也相差不多。这也就是目录有时候被误称为“搜索引擎的一种”的原因。但随着Google等真正意义上的搜索引擎发展起来,目录的使用迅速减少,现在已经很少有人使用网站目录寻找信息了。现在的网站目录对SEO的最大意义是建设外部链接,像雅虎、开放目录、好123等都有很高的权重,可以给被收录的网站带来一个高质量的外部链接。

    2.2 搜索引擎面对的挑战

    搜索引擎系统是最复杂的计算系统之一,当今主流搜索引擎服务商都是有财力、人力的大公司。即使有技术、人力、财力的保证,搜索引擎还是面临很多技术挑战。搜索引擎诞生后的十多年中,技术已经得到了长足的进步。我们今天看到的搜索结果质量与10年前相比已经好得太多了。不过这还只是一个开始,搜索引擎必然还会有更多创新,提供更多、更准确的内容。

    总体来说,搜索引擎主要会面对以下几方面的挑战。

    1.页面抓取需要快而全面

    互联网是一个动态的内容网络,每天有无数页面被更新、创建,无数用户在网站上发布内容、沟通联系。要返回最有用的内容,搜索引擎就要抓取最新的页面。但是由于页面数量巨大,搜索引擎蜘蛛更新一次数据库中的页面要花很长时间。搜索引擎刚诞生时,这个抓取周期往往以几个月计算。这也就是Google在2003年以前每个月有一次大更新的原因所在。

    现在主流搜索引擎都已经能在几天之内更新重要页面,权重高的网站上的新文件几小时甚至几分钟之内就会被收录。不过,这种快速收录和更新也只能局限于高权重网站。很多页面几个月不被重新抓取和更新,也是非常常见的。

    要返回最好的结果,搜索引擎也必须抓取尽量全面的页面,这就需要解决很多技术问题。一些网站并不利于搜索引擎蜘蛛爬行和抓取,诸如网站链接结构的缺陷、大量使用Flash、JavaScript脚本,或者把内容放在用户必须登录以后才能访问的部分,都增大了搜索引擎抓取内容的难度。

    2.海量数据存储

    一些大型网站单是一个网站就有百万千万个页面,可以想象网上所有网站的页面加起来是一个什么数据量。搜索引擎蜘蛛抓取页面后,还必须有效存储这些数据,数据结构必须合理,具备极高的扩展性,写入及访问速度要求也很高。

    除了页面数据,搜索引擎还需要存储页面之间的链接关系及大量历史数据,这样的数据量是用户无法想象的。据说Google有几十个数据中心,上百万台服务器。这样大规模的数据存储和访问必然存在很多技术挑战。

    我们经常在搜索结果中看到,排名会没有明显原因地上下波动,甚至可能刷新一下页面,就看到不同的排名,有的时候网站数据也可能丢失。这些都可能与大规模数据存储的技术难题有关。

    3.索引处理快速有效,具可扩展性

    搜索引擎将页面数据抓取和存储后,还要进行索引处理,包括链接关系的计算、正向索引、倒排索引等。由于数据库中页面数量大,进行PR之类的迭代计算也是耗时费力的。要想及时提供相关又及时的搜索结果,仅仅抓取没有用,还必须进行大量索引计算。由于随时都有新数据、新页面加入,因此索引处理也要具备很好的扩展性。

    4.查询处理快速准确

    查询是普通用户唯一能看到的搜索引擎工作步骤。用户在搜索框输入关键词,单击“搜索”按钮后,通常不到一秒钟就会看到搜索结果。表面最简单的过程,实际上涉及非常复杂的后台处理。在最后的查询阶段,最重要的难题是怎样在不到一秒钟的时间内,快速从几十万、几百万,甚至几千万包含搜索词的页面中,找到最合理、最相关的1000个页面,并且按照相关性、权威性排列。

    5.判断用户意图及人工智能

    应该说前4个挑战现在的搜索引擎都已经能够比较好地解决,但判断用户意图还处在初级阶段。不同用户搜索相同的关键词,很可能是在寻找不同的东西。比如搜索“苹果”,用户到底是想了解苹果这个水果,还是苹果电脑?还是电影《苹果》的信息?没有上下文,没有对用户个人搜索习惯的了解,就完全无从判断。

    搜索引擎目前正在致力于基于用户搜索习惯及历史数据的了解上,判断搜索意图,返回更相关的结果。今后搜索引擎是否能达到人工智能水平,真正了解用户搜索词的意义和目的,让我们拭目以待。

    2.3 搜索结果显示格式

    让我们先稍微深入地了解一下搜索结果的展现形式。

    2.3.1 搜索结果页面

    用户在搜索引擎搜索框中输入关键词,单击“搜索”按钮后,搜索引擎在很短时间内返回一个搜索结果页面。如图2-1所示是Google的搜索结果页面,也是比较典型的搜索结果页面排版格式。

    页面主体有两部分最主要,一是广告,二是自然搜索结果。如图2-1所示,页面右侧8个结果及左侧最上面的一个结果,都标注为“赞助商链接”,这就是广告。绝大部分网民都比较清楚右侧显示的是广告,所以右侧赞助商链接没有加特殊底色。页面左侧上部的广告链接使用浅黄色底色,可以和下面的自然搜索结果清楚地分开。右侧广告最多有8个,上部广告可以多至3个。

    搜索广告在网络营销行业经常称为PPC,由广告商针对关键词进行竞价,广告显示广告商无须付费,只有搜索用户点击广告后,广告商才按竞价价格支付广告费用。PPC是搜索营销的另一个主要内容。

    搜索结果页面左侧广告下面,占据页面最大部分的就是自然搜索结果。通常每个页面会列出10个自然搜索结果。用户可以在账户设置中选择每页显示100个搜索结果。每个搜索结果的格式后面再做介绍。

    页面最左上角是垂直搜索链接,用户点击后可以直接访问图片、视频、地图等搜索结果。

    搜索框右下方显示满足搜索关键词的结果总数,例如图2-1中所显示的19600000条结果。这个搜索结果数是研究竞争程度的依据之一。

    alt

    图2-1 Google的搜索结果页面

    自然搜索结果下面显示相关搜索。搜索引擎根据用户搜索数据,列出相关的其他搜索词。

    页面最下面又是一个赞助商广告,与页面顶部的广告相同。页面左侧顶部及左侧底部的广告,并不是每次搜索有广告商竞价时都会出现,只有点击率和质量分数达到一定水平的广告才会出现在左侧顶部或底部。

    SEOer最关注的是占据页面主体的自然搜索结果。统计数据显示,自然搜索结果总点击访问数要远远大于广告点击数。但是企业花费在SEO上的费用却远远低于花费在搜索广告上的费用。这既是SEO的尴尬,也是最大的机会。掌握了SEO流量,才能掌握最大搜索流量。我们再来看百度搜索结果页面,如图2-2所示。

    alt

    图2-2 百度的搜索结果页面

    百度搜索结果页面与Google大致相同,区别在于广告部分的显示方法。如图2-1所示,右侧也是最多8个广告,不过并没有标注为赞助商链接或加其他提示文字。左侧最上面标注为“推广链接”的结果也是广告,这是百度启用凤巢系统后显示的广告。不过这几个广告只加了非常浅的灰色背景,不注意看几乎无法与下面的自然搜索结果区分开来。

    有的关键词搜索没有触发凤巢系统广告,还会继续显示传统百度广告,如图2-3所示。

    alt

    图2-3 传统百度搜索广告

    传统百度左侧广告既没有明确标注为推广链接,也没有使用任何背景颜色,与下面的自然搜索结果更不容易分辨。唯一能分辨出上面3个是广告的,是结果列表最后一行最右侧标有“推广”两个字。百度广告结果在背景颜色、文字标注上,都比较难以与自然结果区分。SEO人员当然很清楚这两者之间的区别,普通网民却难以察觉,尤其是百度传统左侧广告。这也是百度搜索结果常为人诟病的原因之一。

    2.3.2 经典搜索结果列表

    我们再来看看每一个搜索结果页面的展现格式。如图2-4所示是百度的搜索结果列表,主要分三部分。

    alt

    图2-4 最常见的搜索结果列表格式

    第一行是页面标题,通常取自页面HTML代码中的标题标签(Title Tag)。这是结果列表中最醒目的部分,用户点击标题就可以访问对应的网页。可见页面标题标签的写法,无论对排名还是对点击率都有重要意义。

    第二行、第三行是页面说明。页面说明有的时候取自页面HTML中的说明标签(Description Tag),有的时候从页面可见文字中动态抓取相关内容。显示什么页面说明文字是用户查询时才决定的。

    某些与日期有明确联系的页面,Google会在说明文字最前面显示日期,省略号后再显示页面说明。如博客帖子这类有明确发布日期的页面,如图2-5所示。

    alt

    图2-5 Google搜索结果列表中显示日期

    第四行显示三个信息。最左侧是网址,用户可以看到页面来自哪个网站,以及目录、文件名信息。

    中间是百度数据库中页面最后更新的日期。

    然后是百度快照链接,用户可以点击快照,查看存储在百度数据库中的页面内容。当页面被删除或者有其他技术问题导致不能打开网站时,用户至少还可以从快照中查看想要的内容。

    用户所搜索的关键词在标题及说明部分都用红色高亮显示。用户可以非常快速地看到页面与自己搜索的关键词相关性如何。如图2-6中的“SEO”这三个字母。

    alt

    图2-6 搜索词在Google中文搜索结果列表中高亮显示

    Google结果列表与百度大致相同,几处小的区别如下:

    · 搜索关键词在URL中出现时加粗显示,如图2-6中的SEO三个字母。

    · URL右侧的页面最近更新时间不是按日期显示的,而是显示为几小时前。

    · 网页快照链接后面有时还有一个“类似结果”链接。用户点击类似结果后可以看到与这个页面相似的其他网页。

    · Google英文结果列表与中文还有一个区别,就是搜索关键词在标题及说明部分不是红色高亮显示的,而是加粗显示的,如图2-7所示。

    alt

    图2-7 搜索词在Google英文搜索结果列表中加粗显示

    红色高亮显示应该是Google为适应中国用户搜索习惯所做的变化。

    2010年4月份,本章初稿完成后,笔者又发现百度也在试验将URL中的关键词加粗,但不是所有URL中的关键词都会加粗,如图2-8所示。

    alt

    图2-8 搜索词在百度列表中URL目录部分加粗显示

    上面讨论的是最经典的结果列表格式。搜索引擎近几年也在不停尝试不同格式的搜索结果格式,尤其是Google,推出了很多特色结果列表,下面选几个主要的进行简单介绍。

    2.3.3 整合搜索结果

    在前面的Google搜索结果页面抓图中,大家就能看到两个整合搜索结果:中间的资讯结果和页面底部的博客搜索结果。根据搜索关键词的不同,Google还经常把其他垂直搜索结果混合在正常网页搜索结果中,比如图片结果、视频结果,如图2-9和图2-10所示。

    alt

    图2-9 图片搜索结果

    alt

    图2-10 视频搜索结果

    百度也有类似的整合搜索结果,主要以新闻内容为主,其他则很少见到,如图2-11所示。

    alt

    图2-11 百度的新闻搜索结果

    2.3.4 缩进列表

    缩进列表(Indented Listing)是指当搜索结果页面上应该出现两个来自同一网站的页面时,比如第一位和第八位,按照正常排名算法是来自同一网站的两个页面,Google不是把它们排在第一和第八位,而是把两个结果连在一起排在第一和第二位,第二位的结果向右侧缩进三个字的空间,如图2-12所示。这样的列表格式非常有助于提高点击率。

    alt

    图2-12 缩进列表

    2.3.5 全站链接

    对某些权重比较高的网站,当用户搜索一个关键词,这个网站的结果是最权威的内容来源时,Google除了正常结果列表外,还会显示最多四行、两列共8个内页链接,称为全站链接(Sitelinks),如图2-13所示。

    alt

    图2-13 全站链接

    这无疑为权重高的网站提供了多几倍的访问入口,视觉上的醒目也大大提高了点击率。

    2.3.6 迷你全站链接

    权重高的网站在某些情况下还会显示迷你全站链接(Mini Sitelinks),不是4行8个,而是1行4个链接。显示的内页与上面说的全站链接是一样的,取其中前面4个,如图2-14所示。

    alt

    图2-14 迷你全站链接

    2.3.7 One-box

    某些关键词会触发Google One-box结果,直接在搜索结果页面上显示相关信息,用户不用点击到其他网站上查看。如图2-15显示搜索“北京银行”时显示的股价One-box。

    alt

    图2-15 Google的one-box

    2.3.8 富摘要

    某些使用RDFa或Microdata格式标签的页面,Google可能还会在标题下面以灰色文字加一行富摘要(Rich Snippet),如图2-16所示的论坛帖子页面还显示出帖子个数、作者数及更新日期。

    alt

    图2-16 Google的富摘要

    这样的排版格式无疑也会提高关注度和点击率。在富摘要中显示合适的信息,有助于说服用户点击结果,比如显示产品价格、用户评分、用户评论数目等。

    百度也有类似显示方式,如图2-17所示。

    alt

    图2-17 百度的富摘要

    2.3.9 面包屑导航

    Google最近又在结果列表中大规模使用面包屑导航。原本显示一个网址的地方,改为面包屑导航格式,其中的每一个分类链接都指向网站上相应的分类页面,如图2-18所示。

    alt

    图2-18 Google显示的面包屑导航

    用户不仅可以点击标题访问产品页面,还可以直接从搜索列表的面包屑导航中点击上级分类链接访问分类页面。

    2.3.10 说明文字中的链接

    对一部分使用了页面内锚链接的页面,Google有时也尝试在说明文字中显示链接,用户可以跳到页内锚链接部分,如图2-19所示。

    alt

    图2-19 Google显示的说明文字中的链接

    这种显示方式目前还比较少见。

    上面介绍的一些搜索列表变化形式有逐渐增多的趋势,不过它们的基本形式与经典搜索结果列表相差不大,最经典的结果列表还是最常见的。

    2.4 搜索引擎工作原理简介

    搜索引擎工作过程非常复杂,接下来的几节我们简单介绍搜索引擎是怎样实现网页排名的。这里介绍的内容相对于真正的搜索引擎技术来说只是皮毛,不过对SEO人员已经足够用了。

    搜索引擎的工作过程大体上可以分成三个阶段。

    (1)爬行和抓取:搜索引擎蜘蛛通过跟踪链接访问网页,获得页面HTML代码存入数据库。

    (2)预处理:索引程序对抓取来的页面数据进行文字提取、中文分词、索引等处理,以备排名程序调用。

    (3)排名:用户输入关键词后,排名程序调用索引库数据,计算相关性,然后按一定格式生成搜索结果页面。

    2.4.1 爬行和抓取

    爬行和抓取是搜索引擎工作的第一步,完成数据收集的任务。

    1.蜘蛛

    搜索引擎用来爬行和访问页面的程序被称为蜘蛛(spider),也称为机器人(bot)。

    搜索引擎蜘蛛访问网站页面时类似于普通用户使用的浏览器。蜘蛛程序发出页面访问请求后,服务器返回HTML代码,蜘蛛程序把收到的代码存入原始页面数据库。搜索引擎为了提高爬行和抓取速度,都使用多个蜘蛛并发分布爬行。

    蜘蛛访问任何一个网站时,都会先访问网站根目录下的robots.txt文件。如果robots.txt文件禁止搜索引擎抓取某些文件或目录,蜘蛛将遵守协议,不抓取被禁止的网址。

    和浏览器一样,搜索引擎蜘蛛也有标明自己身份的代理名称,站长可以在日志文件中看到搜索引擎的特定代理名称,从而辨识搜索引擎蜘蛛。下面列出常见的搜索引擎蜘蛛名称:

    · Baiduspider+(+http://www.baidu.com/search/spider.htm) 百度蜘蛛

    · Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html) 雅虎中国蜘蛛

    · Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp) 英文雅虎蜘蛛

    · Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) Google蜘蛛

    · msnbot/1.1 (+http://search.msn.com/msnbot.htm)微软Bing蜘蛛

    · Sogou+web+robot+(+http://www.sogou.com/docs/help/webmasters.htm#07) 搜狗蜘蛛

    · Sosospider+(+http://help.soso.com/webspider.htm) 搜搜蜘蛛

    · Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.yodao.com/help/webmaster/spider/;) 有道蜘蛛

    2.跟踪链接

    为了抓取网上尽量多的页面,搜索引擎蜘蛛会跟踪页面上的链接,从一个页面爬到下一个页面,就好像蜘蛛在蜘蛛网上爬行那样,这也就是搜索引擎蜘蛛这个名称的由来。

    整个互联网是由相互链接的网站及页面组成的。从理论上说,蜘蛛从任何一个页面出发,顺着链接都可以爬行到网上的所有页面。当然,由于网站及页面链接结构异常复杂,蜘蛛需要采取一定的爬行策略才能遍历网上所有页面。

    最简单的爬行遍历策略分为两种,一种是深度优先,另一种是广度优先。

    所谓深度优先,指的是蜘蛛沿着发现的链接一直向前爬行,直到前面再也没有其他链接,然后返回到第一个页面,沿着另一个链接再一直往前爬行。

    如图2-20所示,蜘蛛跟踪链接,从A页面爬行到A1,A2,A3,A4,到A4页面后,已经没有其他链接可以跟踪就返回A页面,顺着页面上的另一个链接,爬行到B1,B2,B3,B4。在深度优先策略中,蜘蛛一直爬到无法再向前,才返回爬另一条线。

    alt

    图2-20 深度优先遍历策略

    广度优先是指蜘蛛在一个页面上发现多个链接时,不是顺着一个链接一直向前,而是把页面上所有第一层链接都爬一遍,然后再沿着第二层页面上发现的链接爬向第三层页面。

    如图2-21所示,蜘蛛从A页面顺着链接爬行到A1,B1,C1页面,直到A页面上的所有链接都爬行完,然后再从A1页面发现的下一层链接,爬行到A2,A3,A4,……页面。

    alt

    图2-21 广度优先遍历策略

    从理论上说,无论是深度优先还是广度优先,只要给蜘蛛足够的时间,都能爬完整个互联网。在实际工作中,蜘蛛的带宽资源、时间都不是无限的,也不可能爬完所有页面。实际上最大的搜索引擎也只是爬行和收录了互联网的一小部分。

    深度优先和广度优先通常是混合使用的,这样既可以照顾到尽量多的网站(广度优先),也能照顾到一部分网站的内页(深度优先)。

    3.吸引蜘蛛

    由此可见,虽然理论上蜘蛛能爬行和抓取所有页面,但实际上不能、也不会这么做。SEO人员要想让自己的更多页面被收录,就要想方设法吸引蜘蛛来抓取。既然不能抓取所有页面,蜘蛛所要做的就是尽量抓取重要页面。哪些页面被认为比较重要呢?有几方面影响因素。

    · 网站和页面权重。质量高、资格老的网站被认为权重比较高,这种网站上的页面被爬行的深度也会比较高,所以会有更多内页被收录。

    · 页面更新度。蜘蛛每次爬行都会把页面数据存储起来。如果第二次爬行发现页面与第一次收录的完全一样,说明页面没有更新,蜘蛛也就没有必要经常抓取。如果页面内容经常更新,蜘蛛就会更加频繁地访问这种页面,页面上出现的新链接,也自然会被蜘蛛更快地跟踪,抓取新页面。

    · 导入链接。无论是外部链接还是同一个网站的内部链接,要被蜘蛛抓取,就必须有导入链接进入页面,否则蜘蛛根本没有机会知道页面的存在。高质量的导入链接也经常使页面上的导出链接被爬行深度增加。

    · 与首页点击距离。一般来说网站上权重最高的是首页,大部分外部链接是指向首页的,蜘蛛访问最频繁的也是首页。离首页点击距离越近,页面权重越高,被蜘蛛爬行的机会也越大。

    4.地址库

    为了避免重复爬行和抓取网址,搜索引擎会建立一个地址库,记录已经被发现还没有抓取的页面,以及已经被抓取的页面。

    地址库中的URL有几个来源:

    (1)人工录入的种子网站。

    (2)蜘蛛抓取页面后,从HTML中解析出新的链接URL,与地址库中的数据进行对比,如果是地址库中没有的网址,就存入待访问地址库。

    (3)站长通过搜索引擎网页提交表格提交进来的网址。

    蜘蛛按重要性从待访问地址库中提取URL,访问并抓取页面,然后把这个URL从待访问地址库中删除,放进已访问地址库中。

    大部分主流搜索引擎都提供一个表格,让站长提交网址。不过这些提交来的网址都只是存入地址库而已,是否收录还要看页面重要性如何。搜索引擎所收录的绝大部分页面是蜘蛛自己跟踪链接得到的。可以说提交页面基本上是毫无用处的,搜索引擎更喜欢自己沿着链接发现新页面。

    5.文件存储

    搜索引擎蜘蛛抓取的数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。每个URL都有一个独特的文件编号。

    6.爬行时的复制内容检测

    检测并删除复制内容通常是在下面介绍的预处理过程中进行的,但现在的蜘蛛在爬行和抓取文件时也会进行一定程度的复制内容检测。遇到权重很低的网站上大量转载或抄袭内容时,很可能不再继续爬行。这也就是有的站长在日志文件中发现了蜘蛛,但页面从来没有被真正收录过的原因。

    2.4.2 预处理

    在一些SEO材料中,“预处理”也被简称为“索引”,因为索引是预处理最主要的步骤。

    搜索引擎蜘蛛抓取的原始页面,并不能直接用于查询排名处理。搜索引擎数据库中的页面数都在数万亿级别以上,用户输入搜索词后,靠排名程序实时对这么多页面分析相关性,计算量太大,不可能在一两秒内返回排名结果。因此抓取来的页面必须经过预处理,为最后的查询排名做好准备。

    和爬行抓取一样,预处理也是在后台提前完成的,用户搜索时感觉不到这个过程。

    1.提取文字

    现在的搜索引擎还是以文字内容为基础。蜘蛛抓取到的页面中的HTML代码,除了用户在浏览器上可以看到的可见文字外,还包含了大量的HTML格式标签、JavaScript程序等无法用于排名的内容。搜索引擎预处理首先要做的就是从HTML文件中去除标签、程序,提取出可以用于排名处理的网页面文字内容。

    比如下面这段HTML代码:

    alt

    除去HTML代码后,剩下的用于排名的文字只是这一行:

    alt

    除了可见文字,搜索引擎也会提取出一些特殊的包含文字信息的代码,如Meta标签中的文字、图片替代文字、Flash文件的替代文字、链接锚文字等。

    2.中文分词

    分词是中文搜索引擎特有的步骤。搜索引擎存储和处理页面及用户搜索都是以词为基础的。英文等语言单词与单词之间有空格分隔,搜索引擎索引程序可以直接把句子划分为单词的集合。而中文词与词之间没有任何分隔符,一个句子中的所有字和词都是连在一起的。搜索引擎必须首先分辨哪几个字组成一个词,哪些字本身就是一个词。比如“减肥方法”将被分词为“减肥”和“方法”两个词。

    中文分词方法基本上有两种,一种是基于词典匹配,另一种是基于统计。

    基于词典匹配的方法是指,将待分析的一段汉字与一个事先造好的词典中的词条进行匹配,在待分析汉字串中扫描到词典中已有的词条则匹配成功,或者说切分出一个单词。

    按照扫描方向,基于词典的匹配法可以分为正向匹配和逆向匹配。按照匹配长度优先级的不同,又可以分为最大匹配和最小匹配。将扫描方向和长度优先混合,又可以产生正向最大匹配、逆向最大匹配等不同方法。

    词典匹配方法计算简单,其准确度在很大程度上取决于词典的完整性和更新情况。

    基于统计的分词方法指的是分析大量文字样本,计算出字与字相邻出现的统计概率,几个字相邻出现越多,就越可能形成一个单词。基于统计的方法的优势是对新出现的词反应更快速,也有利于消除歧义。

    基于词典匹配和基于统计的分词方法各有优劣,实际使用中的分词系统都是混合使用两种方法的,快速高效,又能识别生词、新词,消除歧义。

    中文分词的准确性往往影响搜索引擎排名的相关性。比如在百度搜索“搜索引擎优化”,如图2-22所示,从快照中可以看到,百度把“搜索引擎优化”这六个字当成一个词。

    alt

    图2-22 百度快照显示的对“搜索引擎优化”的分词结果

    而在Google搜索同样的词,如图2-23所示,快照显示Google将其分切为“搜索”、“引擎”和“优化”三个词。显然百度切分得更为合理,搜索引擎优化是一个完整的概念。Google分词时倾向于更为细碎。

    alt

    图2-23 Google快照显示的对“搜索引擎优化”的分词结果

    再举一个更明显的例子。在Google搜索“点石互动”四个字,如图2-24所示,快照显示Google将其切分为“点”,“石”及“互动”三个词。“点石互动”这个中文SEO领域最知名的品牌,显然并没有进入Google的词典中。

    alt

    图2-24 Google快照显示的对“点石互动”的分词结果

    在百度搜索“点石互动”时会发现,百度将“点石互动”当做一个词。甚至在百度搜索“点石大会报名”,可以发现百度把“点石大会”都当成一个词,如图2-25所示。

    alt

    图2-25 百度快照显示的对“点石大会报名”的分词结果

    这种分词上的不同很可能是一些关键词排名在不同搜索引擎有不同表现的原因之一。比如百度更喜欢将搜索词完整匹配地出现在页面上,也就是说搜索“点石互动”时,这四个字连续完整出现更容易在百度获得好的排名。Google就与此不同,不太要求完整匹配。一些页面出现“点石”和“互动”两个词,但不必完整匹配地出现,“点石”出现在前面,“互动”出现在页面的其他地方,这样的页面在Google搜索“点石互动”时,也可以获得不错的排名。

    搜索引擎对页面的分词取决于词库的规模、准确性和分词算法的好坏,而不是取决于页面本身如何,所以SEO人员对分词所能做的很少。唯一能做的是在页面上用某种形式提示搜索引擎,某几个字应该被当做一个词处理,尤其是可能产生歧义的时候,比如在页面标题、h1标签及黑体中出现关键词。如果页面是关于“和服”的内容,那么可以把“和服”这两个字特意标为黑体。如果页面是关于“化妆和服装”,可以把“服装”两个字标为黑体。这样,搜索引擎对页面进行分析时就知道标为黑体的应该是一个词。

    3.去停止词

    无论是英文还是中文,页面内容中都会有一些出现频率很高,却对内容没有任何影响的词,如“的”、“地”、“得”之类的助词,“啊”、“哈”、“呀”之类的感叹词,“从而”、“以”、“却”之类的副词或介词。这些词被称为停止词,因为它们对页面的主要意思没什么影响。英文中的常见停止词有the,a,an,to,of等。

    搜索引擎在索引页面之前会去掉这些停止词,使索引数据主题更为突出,减少无谓的计算量。

    4.消除噪声

    绝大部分页面上还有一部分内容对页面主题也没有什么贡献,比如版权声明文字、导航条、广告等。以常见的博客导航为例,几乎每个博客页面上都会出现文章分类、历史存档等导航内容,但是这些页面本身与“分类”、“历史”这些词都没有任何关系。用户搜索“历史”、“分类”这些关键词时仅仅因为页面上有这些词出现而返回博客帖子是毫无意义的,完全不相关。所以这些区块都属于噪声,对页面主题只能起到分散作用。

    搜索引擎需要识别并消除这些噪声,排名时不使用噪声内容。消噪的基本方法是根据HTML标签对页面分块,区分出页头、导航、正文、页脚、广告等区域,在网站上大量重复出现的区块往往属于噪声。对页面进行消噪后,剩下的才是页面主体内容。

    5.去重

    搜索引擎还需要对页面进行去重处理。

    同一篇文章经常会重复出现在不同网站及同一个网站的不同网址上,搜索引擎并不喜欢这种重复性的内容。用户搜索时,如果在前两页看到的都是来自不同网站的同一篇文章,用户体验就太差了,虽然都是内容相关的。搜索引擎希望只返回相同文章中的一篇,所以在进行索引前还需要识别和删除重复内容,这个过程就称为“去重”。

    去重的基本方法是对页面特征关键词计算指纹,也就是说从页面主体内容中选取最有代表性的一部分关键词(经常是出现频率最高的关键词),然后计算这些关键词的数字指纹。这里的关键词选取是在分词、去停止词、消噪之后。实验表明,通常选取10个特征关键词就可以达到比较高的计算准确性,再选取更多词对去重准确性提高的贡献也就不大了。

    典型的指纹计算方法如MD5算法(信息摘要算法第五版)。这类指纹算法的特点是,输入(特征关键词)有任何微小的变化,都会导致计算出的指纹有很大差距。

    了解了搜索引擎的去重算法,SEO人员就应该知道简单地增加“的”、“地”、“得”、调换段落顺序这种所谓伪原创,并不能逃过搜索引擎的去重算法,因为这样的操作无法改变文章的特征关键词。而且搜索引擎的去重算法很可能不止于页面级别,而是进行到段落级别,混合不同文章、交义调换段落顺序也不能使转载和抄袭变成原创。

    6.正向索引

    正向索引也可以简称为索引。

    经过文字提取、分词、消噪、去重后,搜索引擎得到的就是独特的、能反映页面主体内容的、以词为单位的内容。接下来搜索引擎索引程序就可以提取关键词,按照分词程序划分好的词,把页面转换为一个关键词组成的集合,同时记录每一个关键词在页面上的出现频率、出现次数、格式(如出现在标题标签、黑体、H标签、锚文字等)、位置(如页面第一段文字等)。这样,每一个页面都可以记录为一串关键词集合,其中每个关键词的词频、格式、位置等权重信息也都记录在案。

    搜索引擎索引程序将页面及关键词形成词表结构存储进索引库。简化的索引词表形式如表2-1所示。

    表2-1 简化的索引词表结构

    alt

    每个文件都对应一个文件ID,文件内容被表示为一串关键词的集合。实际上在搜索引擎索引库中,关键词也已经转换为关键词ID。这样的数据结构就称为正向索引。

    7.倒排索引

    正向索引还不能直接用于排名。假设用户搜索关键词2,如果只存在正向索引,排名程序需要扫描所有索引库中的文件,找出包含关键词2的文件,再进行相关性计算。这样的计算量无法满足实时返回排名结果的要求。

    所以搜索引擎会将正向索引数据库重新构造为倒排索引,把文件对应到关键词的映射转换为关键词到文件的映射,如表2-2所示。

    表2-2 倒排索引结构

    alt

    在倒排索引中关键词是主键,每个关键词都对应着一系列文件,这些文件中都出现了这个关键词。这样当用户搜索某个关键词时,排序程序在倒排索引中定位到这个关键词,就可以马上找出所有包含这个关键词的文件。

    8.链接关系计算

    链接关系计算也是预处理中很重要的一部分。现在所有的主流搜索引擎排名因素中都包含网页之间的链接流动信息。搜索引擎在抓取页面内容后,必须事前计算出:页面上有哪些链接指向哪些其他页面,每个页面有哪些导入链接,链接使用了什么锚文字,这些复杂的链接指向关系形成了网站和页面的链接权重。

    Google PR值就是这种链接关系的最主要体现之一。其他搜索引擎也都进行类似计算,虽然它们并不称为PR。

    由于页面和链接数量巨大,网上的链接关系又时时处在更新中,因此链接关系及PR的计算要耗费很长时间。关于PR和链接分析,后面还有专门的章节介绍。

    9.特殊文件处理

    除了HTML文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如PDF、Word、WPS、XLS、PPT、TXT文件等。我们在搜索结果中也经常会看到这些文件类型。但目前的搜索引擎还不能处理图片、视频、Flash这类非文字内容,也不能执行脚本和程序。

    虽然搜索引擎在识别图片及从Flash中提取文字内容方面有些进步,不过距离直接靠读取图片、视频、Flash内容返回结果的目标还很远。对图片、视频内容的排名还往往是依据与之相关的文字内容,详细情况可以参考后面的整合搜索部分。

    2.4.3 排名

    经过搜索引擎蜘蛛抓取页面,索引程序计算得到倒排索引后,搜索引擎就准备好可以随时处理用户搜索了。用户在搜索框填入关键词后,排名程序调用索引库数据,计算排名显示给用户,排名过程是与用户直接互动的。

    1.搜索词处理

    搜索引擎接收到用户输入的搜索词后,需要对搜索词做一些处理,才能进入排名过程。搜索词处理包括如下几方面。

    (1)中文分词。与页面索引时一样,搜索词也必须进行中文分词,将查询字符串转换为以词为基础的关键词组合。分词原理与页面分词相同。

    (2)去停止词。和索引时一样,搜索引擎也需要把搜索词中的停止词去掉,最大限度地提高排名相关性及效率。

    (3)指令处理。查询词完成分词后,搜索引擎的默认处理方式是在关键词之间使用“与”逻辑。也就是说用户搜索“减肥方法”时,程序分词为“减肥”和“方法”两个词,搜索引擎排序时默认认为,用户寻找的是既包含“减肥”,也包含“方法”的页面。只包含“减肥”不包含“方法”,或者只包含“方法”不包含“减肥”的页面,被认为是不符合搜索条件的。当然,这只是极为简化的为了说明原理的说法,实际上我们还是会看到只包含一部分关键词的搜索结果。

    另外用户输入的查询词还可能包含一些高级搜索指令,如加号、减号等,搜索引擎都需要做出识别和相应处理。有关高级搜索指令,后面还有详细说明。

    (4)拼写错误矫正。用户如果输入了明显错误的字或英文单词拼错,搜索引擎会提示用户正确的用字或拼法,如图2-26所示。

    alt

    图2-26 输入的错拼、错字矫正

    (5)整合搜索触发。某些搜索词会触发整合搜索,比如明星姓名就经常触发图片和视频内容,当前的热门话题又容易触发资讯内容。哪些词触发哪些整合搜索,也需要在搜索词处理阶段计算。

    2.文件匹配

    搜索词经过处理后,搜索引擎得到的是以词为基础的关键词集合。文件匹配阶段就是找出含有所有关键词的文件。在索引部分提到的倒排索引使得文件匹配能够快速完成,如表2-3所示。

    表2-3 倒排索引快速匹配文件

    alt

    假设用户搜索“关键词2 关键词7”,排名程序只要在倒排索引中找到“关键词2”和“关键词7”这两个词,就能找到分别含有这两个词的所有页面。经过简单计算就能找出既包含“关键词2”,也包含“关键词7”的所有页面:文件1和文件6。

    3.初始子集的选择

    找到包含所有关键词的匹配文件后,还不能进行相关性计算,因为找到的文件经常会有几十万几百万,甚至上千万个。要对这么多文件实时进行相关性计算,需要的时间还是比较长的。

    实际上用户并不需要知道所有匹配的几十万、几百万个页面,绝大部分用户只会查看前两页,也就是前20个结果。搜索引擎也并不需要计算这么多页面的相关性,而只要计算最重要的一部分页面就可以了。常用搜索引擎的人都会注意到,搜索结果页面通常最多显示100个。用户点击搜索结果页面底部的“下一页”链接,最多也只能看到第100页,也就是1000个搜索结果,如图2-27所示。

    alt

    图2-27 Google显示100页搜索结果

    百度则通常返回76页结果,如图2-28所示。

    alt

    图2-28 百度显示76页搜索结果

    所以搜索引擎只需要计算前1000个结果的相关性,就能满足要求。

    但问题在于,还没有计算相关性时,搜索引擎又怎么知道哪一千个文件是最相关的?所以用于最后相关性计算的初始页面子集的选择,必须依靠其他特征而不是相关性,其中最主要的就是页面权重。由于所有匹配文件都已经具备了最基本的相关性(这些文件都包含所有查询关键词),搜索引擎通常会用非相关性的页面特征选出一个初始子集。初始子集的数目是多少?几万个?或许更多,外人并不知道。不过可以肯定的是,当匹配页面数目巨大时,搜索引擎不会对这么多页面进行计算,而必须选出页面权重较高的一个子集,再对子集中的页面进行相关性计算。

    4.相关性计算

    选出初始子集后,对子集中的页面计算关键词相关性。计算相关性是排名过程中最重要的一步。相关性计算是搜索引擎算法中最令SEO感兴趣的部分。

    影响相关性的主要因素包括如下几方面。

    (1)关键词常用程度。经过分词后的多个关键词,对整个搜索字符串的意义贡献并不相同。越常用的词对搜索词的意义贡献越小,越不常用的词对搜索词的意义贡献越大。举个例子,假设用户输入的搜索词是“我们冥王星”。“我们”这个词常用程度非常高,在很多页面上会出现,它对“我们冥王星”这个搜索词的辨识程度和意义相关度贡献就很小。找出那些包含“我们”这个词的页面,对搜索排名相关性几乎没有什么影响,有太多页面包含“我们”这个词。

    而“冥王星”这个词常用程度就比较低,对“我们冥王星”这个搜索词的意义贡献要大得多。那些包含“冥王星”这个词的页面,对“我们冥王星”这个搜索词会更为相关。

    常用词的极致就是停止词,对页面意义完全没有影响。

    所以搜索引擎对搜索词串中的关键词并不是一视同仁地处理,而是根据常用程度进行加权。不常用的词加权系数高,常用词加权系数低,排名算法对不常用的词给予更多关注。

    我们假设A、B两个页面都各出现“我们”及“冥王星”两个词。但是“我们”这个词在A页面出现于普通文字中,“冥王星”这个词在A页面出现于标题标签中。B页面正相反,“我们”出现在标题标签中,而“冥王星”出现在普通文字中。那么针对“我们冥王星”这个搜索词,A页面将更相关。

    (2)词频及密度。一般认为在没有关键词堆积的情况下,搜索词在页面中出现的次数多,密度越高,说明页面与搜索词越相关。当然这只是一个大致规律,实际情况未必如此,所以相关性计算还有其他因素。出现频率及密度只是因素的一部分,而且重要程度越来越低。

    (3)关键词位置及形式。就像在索引部分中提到的,页面关键词出现的格式和位置都被记录在索引库中。关键词出现在比较重要的位置,如标题标签、黑体、H1等,说明页面与关键词越相关。这一部分就是页面SEO所要解决的。

    (4)关键词距离。切分后的关键词完整匹配地出现,说明与搜索词最相关。比如搜索“减肥方法”时,页面上连续完整出现“减肥方法”四个字是最相关的。如果“减肥”和“方法”两个词没有连续匹配出现,出现的距离近一些,也被搜索引擎认为相关性稍微大一些。

    (5)链接分析及页面权重。除了页面本身的因素,页面之间的链接和权重关系也影响关键词的相关性,其中最重要的是锚文字。页面有越多以搜索词为锚文字的导入链接,说明页面的相关性越强。

    链接分析还包括了链接源页面本身的主题、锚文字周围的文字等。

    上面简单介绍的几个因素在本书中都有更详细的说明。

    5.排名过滤及调整

    选出匹配文件子集、计算相关性后,大体排名就已经确定了。之后搜索引擎可能还有一些过滤算法,对排名进行轻微调整,其中最主要的过滤就是施加惩罚。一些有作弊嫌疑的页面,虽然按照正常的权重和相关性计算排到前面,但搜索引擎的惩罚算法却可能在最后一步把这些页面调到后面去。典型的例子是百度的11位,Google的负6、负30、负950等算法。

    6.排名显示

    所有排名确定后,排名程序调用原始页面的标题标签、说明标签、快照日期等数据显示在页面上。有时搜索引擎需要动态生成页面摘要,而不是调用页面本身的说明标签。

    7.搜索缓存

    用户搜索的关键词有很大一部分是重复的。按照2/8定律,20%的搜索词占到了总搜索次数的80%。按照长尾理论,最常见的搜索词没有占到80%那么多,但通常也有一个比较粗大的头部,很少一部分搜索词占到了所有搜索次数的很大一部分。尤其是有热门新闻发生时,每天可能有几百万人搜索完全相同的关键词。

    如果每次搜索都重新处理排名可以说是很大的浪费。搜索引擎会把最常见的搜索词存入缓存,用户搜索时直接从缓存中调用,而不必经过文件匹配和相关性计算,大大提高了排名效率,缩短了搜索反应时间。

    8.查询及点击日志

    搜索用户的IP地址、搜索的关键词、搜索时间,以及点击了哪些结果页面,搜索引擎都记录形成日志。这些日志文件中的数据对搜索引擎判断搜索结果质量、调整搜索算法、预期搜索趋势等都有重要意义。

    上面我们简单介绍了搜索引擎的工作过程。当然实际搜索引擎的工作步骤与算法是非常复杂的。上面的说明很简单,但其中有很多技术难点。

    搜索引擎还在不断优化算法,优化数据库格式。不同搜索引擎的工作步骤也会有差异。但大致上所有主流搜索引擎的基本工作原理都是如此,在过去几年及可以预期的未来几年,都不会有实质性的改变。

    2.5 链接原理

    在Google诞生以前,传统搜索引擎主要依靠页面内容中的关键词匹配搜索词进行排名。这种排名方式的短处现在看来显而易见,那就是很容易被刻意操纵。黑帽SEO在页面上堆积关键词,或加入与主题无关的热门关键词,都能提高排名,使搜索引擎排名结果质量大为下降。现在的搜索引擎都使用链接分析技术减少垃圾,提高用户体验。本节就简要探讨链接在搜索引擎排名中的应用原理。

    在排名中计入链接因素,不仅有助于减少垃圾,提高结果相关性,也使传统关键词匹配无法排名的文件能够被处理。比如图片、视频文件无法进行关键词匹配,但是却可能有外部链接,通过链接信息,搜索引擎就可以了解图片和视频的内容从而排名。

    不同文字的页面排名也成为可能。比如在百度或google.cn搜索“SEO”,都可以看到英文和其他文字的SEO网站。甚至搜索“搜索引擎优化”,也可以看到非中文页面,原因就在于有的链接可能使用“搜索引擎优化”为锚文字指向英文页面。

    链接因素现在已经超过页面内容的重要性。不过理解链接关系比较抽象。页面上的因素对排名的影响能看得到,容易直观理解。举个简单的例子,搜索一个特定关键词,SEO人员只要观察前几页结果,就能看到:关键词在标题标签中出现有什么影响,出现在最前面又有什么影响,有技术资源的还可以大规模地统计,计算出关键词出现在标题标签中不同位置与排名之间的关系。虽然这种关系不一定是因果关系,但至少是统计上的联系,使SEO人员大致了解如何优化。

    链接对排名的影响就无法直观了解,也很难进行统计,因为没有人能获得搜索引擎的链接数据库。我们能做的最多只是定性观察和分析。

    下面介绍的一些关于链接的专利,多少透露了链接在搜索引擎排名中的使用方法和地位。

    2.5.1 李彦宏超链分析专利

    百度创始人李彦宏在回国创建百度之前就是美国顶级的搜索引擎工程师之一。据说李彦宏在寻找风险投资时,投资人询问其他三个搜索引擎业界的技术高人一个问题:要了解搜索引擎技术应该问谁。这三个被问到的高人中有两个回答:搜索引擎的事就问李彦宏。由此投资人断定李彦宏是最了解搜索引擎的人之一。

    这其实就是现实生活中类似于链接关系的应用。要判断哪个页面最具权威性,不能光看页面自己怎么说,还要看其他页面怎么评价。

    李彦宏1997年就提交了一份名为“超链文件检索系统和方法”的专利申请,这比Google创始人发明PR要早得多,不得不说这是非常具有前瞻性的研究工作。在这份专利中,李彦宏提出了与传统信息检索系统不同的基于链接的排名方法。

    这个系统除了索引页面之外,还建立一个链接词库,记录链接锚文字的一些相关信息,如锚文字中包含哪些关键词,发出链接的页面索引,包含特定锚文字的链接总数,包含特定关键词的链接都指向哪些页面。词库不仅包含关键词原型,也包含同一个词干的其他衍生关键词。

    根据这些链接数据,尤其是锚文字,计算出基于链接的文件相关性。在用户搜索时,将得到的基于链接的相关性与基于关键词匹配的传统相关性综合使用,得到更准确的排名。

    在今天看来,这种基于链接的相关性计算是搜索引擎的常态,每个SEO人员都知道。但是在十三四年前,这无疑是非常创新的概念。当然现在的搜索引擎算法对链接的考虑,已经不仅仅是锚文字,实际上要复杂得多。

    这份专利所有人是李彦宏当时所在的公司,发明人是李彦宏本人。感兴趣的读者可以在下面这个地址查看美国专利局发布的“超链文件检索系统和方法”专利详情:

    http://patft.uspto.gov/netacgi/nph-Parser?patentnumber=5,920,859

    2.5.2 HITS算法

    HITS是英文Hyperlink-Induced Topic Search的缩写,意译为“超链诱导主题搜索”。HITS算法由Jon Kleinberg于1997年提出,并申请了专利:

    http://patft.uspto.gov/netacgi/nph-Parser?patentnumber=6,112,202

    按照HITS算法,用户输入关键词后,算法对返回的匹配页面计算两种值,一种是枢纽值(Hub Scores),另一种是权威值(Authority Scores),这两个值是互相依存、互相影响的。所谓枢纽值,指的是页面上所有导出链接指向页面的权威值之和。权威值指的是所有导入链接所在页面的枢纽值之和。

    上面的定义比较拗口,我们可以简单地说,HITS算法会提炼出两种比较重要的页面,也就是枢纽页面和权威页面。枢纽页面本身可能没有多少导入链接,但是有很多导出链接指向权威页面。权威页面本身可能导出链接不多,但是有很多来自枢纽页面的导入链接。

    典型的枢纽页面就是如雅虎目录、开放目录或好123这样的网站目录。这种高质量的网站目录作用就在于指向其他权威网站,所以称为枢纽。而权威页面有很多导入链接,其中包含很多来自枢纽页面的链接。权威页面通常是提供真正相关内容的页面。

    HITS算法是针对特定查询词的,所以称为主题搜索。

    HITS算法的最大缺点是,它在查询阶段进行计算,而不是在抓取或预处理阶段。所以HITS算法是以牺牲查询排名响应时间为代价的。也正因为如此,原始HITS算法在搜索引擎中并不常用。不过HITS算法的思想很可能融入到搜索引擎的索引阶段,也就是根据链接关系找出具有枢纽特征或权威特征的页面。

    成为权威页面是第一优先,不过难度比较大,唯一的方法就是获得高质量链接。当你的网站不能成为权威页面时,就让它成为枢纽页面。所以导出链接也是当前搜索引擎排名因素之一。绝不链接到其他网站的做法,并不是好的SEO方法。

    2.5.3 TrustRank算法

    TrustRank是近年来比较受关注的基于链接关系的排名算法。TrustRank可以翻译为“信任指数”。

    Trust Rank算法最初来自于2004年斯坦福大学和雅虎的一项联合研究,用来检测垃圾网站,并且于2006年申请专利。TrustRank算法发明人还发表了一份专门的PDF文件,说明TrustRank算法的应用。感兴趣的读者可以在下面这个网址下载PDF文件:

    http://www.vldb.org/conf/2004/RS15P3.PDF

    TrustRank算法并不是由Google提出的,不过由于Google所占市场份额最大,而且TrustRank在Google排名中也是一个非常重要的因素,所以有些人误以为TrustRank是Google提出的。更让人糊涂的是,Google曾经把TrustRank申请为商标,但是TrustRank商标中的TrustRank指的是Google检测含有恶意代码网站的方法,而不是指排名算法中的信任指数。

    TrustRank算法基于一个基本假设:好的网站很少会链接到坏的网站。反之则不成立,也就是说,坏的网站很少链接到好网站这句话并不成立。正相反,很多垃圾网站会链接到高权威、高信任指数的网站,试图提高自己的信任指数。

    基于这个假设,如果能挑选出可以百分之百信任的网站,这些网站的TrustRank评为最高,这些TrustRank最高的网站所链接到的网站信任指数稍微降低,但也会很高。与此类似,第二层被信任的网站链接出去的第三层网站,信任度继续下降。由于种种原因,好的网站也不可避免地会链接到一些垃圾网站,不过离第一层网站点击距离越近,所传递的信任指数越高,离第一级网站点击距离就越远,信任指数将依次下降。这样,通过TrustRank算法,就能给所有网站计算出相应的信任指数,离第一层网站越远,成为垃圾网站的可能性就越大。

    计算TrustRank值首先要选择一批种子网站,然后人工查看网站,设定一个初始TrustRank值。挑选种子网站有两种方式,一种是选择导出链接最多的网站,因为TrustRank算法就是计算指数随着导出链接的衰减。导出链接多的网站,在某种意义上可以理解为“逆向PR值”比较高。

    另一种挑选种子网站的方法是选PR值高的网站,因为PR值越高,在搜索结果页面出现的概率就越大。这些网站才正是TrustRank算法最关注的、需要调整排名的网站。那些PR值很低的页面,在没有TrustRank算法时排名也很靠后,计算TrustRank意义就不大了。

    根据测算,挑选出两百个左右网站作为种子,就可以比较精确地计算出所有网站的TrustRank值。

    计算TrustRank随链接关系减少的公式有两种方式。一种是随链接次数衰减,也就是说如果第一层页面TrustRank指数是100,第二层页面衰减为90,第三层衰减为80。第二种计算方法是按导出链接数目分配TrustRank值,也就是说,如果一个页面的TrustRank值是100,页面上有5个导出链接,每个链接将传递20%的TrustRank值。衰减和分配这两种计算方法通常综合使用,整体效果都是随着链接层次的增加,TrustRank值逐步降低。

    得出网站和页面的TrustRank值后,可以通过两种方式影响排名。一种是把传统排名算法挑选出的多个页面,根据TrustRank值比较,重新做排名调整。另一种是设定一个最低的TrustRank值门槛,只有超过这个门槛的页面,才被认为有足够的质量进入排名,低于门槛的页面将被认为是垃圾页面,从搜索结果中过滤出去。

    虽然TrustRank算法最初是作为检测垃圾的方法,但在现在的搜索引擎排名算法中,TrustRank概念使用更为广泛,常常影响大部分网站的整体排名。TrustRank算法最初针对的是页面级别,现在在搜索引擎算法中,TrustRank值也通常表现在域名级别,整个域名的信任指数越高,整体排名能力就越强。

    2.5.4 Google PR

    PR是PageRank的缩写。Google PR理论是所有基于链接的搜索引擎理论中最有名的。SEO人员可能不清楚本节介绍的其他链接理论,但不可能不知道PR。

    PR是Google创始人之一拉里佩奇发明的,用于表示页面重要性的概念。用最简单的话说就是,反向链接越多的页面就是越重要的页面,因此PR值也就越高。

    Google PR有点类似于科技文献中互相引用的概念,被其他文献引用较多的文献,很可能是比较重要的文献。

    1.PR的概念和计算

    我们可以把互联网理解为由结点及链接组成的有向图,页面就是一个个结点,页面之间的有向链接传递着页面的重要性。一个链接传递的PR值决定于导入链接所在页面的PR值,发出链接的页面本身PR值越高,所能传递出去的PR也越高。传递的PR数值也取决于页面上的导出链接数目。对于给定PR值的页面来说,假设能传递到下级页面100份PR,页面上有10个导出链接,每个链接能传递10份PR,页面上有20个导出链接的话,每个链接只能传递5份PR。所以一个页面的PR值取决于导入链接总数,发出链接页面的PR值,以及发出链接页面上的导出链接数目。

    PR值计算公式是

    PR(A)=(1-d)+d(PR(t1)/C(t1)+…+PR(tn)/C(tn))

    · A代表页面A。

    · PR(A)则代表页面A的PR值。

    · d为阻尼指数。通常认为d=0.85。

    · t1…tn代表链接向页面A的页面t1到tn

    · C代表页面上的导出链接数目。C(t1)即为页面t1上的导出链接数目。

    从概念及计算公式都可以看到,计算PR值必须使用迭代计算。页面A的PR值取决于链接向A的页面t1至tn页面的PR值,而t1至tn页面的PR值又取决于其他页面的PR值,其中很可能还包含页面A。所以PR需要多次迭代才能得到。计算时先给所有页面设定一个初始值,经过一定次数的迭代计算后,各个页面的PR值将趋于稳定。研究证明,无论初始值怎么选取,经过迭代计算的最终PR值不会受到影响。

    对阻尼系数做个简要说明。考虑如图2-29所示这样一个循环(实际网络上是一定存在这种循环的)。

    alt

    图2-29 链接构成的循环

    外部页面Y向循环注入PR值,循环中的页面不停迭代传递PR,如果没有阻尼系数,循环中的页面PR将达到无穷大。引入阻尼系数,使PR在传递时自然衰减,才能将PR计算稳定在一个值上。

    2.PR的两个比喻模型

    关于PR有两个著名的比喻。一个比喻是投票。链接就像民主投票一样,A页面链接到B页面,就意味着A页面对B页面投了一票,使得B页面的重要性提高。同时,A页面本身的PR值决定了A所能投出去的投票力,PR值越高的页面,投出的票也更重要。在这个意义上,传统基于关键词匹配的算法是看页面自己说页面内容是什么,基于链接的PR则是看别人怎么评价一个页面。

    第二个比喻是随机冲浪比喻。假设一个访问者从一个页面开始,不停地随机点击链接,访问下一个页面。有时候这个用户感到无聊了,不再点击链接,就随机跳到了另外一个网址,再次开始不停地向下点击。所谓PR值,也就是一个页面在这种随机冲浪访问中被访问到的概率。一个页面导入链接越多,被访问到的概率也越高,因此PR值也越高。

    阻尼系数也与随机冲浪模型有关。(1-d)=0.15实际上就是用户感到无聊,停止点击,随机跳到新URL的概率。

    3.工具条PR

    真正的用于排名计算的Google PR值我们是无法知道的,我们所能看到的只是Google工具条PR值。需要清楚的是,工具条PR值并不是真实PR值的精确反映。真实PR值是一个准确的、大于0.15、没有上限的数字,工具条上显示的PR值已经简化为0~10这11个数字,是一个整数,也就是说PR值最小的近似为0,最大的近似为10。实际上每一个工具条PR值代表的是很大一个范围,工具条PR5代表的页面真实PR值可能相差很多倍。

    真正的PR值是不间断计算更新中的,工具条PR值只是某一个时间点上真实PR值的快照输出。工具条PR几个月才更新一次,过去一年工具条PR值更新的日期如表2-4所示。

    表2-4 最近一年Google工具条PR更新日期

    alt

    工具条PR与反向链接数目呈对数关系,而不是线性关系。也就是说如果从PR1到PR2需要的外部链接是100个,从PR2到PR3则需要大致1000个,PR5到PR6需要的外部链接则更多。所以PR值越高的网站想提升一级所要付出的时间和努力比PR值比较低的网站提升一级要多得多。

    4.关于PR的几个误解

    PR的英文全称是PageRank。这个名称来源于发明人佩奇(Page)的名字,巧合的是Page在英文中也是页面的意思。所以准确地说PageRank这个名字应该翻译为佩奇级别,而不是页面级别。不过约定俗成,再加上巧妙的一语双关,大家都把PR称为页面级别。

    PR值只与链接有关。经常有站长询问,他的网站做了挺长时间,内容也全是原创的,怎么PR还是零呢?其实PR与站长是否认真、做站多长时间、内容是否原创都没有直接关系。有反向链接就有PR,没有反向链接就没有PR。一个高质量的原创网站,一般来说自然会吸引到比较多的外部链接,所以会间接提高PR值,但这并不是必然的。

    工具条PR值更新与页面排名变化在时间上没有对应关系。在工具条PR值更新过程中,经常有站长说PR值提高了,难怪网站排名也提高了。可以肯定地说这只是时间上的巧合而已。前面说过,真实的用于排名计算的PR是连续计算更新的,随时计入排名算法。我们看到的工具条PR几个月才更新一次。当我们看到有PR更新时,真实的PR早在几个月之前就更新和计入排名里了。所以,通过工具条PR变化,研究PR值与排名变化之间的关系是没有意义的。

    5.PR的意义

    Google工程师说过很多次,Google PR现在已经是一个被过度宣传的概念,其实PR只是Google排名算法的200多个因素之一,而且重要性已经下降很多,SEO人员完全不必太执着于PR值的提高。

    当然,PR还是Google排名算法中的重要因素之一。除了直接影响排名,PR的重要性还体现在下面几点。

    (1)网站收录深度和总页面数。搜索引擎蜘蛛爬行时间及数据库的空间都是有限的。Google希望尽量优先收录重要性高的页面,所以PR值越高的网站就能被收录更多页面,蜘蛛爬行内页的深度也更高。对大中型网站来说,首页PR值是带动网站收录的重要因素之一。

    (2)更新频率。PR值越高的网站,搜索引擎蜘蛛访问得就越频繁,网站上出现新页面或旧页面上内容更新时,都能更快速地被收录。由于网站新页面通常都会在现有页面上出现链接,因此更新频率高也就意味着被发现的速度快。

    (3)重复内容判定。当Google在不同网站上发现完全相同的内容时,会选出一个作为原创,其他作为转载或抄袭。用户搜索相关关键词时,被判断为原创的那个版本会排在前面。而判断哪个版本为原创时,PR值也是重要因素之一。这也就是为什么那些权重高、PR值高的大网站,转载小网站内容却经常被当做原创的原因。

    (4)排名初始子集的选择。前面介绍排名过程时提到,搜索引擎挑选出所有与关键词匹配的文件后,不可能对所有文件进行相关性计算,因为返回的文件可能有几百万、几千万,搜索引擎需要从中挑选出一个初始子集,再做相关性计算。初始子集的选择显然与关键词相关度无关,而只能从页面的重要程度着手,PR值就是与关键词无关的重要度指标。

    现在的PR算法与当初拉里佩奇专利中的描述相比肯定有了改进和变化。一个可以观察到的现象是,PR算法应该已经排除了一部分Google认为可疑或者无效的链接,比如付费链接、博客和论坛中的垃圾链接等。所以有时候我们会看到一个页面有PR6甚至PR7的导入链接,经过几次工具条PR更新后,却还维持在PR3甚至PR2。按说一个PR6或7的链接,应该把被链接的页面带到PR5或PR4,所以很可能Google已经把一部分它认为可疑的链接排除在PR计算之外。

    PR专利发明人是拉里佩奇,专利所有人是斯坦福大学,Google公司拥有永久性排他使用权。虽然PR是Google拥有专利使用权的算法,但其他所有主流搜索引擎也都有类似算法,只不过不称为PR而已。

    2.5.5 Hilltop算法

    Hilltop算法是由Krishna Baharat在2000年左右所研究的,于2001年申请了专利,并且把专利授权给Google使用,后来Krishna Baharat本人也加入了Google。

    Hilltop算法可以简单理解为与主题相关的PR值。传统PR值与特定关键词或主题没有关联,只计算链接关系。这就有可能出现某种漏洞。比如一个PR值极高的关于环保内容的大学页面,上面有一个链接连向一个儿童用品网站,这个链接出现的原因可能仅仅是因为这个大学页面维护人是个教授,他太太在那个卖儿童用品的公司工作。这种与主题无关、却有着极高PR值的链接,有可能使一些网站获得很好的排名,但其实相关性并不高。

    Hilltop算法就尝试矫正这种可能出现的疏漏。Hilltop算法同样是计算链接关系,不过它更关注来自主题相关页面的链接权重。在Hilltop算法中把这种主题相关页面称为专家文件。显然,针对不同主题或搜索词有不同的专家文件。

    根据Hilltop算法,用户搜索关键词后,Google先按正常排名算法找到一系列相关页面并排名,然后计算这些页面有多少来自专家文件的、与主题相关的链接,来自专家文件的链接越多,页面的排名分值越高。按Hilltop算法的最初构想,一个页面至少要有两个来自专家文件的链接,才能返回一定的Hilltop值,不然返回的Hilltop值将为零。

    根据专家文件链接计算的分值被称为LocalRank。排名程序根据LocalRank值,对原本传统排名算法计算的排名做重新调整,给出最后排名。这就是前面讨论的搜索引擎排名阶段最后的过滤和调整步骤。

    Hilltop算法最初写论文和申请专利时对专家文件的选择有不同描述。在最初的研究中,Krishna Baharat把专家文件定义为包含特定主题内容,并且有比较多导出链接到第三方网站的页面,这有点类似于HITS算法中的枢纽页面。专家文件链接指向的页面与专家文件本身应该没有关联,这种关联指的是来自同一个主域名下的子域名,来自相同或相似IP地址的页面等。最常见的专家文件经常来自于学校、政府及行业组织网站。

    在最初的Hilltop算法中,专家文件是预先挑选的。搜索引擎可以根据最常见的搜索词,预先计算出一套专家文件,用户搜索时,排名算法从事先计算的专家文件集合中选出与搜索词相关的专家文件子集,再从这个子集中的链接计算LocalRank值。

    不过在2001年所申请的专利中,Krishna Baharat描述了另外一个挑选专家文件的方法,专家文件并不预先选择,用户搜索特定查询词后,搜索引擎按传统算法挑出一系列初始相关页面,这些页面就是专家文件。Hilltop算法在这个页面集合中再次计算哪些网页有来自于集合中其他页面的链接,赋予比较高的LocalRank值。由于传统算法得到的页面集合已经具备了相关性,这些页面再提供链接给某一个特定页面,这些链接的权重自然应该很高。这种挑选专家文件的方法是实时进行的。

    通常认为Hilltop算法对2003年底的佛罗里达更新有重大影响,不过Hilltop算法是否真的已经被融入进Google排名算法中,没有人能够确定。Google从来没有承认、也没有否认自己的排名算法中是否使用了某项专利。不过从排名结果观察及招揽Krishna Baharat至麾下等迹象看,Hilltop算法的思想得到了Google的极大重视。

    Hilltop算法提示SEO,建设外部链接时更应该关注主题相关的网站。最简单的方法是搜索某个关键词,目前排在前面的页面就是最好的链接来源,甚至可能一个来自竞争对手网站的链接效果是最好的。当然,获得这样的链接难度最大。

    2.6 用户怎样浏览和点击搜索结果

    用户搜索关键词后,搜索引擎通常返回10个结果。用户对这10个结果列表的浏览和点击有很大差别。本节介绍用户在搜索结果页面上的浏览方式,包括目光关注度及点击的一些研究。

    2.6.1 英文搜索结果页面

    页面浏览最主要的研究方法是视线跟踪(eye-tracking),使用特殊的设备跟踪用户目光在结果页面上的浏览及点击数据。enquiro.com就是专门做这方面的实验及统计的公司。2005年初,enquiro.com联合eyetools.com和did-it.com两家公司进行了一次很著名的视线跟踪实验,实验数据于2005年6月发表,提出在SEO业界很有名的金三角图像,也有人称其为“F型”浏览图像,如图2-30所示。

    alt

    图2-30 著名的用户视线分布金三角

    图2-30中的颜色区块代表用户目光的停留位置及关注时间,图像中的X号代表点击。从图中我们可以看到,典型搜索用户打开搜索结果页面后,目光会首先放在最左上角,然后向正下方移动挨个浏览搜索结果,当看到感兴趣的页面时,横向向右阅读页面标题。排在最上面的结果得到的目光关注度最多,越往下越少,形成一个所谓的“金三角”。金三角中的搜索结果都有比较高的目光关注度。这个金三角结束于第一屏底部的排名结果,用户向下拉页面查看第二屏结果的概率大为降低。

    这个浏览统计是针对Google搜索结果页面做的。后来enquiro.com针对雅虎及MSN搜索结果页面做的实验也得到大致相同的结果,如图2-31所示。

    alt

    图2-31 主流搜索引擎都存在视线分布金三角

    2009年Google官方博客也发布了一个类似的目光跟踪实验结果,确认了enquiro.com的金三角图像。Google的实验结果如图2-32所示。

    alt

    图2-32 Google官方发布的视线分布金三角

    2006年10月,康奈尔大学做了更进一步的实验和统计,记录397次实验对象(搜索用户)对搜索结果的关注时间及点击分布,实验数据如图2-33所示。

    alt

    图2-33 康奈尔大学实验显示的搜索结果关注时间及点击分布

    我们可以看到,排名前三位的页面得到的关注时间相差不大,尤其是前两位差距很小,但是点击次数却有很大差异。排名第一的结果占据了56.36%的点击,排名第二的结果只有不到第一位四分之一的点击量,从第四位以后点击率更是急剧下降。唯一的特例是排名第十的点击结果,比第九位稍微多了一点。原因可能是用户浏览到最后一个结果时没有更多的结果可看,也没有其他选择,于是就点击了最后一个页面。

    中间还有一个值得注意的结果,排名第七位的页面点击率非常低,只占0.36%。这是因为前六位结果都处在第一屏,用户如果在第一屏没有找到满意结果,就会拉动右侧滑动条看第二屏内容。不过大多数用户不会刚好把屏幕下拉到第七位结果排在最上面,而是直接拉动到页面最下面,这样第七位结果反倒已经跑到第二屏之外,很多用户根本没看到第七位排名页面。

    图2-34显示的是把关注时间及点击次数按曲线显示的结果。

    alt

    图2-34 关注时间及点击次数按曲线显示

    我们可以更清楚地看到,关注时间是按比较连续的曲线下降,而点击次数在第一位和第二位结果上有了巨大的差别,从第二位之后才形成比较平滑的曲线。

    上面的实验数据来自于对用户搜索的观察记录,还不是来自搜索引擎的真正点击数据,而且样本数量有限。

    2006年8月,美国在线(AOL)因为疏忽公布了三个月的真实搜索记录,包括2006年3月1日到5月31日1900万次搜索,1080多万不同的搜索词,还包括65万8000个用户ID。这份资料公布后引起轩然大波。虽然用户ID都是匿名的,但是搜索词本身就可能泄露个人隐私,使得有心人士可以从这份资料中挖掘出不少能与具体个人相关联的数据。

    也有SEO人士对这些搜索记录做了大量统计,得出搜索结果页面的真实点击数据。有人从9038794个搜索中统计到4926623次点击,这些点击在前10个结果中的分布如表2-5所示。

    表2-5 根据AOL泄露数据计算的搜索结果点击分布

    alt

    把表2-5中的点击比例换算成相对于第一位结果点击减少的百分比,又可以得到如表2-6所示的表格。

    表2-6 相对第一个结果的点击减少比例

    alt

    从这个数据中可以看到,第一页点击分布与康奈尔大学的数据大体相当。排名第一的结果获得了42.1%的点击率,排名第二的结果点击次数大幅下降,不到第一位的四分之一。排名第一页的10个结果,总共获得所有点击流量的89.71%。第二页排名第11~20的结果,得到4.37%的点击率。第三页只得到2.42%。前5页占据了99%以上的点击。

    这是目前为止我们所能看到的唯一一份来自搜索引擎的真实点击数据,对SEO有很大的参考价值。

    比如,同样是提高一位排名,从第十位提高到第九位,与从第二位提高到第一位获得的流量有天壤之别。很多公司和SEO人士把排名进入前十或前五当做目标,但实际上第十名或第五名与第一名流量上的差距非常大。这就给我们一个启示,有的时候我们可以找到网站有哪些关键词排名在第二位,想办法把它提高到第一位,能使流量翻好几倍。

    这两个搜索结果点击数据,对SEO人员预估流量也有重要意义。

    2.6.2 中文搜索结果页面

    上面介绍的目光跟踪及点击数据,都是针对英文网站及美国用户的。那么中文搜索引擎情况如何呢?

    2007年4月,enquiro.com做了google.cn及百度搜索结果页面实验。参加实验的是50个18~25岁的中国留学生,这些留学生来到美国不超过几个星期,正在就读语言培训班,所以其浏览习惯大体上还与主流中文用户相同,没有受英文用户浏览习惯太大的影响。这次实验的结果如图2-35所示。

    图2-35是英文google.com与中文google.cn的对比。可以明显看出,相对于英文Google上比较规则的F型分布,中文用户在google.cn上的浏览更具随机性。虽然大体上还是呈现最上面的页面关注时间比较多,越往下越少,但是中文用户并不像英文用户那样垂直向下浏览结果,看到感兴趣的结果则向右方移动目光,阅读页面标题或说明。中文用户的目光更多地像是横向随机跳动,点击也是比较随机的,目光及点击分布都更广。

    alt

    图2-35 中文用户视线分布与英文用户对比

    图2-36是百度和google.cn的搜索页面对比。如果说用户在google.cn上还大致符合越上面的页面关注越多的规律,在百度上则连在垂直方向也呈现更多随机特性,用户目光从上向下并没有显现出关注时间的急剧下降,百度用户不仅浏览页面上部结果,也在页面下部的结果上花了不少时间。在页面底部的相关搜索上,更是呈现出聚集目光和点击的情况。

    alt

    图2-36 百度与Google中文的视线分布对比

    按照英文用户搜索引擎结果浏览习惯分析,中文用户无论在Google还是百度上,似乎都花了更长时间才能找到自己想要的结果。英文用户在Google上平均8~10s就找到想要的结果,而中文用户在google.cn上则需要花30s,在百度上要花55s。这一方面说明中文搜索比英文搜索结果准确度低,另外也很可能是因为语言方面的差异。中文句子里的词都是连在一起的,用户必须花多一点时间真正阅读标题,才能了解列出的结果是否符合自己的要求。而英文单词之间有空格分隔,更利于浏览,用户很容易在一瞥之下就能看到自己搜索的关键词。

    在百度上满天星似的浏览也可能与百度广告和自然结果都放在左侧、又没有背景颜色区分有关,一些用户会很自然地跳过广告,去查看排在后面的结果。

    目前还没有见到中文搜索结果页面的点击数据统计。显然,前面介绍的点击数据不适用于中文搜索结果页面,尤其不适用于百度。可以想象,中文搜索结果点击率没有英文那样急剧下降的趋势,排在第五六位与排在第一位不会相差10倍之多。预估中文关键词流量时,不能照搬英文点击数据,而要更多地依靠自己网站的点击数据。

    2.6.3 整合搜索及个人化搜索

    上面的视线跟踪及点击实验,都是基于传统10个文字列表的搜索结果页面。近几年随着整合搜索和个人化搜索的流行,搜索结果页面中出现图片、视频、新闻等结果,整个页面排版方式的变化必然影响用户浏览方式。

    2007年9月,enquiro.com又做了整合搜索的目光跟踪实验,结果如图2-37所示。

    alt

    图2-37 整合搜索结果对视线分布的影响

    可以看到,当有图片出现在结果页面上部时,用户目光不再是从页面最左上角开始,而是首先把目光放在了图片上,接着向右移动看图片对应的结果是否符合自己的要求。然后用户视线再回到左上角重新向下浏览,看到合适的页面时再向右侧移动目光阅读页面标题和说明。

    很明显,图片的出现完全改变了用户浏览方式,极大地吸引了用户目光。因此整合搜索结果不仅获得排名比普通页面要容易,竞争更小,而一旦出现排名也更能吸引用户眼球和点击。

    enquiro.com对整合结果的实验也发现,带有图片的列表常常起到一种分隔作用。

    如图2-38所示,以图片为横向分隔线,分隔线之上的结果获得很大的目光关注。用户把图片当成了一个阻隔,视线不再向下浏览图片之下的内容。

    alt

    图2-38 搜索结果中出现的图片起到分隔作用

    这对传统关注于页面排名的SEO来说是个挑战,而且是自己无法克服的挑战。好在这个实验是2007年做的,当时整合搜索结果还是个新鲜事物,用户不太习惯,因此会吸引更多的不成比例的视线。当用户对带有图片、视频的结果习以为常后,很可能浏览方式会向传统金三角模式靠拢。

    enquiro.com同时做了个人化搜索页面的目光跟踪实验。

    如图2-39所示,左侧是非个人化结果页面,右侧是个人化结果页面,白色框中出现的3个结果是个人化结果,也就是用户以前曾经访问过的网站。明显可以看到,用户对自己访问过的熟悉的网站投入的目光关注度和时间要比陌生的网址高得多。在个人化搜索一节我们会提到,虽然目前看到的个人化结果还很少,但这是一个确定的搜索行业趋势,对SEO的影响不仅仅在于排名,还在于高得多的点击率。

    alt

    图2-39 个人化结果对视线分布的影响

    图2-40显示了非个人化搜索及个人化搜索的具体点击比例。

    alt

    图2-40 非个人化搜索及个人化搜索的点击比例

    图2-40中左侧是非个人化搜索,右侧是个人化搜索,3个数据分别为

    (1)所花时间比例;

    (2)目光注视比例;

    (3)点击比例。

    我们可以看到,用户对熟悉的网站点击可能性要比不熟悉的网站高出四倍多。

    2010年3月,OneUpWeb公司还做过实时搜索的视线跟踪实验,如图2-41所示,页面底部框中是实时搜索结果。

    alt

    图2-41 实时搜索对视线分布的影响

    可以发现用户不太关注实时搜索,与整合搜索有比较大的差别。

    2.7 高级搜索指令

    用户除了可以在搜索引擎搜索普通关键词外,还可以使用一些特殊的高级搜索指令。这些搜索指令普通用户很少会用到,对SEO人员进行竞争对手研究和寻找外部链接资源却非常有用。本节简单介绍常用的高级搜索指令。

    2.7.1 双引号

    把搜索词放在双引号中,代表完全匹配搜索,也就是说搜索结果返回的页面包含双引号中出现的所有的词,连顺序也必须完全匹配。百度和Google都支持这个指令。

    比如搜索:SEO方法图片,如图2-42所示。

    alt

    图2-42 不带双引号的搜索结果

    从图2-42中可以看到,返回的结果中不少页面出现的关键词并不是完整的“SEO方法图片”,有的页面中“SEO”、“方法”、“图片”这三个词出现在不同地方,中间有间隔,顺序也不相同。把“SEO方法图片”放在双引号中再搜索:“SEO方法图片”,如图2-43所示。

    alt

    图2-43 搜索时带双引号的结果

    可以看到,返回结果只剩下4个,都是完整而且按顺序出现“SEO方法图片”这个搜索字符串的页面。

    使用双引号搜索可以更准确地找到特定关键词的竞争对手。

    2.7.2 减号

    减号(-)代表搜索不包含减号后面的词的页面。使用这个指令时减号前面必须是空格,减号后面没有空格,紧跟着需要排除的词。Google和百度都支持这个指令。

    比如搜索“搜索”这个词时,返回结果如图2-44所示。

    alt

    图2-44 普通不使用减号的搜索

    排在前面的都是关于搜索引擎的页面。如果我们搜索“搜索—引擎”,返回的则是包含“搜索”这个词,却不包含“引擎”这个词的结果,如图2-45所示。

    alt

    图2-45 搜索时使用减号

    使用减号也可以更准确地找到需要的文件,尤其是某些词有多种意义时。比如搜索“苹果—电影”,返回结果页面就排除了《苹果》这部电影的结果,而不会影响苹果电脑和苹果作为水果的内容。

    2.7.3 星号

    星号()是常用的通配符,也可以用在搜索中。百度不支持号搜索指令。

    比如在Google中搜索“搜索擎”,其中的号代表任何文字。返回的结果就不仅包含“搜索引擎”,还包含了“搜索收擎”,“搜索巨擎”等内容,如图2-46所示。

    alt

    图2-46 搜索时使用星号

    2.7.4 inurl:

    inurl:指令用于搜索查询词出现在URL中的页面。百度和Google都支持inurl:指令。inurl:指令支持中文和英文。

    比如搜索“inurl:搜索引擎优化”,从图2-47中可以看到,返回的结果都是网址url中包含“搜索引擎优化”的页面。由于关键词出现在URL中对排名有一定影响,因此使用inurl:搜索可以更准确地找到竞争对手。

    alt

    图2-47 inurl:指令

    2.7.5 inanchor:

    inanchor:指令返回的结果是导入链接锚文字中包含搜索词的页面。百度不支持inanchor:。

    比如在Google搜索“inanchor:点击这里”,从图2-48中可以看到,返回的结果页面本身并不一定包含“点击这里”这四个字,而是指向这些页面的链接锚文字中出现了“点击这里”这四个字。

    alt

    图2-48 inanchor:指令

    在后面的章节中我们会讨论,链接锚文字是现在关键词排名最重要的因素之一,有经验的SEO会尽量使外部链接锚文字中出现目标关键词。因此,使用inanchor:指令可以找到某个关键词的竞争对手,而且这些竞争对手往往是做过SEO的。研究竞争对手页面有哪些外部链接,就可以找到很多链接资源。

    2.7.6 intitle:

    intitle:指令返回的是页面title中包含关键词的页面。Google和百度都支持intitle:指令。

    title是目前页面优化的最重要因素。做SEO的人无论要做哪个词的排名,都会把关键词放进title中。使用intitle指令找到的文件才是更准确的竞争页面。如果关键词只出现在页面可见文字中,而没有出现在title中,大部分情况是并没有针对关键词进行优化,也不是有力的竞争对手。

    比如搜索“搜索引擎优化”,笔者的博客在百度排在自然排名的第二位,如图2-49所示。

    alt

    图2-49 普通搜索结果

    但是搜索“intitle:搜索引擎优化”,笔者的博客就不会被返回,因为博客标题中并没有“搜索引擎优化”这六个字,如图2-50所示。

    alt

    图2-50 intitle:指令搜索结果

    2.7.7 allintitle:

    allintitle:搜索返回的是页面标题中包含多组关键词的文件。例如

    allintitle:SEO搜索引擎优化

    就相当于:

    intitle:SEO intitle:搜索引擎优化。

    返回的是标题中既包含“SEO”,也包含“搜索引擎优化”的页面。

    2.7.8 allinurl:

    与allintitle:类似。

    allinurl:SEO搜索引擎优化

    就相当于:

    inurl:SEO inurl:搜索引擎优化。

    2.7.9 filetype:

    filetype用于搜索特定文件格式。Google和百度都支持filetype:指令。

    比如搜索“filetype:pdf SEO”返回的就是包含SEO这个关键词的所有PDF文件,如图2-51所示。

    alt

    图2-51 filetype:指令

    百度只支持下面几种文件格式:pdf,doc,xls,ppt,rtf,all。其中的“all”表示搜索百度所有支持的文件类型。Google则支持所有能索引的文件格式,包括HTML,PHP等。

    filetype:指令用来搜索特定的资源,比如PDF电子书、Word文件等非常有用。

    2.7.10 site:

    site:是SEO最熟悉的高级搜索指令,用来搜索某个域名下的所有文件。比如搜索:

    site:chinamyhosting.com

    返回的就是chinamyhosting.com这个域名下的所有页面,如图2-52所示。可见这个指令是查询网站收录页面数的最直接方法。

    alt

    图2-52 site:指令

    site:指令也可以用于子域名,比如:

    site:blog.sina.com.cn

    搜索的就是blog.sina.com.cn子域名下的所有收录页面。而

    site:sina.com.cn

    则包含sina.com.cn本身及sina.com.cn下面所有子域名(包括如blog.sina.com.cn)下的页面。

    不过site:指令并不准确,尤其是Google中,返回的收录页面经常有大幅度波动,只能作为参考。

    2.7.11 link:

    link:也是SEO常用的指令,用来搜索某个url的反向链接,既包括内部链接,也包括外部链接。比如搜索:

    link:chinamyhosting.com

    返回的就是chinamyhosting.com的反向链接,如图2-53所示。

    alt

    图2-53 link:指令

    不过可惜的是,Google的ink:指令返回的链接只是Google索引库中的一部分,而且是近乎随机的一部分,所以用link:指令查反向链接几乎没有用。百度则不支持link:指令。

    2.7.12 linkdomain:

    linkdomain:指令只适用于雅虎,返回的是某个域名的反向链接。雅虎的反向链接数据还比较准确,是SEO人员研究竞争对手外部链接情况的重要工具之一。比如搜索:

    linkdomain:dunsh.org -site:dunsh.org

    得到的就是点石网站的外部链接,因为-site:dunsh.org已经排除了点石本身的页面,也就是内部链接,剩下的就都是外部链接了,如图2-54所示。

    alt

    图2-54 雅虎的linkdomain:指令

    2.7.13 related:

    related:指令只适用于Google,返回的结果是与某个网站有关联的页面。比如搜索:

    related:dunsh.org

    我们就可以得到Google所认为的与点石网站有关联的其他页面,如图2-55所示。

    alt

    图2-55 related:指令

    这种关联到底指的是什么,Google并没有明确说明,一般认为指的是有共同外部链接的网站。

    2.7.14 综合使用高级搜索指令

    前面介绍的几个高级搜索指令,单独使用可以找到不少资源,或者可以更精确地定位竞争对手。把这些指令混合起来使用则更强大。

    比如下面这个指令:

    inurl:gov减肥

    返回的就是URL中包含“gov”,页面中有“减肥”这个词的页面。很多SEO人员认为政府和学校网站有比较高的权重,找到相关的政府和学校网站,就找到了最好的链接资源。

    下面这个指令返回的是来自.edu.cn,也就是学校域名上的包含“交换链接”这个词的页面:

    inurl:.edu.cn交换链接

    从中SEO人员可以找到愿意交换链接的学校网站。

    或者使用一个更精确的搜索:

    inurl:.edu.cn intitle:交换链接

    返回的则是来自edu.cn域名,标题中包含“交换链接”这四个字的页面,返回的结果大部分应该是愿意交换链接的学校网站。

    再比如下面这个指令:

    inurl:edu.cn/forum/*register

    返回的结果是在.edu.cn域名上,url中包含“forum”以及“register”这两个单词的页面,也就是学校论坛的注册页面。找到这些论坛,也就找到了能在高权重域名上留下签名的很多机会。

    下面这个指令返回的是页面与减肥有关,URL中包含“links”这个单词的页面:

    减肥inurl:links

    很多站长把交换链接页面命名为links.html等,所以这个指令返回的就是与减肥主题相关的交换链接页面。

    下面这个指令返回的是URL中包含“gov.cn”以及“links”的页面,也就是政府域名上的交换链接页面:

    allinurl:gov.cn+links

    最后一个例子,在雅虎搜索这个指令:

    linkdomain:dunsh.org -linkdomain:chinamyhosting.com

    返回的是链接到点石网站,却没有链接到我的博客的网站。使用这个指令可以找到很多链向你的竞争对手或其他同行业网站、却没链向你的网站的页面,这些网站是最好的链接资源。

    高级搜索指令组合使用变化多端,功能强大。一个合格的SEO必须熟练掌握这几个常用指令的意义及组合方法,才能更有效地找到更多竞争对手和链接资源。