robots.txt正确写法与SEO配置完整指南

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

robots.txt是网站与搜索引擎爬虫之间的通信协议文件,用于告知爬虫哪些页面可以抓取、哪些不能。配置得当能提升爬虫效率,配置错误则可能导致重要页面被屏蔽或爬虫资源浪费。本文从文件规范到常见场景,逐步讲解严谨可用的robots.txt写法。

1. 文件基础格式与放置要求

robots.txt必须放置在网站根目录下,文件名严格全小写,例如 https://example.com/robots.txt。文件使用纯文本格式,每条指令独立一行,以换行符分隔。注释以井号开头,可放在行首或行尾,用于备注规则用途。

典型的文件结构包含User-agent和Disallow/Allow指令。User-agent指定针对的爬虫名称,可写具体名称或通配符*表示所有爬虫。Disallow声明禁止抓取的路径,Allow声明允许抓取的路径。优先级上,具体路径比通配符路径优先,Allow比Disallow优先。

每个User-agent块只能包含一条User-agent行,其后可以跟随多条Disallow和Allow行。空行表示一个块的结束。错误格式可能导致爬虫忽略整个文件或误读意图。

2. 常用指令详细解析

2.1 User-agent与爬虫识别

针对不同爬虫设置不同规则:Googlebot对应Google搜索,Bingbot对应必应,Baiduspider对应百度。通过user-agent名称精确控制。若希望所有爬虫统一遵守规则,使用User-agent: *。

使用Disallow: /表示禁止所有爬虫抓取整个网站,仅用于开发或测试环境。生产环境几乎不会使用此规则。

2.2 Disallow与Allow的正确写法

路径必须使用斜杠开头,例如Disallow: /admin/ 而不是 admin/。Allow用于在禁止的路径中开放子路径,例如对Googlebot禁止整个/admin/但允许/admin/public/。若多个规则冲突,以最具体路径为准。

路径以/结尾表示目录,否则表示文件或路径前缀。例如Disallow: /temp 会禁止/temp、/template等以temp开头的路径,而/temp/只禁止此目录。

2.3 Crawl-delay爬取延迟

部分爬虫(如Bingbot、Yandex)支持Crawl-delay指令,单位为秒。用于控制爬虫访问间隔,减少服务器压力。但Googlebot已不再支持此指令,需在Google Search Console中设置抓取速率。

示例:Crawl-delay: 10 表示两次抓取间隔至少10秒。若目标爬虫不支持此指令,该行会被忽略,不影响其他规则。

2.4 Sitemap声明

在文件末尾或任意位置,使用Sitemap指令列出XML站点地图的完整URL。例如Sitemap: https://example.com/sitemap.xml。这条指令不归属任何User-agent块,爬虫读取后会优先抓取地图中的内容。

建议在robots.txt中声明所有站点地图,包含主地图、图片地图、视频地图等。Google、百度等主流爬虫均支持此机制,能加快新页面收录速度。

3. 常见场景与实用写法

建议在配置完成后,使用Google Search Console的“robots.txt测试工具”或百度搜索资源平台的验证功能,检查规则是否按预期生效。

4. 常见错误与避坑指南

5. 常见问题

5.1 问题1:robots.txt是否可以禁止所有搜索引擎爬虫?

可以。在文件中写入User-agent: * 后跟Disallow: /,即可禁止所有遵守robots.txt协议的爬虫。但恶意爬虫或黑客可能会忽略此文件。同时,即使禁止抓取,已公开页面仍可能在其他网站被引用。

5.2 问题2:如果不想某个页面被索引,只靠robots.txt够吗?

不够。robots.txt仅阻止爬虫抓取,无法阻止爬虫将页面URL纳入索引(例如通过外链发现)。若希望页面彻底不被索引,需同时使用noindex meta标签或X-Robots-Tag HTTP头。两者配合才是完整方案。

5.3 问题3:修改robots.txt后,爬虫多久生效?

爬虫在下次抓取robots.txt时会读取新内容。Google通常会在24-48小时内重新抓取,并立即生效。其他爬虫的时间可能更长。若需紧急更改,可在Google Search Console中请求重新抓取robots.txt。

6. 总结

robots.txt的写法核心在于明确每个目录或路径的意图,保证文件格式正确、路径大小写一致、块间空行清晰。优先使用简单的前缀路径,避免复杂通配符,同时配合Crawl-delay和Sitemap指令提升爬虫效率。检查工具验证后发布,并定期根据网站结构变化更新规则。若需彻底禁止索引,务必加用noindex头,防止URL仍被收录。

图1 图2

nginx