借助如何让网络爬虫顺利索引站点,引申下搜索引擎的抓取原理等相关内容(资料来源于互联网)。
一、抓取并索引站点流程的工作原理
爬虫从页面抓取内容并使用这些页面上的链接来查找更多页面,这样便可以在互联网上找到更多内容。
这里面涉及几个技术点:
- URL 来源:爬虫必须从某个地方开始。通常会创建一个列表(外链),列出他们通过页面找到的所有 URL;另外一个机制就是通过用户或具有页面列表的各种系统创建的站点地图来查找更多 URL。
- 抓取队列:所有需要爬取或重新爬取的 URL 都会被安排优先级并加入到爬取队列中,这基本上是 Google 想要抓取的 URL 的有序列表。
- 爬虫:抓取页面内容的机制。
- 处理:这些是规范化的处理机制,渲染页面就像浏览器加载页面一样,并处理页面以获取更多要抓取的 URL。
- 渲染:像浏览器一样加载页面,加载 JavaScript 和 CSS 文件,这样做是为了让 Google 可以看到大多数用户会看到的内容。
- 索引:用于储存 Google 向用户显示的页面。
- 抓取控制:有几种方法可以控制在你的网站上可被抓取的内容,其中最常见的做法就是添加 Robots.txt 文件,该文件会告诉搜索引擎他们可以和不可以访问的页面。
- 抓取频率:你可以在 robots.txt 中使用一个 crawl-delay 指令,许多抓取工具都支持该指令,你可以设置它们抓取页面的频率。不幸的是,谷歌并不支持。
- 访问限制:如果你希望某些用户可以访问该页面,但搜索引擎不能访问该页面,这种类型的设置最适用于内部网络、会员限定的内容、测试、或开发中的站点。它允许一组用户访问该页面,但搜索引擎将无法访问它们并且不会索引这些页面。

对于 Google,查看他们正在抓取的内容的最简单方法是使用 Google Search Console 抓取统计报告,该报告为你提供有关抓取你网站的更多信息。
如果你想查看网站上的所有抓取活动,则需要访问服务器日志并需要使用工具来更好地分析数据。如果你的主机有一个像 cPanel 这样的控制面板,你应该可以通过一些工具例如 Awstats 和 Webalizer 访问原始日志。
每个网站都有不同的抓取预算,这是 Google 抓取网站的频率以及你的网站允许抓取的数量的组合。更受欢迎的页面和经常更改的页面将被更频繁地抓取,而看起来不受欢迎或链接不多的页面抓取频率会比较低。
如果抓取工具在抓取网站时有压力,它们通常会减慢速度甚至停止抓取,直到条件改善。
页面被抓取后,它们会被渲染,然后送到索引,索引就是储存搜索结果的列表。
二、怎么建立索引站点
Google 会在处理过程中从抓取的页面中提取关键信息。 Google 以外的人都不知道有关此过程的细节,但是我们认为重要部分是提取链接和存储内容并进行索引。
索引是将抓取页面中的信息添加到叫做搜索索引的大型数据库中。本质上,这是一个由数万亿个网页组成的数字图书馆,Google 的搜索结果都来自于此。
这是重要的一点。当你在搜索引擎中搜索时,你并不是直接匹配互联网上的结果。而是在搜索索引中进行匹配的。
如果网页不在搜索索引中,则搜索引擎将找不到它。这就是为什么让你的网站在 Google 和 Bing 等主要搜索引擎中建立索引如此重要。
1. 如何检查你的页面是否被索引
进入谷歌,然后进行如下搜索 site:你的网址.com
,这里的数字显示的是谷歌大致的索引页面数量。如果你想检查某个具体的页面是否被索引的话,同样也可以进行这样的操作site:详细的网址
运算符。如果没有任何结果的话,就说明页面没有被索引。
如果你是Google Search Console的用户的话,你只需要查看覆盖率报告就可以找到精准的索引数据。你只需要进入:Google Search Console > Index > Coverage 查看有效页面的数量(包括警告页面数量)。
如果这两个数字的总和不是零,那么Google至少会将你网站上的某些页面编入索引。 如果没有,那么你可能遇到严重的问题,因为你的网页均未被索引。
如何让谷歌索引你的页面,试下这些:
- 进入Google Search Console。
- 进入URL检测工具。
- 将需要索引的URL粘贴到搜索框中。
- 等待谷歌检测URL。
- 点击“请求编入索引”按钮。
当你发布新帖子或页面时,最好这么操作。你实际上是在告诉Google,你已经在网站上添加了一些新内容,它们应该去看看。
但是,请求编入索引不太可能解决旧页面的索引问题。 如果是这种情况,请按照下面的清单进行诊断并解决问题。
2. 去除 Robots.txt 中的抓取阻碍
进入 yourdomain.com/robots.txt 检查详细的问题,检查是否右下方的这两段中的任意一个代码:
User-agent: Googlebot
Disallow: /
这两个都告诉 Googlebot,不允许它们抓取网站上的任何页面。要解决此问题,你只需要删除它们,就这么简单。
如果 Google 没有为单个网页编制索引,也有可能是 robots.txt 中的某个代码导致的。要检查是否存在这种情况,请将URL粘贴到 Google Search Console 中的 URL 检测工具中。点击覆盖率板块以显示更多详细信息,然后查找“是否允许抓取?
否:被robots.txt阻止”错误,这就代表,页面被 robots.txt 阻止了。
关于什么是 robots.txt 的信息。
3. 去除不必要的 noindex 标签
如果你告诉谷歌不索引某个网页,谷歌是不会为其编制索引的。这可以让一部分页面保持隐秘。有两种方法可以做到这一点:
第一种方法是在页面的<head>
中如果出现如下任意代码(meta 标签),则不会被谷歌索引:
<meta name=“robots” content=“noindex”>
或者
<meta name=“googlebot” content=“noindex”>
这是一个针对爬虫的 meta 标记,它告诉搜索引擎它们是否可以为该页面编制索引。
如果你想找到网上所有拥有 noindex meta 标签的页面,你只需要使用网站诊断做个检测即可。然后进入 Indexability (可索引性) 报告。寻找“Noindex page(不索引页面)“提示。点击后查看所有被屏蔽的页面。删除那些需要索引页面的 noindex meta 标签。
第二种方式是 X‑Robots-Tag,网络爬虫遵循 X-Robots-Tag 的 HTTP 响应标头。你可以使用服务器端脚本语言(例如PHP)、. htaccess 文件中的内容或通过更改服务器配置来实现此效果。
Google Search Console 中的 URL 检查工具可告诉你,是否是由于此标头而阻止 Google 抓取页面。只需输入 URL,然后查找“允许索引?否:在“X‑Robots-Tag” http 标头中检测到“noindex”标记。
4. 将需要索引站点的页面包含在网站地图中
网站地图会告诉 Google 网站上的哪些页面很重要,哪些不重要。它同时也可以为谷歌的抓取频率做一些指导。
Google 应该能够在你的网站上找到网页,无论它们是否在站点地图中,但将它们包括在网站地图内仍然是一种很好的做法。毕竟,没必要让谷歌进行毫无意义的抓取。
要检查网页是否在你的站点地图中,请使用 Google Search Console 中的 URL 检查工具。如果你看到“URL不在Google上”和“站点地图:不适用”,则表明该URL不在你的站点地图中或未建立索引。
5. 去除不必要的 canonical 标签
Canonical 标签会告诉 Google 哪个是页面的首选版本。它看起来像这样:
<link rel=“canonical” href=“/page.html”/>
大多数页面没有 canonical 标签,也就是所谓的自引用的 canonical 标签。这就告诉 Google 该页面本身就是首选版本,同时可能是唯一的版本。换句话说,你希望对该页面建立索引。
但是,如果你的页面有不规范的 canonical 标签,那么有可能在告诉 Google 错误的首选版本。在这种情况下,你的页面将不会被索引。
检测 canonical 标签,你只需要使用谷歌的 URL 检测工具。如果你的页面的 canonical 标签指向了另外一个页面时,你可以看到“具有 Canonical 标签的备用页面”的提示。
如果这个不应该出现,你希望当前页面被索引,那么只需要去除该页面的 canonical 标签即可。
请注意,canonical 标签并不总是不好的。带有这些标签的大多数页面都会有它们的原因。如果你看到你的页面具有 canonical 标签,请检查对应的页面。如果确实是该页面的首选版本,并且也无需索引该页面,则应该保留 canonical 标记。
6. 检查页面是否是孤岛页面
孤岛页面指的是那些没有内部链接支撑的页面。
由于 Google 通过抓取链接发现新内容,因此他们无法通过该过程发现孤岛页面。网站访客也将无法找到这些内容。
这会显示出所有可索引、在站点地图中显示的、但没有内部指向链接的所有页面。
这个只有在下方两种情况下才能够正常检测出结果:
- 所有需要索引的页面都在你的网站地图中。
- 在 Ahrefs 的 Site Audit(网站诊断)最开始,将选择使用网站地图中的页面选项打勾。
不确定要索引的所有页面都在站点地图中吗?尝试这个:
- 下载你网站上的所有页面 (可以通过你的 CMS 来实现)
- 抓取你的整个站点 (使用像 Ahrefs Site Audit(网站诊断)这样的工具)
- 对比两组 URL。
任何没有在抓取时找到的 URL 都属于孤岛页面,你可以通过以下两种中任意一个方法解决孤岛问题:
- 如果页面不重要,那么将它删除,并移出网站地图。
- 如果页面和重要,将他放到你的内链结构中去。
7. 修复不必要的内部 nofollow 链接
Nofollow 链接指的是那些有着 rel=“nofollow” 标记的链接。它们会组织 PageRank 的传递,同时谷歌并不会抓取 Nofollow 链接。
这里是谷歌针对这个做的说明:
本质上,使用 nofollow 会导致我们从抓取目录中删除目标链接。但是,如果其他网站在不使用nofollow 的情况下链接到目标页面,或者这些 URL 是在站点地图中提交给 Google 的,则目标页面仍可能会出现在我们的索引中。
简而言之,你需要确保指向索引页面的链接是 follow 状态的。
假设你要 Google 索引该页面,请从这些指向链接中删除 nofollow 标记。如果不是,请删除该页面或对该页面进行 noindex 处理。
8. 在“强力”页面中加入内部链接
Google 通过抓取你的网站来发现新内容。如果你忽略了内部链接到相关页面,则它可能找不到这个页面。
解决此问题的一种简单方法是在网站中添加一些内部链接。你可以在建立索引的任何网页上执行此操作。但是,如果你希望Google尽可能快地为页面建立索引,则可以在一些“强力的”页面上建立一些内部链接。
为什么?因为相比于一些不太重要的页面,Google 会更快地抓取此类页面。
这将显示网站上的所有页面,按 URL Rating(网址评分)进行排序。换句话说,它首先显示的是权重最高的页面。
查看列表并查找相关页面,可以在这些页面上添加一些目标页面的内部链接。
在你添加完内部链接之后,将该页面粘贴到Google的URL检查工具中。点击“请求编入索引”按钮,以使Google知道页面上的某些内容已更改,它需要尽快对其进行重新抓取。这可以加快Google发现内部链接并因此发现你要索引的页面的进程。
9. 确保页面独特并且有价值
Google 不太可能将低质量的网页编入索引,因为它们对用户没有任何价值。以下是 Google 的 John Mueller 对2018年建立索引的看法:
We never index all known URLs, that’s pretty normal. I’d focus on making the site awesome and inspiring, then things usually work out better.
— ? John ? (@JohnMu) January 3, 2018
他暗示,如果你希望 Google 将网站或网页编入索引,则它必须“有价值并且有意义”。
如果你的页面已经排除了技术问题但还是不索引,那么可能就是页面的价值不足。因此,你需要重新审视页面并问自己:这个页面真的有价值吗?如果用户从搜索结果中点击该页面,会在该页面找到有用的内容吗?
如果对上述两个问题的回答均为否,那么你就需要改进你的内容。

10. 去除低质量页面 (优化“抓取预算”)
网站上的劣质页面过多,会浪费谷歌的抓取预算。
这里是 谷歌对此做的说明:
在低价值页面上浪费服务器资源,会使抓取有价值内容的频率下降,这可能会导致在站点上发现大量新内容时出现延迟。
可以将其视为导师在给论文进行评分,其中一个就是你的论文。如果他们要审阅10篇论文,那么他们很快就会看到你的论文。如果他们要审阅一百个,那将花费更长的时间。如果有成千上万的话,那么他们的工作量就太高了,他们可能永远也无法对你的内容进行打分。
Google确实指出:抓取预算[…]并不是大多数站长都需要担心的事情,并且“如果网站的页面少于几千个”,则都可以对其进行有效的抓取。
不过,从你的网站上删除低质量的页面绝不是一件坏事,它只会产生积极影响。
11. 建立高质量的外链
外链告诉 Google 这个页面很重要。毕竟,如果有人链接到它,则它必须具有一定的价值。这些是Google 想要索引的页面。
Google 不仅会索引带有外链的网页。有很多(上亿的)没有外链的页面也编入了索引。但是,由于Google 认为具有高质量链接的页面更为重要,因此与不具有高质量链接的页面相比,它们抓取和重新抓取的速度可能更快。这会使得索引边的更快。
三、如何对网页进行排名
发现,抓取和索引内容仅仅是流程的第一部分,搜索引擎还需要一种在用户执行搜索时匹配结果的排名的方法,这是就搜索引擎算法用处。
每个搜索引擎都有用于对网页进行排名的独特算法。但是,由于 Google 是迄今为止使用最广泛的搜索引擎(至少在西方世界),我们将重点关注该引擎。
Google 有 200 多个排名因素,没有人知道所有的这些排名因素,但是关键因素却是已知的。
- 外链
- 相关性
- 新鲜度
- 话题权威性
- 页面速度
- 移动友好
1. 外链
外链是 Google 最重要的排名因素之一。
Google 的搜索质量高级策略师 Andrey Lipattsev 在2016年的一次在线网络研讨会上证实了这一点。当被问到两个最重要的排名因素时,他的回答很简单:内容和链接。
自 1997 年链接引入 PageRank 以来,它一直是 Google 中重要的排名因素,PageRank 是一种根据指向外链数量和质量来判断网页价值的公式。

有机构分析了超过10亿个页面,并发现链接到该页面的网站数量与它从 Google 获得的自然流量之间有着明显的相关性。

但是这并不只关乎数量,因为并非所有外链都是一样的。具有少量高质量外链的页面完全有可能胜过具有许多低质量外链的页面。
良好的外链具有六个关键属性。

2. 相关性
Google 有很多确定页面相关性的方法。最基本的,查找包含与搜索词相同的关键词的页面。

但是相关性不仅仅只有关键词匹配。Google 还使用交互数据来评估搜索结果是否与搜索词相关。换句话说,就是用户觉得页面对自己有帮助吗?

3. 新鲜度
新鲜度是基于搜索词的排名因素,这意味着它对某些结果的影响比对其他结果的影响更大。
对于 “what’s new on amazon prime” 这样的搜索,新鲜度很重要。因为搜索者想了解最近添加的电影和电视节目。这可能就是 Google 给新发布或新更新的页面排名更高的原因。

也有一些查询结果的新鲜度与无关,例如 “how to tie a tie”。因为方法没有任何变化,因此搜索结果是昨天还是 1998 年都无关紧要。Google 知道这一点,并且对多年前发布的文章进行排名没有任何问题。

4. 话题权威性
Google 希望对具有该话题权威的网站的内容进行排名。这意味着 Google 可能会将网站本生视为评价搜索结果质量的标准。
Google 在其专利中谈到了这一点:
搜索系统是否认为网站具有权威性通常取决于搜索词。 […] 搜索系统可以将疾病控制中心(cdc.gov)的站点视为 “CDC mosquito stop bites” 搜索的权威站点,但可能不会将其视为对 “restaurant recommendations” 搜索的权威站点。
尽管这只是 Google 申请的众多专利之一,但我们发现有证据表明,对于许多搜索而言,“话题权威性” 在搜索结果中很重要。
只需查看 “sous vide vacuum sealer” 的结果就知道。

5. 页面速度
没有人喜欢等待页面加载,而 Google 知道这一点。因此,他们将网页速度列为 2010 年台式机搜索和 2018 年移动搜索的排名因素。
许多人执迷于页面速度,值得注意的是,你的页面排名无需闪电般快速。谷歌表示,只有你页面速度过慢时才需要考虑速度问题。换句话说,在网站上节省几毫秒的时间不太可能提高排名。它只需要足够快就不会对用户产生负面影响。
你可以在 PageSpeed Insights 中检查任何网页的速度,同时还有速度优化的建议。

核心页面指标由三个指标组成,用来评估网页的加载性能、交互性、以及视觉稳定性。谷歌已经确认,核心页面指标将在 2021 年 6 月成为排名要素之一。
6. 移动端友好
自 2019 年以来,由于 Google 改用移动设备优先索引技术,移动设备友好性也是成为了桌面搜索的排名因素。这意味着 Google 在所有设备上 “主要将内容的移动版本用于索引和排名”。
你可以使用 Google 的移动设备友好测试工具或 Google Search Console 中的移动设备可用性报告来检查任何网页的移动设备友好性问题。

四、索引并不等于排名
索引和排名是两个不同的事情。索引为了是参与,而排名是为了获胜。如果你都没有参与是不可能获得获胜的。
也就是说,索引意味着谷歌已经看到了你的网站,但是并不意味着你的内容值得谷歌对特定关键词进行排序。
这就是SEO需要做的——优化网页以针对特定关键词进行排名的艺术。
简单的来说,SEO包含:
- 找到你的用户在搜索什么;
- 围绕话题创作内容;
- 针对目标关键词进行优化;
- 外链建设;
- 对页面内容进行更新,保持“新鲜”。
五、总结
Google不索引你网站或页面的原因只有两个:
- 技术性问题导致它无法索引;
- 它认为你的内容没有价值,不值得被索引。
这两个问题很可能同时存在。但是,我想说技术问题要普遍得多。技术问题还可能导致低质量内容的自动生成(例如,分页问题)。
尽管如此,通过上面的检查表多数是可以解决索引问题的。
只要记住索引≠排名即可。如果你想对任何有价值的关键词进行排名,并吸引源源不断的自然流量,那么SEO就是至关重要的。