搜索引擎如何对网页进行排名?
前面搜索引擎完成了对页面的分析,将页面以唯一关键词的形式进行了重新组合,接下来进入页面排序的环节。
页面排序的环节实际上是由用户配合来完成的。当用户在搜索引擎中输入关键词进行查询时,搜索引擎便开始了页面排序的工作。我们知道,任意输入一个关键词就可以在搜索引擎中找到很多网页,这些网页的先后顺序是怎样产生的呢?影响页面排序的因素有哪些?
实际上,决定页面排序的因素很多,如页面相关性、链接权重及用户行为。
过高或者过低都不好,最恰当的频率一般认为是 2%~8%,这是业界公认最优关键词密度区间值。
关键词密度是指该关键字出现的次数所占字符数与该网页总词汇量所占字符数的比例。
对于搜索引擎而言,链接是用来证明页面与页面之间的关联性、相关性或重要性。比如,某一个页面得到的链接越多,在某种程度上就反映了该页面的重要性,搜索引擎给予的重视程度就会越高。
在页面相关性上,谷歌比百度更为严格,比如你的网站是做 IT 的,结果你去链接了很多机械化工类的网站,这时搜索引擎会很不喜欢,甚至会认为你恶意添加外部链接。
如图1所示,网页1与网页2之间的链接关系可以称为“内部链接”或“友情链接”,而网页3与网页2之间的链接关系则是“外部链接”(网页3是网页2的外部链接)。
图1:页面链接关系
用户行为主要包括搜索、点击两项行为:
页面排序的环节实际上是由用户配合来完成的。当用户在搜索引擎中输入关键词进行查询时,搜索引擎便开始了页面排序的工作。我们知道,任意输入一个关键词就可以在搜索引擎中找到很多网页,这些网页的先后顺序是怎样产生的呢?影响页面排序的因素有哪些?
实际上,决定页面排序的因素很多,如页面相关性、链接权重及用户行为。
1. 页面相关性
页面相关性主要和关键词有关,包含以下几个方面。关键词匹配度
我们注意到在全文搜索引擎中,一般情况下搜索引擎列表中都会包含我们所输入的关键词。当我们输入关键词进行查询时,搜索引擎会首先检查网页中是否有该关键词,这是基础条件。关键词词频(密度计算)
搜索引擎为了能够有效地防止网站所有者恶意操控搜索结果,会去比对页面中关键词出现的频率与该网页词汇量的比例,以此来衡量页面中的关键字词频是否合理。过高或者过低都不好,最恰当的频率一般认为是 2%~8%,这是业界公认最优关键词密度区间值。
关键词密度是指该关键字出现的次数所占字符数与该网页总词汇量所占字符数的比例。
关键词分布
关键字在页面中出现的位置会影响页面的排序。一般认为页面权重的递减顺序是左上>右上>左>右>左下>右下
。
关键词的权重标签
权重可以理解为重要性。权重标签如<b>、<i>、<em>、<h1>至<h6>等,这些标签使得标签内的文字不同于其他文字,搜索引擎会给予相应权重提升。2. 链接权重
链接主要分为内部链接和外部链接两种形式,是在制作网站页面时用来关联相关信息的,主要用来告知用户所链接页面的重要程度。对于搜索引擎而言,链接是用来证明页面与页面之间的关联性、相关性或重要性。比如,某一个页面得到的链接越多,在某种程度上就反映了该页面的重要性,搜索引擎给予的重视程度就会越高。
内部链接
网站内部页面与页面之间的相互链接关系,一般首页的权重最高。在同等情况下,如果有两个网站的首页和内页进行比较,一般首页会排在内页前面。外部链接
网站与站外页面之间的链接关系,通俗的说法叫作“外链”。外链的数量、质量、相关性都会影响页面排序。在页面相关性上,谷歌比百度更为严格,比如你的网站是做 IT 的,结果你去链接了很多机械化工类的网站,这时搜索引擎会很不喜欢,甚至会认为你恶意添加外部链接。
如图1所示,网页1与网页2之间的链接关系可以称为“内部链接”或“友情链接”,而网页3与网页2之间的链接关系则是“外部链接”(网页3是网页2的外部链接)。
图1:页面链接关系
默认权重分配
搜索引擎将页面被抓取的日期作为一个参考因素,页面在单位时间内获得链接的数量越多、质量越高,则该页面的质量相对越高。3. 用户行为
用户对搜索结果的点击行为是衡量页面相关性的因素之一,是完善排序结果、提高排序结果质量的重要补充。用户行为主要包括搜索、点击两项行为:
- 搜索是用户获得信息的过程,搜索引擎通过这个用户行为学习新词汇、丰富辞典;
- 点击是指用户对搜索结果的反应,被点击的次数越多,说明越重要,权重越高。
提示:搜索引擎为避免马太效应,会对排在后面的链接进行点击权重补偿。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算