凌峰创科服务平台

网站 robots.txt

什么是 robots.txt

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

网站 robots.txt-图1
(图片来源网络,侵删)

重要提示: robots.txt 是一个建议性的协议,而不是一个强制性的命令,遵守良好的爬虫(如 Googlebot、Bingbot)会遵循它的规则,但恶意爬虫或不良爬虫完全可以忽略它,对于需要绝对保密的内容,不应依赖 robots.txt,而应使用其他方法(如密码保护、登录验证)。


robots.txt 的主要作用

  1. 引导搜索引擎爬取:告诉搜索引擎哪些页面是重要的、可以抓取的,帮助它们更高效地理解网站结构。
  2. 节省服务器资源:防止爬虫抓取无用的页面(如搜索结果页、后台管理页、重复内容页面),从而减少服务器的负载和带宽消耗。
  3. 避免重复内容问题:通过禁止抓取多个版本的同一页面(如带 参数的URL),可以防止搜索引擎索引重复内容,避免分散权重。
  4. 保护隐私或敏感内容:虽然不是绝对安全,但可以用来阻止搜索引擎抓取用户登录页、后台管理面板、临时文件等。

robots.txt 的基本语法

robots.txt 文件由一个或多个记录块组成,每个记录块包含两条指令:

User-agent

  • 作用:指定这条规则适用于哪个爬虫。
    • 适用于所有爬虫(通配符)。
    • 具体名称:如 Googlebot(谷歌爬虫)、Bingbot(必应爬虫)、Slurp(雅虎爬虫)等。
    • 你可以在 Which user agents does Google use? 找到 Google 的用户代理列表。

Disallow

  • 作用:指定 User-agent 不应抓取的 URL 路径。
    • 空值(即只有 Disallow:):禁止抓取该 User-agent 所有内容。
    • 具体路径:如 /admin/(禁止抓取 admin 目录下的所有文件)、/private-page.html(禁止抓取单个文件)。
    • 关键点Disallow 指的是路径前缀Disallow: /private 会禁止 /private/private//private-page.html/private/images/ 等所有以 /private 开头的路径。

Allow

  • 作用:与 Disallow 相反,指定 User-agent 可以抓取的 URL 路径,通常用于在 Disallow 一个大范围后,开放其中的某个小范围。
  • :与 Disallow 类似,指定一个路径前缀。
  • 使用场景:你想禁止抓取 /temp/ 目录,但允许抓取 /temp/public/ 子目录。
      User-agent: *
      Disallow: /temp/
      Allow: /temp/public/

Sitemap

  • 作用:告诉搜索引擎你网站的 XML 站点地图(Sitemap)文件在哪里,这是一个非常实用的指令,有助于搜索引擎发现你网站的所有页面。
  • :站点地图的完整 URL。
      Sitemap: https://www.example.com/sitemap.xml
    • 一个 robots.txt 文件中可以有多个 Sitemap 指令。
    • Sitemap 指令可以放在文件的任何位置,并且不依赖于任何 User-agent

robots.txt 文件示例

示例 1:最简单的配置(允许所有)

允许所有爬虫抓取网站的任何部分。

User-agent: *
Disallow:

或者直接空文件,效果也是允许所有。

网站 robots.txt-图2
(图片来源网络,侵删)

示例 2:禁止所有爬虫

禁止所有爬虫抓取网站的任何部分。

User-agent: *
Disallow: /

示例 3:针对特定爬虫的配置

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

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

示例 4:常见电商/博客网站配置

这是一个非常典型的配置,适用于大多数网站。

User-agent: *
# 禁止抓取管理后台、临时文件、用户相关页面和搜索结果页
Disallow: /admin/
Disallow: /tmp/
Disallow: /wp-admin/
Disallow: /search/
Disallow: /*?*
# 允许抓取站点地图
Sitemap: https://www.example.com/sitemap.xml

示例 5:禁止抓取特定文件类型

禁止所有爬虫抓取 .pdf.docx 文件。

网站 robots.txt-图3
(图片来源网络,侵删)
User-agent: *
Disallow: /*.pdf$
Disallow: /*.docx$

如何创建和放置 robots.txt 文件?

  1. 创建文件:使用任何文本编辑器(如记事本、VS Code、Sublime Text)创建一个名为 robots.txt 的文件。
  2. 编写规则:按照上述语法编写你的规则。
  3. 放置位置必须将文件放置在您网站的根目录下。
    • 对于 https://www.example.com/ 网站,robots.txt 文件的完整地址是 https://www.example.com/robots.txt
    • 如果放置在子目录(如 https://www.example.com/folder/robots.txt),它将只对该子目录下的内容有效,这是错误的。

如何检查 robots.txt 文件?

  1. 浏览器直接访问:在浏览器地址栏输入 你的域名.com/robots.txt 即可查看。
  2. 使用 Google 搜索控制台的“robots.txt 测试器”
    • 这是最推荐的工具。
    • 登录 Google 搜索控制台,选择你的网站。
    • 在左侧菜单中找到“站点地图”(Sitemaps)或直接搜索“robots.txt”。
    • 在这里你可以测试你的 robots.txt 规则是否生效,并模拟不同爬虫的抓取行为,非常直观。

常见误区

  • 误区 1:用 robots.txt 隐藏私密的页面。

    • 错误:如前所述,robots.txt 只是建议,不能阻止恶意用户或不良爬虫直接访问这些页面,真正的隐私页面必须通过密码或登录保护。
  • 误区 2:Disallow: /secret-page.html 就能隐藏这个页面。

    • 错误:如果其他网站链接到了 secret-page.html,搜索引擎仍然可能通过发现这个链接而抓取和索引它。robots.txt 只能阻止“主动抓取”,不能阻止“被动发现”。
  • 误区 3:忘记 Allow 指令。

    • 错误:在 Disallow 一个目录后,如果你想让子目录可被访问,必须明确使用 Allow 指令。Disallow: /css/ 会禁止抓取 /css/style.css,但 Disallow: /css/ + Allow: /css/public/ 才能允许抓取 /css/public/main.css

robots.txt 是网站管理和 SEO 策略中一个强大且基础的工具,正确配置它可以帮助你引导搜索引擎爬虫、优化网站资源、并保护非敏感的内部结构,但请务必记住它的局限性,并始终将真正的敏感信息放在更安全的地方。

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