robots.txt 是一个用来指示搜索引擎爬虫如何爬取网站的工具,管理它对 SEO 很重要。正如 Google 所说,它并非万能的 – “它不是阻止网页被 Google 收录的机制”,但可以防止爬虫请求过多导致服务器过载。使用时需确保设置正确,特别是对动态 URL 等可能生成大量页面的情况。
在本指南中,我将探讨最常见的 robots.txt 问题,它们会对你的网站和搜索造成什么影响,以及发生这些问题时该如何修复它们的方法。
什么是 robots.txt?
Robots.txt 是一个放在网站根目录的纯文本文件,必须放在顶层目录,如果你将其放在子目录中,搜索引擎会忽略它。尽管功能强大,但它通常是一个简单的文档,使用像 Notepad 这样的编辑器在几秒钟内就可以创建一个基本的 robots.txt 文件,你也可以添加一些额外的信息供用户发现。
实现 robots.txt 通常用途的其他方法包括:
- 网页代码中的 robots 元标签
- X-Robots-Tag HTTP 标头来影响内容在搜索结果中的显示方式和是否显示
robots.txt 的功能
robots.txt 可以在不同类型的内容上实现多种效果:
- 可以阻止网页被爬取:
尽管这些页面可能仍会出现在搜索结果中,但它们不会显示文字描述,页面上的非 HTML 内容也不会被爬取。 - 可以阻止媒体文件 (如图片、视频和音频) 出现在 Google 搜索结果中:
尽管这些文件仍然可以在网上查看和链接,但它们不会在 Google 搜索中显示。 - 可以阻止资源文件 (如不重要的外部脚本) 被爬取:
但是,这意味着如果 Google 爬取需要这些资源才能加载的页面,Googlebot 机器人会“看到”一个没有这些资源的页面版本,这可能就会影响页面的索引。
你不能使用 robots.txt 完全阻止一个网页出现在 Google 的搜索结果中。要实现这一点,你需要使用其他方法,例如在页面的头部添加 noindex (不索引) 元标签 (一种 HTML 元标签,用于指示搜索引擎爬虫不要索引特定的网页或内容,从而防止这些页面出现在搜索引擎结果页面(SERPs)中)。
robots.txt 错误有多危险
robots.txt 文件中的错误可能会导致意外后果,但通常不会造成严重问题。通过修复你的 robots.txt 文件,通常你完全就可以快速恢复任何错误。
Google 对开发者的指导:
“网络爬虫通常非常灵活,通常不会因为 robots.txt 文件中的小错误而受到影响。最坏的情况是,错误的或不受支持的指令会被忽略。
Google 解释 robots.txt 文件没有读心术,只能理解获取到的 robots.txt 文件。也就是说,如果你意识到 robots.txt 文件中的问题,通常很容易修复。“
8 个常见的 robots.txt 问题
- robots.txt 文件不在根目录
- 不当使用通配符
- 在 robots.txt 中使用了noindex
- 阻止了脚本和样式表的访问
- 没有包含网站地图 URL
- 允许访问开发站点
- 使用了绝对 URL
- 使用了已弃用或不受支持的元素
检查 robots.txt 文件是否有错误和过度限制规则,是解决网站在搜索结果中异常表现的关键步骤。
1. robots.txt 文件不在根目录
搜索引擎机器人只能在你的根目录中发现 robots.txt 文件。因此,在你的 robots.txt 文件的 URL 中,网站域名 (如 .com) 与文件名之间只能有一个斜杠。如果文件位于子文件夹中,搜索引擎机器人可能无法找到你的 robots.txt 文件,会导致你的网站像没有存在 robots.txt 文件一样。
要解决这个问题,需要将 robots.txt 文件移动到根目录。请注意,这需要你拥有服务器的根访问权限。一些内容管理系统默认会将文件上传到“media”子目录 (或类似目录),因此你可能需要绕过这一点,将 robots.txt 文件放置在正确的位置。
2. 不当使用通配符
robots.txt 支持两个通配符字符:
- 星号 (*):表示任何有效字符的任意出现,类似于纸牌中的百搭牌。
- 美元符号 ($):表示 URL 的结尾,允许你只对 URL 的最后部分(如文件类型扩展名)应用规则。
在使用通配符时,建议采取最简单的方式,因为通配符可能会对你网站的大部分内容增加限制。而且,不当使用星号 (*) 可能会导致整个网站被搜索引擎机器人屏蔽访问。可使用 robots.txt 测试工具检查通配符规则,确保其按预期运行,并谨慎使用通配符以防止意外地屏蔽或允许网站的访问权限。
3. 在 robots.txt 中使用了noindex (不索引)
这种情况会在已存在有几年的网站中常见。
从 2019 年 9 月 1 日起,Google 不再遵守 robots.txt 文件中的 noindex 规则。如果你的 robots.txt 文件是在该日期之前创建的或包含 noindex 指令,那么你可能会发现这些页面依旧出现在 Google 的搜索结果中。解决这个问题的方法可以实施一种替代的“noindex”方法 – 使用 robots 元标签,将其添加到你想阻止 Google 索引的任何网页的头部。
4. 阻止了脚本和样式表的访问
阻止爬虫访问外部 JavaScript 和级联样式表 (CSS) 可能看起来是合理的。但请记住,Googlebot 需要访问 CSS 和 JS 文件才能正确“查看”你的 HTML 和 PHP 页面。
如果你的页面在 Google 的结果中表现异常,或者 Google 似乎没有正确看到它们,检查是否阻止了爬虫访问所需的外部文件。解决这个问题最简单的方法是从你的 robots.txt 文件中删除阻止访问的行。或者,如果你确实需要阻止某些文件的访问,可以插入一个例外,恢复对必要的 CSS 和 JavaScript 的访问。
5. 没有包含网站地图 URL
这更多是关于 SEO 而非其他因素。
你可以在你的 robots.txt 文件中包含 XML 站点地图的 URL。因为这样,在 Googlebot 爬取你网站时可以帮助爬虫提前了解你网站的结构和主要页面。虽然这严格来说不是一个错误 – 因为省略站点地图不会对你的网站在搜索结果中的核心功能和外观产生负面影响,但如果你想增强 SEO 效果,在 robots.txt 中添加你的站点地图 URL,还是值得的。
6. 允许访问开发站点
禁止爬虫访问你正在开发中的网站是合理的做法,但在你的网站上线后,忘记取消这个禁止指令则是一个大忌。开发中的网站应在 robots.txt 文件中添加禁止指令,以防止未完成的网站被公众看到。但同样重要的是,在网站正式上线时,必须移除这一禁止指令。
忘记移除这行代码是网站开发者常犯的错误之一,可能导致你的网站无法正确被爬取和索引。如果你发现开发中的网站有实际访问量,或者你刚上线的网站在搜索中表现不佳,检查你的 robots.txt 文件中是否有以下禁止指令:
User-Agent: *
Disallow: /
如果发现了这个指令,但它不应该存在 (或者它应该存在但却没有),请立即修改你的 robots.txt 文件,并检查网站的搜索表现是否相应更新。
7. 使用了绝对 URL
在 canonical 和 hreflang 等标签中,使用绝对 URL 是正确的做法,但在 robots.txt 文件中,应该使用相对路径来指示网站的哪些部分不应该被搜索引擎爬虫访问。Google 的文档说明,相对路径更适合用在 robots.txt 中,因为使用绝对 URL 可能会导致搜索引擎爬虫无法正确理解指令,从而无法按预期屏蔽或允许访问指定的页面
8. 使用了已弃用或不受支持的元素
虽然多年来 robots.txt 文件的指南没有太大变化,但通常会包含两个元素:
- Crawl-delay (爬取延迟):虽然 Bing 支持该指令,但 Google 不支持,但许多网站管理员仍然会指定它。此前你可以在 Google Search Console 中设置爬取速度,但该功能在 2023 年底被移除。
- Noindex (不索引):Google 在 2019 年 7 月宣布停止支持 robots.txt 文件中的 noindex 指令。在此之前,网站管理员可以在 robots.txt 文件中使用 noindex 指令,但这并不是广泛支持或标准化的做法。更优选的方法是在页面级别使用内嵌的 robots 标签或 x-robots 指令。
如何修正 robots.txt 的错误
如果 robots.txt 文件中的错误对你的网站产生了不好的影响,第一步就是修正 robots.txt 文件,并确保它按照你的预期恢复。你不必等待都缩阴晴再次爬取你的网站,一些 SEO 工具可以有效的帮助你检测修改后的效果。
当你确认 robots.txt 文件正常工作后,可以尝试让搜索引擎尽快重新爬取你的网站。像 Google Search Console 和 Bing Webmaster Tools 这样的平台可以提交更新后的站点地图,并请求重新爬取那些被错误删除的页面。
不幸的是,你必须依赖 Googlebot 的爬取速度,但没有办法保证缺失的页面什么时候会重新出现在 Google 搜索索引中。你能做的就是尽量减少恢复时间,并不断检查直到 Googlebot 实施修正后的 robots.txt。
小结
处理 robots.txt 问题时,预防措施大于修正。比如误用通配符号可能会导致整个网站在 Google 中移除,因此你应该谨慎操作,最好由经验丰富的开发人员进行编辑以及双重检查。修改后应用到实际服务器前可在沙箱环境中测试,以防出错。若出现非常糟糕的情况问题,请冷静处理,迅速诊断、修复并重新提交站点地图,让搜索引擎进行新一轮的抓取,通常排名会在几天内恢复。
评论前必须登录!
立即登录 注册