搜索引擎爬虫访问一个站点时,通常会先读取根目录下的 robots.txt 文件。这份纯文本协议如同网站与爬虫间的约定,用于告知哪些路径允许被抓取、哪些路径应当屏蔽。配置得当的 robots.txt 能避免后台目录和临时文件被索引,同时引导爬虫将抓取配额优先用于核心内容。
robots.txt 必须存放于网站根目录,例如域名是 example.com,则文件路径为 example.com/robots.txt。文件需使用 UTF-8 编码,指令逐行书写,且路径区分大小写。
一份完整配置通常包含以下字段:
示例配置:
User-agent: *
Disallow: /admin/
Allow: /admin/help/
Sitemap: https://example.com/sitemap.xml
该配置表示允许所有爬虫访问,但 /admin/ 目录被屏蔽,仅 /admin/help/ 例外。需要特别留意:由于 Allow 指令的支持度有限,若某目录已被 Disallow 禁止,不要依赖 Allow 来解除限制,更严格的规则会优先执行。
网站类型和业务阶段不同,对爬虫的开放策略也应有所区分。以下方案可覆盖大多数常见需求。
对于新闻门户、博客或新品展示页,通常希望搜索引擎尽可能多地收录。可将 Disallow 留空:
User-agent: *
Disallow:
省略 Disallow 行亦可达到同样效果。此场景下最常见的失误是将值误写为 /,这会导致所有爬虫停止抓取,收录工作随即中断。
网站未上线或处于改版期间,不希望内容被搜索引擎收录。可设置:
User-agent: *
Disallow: /
此外,建议同时在响应头中设置 X-Robots-Tag: noindex,作为双重保险。线上环境务必检查 robots.txt,避免误留此配置。
若需屏蔽某个具体的爬虫,将 User-agent 替换为对应的爬虫名称即可,例如屏蔽特定抓取工具:
User-agent: SomeBot
Disallow: /
若要禁止抓取图片或 PDF 等资源,可在 Disallow 中指明文件后缀路径,例如:
User-agent: *
Disallow: /*.pdf$
需要留意:不同爬虫对通配符的支持程度不一,正规搜索引擎(如 Google)支持 * 和 $ 符号,但部分小型爬虫可能忽略这些规则。
以下问题在实际部署中较为常见,值得提前防范:
配置完成后并非万事大吉,建议采用以下方式确认效果:
两者在功能上等价,均表示允许所有爬虫抓取整个站点。留空的好处是让阅读者明确知道这是有意为之,而非遗漏。
不能。robots.txt 只控制抓取行为,不影响已收录页面的展示。若需彻底移除,应配合使用 noindex 标签或通过站长工具提交删除请求。
非必须,但建议添加。它能为爬虫提供清晰的页面清单,尤其适合新站或页面层级较深的站点,能显著提升收录效率。
合理配置 robots.txt 是网站 SEO 的基础工作之一。建议先明确站点的开放策略,再按本章提供的语法规则编写配置,并优先考虑 Sitemap 声明。配置完成后,务必实测抓取效果,避免因细节疏漏导致整站无法被索引。