跳到主要内容

访客指南 (robots.txt) 与网站地图 (Sitemaps)

想象一下,Google 的爬虫就像一个初次到访你家大楼的客人。为了让客人高效地了解你的家,你需要为他提供两样东西:

  1. 一张门禁卡和访客须知 (robots.txt):告诉他哪些房间可以进,哪些是私人区域,请勿打扰。
  2. 一张完整的户型图 (sitemap.xml):告诉他你家总共有哪些房间,以及每个房间的位置。

这两个文件共同协作,构成了我们与搜索引擎爬虫沟通的第一个,也是最重要的渠道。

1. robots.txt:网站的“门卫”

robots.txt 是一个位于你网站根目录下的纯文本文件(例如 yourdomain.com/robots.txt)。它的作用是,向来访的搜索引擎爬虫发布一套指令,告诉它们哪些页面或目录不应该被抓取。

为什么需要它?

  • 节省抓取预算 (Crawl Budget): 每个网站,Google 分配的抓取资源是有限的。我们不希望 Google 把宝贵的资源浪费在一些无意义的页面上,比如后台登录页、搜索结果页、测试页面等。屏蔽这些页面,可以让爬虫更专注于我们那些真正重要的内容。
  • 防止敏感信息泄露: 即使某些页面不会出现在搜索结果中,但如果不禁止抓取,其内容仍可能被收录进某些数据库。

robots.txt 的基本语法

它由两条基本指令构成:

  • User-agent: 定义这条规则适用于哪个爬虫。* 代表所有爬虫。
  • Disallow: 禁止抓取某个路径。/ 代表整个网站的根目录。
  • Allow: 允许抓取(通常用于在 Disallow 的子目录中设置例外)。
  • Sitemap: 告诉爬虫你的站点地图在哪里。

一个典型的 Docusaurus 网站 robots.txt 示例:

# Block search indexing for all crawlers
User-agent: *
Disallow: /_dogfood/
Disallow: /search/
Disallow: /test/

# Add a sitemap for all crawlers
Sitemap: https://yourdomain.com/sitemap.xml
  • 解读:
    • User-agent: *: 这条规则对所有爬虫生效。
    • Disallow: /search/: 禁止所有爬虫抓取网站内 /search/ 目录下的所有页面(因为这些是动态生成的,对SEO无意义)。
    • Sitemap: ...: 向所有爬虫声明,本站的站点地图位于这个地址。

Docusaurus 在构建项目时,通常会根据 static 文件夹下的 robots.txt 文件来生成最终版本。

2. 站点地图 (Sitemap):网站的“官方地图”

站点地图是一个 .xml 文件,它以结构化的格式,列出了你网站上所有希望被搜索引擎发现和索引的重要页面的 URL。

它和 robots.txt 的关系是互补的:

  • robots.txt 是“排除法”:告诉爬虫不要去哪里
  • Sitemap 是“列举法”:告诉爬虫应该来这里

为什么需要它?

  • 确保所有重要页面被发现: 特别是对于那些埋藏较深、缺少内部链接的页面,站点地图是确保它们被 Google 发现的生命线。
  • 提供元数据: 站点地图可以包含页面的最后更新时间、更新频率等信息,帮助 Google 判断抓取的优先级。
  • 新站的福音: 对于一个全新的、缺少外部链接的网站,提交站点地图是让 Google 快速了解并开始收录你网站的最有效方式。

好消息是: Docusaurus 已经通过 @docusaurus/plugin-sitemap 插件,在每次构建项目时,自动为我们生成了最新、最完整的 sitemap.xml 文件。

我们需要做什么?

  1. 检查并优化 robots.txt: 确保它屏蔽了所有无需被索引的路径。
  2. 在 GSC 中提交站点地图:
    • 登录 Google Search Console。
    • 在左侧菜单找到 索引 -> 站点地图
    • 在“添加新的站点地图”处,输入你站点地图的 URL (通常是 sitemap.xml)。
    • 点击“提交”。

完成这两步,你就为搜索引擎的到访铺好了红地毯,并递上了一份清晰的导航地图。