访客指南 (robots.txt) 与网站地图 (Sitemaps)
想象一下,Google 的爬虫就像一个初次到访你家大楼的客人。为了让客人高效地了解你的家,你需要为他提供两样东西:
- 一张门禁卡和访客须知 (
robots.txt
):告诉他哪些房间可以进,哪些是私人区域,请勿打扰。 - 一张完整的户型图 (
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
文件。
我们需要做什么?
- 检查并优化
robots.txt
: 确保它屏蔽了所有无需被索引的路径。 - 在 GSC 中提交站点地图:
- 登录 Google Search Console。
- 在左侧菜单找到
索引
->站点地图
。 - 在“添加新的站点地图”处,输入你站点地图的 URL (通常是
sitemap.xml
)。 - 点击“提交”。
完成这两步,你就为搜索引擎的到访铺好了红地毯,并递上了一份清晰的导航地图。