SEO 抓取预算 - 终极指南
抓取预算是 Googlebot 可以在指定网站上抓取的 URL 数量。有效利用抓取预算是提高你的网站在 Google 上的知名度的关键因素之一。
如果你的页面没有被抓取,它们将不会被编入索引并显示在搜索结果中。
文章目录
为什么存在抓取预算?
万维网几乎是无限的,但 Google 的资源是有限的。抓取网络并选择有价值的页面是 Google 面临的主要挑战之一。
最重要的是,一些网站的服务器无法处理广泛的抓取。
这对你来说意味着 Google 默认情况下不会访问你网站上的每个页面。Googlebot 只能抓取它认为足够重要的网址。
为什么 Google 不只访问网络上的每个页面?
- Google 的资源有限。网络上有很多垃圾邮件,因此 Google 需要开发机制,使其能够避免访问低质量的页面。Google 会优先抓取最重要的页面。
- Googlebot 旨在成为网络的好公民。它限制爬行以避免您的服务器崩溃。对于 Google,最好跳过或延迟访问你的某些 URL,而不是使你网站的服务器崩溃。
有什么风险?
抓取和索引编制的工作原理
要了解抓取预算,我们必须了解 Google 如何抓取特定网站。此过程由三个因素决定:
- 抓取速率限制 – Google 可以抓取的 URL 数量。
- 调度 – 应该抓取哪些 URL 以及何时抓取。
- 抓取需求 – Google 想要抓取的 URL 数量。
抓取速率限制
抓取速度是 Googlebot 可能用于抓取网站的“并行连接的数量,以及两次抓取之间必须等待的时间。”
由于 Webmaster Central 博客指出“Googlebot 旨在成为网络的好公民”,因此 Googlebot 必须考虑你服务器的容量,确保在抓取你的网站时不会使其超载。
Google 会根据你服务器的响应调整抓取速度。速度越慢,抓取速度越低。
调度
抓取需求
- 受欢迎程度 – 经常在 Internet 上共享和链接的 URL 将被认为更重要,因此被 Googlebot 抓取的机会更大。 根据 Google 的“最小化网页搜索中过时内容的可见性,包括修改文档的网页抓取间隔”专利,该 URL 的受欢迎程度是两个因素的组合:浏览率和 PageRank。
- 过时 – 一般来说,新鲜内容比多年来没有太大变化的页面具有更高的优先级。
为什么抓取预算如此重要
作为 SEO 专家,我可以同意抓取速度优化主要对大型网站(例如大型电子商务商店)有益。根据我们的经验,如果一个网站包含超过 100K 个 URL,几乎可以肯定它会遇到严重的抓取问题,我们通常会在针对此类网站的技术 SEO 服务中包括抓取预算优化。如果你拥有一个大型网站,你当然应该注意抓取预算。
如果你有一个较小的网站...
在许多情况下,你可以不关心抓取预算。问题是,除非你真正开始调查此事,否则你不会意识到这种情况。
即使一个网站乍一看很小,但实际上它可能包含数以万计的 URL。使用分面导航可以轻松地将 100 个页面转换为 10000 个唯一的 URL。
内容管理系统中的错误也可能产生有趣的结果。我最近遇到了一个网站,该网站主要由主页副本和报价页面的副本组成。这一切都是因为定制的 CMS 没有处理不存在的 URL 的解决方案。
深入了解Googlebot如何抓取你的网站
为了优化你网站的抓取预算,你需要确定哪些问题正在影响它。有几种方法可以深入了解 Googlebot 在你的网站中实际抓取的内容。
Google Search Console 谷歌搜索控制台
- 概述将以图表的形式向你显示效果,编制索引,体验,购物,增强功能等。
- “编制索引”报告将告诉你 Googlebot 访问了网站的哪些部分。这包括已编入索引的 URL 和从索引中排除的页面(即未编入索引,由于规范或 noindex 元标记或其他原因)。
- “体验”报告将呈现核心网页指标,分别是移动设备端和桌面端,你网站的用户体验情况,这些反映了全球各地用户在你网站上的实际使用情况数据。
Server Logs Analysis 服务器日志分析
服务器日志文件包含有关你网站的每个访问者的条目,包括 Googlebot。通过分析你的服务器日志,你可以找到有关 Google 实际抓取的内容(包括所有 JS、CSS、图像和其他资源)的确切信息。
如果 Googlebot 没有抓取有价值的内容,而是误入歧途,日志文件分析会告诉你相关信息,以便你做出相应的反应。 要获得具有代表性的样本,你需要提取至少三周的日志数据(最好更多)。日志文件可能会变得非常大,因此你应该使用适当的工具来处理它们。 幸运的是,存在这样的专用软件:
- Screaming Frog 的 SEO 日志文件分析器
- 许多 SEO 爬虫,例如 Deepcrawl、Botify、JetOctopus 都有用于服务器日志分析的专用模块。
另一种选择是使用 Splunk。它很昂贵,但你可以免费下载试用版,对文件大小或条目数量没有限制。试用版对于单个 SEO 项目来说应该足够了。
如何识别正确的用户?
由于日志文件包含每个访问者的条目,因此你需要能够仅提取有关 Googlebot 的数据。但是怎么做呢?
如果你的想法是根据其 user-agent 字符串来决定,恐怕这是错误的答案。
由于每个人都可以假装是 Googlebot(只需在 Chrome 开发者工具中更改 UA 字符串),因此最好的方法是按 IP 过滤 Googlebot。
Googlebot 的 IP 通常以“66.249”开头。
在 SERVER 日志分析期间应该寻找什么?
- 状态代码。健康的日志应主要由状态 200 和 301 组成(如果您使用缓存策略,也可能出现 304)。如果任何其他状态代码出现大量,那么是时候担心了。你应该查找 404、401 和 403 页面,以及 5xx 错误。后者可能表示你的服务器存在严重的性能相关问题。大量的 5xx 错误清楚地表明 Google 的服务器无法处理 Googlebot 的抓取请求。因此,抓取过程将受到限制,并且 Googlebot 可能无法抓取你网站的所有页面。
- 网站最常抓取的部分。你应该检查哪些目录和页面的访问量最大。理想情况下,机器人应该主要抓取你最有价值的内容所在的部分。例如,如果你有一个电子商务网站,你希望它访问产品和类别页面。Googlebot 通常会访问许多低质量的 URL,这些 URL 对你的域几乎没有价值。
- URL 参数。通过调查服务器日志,可以轻松识别你网站上正在使用的所有 URL 参数。这将允许你在 GSC 中配置机器人行为。不会改变页面内容的参数(例如按价格、受欢迎程度排序等)可以阻止在你的 Google Search Console 中抓取。
如何优化抓取预算
ROBOTS.TXT
优化机器人预算的最简单方法是使用 robots.txt 文件简单地排除你网站的某些部分,使其不被 Google 抓取。如果你不确定 robots.txt 是什么,我强烈建议你查看有关 robots.txt 的 Google 官方文档。你也可以阅读这个 关于这个主题的终极指南。
例如,在对我们的一个客户进行日志分析期间,我们发现机器人没有抓取服务提供,而是急切地花时间访问不相关的日历页面。robots.txt中的“Disallow: /profile-calendar”解决了这个问题。
注意事项:
- robots.txt 中的 Disallow: 指令不会阻止该页面被索引。它只会阻止内部链接对某个页面的访问。但是,如果机器人从外部来源抓取访问它的 URL(在它可以检查 robots 指令之前),该页面仍然可能被索引。如果你希望某个页面不出现在 Google 索引中,你应该使用 meta robots 标签。
- 绝不应禁止对页面正确呈现至关重要的资源路径(例如 CSS 和 JS)。机器人必须能够看到页面的完整内容。
- 创建 robots.txt 文件后,请记住通过 Google Search Console 将其提交给 Google。
- 在不允许和允许某些目录和路径的同时,很容易把事情搞砸并意外阻止必要的 URL。因此,应该使用专用工具来检查你的指令集。
SITEMAP.XML
根据 Google 的 Gary Illyes 的说法,站点地图 XML 是 Google 发现页面的第二种最佳方式(第一显然是链接)。这不是一个巨大的发现,因为我们都知道正确创建的 sitemap.xml 文件将作为 Googlebot 的反馈。它可以在那里找到你网站的所有重要页面,并注意到最近的更改。因此,保持你的站点地图新鲜且没有错误至关重要。
单个站点地图文件包含的 URL 不应超过 50000 个。如果你网站上唯一、可索引的页面数量更多,你应该创建一个站点地图索引,其中包含指向多个站点地图文件的链接。如以下示例所示:
- www.yourdomain.com/sitemap_index.xml
- www.yourdomain.com/sitemap_1.xml
- www.yourdomain.com/sitemap_2.xml
- www.yourdomain.com/sitemap_3.xml
合适的站点地图应包含:
- 返回 HTTP 状态代码 200 的 URL;
- 具有 meta robots 标签的 URL:index、follow;(或其他由于某种原因没有指定这些标签的可索引 URL)
- 规范页面(换句话说,不规范化到其他页面)
根据 Google 专利,在站点地图中使用其他参数也可能是有益的,例如:
- 更改频率。
- 优先权。
- 上次修改日期。
你可以使用 Google Search Console 将 Google 指向你的站点地图。在 robots.txt 文件中放置指向你的站点地图的链接也被认为是一种很好的做法,例如:“Sitemap: http://www.yourdomain.com/sitemap_index.xml”
后续步骤
如果SEO技术方面遇到困难,请考虑访问我们的技术SEO服务。
影响抓取预算的常见问题以及如何解决这些问题
JS 和 CSS 文件
Googlebot 为呈现你的网页而需要获取的每项资源都会计入你的抓取预算。
要缓解这种情况,请确保 Google 可以缓存这些资源。避免使用缓存无效化 URL(经常更改的 URL)。
还可以使用高级技术来减少脚本的负面影响,例如代码拆分。这样,可以仅向 Google 发送必要的代码,从而减少资源消耗的渲染过程。
服务器性能差
如前所述,抓取速度会根据你的服务器功能进行调整。网站性能不佳会导致服务器很容易过载,从而导致从 Googlebot 收到的访问次数减少。我们观察到每天抓取的页面数量与下载页面所花费的时间之间存在直接关联。
内部重定向
如何处理内部重定向
- 使用 Ryte、DeepCrawl、SiteBulb 或 Screaming Frog 等众多工具之一对您的网站进行全面爬取。
- 抓取后,识别该工具遇到的重定向URL,以及放置给定链接的源页面。在Screaming Frog中,可以使用批量导出>响应代码>重定向(3XX)链接进行重定向,并使用重定向和规范链报告来查找重定向链:
- 更新在源页面上找到的链接,以便它们都直接指向目标 URL(HTTP 状态代码 200)。
不良的信息架构
Duplicate pages 重复页面
在多个页面上复制内容不仅会导致重复内容问题,而且还会对爬网产生负面影响,因为重复页面会占用抓取计划中的空间。有几类重复内容值得解决:
使用规范链接的不必要的非规范链接本身并不是一件坏事。事实上,Google 推荐它作为处理重复内容的一种方式。但是,您必须记住,每个规范化页面都是有问题的(当机器人可能会花费这些时间访问更有价值的页面时,为什么要抓取重复页面呢?此外,在访问重复内容时,机器人需要将其与规范页面进行比较,并确保它确实是重复内容。这会导致向服务器发送另一组不必要的请求。
因此,你应该始终问自己以下问题,看看是否真的需要重复页面:
- 它能改善导航吗?
- 它有什么实际用途吗?
- 用规范页面替换它会产生任何问题吗?
如果所有答案都是否定的,那么也许你应该考虑删除重复的页面,并将所有内部链接替换为指向规范页面的链接。在这种情况下,还应该记住将已删除页面的 URL 重定向(通过使用 HTTP 状态代码 301)到原始页面。
只有在绝对必要的情况下,您才应该在网站的架构中保留重复的非规范页面。类似的原则也适用于未编入索引的页面,因为大量的页面也会影响抓取预算。
然后是随机重复。有时你甚至可能没有意识到你的网站包含许多重复的页面。这可能是错误、错误实现的结果,也可能只是由 CMS 处理 URL 的方式引起的。
这可以通过在 Google 搜索中键入 site:yourdomainname.com 并深入研究索引来轻松识别。或者直接转到您的 GSC>编入索引>页面>未编入索引, 并查找重复的内容。
如果找到的页面数量让你感到惊讶,首先需要弄清楚它们为什么在那里。然后,必须采取以下几项措施:
- 通过在代码中放置 noindex, follow meta 标记来取消索引重复 项。暂时不要在 robots.txt 中阻止它们,因为这会阻止机器人重新访问和取消索引页面。
- 只有在所有有问题的页面都已取消索引后,你才应该在 robots.txt 中阻止适当的路径。
- 之后,你应该从网站中删除有问题的页面,并将已删除的 URL 重定向到规范版本。
如果你有从未被索引或没有从外部来源获得任何链接的重复项,你可以简单地删除它们并使用状态代码 410,而不是重定向。
无限空格
还记得我之前提到的日历问题吗?那个日历每个月都有一个唯一的 URL。在每个月份的页面上,只有两个链接:第一个链接指向上一个月的页面,另一个链接指向下一个月的页面。你可以浏览到黑暗时代(如果你有耐心的话),或者预订 2100 年 4 月 1 日的服务。因此,Googlebot 只需顺着链接进入下一个月,就可能陷入无限的爬行过程。这就是无限空格的一个完美例子。
如果你的网站当前包含无限空间,你应该首先考虑是否真的需要此类页面。如果没有,删除后,让它们返回 HTTP 状态码 410。如果需要这些无限空格,则必须确保机器人无法抓取或索引页面:
- 将 noindex 标签放在 HTML 代码中;
- 如果没有页面被索引,你可以阻止 robots.txt 中的无限空格。如果某些页面已被编入索引,则首先你必须等待 Google 从索引中删除这些页面。只有这样,你才应该在 robots.txt 中阻止路径。
不良的内部链接
内部链接会创建 Googlebot 用来导航你网站的路径,而完善的链接结构将确保有效地抓取你的宝贵内容。另一方面,缺乏内部链接可能会导致 Google 不愿意抓取网站的某些部分。
在设计内部链接结构时,你应该避免以下常见陷阱:
- 链接到“未找到 (404)”错误网页 – 不希望将 Googlebot 发送到不存在的网页。
- 孤岛页面 – 存在于站点地图中但尚未在内部链接的页面。Googlebot 可能会决定不经常访问它们。
- 点击路径较长的页面 – 确保最重要的内容距离你最强的页面(在大多数情况下,将是主页)不超过三次点击。我们已经知道,对于 Google 来说,给定页面在网站架构中的位置远不如点击路径重要。
- 垃圾链接 – 通常放置在页脚部分或页面底部,数十个链接的锚文本中塞满了关键字。此类链接在很大程度上会被 Googlebot 忽略,并且不会为你的页面增加任何价值。
可视化内部链接的结构可以帮助你确定可以改进的领域。但是,一些流行的 SEO 爬虫,如 Screaming Frog、SiteBulb 和 Website Auditor 也启用了此类功能。
在改进内部链接结构时,你应该遵循以下最佳实践:
- 你最重要的页面应该获得最多的内部链接。
- 链接到相关主题(如果是文章)或相关产品/类别(在电子商务商店中)。让你的内容被发现;确保这些链接真正连接相关内容——以满足用户和 Googlebot 的需求。
- 文章中的上下文链接为用户和搜索引擎都增加了价值(Googlebot 将使用锚文本来更好地了解网站的结构);
- 不要过度优化 – 锚文本应该是自然且信息丰富的,不要用不必要的关键字填充它。
- 不要只是在页面上塞满链接 – 确保它们为用户增加实际价值。
SITEMAP 中的错误/缺少 XML SITEMAP
如果你的网站目前没有 XML 站点地图,你绝对应该根据我在文章前面描述的指南构建一个,并通过 GSC 将其发送给 Google。由于它将帮助 Googlebot 发现新内容并安排抓取,因此你必须确保文件中列出了所有独特的、可索引的页面。此外,你应该始终保持站点地图的新鲜度。
查看你的站点地图结构是否正确的最好方法是使用 SEO 爬虫。大多数可用工具(包括 Screaming Frog、SiteBulb、Ryte、Deepcrawl)都会为你提供在执行完整爬取时分析站点地图的选项。
结束语
希望以上,你对抓取过程有一个很好的了解。从本文中获得的所有信息都可以在你的网站上使用。如果坚持最佳实践,无论你的网站有多少个 URL,你都将确保高效抓取。请记住,你的网站越大,抓取预算就越重要。