robots.txt
文件会告知搜索引擎可以抓取您网站上的哪些网页。无效的 robots.txt
配置可能会导致两种类型的问题:
- 它可能会阻止搜索引擎抓取公开网页,从而导致您的内容在搜索结果中出现的频率降低。
- 它可能会导致搜索引擎抓取您可能不希望显示在搜索结果中的网页。
Lighthouse robots.txt
审核如何失败
Lighthouse 标记了无效的 robots.txt
文件:
展开报告中的robots.txt
无效审核项,了解您的 robots.txt
出了什么问题。
常见错误包括:
No user-agent specified
Pattern should either be empty, start with "/" or "*"
Unknown directive
Invalid sitemap URL
$ should only be used at the end of the pattern
Lighthouse 不会检查您的 robots.txt
文件是否位于正确的位置。该文件必须位于您的网域或子网域的根目录中,才能正常运行。
如何解决“robots.txt
”的问题
确保 robots.txt
不会返回 HTTP 5XX 状态代码
如果您的服务器针对 robots.txt
返回服务器错误(HTTP 状态代码,代表 500),搜索引擎将不知道应抓取哪些网页。它们可能会停止抓取您的整个网站,这会导致新内容无法被编入索引。
如需检查 HTTP 状态代码,请在 Chrome 中打开 robots.txt
,然后在 Chrome 开发者工具中查看请求。
使 robots.txt
小于 500 KiB
如果文件大于 500 KiB,搜索引擎可能会在过程中停止处理 robots.txt
。这可能会给搜索引擎带来混淆,进而导致系统无法正确抓取您的网站。
为了使 robots.txt
保持较小的规模,请减少在单独排除的网页上关注度,而将更多精力放在更宽泛的格式上。例如,如果您需要禁止抓取 PDF 文件,请勿禁止单个文件。而应使用 disallow: /*.pdf
禁止所有包含 .pdf
的网址。
修正所有格式错误
robots.txt
仅允许空行、注释和指令与“name: value”格式匹配。- 请确保
allow
和disallow
值为空或者以/
或*
开头。 - 不要在值中间使用
$
(例如allow: /file$html
)。
确保包含“user-agent
”的值
用来告诉搜索引擎抓取工具应遵循哪些指令的用户代理名称。您必须为 user-agent
的每个实例提供一个值,以便搜索引擎知道是否遵循一组相关的指令。
要指定特定的搜索引擎抓取工具,请使用其已发布列表中的用户代理名称。(例如,请查看 Google 的抓取用户代理列表。)
使用 *
匹配所有不匹配的抓取工具。
user-agent: disallow: /downloads/
未定义用户代理。
user-agent: * disallow: /downloads/ user-agent: magicsearchbot disallow: /uploads/
其中定义了常规用户代理和 magicsearchbot
用户代理。
请确保 user-agent
前面没有 allow
或 disallow
指令
用户代理名称定义 robots.txt
文件的各个部分。搜索引擎抓取工具会使用这些部分来确定要遵循的指令。如果您在第一个用户代理名称前添加一条指令,那么任何抓取工具都不会遵循该名称。
# start of file disallow: /downloads/ user-agent: magicsearchbot allow: /
任何搜索引擎抓取工具都不会读取 disallow: /downloads
指令。
# start of file user-agent: * disallow: /downloads/
禁止所有搜索引擎抓取 /downloads
文件夹。
搜索引擎抓取工具只会遵循用户代理名称最具体的部分中的指令。例如,如果您有针对 user-agent: *
和 user-agent: Googlebot-Image
的指令,则 Googlebot 图片将仅遵循 user-agent: Googlebot-Image
部分中的指令。
为 sitemap
提供绝对网址
站点地图文件是让搜索引擎了解您网站上网页的好方法。站点地图文件通常包含您网站上的网址列表,以及有关上次更改时间的信息。
如果您选择在 robots.txt
中提交站点地图文件,请务必使用绝对网址。
sitemap: /sitemap-file.xml
sitemap: https://example.com/sitemap-file.xml