第一阶段:爬行和抓取:
就是搜索引擎蜘蛛通过跟踪链接地址访问网站页面,把获取到的网站页面html代码放入到自己的数据库当中。爬行和抓取是搜索引擎工作的第一步,主要是完成数据的收集任务;
解释几个关键词:
1,蜘蛛:
(1)定义:我把他它叫做抓取网页数据时的执行者,其实它就是一个计算机程序,因为这个工作过程与现实中的蜘蛛很相像,专业内就称它为搜索引擎蜘蛛!
(2)工作过程:蜘蛛程序向网站页面发出访问请求,服务器就会返回HTML代码,蜘蛛程序把收到的代码存入原始页面的数据库当中。蜘蛛访问任何一个网站时,都会最先访问网站根目录下的robots.txt文件!如果robots.txt文件禁止搜索引擎抓取某些文件或者目录,蜘蛛将会遵守这些禁止协议,不抓取那些被禁止的网址。
(3)常见的搜索引擎蜘蛛名称:
百度蜘蛛、雅虎中国蜘蛛、Google蜘蛛、微软Bing蜘蛛、搜狗蜘蛛、搜搜蜘蛛、有道蜘蛛等等!
2,跟踪链接
大家都知道整个互联网是由相连接的网站页面组合成的!页面和页面之间是靠链接来联系的,搜索引擎能为了更快速的收集网站数据,就是通过搜索引擎蜘蛛去跟踪网站页面上的链接,从一个页面抓取到下一个页面!这个过程和蜘蛛在蜘蛛网上爬行一样!就这样蜘蛛可以快速的可以爬完整个互联网上的网站页面!
根据网站链接结构的不同我们可以把蜘蛛的爬行路线分为两种:深度爬行和广度爬行
A:深度爬行:蜘蛛沿着发现的页面链接一直向前爬行,直到前面再也没有其他链接,然后返回到第一个页面,沿着另为一个链接再一直向前爬行!
B:广度爬行:蜘蛛在一个页面上发现多个链接时,不顺着一个链接一直往前爬行,而是把页面上所有的第一层链接都爬行一遍,然后再继续沿着第二层页面上发现的链接爬向第三层页面!一直这样进行下去……
所以,我们在做网站的时候,对网站的结构一定要有这两种布局,优化网站页面的时候也一定要做到两种链接布局!这样的结构是搜索引擎蜘蛛组喜欢的!
3,定向优化技术勾引蜘蛛
4,地址库,
搜索引擎会建立一个存放页面的地址库,目的就是为了避免搜索引擎蜘蛛重复爬行和抓取网址,这个地址库里面有已经被抓取的页面,也有被发现后还没有被抓取的页面!
这个地址库中的URL一定是蜘蛛抓取来的吗?答案是No
有人工录入的种子网站地址,也有站长通过搜索引擎网页提交表格提交进去的网址!(百度网址提交地址:http://www.baidu.com/search/url_submit.htm)
另为需要注意的是:网址提交了,也不一定就能被收录,这看你提交页面的权重如何了!不过搜索引擎蜘蛛还是跟喜欢自己沿着链接去抓去页面!自己得来的更好吃!
5,文件存储
搜索引擎蜘蛛抓取来的页面就存放在这个原始页面数据库中!其中每个URL都有一个独特的文件编号!
6,对复制内容的检测
有很多站长曾经碰到过这样的问题:在网站页面中发现了蜘蛛来爬行过,但是页面没有被收录过,不知道什么回事!其实很简单,很有可能是蜘蛛在爬行你网页的时候发现了很多权重比较低的内容,比如:转载或者伪原创的内容是,蜘蛛就会离开!你的网页也就没有被收录!蜘蛛在爬行抓取页面内容的时候也会对其进行一定程度的复制内容检测!
第二阶段:预处理
这个过程是指:索引程序对数据库里蜘蛛抓取来的网站页面进行处理,主要做文字提取,中文分词,索引等工作;
这个过程是起到一个桥梁的作用,由于搜索引擎数据库中的数据实在是太多了,当用户在搜索框中输入关键词后不可能一下就返回排名结果吗,但是往往我们感觉很快,其实起到关键作用的就是预处理这个过程!和爬行抓取过程一样他也是在后台提前完成的!
有些人认为预处理就是索引,其实不是这样的,索引只是预处理的一个主要步骤,那么什么是索引呢?索引是对数据库列表中的一列或者多列的值进行排序的一种结构!
在索引之前要做五个工作:
1,提取文字:
我们知道蜘蛛抓取的是含有全部HTML代码的页面,这里面其实包含很多信息:有文字,有CSS属性,有大量的HTML格式标签,javascript程序!但是后面的两个是无法参与到排名内容中来的,也就是说除了文字之外其它的都给去掉了,这个过程就是去除过程,也叫提取文字的过程,即:提取出可以用于排名处理的网站页面文字内容!
注意:搜索引擎除了提取出可见的文字外,还可以提出以下不可见的文字内容;比如:METa标签中的文字内容,图片替代文字,FLASH文件的替代文字,链接锚文字等!
2,中文分词
大家都知道中文句子和英文句子有一个不同的地方,不是字母和汉字的区别,而是,英文单词和单词之间是有空格分开的,中文句子里,字和字没有之间没有分隔符,一个句子中的词都是连在一起的!所以,这时候搜索引擎就必须先分辨一下哪几个字组成一个词,哪几个字本身就是一个词!比如:“波司登羽绒服”就将其分为“波司登”和“羽绒服”两个词;
中文分词一般有两种方法:
A:词典匹配:又分为正向和逆向匹配!
B:根据搜索统计
这两者往往混合使用!而且在百度和谷歌中分词的相关性有时候也不太一样,例如:搜索引擎优化,在百度中就是一个完整的词,而在谷歌中将其分成了“搜索”“引擎”“优化”三部分,所以在做优化的时候一定要注意选择的关键词的特点,后面我们会详细的讲解选词技巧。
注意:如果我们非要让一个词组合在一起,不让搜索引擎的分词技术把它分开怎么办?
我们可以这样做:在页面标题,h1标签,利用黑体表粗出现该关键词!这样就适当的去提醒了搜索引擎,搜索引擎就会知道我们这个词是一个组合就不会将其分开了!
3,去停止词
什么是停止词?就是在页面中出现次数比较多的,对内容没有实质性影响的那些词;比如:“的”,“得”“地”这些助词,“啊”“哈”“呀”等感叹词,“从而”“以”“却”等副词或者介词,这些词就被称之为停止词!英文里有:the,a,an,to,of等等
搜索引擎去停止词主要有两个目的:
一个是:使索引数据主题更为突出,减少无谓的计算量;
另一个是:检测你的内容是否和另外数据库中的内容有大量的重复性
在这里需要提醒各位的是:以后不要随便在网上复制一篇文章加上几个停止词就粘到自己的网站上去了,学完上边的,你应该懂什么意思了!
4,去除噪声:
这里的噪声不是我们所说的噪声,它是特指一种垃圾,即多余的字词!这些字词一般包含在版权声明文字,导航条,广告中!消除噪声是为了使得页面能更好的显示主题内容:
举例:博客中的“分类目录”“历史存档”等!
5,去重(chong)
什么意思呢?假如一篇同样的文章出现在不同的网站上或者链接
到不同的地址上,搜索引擎就会认为它是一个文件,它并不喜欢这样的重复内容,所以它也不会去抓取的!在进行索引之前就需要对这些内容进行识别和删除重复的内容,就叫“去重”!
搜索引擎如何去重!技术我们不需要掌握,但是我们得注意几个关键点:
A:简单的增加“的”“地”“得”,是很容易的被识别的,一定要慎重使用!
B:复制别人的文章,简单的交换一下段落结构!这种伪原创也一定要慎重使用!
这是因为:这样的操作无法改变文章的特定关键词,上面的那些做法始终逃不过搜索引擎的去重算法。
经过上面的五个步骤后,搜索引擎就能得到独特的,能反映页面主要内容的,以词为单位的内容。
然后搜索引擎程序将上边提取到的关键词通过分词程序来划分好,把每一个网站页面都转化为一个关键词组成的集合!同时记录下每一个关键词在该页面上出现的频率、次数、格式(比如:标题标签、黑体、H标签、锚文本等)位置(第几段),这些都已权重的形式记录在下来!然后放到一个地方,这个地方就是专门放置这些组合词的词表结构——索引库!也交做“词表索引形式”
什么是正向索引:
每一个文件夹都对应一个ID,文件内容被表示为一串关键词的集合!在搜索引擎的索引库中,这时候关键词已经别转化成了关键词ID,这样的数据结构叫正向索引!
给大家画一张图就明白了:
什么是倒排索引呢?
因为正向索引不能直接用于排名!比如:用户搜索某一关键词2,如果只从在正向索引,只能找到包含该关键词的文件夹,不能实际的返回排名;这时候就会用到倒排索引了
在倒排索引中关键词变成了主键,每个关键词对应一系列文件,每一个文件都出现了要搜索的关键词,这样用户在搜索某一个关键词的的时候,排序程序就能在倒排列表中找到这个关键词对应的文件!
详细请看图:
特殊文件的处理:
搜索引擎除了抓取HTNL文件还可以抓取以下文件类型:PDF,Word,WPS,PPT,TXT等这些文件,不过注意的是:搜索引擎还不能抓取图片、视频、Flash这类文字内容,也不能执行脚本和程序!所以在SEO的时候,你网站上面尽量少用这些!
链接关系的计算:
当搜索引擎抓取了页面后,还必须事先计算出页面上有哪些链接指向哪些页面。每个页面又有哪些导入链接,链接使用的什么锚文字,正是这些复杂的链接指向关系形式形成了网站和页面的链接权重!例如:google的PR值就是这些关系的重要体现,后面详解!
第三阶段:排名:
排名过程是与用户互动的过程:是指当用户输入关键词以后,排名程序调用索引数据库里面的数据,计算相关性后按照一定格式生成搜索结果页面!
1,搜索词的处理过程
A:中文分词;前面讲过了
B:去停止词;前面讲过;
C:指令处理:搜索引擎的默认处理方式是在关键词之间使用“与”逻辑,比如用户在搜索“网站建设”时,搜索引擎默认为用户想要查找的既包含“网站”也包含“建设”的页面!
常见的搜索指令有加减号,还有哪些搜索指令?如何使用使用搜索指令,后面会详细拿出一节来详细讲解的!
D:如果用户输入了明显错的字或者英文单词的时候,搜索引擎会提示用户正确的用字或者拼法!例如:搜索“建站技数”
E:整合搜索触发!比如搜索明星,会出现图片,视频等内容!适合做热门话题;
2,文件匹配如何进行?
这一部是在倒排索引中能快速的完成:看图
如果用户搜索的一个词,既有关键词2,也有关键词3的话,那么组后就会很精准的找到既包含关键词2,也包含关键词3的文件,然后返回!
3,初始子集如何选择?
互联网上的页面有成千上万个,搜索某一关键词出来的页面也会有上千万个,如果搜索引擎一上来就是直接计算页面相关性的话,那简直就是太费时间了!实际上用户是不需要看到这成千上万的页面的,用户只需要的是一两个有用的页面!这时候搜索引擎就会根据用户的搜索词预定的选择100个文件,然后进行返回,那么到底是选择哪一百个呢?这就看你网站页面和用户搜索的关键词的相关匹配度了!页面权重高的就会进入到搜索引擎的预选子集中!
4,计算相关性
选完子集后就会计算页面的相关性,我们不需要知道搜索引擎是如何计算页面相关性的,但是我们的知道影响计算页面相关性的因素,这样更有助于我们进一步优化我们的网站!
SEO关注的因素有以下几个:
A:关键词的常用程度:举例“来吧UFO”
B:词频和密度
在没有关键词堆积的情况一下,一般认为搜索词在页面中出现的次数和密度越高,说明页面和搜索词的相关性也就越高!
C:关键词的位置和形式
位置研究主要有:首页还是二级页面?形式主要研究:标题标签,黑体,H1
D关键词的距离:例如搜索词是“网站建设”,如果页面中出现很多次连着的“网站建设”这个词,而不是分开的“网站”后面没有建设,或者有建设没网站!
E:链接分析和页面权重
链接和权重的关系主要是锚文字,有多少搜索词是以锚文字的链接导入的相关性就高
5,排名过滤以及调整
当选出匹配的文件子集后,大体的排名就差不多确定下来了!这里做的排名过滤主要是针对于那些靠作弊手段,有作弊嫌疑的网站进行调整!虽然按照前面的工作最后就算出来的这些网站权重和相关性非常的高,但是搜索引擎在最后一步也会把这些网站给过滤掉的!
6,排名显示的效果
主要显示的是:原始页面的标题标签,说明标签,快照日期等数据!
注意:有的网站是搜索引擎需要调用动态生成的页面摘要,而不是调用页面本身的说明!
7,搜索引擎缓存的作用:
搜索引擎会把用户经常搜索的一些词记录下来,会把这些搜索过排名记录储存在搜索引擎的缓存当中,当由用户在一次搜索这个词的时候,搜索引擎会直接调用缓存中的内容!这样缩短了搜索反映时间,大大提高了排名效率!
总结:上面是搜索引擎整个工作过程的详细的介绍!这些只是概念上的东西,其实搜索引擎的工作步骤和算法远比我们想想中的复杂!但是没关系,我们做SEO的只要明白了上面的这些基本概念就已经足够了!搜索引擎的算法还在不断的优化,感兴趣的同学可以多关注一下,这样也有利于自己在优化上有个新的突破!上面介绍的概念大致是主流搜索引擎的基本工作原理!