索引详解:Google 如何抓取、索引页面并报告索引状态
基于 Google 官方文档,说明一个 URL 从被发现到进入 Google 索引的完整过程、“网页索引编制”报告中各项状态的含义,以及哪些状态需要处理。
索引是指 Google 存储某个页面,使其有机会出现在搜索结果中。在此之前,Google 必须先发现该 URL、抓取它,并且通常还要对其进行渲染。之后,Google 会判断该页面是否与其他 URL 重复,以及是否值得保留。Search Console 中的“网页索引编制”报告会显示你的每个 URL 在这条路径上停在了哪一步,以及 Google 给出的原因。
从 URL 到搜索结果
Google 在关于 Search 工作原理的说明中,把整个过程拆分成了可以逐步检查的几个环节。
- 发现。 网络上并不存在一份集中的网页列表,因此 Google 会不断寻找新页面。它发现新页面的主要途径,是已知页面中的链接,以及网站所有者提交的站点地图。
- 抓取。 只要 robots.txt 允许,Googlebot 就会获取该 URL。Google 会限制抓取速度,以免给你的服务器造成过大负担;如果出现服务器错误,抓取速度还会进一步放慢。
- 渲染。 由于部分内容只有在脚本运行之后才会出现,Google 会使用较新版本的 Chrome 运行页面中的 JavaScript。
- 索引。 Google 会分析内容,把重复或近似重复的页面归为一组,从中选出一个作为规范网址(canonical),然后进行存储。Google 也可能完全不索引某个页面,例如内容质量较低,或者 robots meta 规则禁止索引。
- 呈现。 针对每次搜索,Google 会从索引中挑选结果。被索引只代表页面有资格出现,并不意味着一定会出现。
Google 明确表示,对于任何页面,它都不保证上述任何一个环节一定会完成。你能做的,是清除障碍,并给 Google 足够的理由继续处理你的页面。
解读“网页索引编制”报告
该报告会把 Google 已知的 URL 分为已编入索引和未编入索引两类,并为每一组未编入索引的 URL 列出原因(参见网页索引编制报告)。Google 自己的两条指引应当影响你阅读报告的方式:
- 未编入索引不一定是坏事。 Google 提醒网站所有者,不要期望每个 URL 都被编入索引。重复页面、已重定向的地址以及没有实质内容的页面,本来就不应该进入索引。关键在于重要页面是否已被收录。
- 留意“来源”。 每条原因都会标明问题出在网站一侧还是 Google 的系统一侧。一般来说,只有来源为“网站”的原因才是你能够修复的。
因此,真正有用的问题不是“为什么我的未编入索引数量这么多?”,而是“我需要的页面有没有出现在这个列表里?原因是什么?”。
各项状态的含义
Google 给出的原因可分为五类。相比具体措辞,应对方式更取决于它属于哪一类。
你告诉 Google 不要索引它
| 状态 | 发生了什么 | 处理方式 |
|---|---|---|
| URL marked 'noindex' | 页面带有 noindex 规则 | 如果是有意设置则无需处理;如果希望页面参与排名,请移除该规则 |
| URL blocked by robots.txt | robots.txt 禁止 Google 抓取该页面 | 阻止抓取并不能保证页面不会进入索引 |
| Alternate page with proper canonical tag | 该页面将另一个 URL 指定为规范网址,且 Google 认可 | 无需处理 |
| Page with redirect | 该 URL 会重定向到别处,因此自身不会被编入索引 | 无需处理,前提是重定向目标正是你希望被索引的页面 |
Google 无法获取它
| 状态 | 发生了什么 | 处理方式 |
|---|---|---|
| Server error (5xx) | 你的服务器返回了 500 级别的错误 | 修复服务器问题;反复出错还会拖慢抓取 |
| Redirect error | 重定向链过长、出现循环,或指向了无效或空的 URL | 让重定向直接指向最终 URL |
| Blocked due to unauthorized request (401), access forbidden (403) or other 4xx issue | 页面拒绝了 Googlebot 的访问 | 如果页面应当公开,请移除访问限制 |
| Not found (404) | 该 URL 返回了 404 | 对于已删除的页面这是正常的;如果页面已迁移到别处,请修正相关链接 |
Google 选择了另一个 URL
| 状态 | 发生了什么 | 处理方式 |
|---|---|---|
| Duplicate without user-selected canonical | Google 认为该页面是重复页面,并选择了另一个规范网址 | 通常无需处理;Google 称这属于正常工作 |
| Duplicate, Google chose different canonical than user | 你指定了规范网址,但 Google 更倾向于另一个 URL | 让各项信号保持一致(见下文) |
Google 尚未做出对你有利的决定
| 状态 | 发生了什么 | 处理方式 |
|---|---|---|
| Discovered - currently not indexed | Google 已知道该 URL,但尚未抓取,通常是为避免给网站造成过大负担而改期 | 从已被抓取的页面链接到它;对于超大型网站,需要管理抓取 |
| Crawled - currently not indexed | Google 已抓取该页面但尚未索引,将来是否索引并不确定 | 让页面具备明确的价值和独特性,或将其合并到更有分量的页面中 |
内容看起来有问题
| 状态 | 发生了什么 | 处理方式 |
|---|---|---|
| Soft 404 | 页面返回 200,但看起来像错误页或空白页 | 对不存在的页面返回真正的 404,或为真实页面提供真实内容 |
| Page indexed without content (warning) | 已被编入索引,但 Google 无法读取其内容 | 使用 URL 检查工具查看 Googlebot 实际获取到的内容 |
| Indexed, though blocked by robots.txt (warning) | 虽然 robots.txt 禁止抓取,页面仍被编入索引 | 若要将其排除在索引之外,请允许抓取并添加 noindex |
最后一行常常让人措手不及。Google 只有在被允许抓取页面时才能看到 noindex 规则,因此如果同时在 robots.txt 中屏蔽页面并添加 noindex,这条 noindex 将永远不会被读取(参见使用 noindex 阻止编入索引)。
当 Google 选择了不同的规范网址
规范标记只是信号,而不是命令。Google 会综合权衡多种信号:重定向和 rel="canonical" 属于强信号,被收录到站点地图中属于弱信号,同时 Google 更倾向于 HTTPS 地址而非 HTTP 地址(参见整合重复的 URL)。当各项信号互相矛盾时,比如规范标记指向一个 URL,而内部链接和站点地图使用的却是另一个,Google 就会自行决定。请让所有信号都指向同一个 URL,并在站内链接到这个 URL。不要用 robots.txt 或 noindex 来选择规范网址;noindex 会让页面彻底从搜索结果中消失。
用 URL 检查工具查看单个 URL
“网页索引编制”报告展示的是分组情况,而 URL 检查工具则会详细展示单个 URL 的情况(参见 URL 检查工具)。它会报告该 URL 是否已编入索引、你声明的规范网址与 Google 选定的规范网址、Google 上次抓取页面的时间、抓取时使用的是移动版还是桌面版用户代理、robots.txt 是否允许抓取、获取是否成功,以及是否允许编入索引。
有两点需要注意。第一,默认视图描述的是上一次被编入索引的版本,可能已经过时;测试实际网址会立即获取页面,可用于确认修复是否生效,不过实时测试通过并不保证一定会被索引。第二,当 robots.txt 阻止抓取时,“允许编入索引?”始终显示为“是”,因为 Google 无法看到它未被允许获取的 noindex 规则。
请求编入索引是请 Google 重新抓取该 URL。该操作受每日配额限制,而且 Google 表示,对同一个 URL 多次请求抓取并不会加快速度(参见请求 Google 重新抓取)。如果涉及大量 URL,请改为提交一份保持最新的站点地图。
索引需要多长时间?
Google 给出的是一个范围,而不是承诺。新页面的索引可能需要几天,即使直接提出请求也不会立刻完成。新网站大约需要一周左右才会被抓取和索引,而重新抓取则可能需要几天到几周不等。修复问题并点击验证修复后,检查通常最多需要大约两周。如果一个月后重要页面仍未被收录,请参考技术索引问题排查手册逐项排查,而不是反复请求编入索引。
帮助 Google 发现并保留你的页面
- 从 Google 已经抓取的页面链接到新页面,例如首页、枢纽页面或相关文章。链接是 Google 发现 URL 的主要方式。
- 站点地图只包含规范 URL,并使用完整的绝对地址,每个文件最多包含 50,000 个 URL,或未压缩时不超过 50MB。当
<lastmod>始终准确时,Google 会使用它,同时忽略<priority>和<changefreq>(参见构建站点地图)。 - 每篇内容只对应一个 URL,并让重定向、规范标记、站点地图和内部链接保持一致。
- 对已删除的页面返回真正的 404 或 410,而不是返回状态码为 200 的空白页。
- 只有规模很大时才需要关注抓取预算。 Google 的抓取预算指南面向的是页面数超过一百万且每周都会更新的网站,或页面数超过 10,000 且每天都会更新的网站。
AutoPSEO 如何提供帮助
AutoPSEO 可在应用内直接运行 URL 检查,并计入 Google 对每个资源每天 2,000 次检查的额度。Index Tracker 会保存一份由你选择的、最多 1,800 个 URL 的列表,并每天重新检查其中最多 200 个,优先检查最久未检查的。当某个 URL 在过去 30 天内被移出索引,或已有 120 天未被抓取时,它会发出提醒;当被跟踪的 URL 从索引中消失或重新回到索引时,它还可以通过 Slack、Teams 或 webhook 发出“Index flip”提醒。IndexNow 会通知 Bing 以及其他支持它的搜索引擎;Google 不参与 IndexNow,因此对 Google 而言,站点地图和内部链接仍然是主要的发现途径。
内容引擎撰写的文章会交付到你自己的网站,由你的网站像发布其他页面一样发布并建立链接。当你的网站声明了 IndexNow 密钥时,AutoPSEO 会针对你主机上每个新增或更新的地址向 IndexNow 发送通知(参见交付)。