Robots.txt文件写法:正确设置规则提升网站抓取效率

📍 WDQWDWQD987AAAAA:216.73.217.34
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /2ec3d874a944.html
📄

Robots.txt是网站与搜索引擎爬虫之间的基础通信文件,它告诉爬虫哪些页面可以抓取、哪些应该避开。正确编写这个文件能帮助搜索引擎更高效地收录有价值的内容,同时保护后台或重复页面不被索引。本文从基础语法到常见场景,提供可直接套用的写法。

1. Robots.txt基本结构与语法

一个标准的Robots.txt文件放在网站根目录下,例如 https://example.com/robots.txt。它由若干条记录组成,每条记录以 User-agent 开头,后面跟允许或禁止的规则。

最重要的指令是 Disallow 和 Allow。Disallow 指定不允许爬取的路由,Allow 在Disallow范围内开放特定路径。另外 Sitemap 指令用于向爬虫声明XML站点地图的位置。

一个最精简的示例:

User-agent: * Disallow:

这表示对所有爬虫完全开放,不限制任何路径。若想禁止所有爬虫,则写为:

User-agent: * Disallow: /

注意:Disallow 的路径以根目录开始,末尾不要随意加空格或多余字符。每行只能一个指令,空行表示一条记录结束。

2. 常见场景的Robots.txt写法

2.1 禁止爬取整个后台目录

网站后台或管理面板不应被搜索引擎收录,通用写法如下:

User-agent: * Disallow: /admin/ Disallow: /wp-admin/

如果后台路径有自定义,务必替换为实际路径。例如网站后台位于 /cpanel/,则改为 Disallow: /cpanel/。

2.2 只允许抓取特定目录

当你想屏蔽除某个目录外的所有内容,可以先全部禁止,再用 Allow 开放个别路径:

User-agent: * Disallow: / Allow: /public/ Allow: /articles/

这里允许爬虫抓取 /public/ 和 /articles/ 下的内容,其余路径都会被禁止。

2.3 禁止抓取特定文件类型

对于网站中包含的PDF、图片或视频文件,有时不希望被抓取以减少带宽消耗,可以使用通配符(大多数搜索引擎支持):

User-agent: * Disallow: /*.pdf$ Disallow: /*.zip$ Disallow: /*.mp4$

$ 符号表示路径必须以该扩展名结尾。注意并非所有爬虫都支持正则,但主流的Google、Bing均已支持这种写法。

3. 针对不同搜索引擎的单独规则

你可以为不同爬虫设定差异化的规则。例如禁止百度抓取测试页面,但允许Google:

User-agent: Baiduspider Disallow: /test/ User-agent: Googlebot Allow: /test/

每条 User-agent 开头开始一条新的记录,顺序从上到下匹配。通常把更具体的爬虫放在前面,默认的 * 放在最后作为兜底规则。

常见搜索引擎的User-agent值:Googlebot(Google)、Bingbot(Bing)、Baiduspider(百度)、Slurp(Yahoo)、YandexBot(Yandex)。

4. Robots.txt与Sitemap配合

在文件末尾加上站点地图路径有助于爬虫更快发现所有页面:

Sitemap: https://example.com/sitemap.xml Sitemap: https://example.com/news-sitemap.xml

如果网站有多个sitemap,可以声明多行。注意URL必须是完整且可访问的,不能使用相对路径。

一个完整且功能清晰的Robots.txt示例如下:

User-agent: * Disallow: /private/ Disallow: /temp/ Allow: /public/ User-agent: Googlebot Disallow: /temp/ User-agent: Baiduspider Disallow: /private/ Disallow: /temp/ Disallow: /test/ Sitemap: https://example.com/sitemap_index.xml

这个文件对普通爬虫禁止 /private/ 和 /temp/,但对Googlebot放宽了 /temp/ 的访问,同时为百度单独增加了禁止 /test/ 的规则。

5. 常见问题

5.1 问题1:修改Robots.txt后多长时间生效?

搜索引擎会在下次抓取该文件时自动更新规则,通常需要几个小时到两天不等。你可以通过Google Search Console的“测试Robots.txt”工具验证当前文件是否解析正确。

5.2 问题2:Robots.txt能阻止页面被彻底删除或禁止收录吗?

不能。Robots.txt仅控制爬虫是否抓取,被禁止的页面仍可能通过外部链接被索引,只是不会抓取内容。要彻底阻止收录,应配合使用 noindex meta标签或HTTP响应头。

5.3 问题3:Robots.txt文件写错了会不会导致网站被惩罚?

不会直接导致惩罚,但错误的规则可能屏蔽重要页面,导致收录减少或重要内容不被抓取。例如不小心禁止了整个根目录,会使网站完全从搜索结果中消失。因此修改文件后建议先通过工具测试,并监控搜索引擎的覆盖报告。

6. 总结

编写Robots.txt的关键是明确哪些内容值得抓取、哪些需要保护。常见的做法包括:为后台和管理路径设置Disallow、对敏感文件类型使用通配符、不同爬虫区别对待、并始终在文件末尾声明Sitemap位置。上线前务必用官方工具验证语法和路径准确性,避免因规则错误影响网站自然搜索表现。

图1 图2

nginx