菜鸟科技网

robots.txt怎么写才正确?

什么是 robots.txt?

robots.txt(又称“爬虫协议”或“机器人协议”)是一个存放在网站根目录下的纯文本文件,它的作用是告诉搜索引擎的爬虫(如 Googlebot, Baiduspider 等)网站中哪些页面可以抓取,哪些页面不能抓取

robots.txt怎么写才正确?-图1
(图片来源网络,侵删)

重要提示:

  • robots.txt 是一个建议,而不是一个强制命令,遵守良好爬虫协议的爬虫会遵循它,但恶意爬虫或不良爬虫完全可以忽略它。
  • 不能阻止页面被收录,如果你不希望某个页面被搜索引擎收录,应该使用 noindex 元标签或通过服务器配置进行身份验证保护。
  • 它是一个公开的文件,任何人都可以通过 https://www.yourdomain.com/robots.txt 查看你的配置。

robots.txt 的基本语法

robots.txt 文件由一个或多个“记录组”(Record)构成,每个记录组包含两行或更多行。

User-agent (必需)

这行指定了规则适用于哪个爬虫。

  • 代表所有爬虫。
  • Googlebot:仅适用于 Google 的爬虫。
  • Bingbot:仅适用于微软必应的爬虫。
  • Baiduspider:仅适用于百度的爬虫。

你可以为一个 User-agent 指定多条规则,也可以为多个 User-agent 指定相同的规则。

robots.txt怎么写才正确?-图2
(图片来源网络,侵删)

Disallow (可选)

这行告诉指定的爬虫不要抓取哪个 URL 路径。

  • 禁止抓取整个网站。
  • /private/:禁止抓取 /private/ 目录下的所有页面。
  • /secret-page.html:禁止抓取 /secret-page.html 这个特定页面。

Allow (可选)

这行告诉指定的爬虫可以抓取哪个 URL 路径,它通常用于在 Disallow 某个大范围路径后,允许其中的一个子路径。

  • /private/public/:虽然 /private/ 被禁止,但允许抓取 /private/public/ 目录。

Sitemap (可选)

这行用于指定网站的 XML 站点地图(Sitemap)的位置,这可以帮助爬虫更高效地发现你网站的所有页面。

  • Sitemap: https://www.yourdomain.com/sitemap.xml

书写规则与最佳实践

文件格式和位置

  • 文件名:必须是 robots.txt(全小写)。
  • 位置:必须存放在网站根目录下(https://www.yourdomain.com/robots.txt)。
  • 编码:建议使用 UTF-8 编码。

大小限制

robots.txt 文件的大小通常不应超过 500 KB,如果文件过大,搜索引擎可能无法完全处理它,对于大型网站,建议使用 robots.txt 生成工具来优化。

robots.txt怎么写才正确?-图3
(图片来源网络,侵删)

规则的优先级

robots.txt 中的规则是自上而下执行的,后面的规则可以覆盖前面的规则。

通配符的使用

  • 匹配任意字符序列(除路径分隔符 外)。
    • Disallow: /*.jpg:禁止抓取所有以 .jpg 结尾的文件。
  • 匹配字符串的结尾。
    • Disallow: /*.php$:禁止抓取所有以 .php 结尾的文件。

注意:并非所有搜索引擎都完全支持通配符,GoogleBing 支持较好。

注释

使用 来添加注释,解释某条规则的用途。

# 这是注释,说明下面的规则禁止所有爬虫访问管理员区域
User-agent: *
Disallow: /admin/

常见场景实例

场景1:允许所有爬虫访问整个网站

这是最简单的配置,适用于希望所有页面都被搜索引擎收录的网站。

User-agent: *
Disallow:

或者,Disallow: 留空也表示允许所有访问。

场景2:禁止所有爬虫访问整个网站

如果你想暂时将网站从搜索引擎中移除,可以使用这个配置。

User-agent: *
Disallow: /

注意:这并不能保证页面立即消失,已收录的页面需要搜索引擎重新抓取后才会被移除。

场景3:禁止所有爬虫访问特定目录或文件

禁止访问后台管理、用户数据、临时文件等目录。

User-agent: *
Disallow: /admin/
Disallow: /private/
Disallow: /tmp/
Disallow: /login.html

场景4:只允许特定爬虫访问

只允许 Googlebot 访问,禁止其他所有爬虫。

User-agent: Googlebot
Disallow:
User-agent: *
Disallow: /

场景5:针对不同爬虫设置不同规则

允许 Googlebot 和 Bingbot 抓取所有内容,但禁止其他爬虫。

# 允许 Google 和 Bing
User-agent: Googlebot
User-agent: Bingbot
Disallow:
# 禁止所有其他爬虫
User-agent: *
Disallow: /

场景6:使用 Allow 规则(高级)

假设你禁止了 /private/ 目录,但其中的 /public/ 子目录是公开的。

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

场景7:禁止抓取特定类型的文件

禁止爬虫抓取所有图片、PDF 和 JS 文件,以节省服务器带宽。

User-agent: *
Disallow: /*.jpg$
Disallow: /*.png$
Disallow: /*.gif$
Disallow: /*.pdf$
Disallow: /*.js$

场景8:移动端和桌面端适配

如果你的网站有针对不同设备的版本,可以引导爬虫访问正确的版本。

User-agent: Googlebot
Disallow:
User-agent: Googlebot-Mobile
Disallow:
User-agent: *
Disallow: /

这个配置告诉 Google 的桌面和移动爬虫可以抓取所有内容,但其他爬虫则被禁止。


验证 robots.txt

设置好 robots.txt 后,你需要验证它是否正确。

  1. 手动检查

    • 在浏览器中访问 https://www.yourdomain.com/robots.txt
    • 检查语法是否正确,规则是否符合你的预期。
  2. 使用搜索引擎的站长工具

    • Google Search Console:在“robots.txt 测试器”中,你可以实时测试你的 robots.txt 文件,并模拟不同爬虫的抓取行为,查看哪些 URL 会被允许或禁止。
    • Bing Webmaster Tools:也提供了类似的 robots.txt 测试功能。

常见错误

  1. 语法错误:拼写错误、缺少冒号、空格不正确等。
    • 错误Useragent: * (缺少冒号)
    • 错误Disallow:/admin/ (冒号后不应有空格,但通常也能被解析)
  2. 路径错误:路径以 开头或结尾不正确。
    • 错误Disallow: admin (这只会禁止 /admin 这个文件,而不会禁止 /admin/ 目录)
    • 正确Disallow: /admin/
  3. 忘记指定 Sitemap:这是一个好习惯,可以方便爬虫。
  4. 过度依赖 robots.txt:用它来保护敏感信息。robots.txt 只是一个公开的建议,不能真正隐藏内容,要保护敏感数据,应使用服务器级别的访问控制(如密码保护)。

希望这份详细的指南能帮助你写出完美且高效的 robots.txt 文件!

分享:
扫描分享到社交APP
上一篇
下一篇