什么是 robots.txt 文件?
robots.txt(也称为“爬虫协议”或“机器人协议”)是一个位于网站根目录下的纯文本文件,它的作用是告知搜索引擎的爬虫(如 Googlebot、Baiduspider)哪些页面可以抓取,哪些页面不可以抓取。

重要提示:
robots.txt 是一个建议,而不是一个强制命令,遵守良好的爬虫会遵循它的规则,但恶意爬虫或不良行为者可以完全忽略它,对于敏感信息的保护,不能仅依赖 robots.txt。
robots.txt 的基本语法
robots.txt 文件由一个或多个“记录组”构成,每个记录组包含两条指令:
-
User-agent::指定这条规则适用于哪个爬虫。- 代表所有爬虫。
Googlebot:仅适用于 Google 的爬虫。Bingbot:仅适用于 Bing 的爬虫。- 你也可以指定特定的用户代理,如
Googlebot-Image(Google 图片爬虫)。
-
Disallow::告诉指定的爬虫,不允许抓取哪个路径。
(图片来源网络,侵删)- 禁止抓取整个网站。
/private/:禁止抓取private目录下的所有页面。/admin.html:禁止抓取特定的admin.html文件。Disallow:后面没有跟任何路径,表示允许抓取所有内容。
robots.txt 示例
示例 1:允许所有爬虫访问所有内容
User-agent: *
Disallow:
或者直接留空(什么都不写),效果相同。
示例 2:禁止所有爬虫访问整个网站
User-agent: *
Disallow: /
这通常用于网站上线前或维护期间,暂时阻止搜索引擎索引。

示例 3:禁止所有爬虫访问特定目录和文件
User-agent: *
Disallow: /private/
Disallow: /admin/
Disallow: /temp-file.html
这个规则允许爬虫访问网站的任何其他部分,但会跳过 private、admin 目录和 temp-file.html 文件。
示例 4:针对不同爬虫设置不同规则
# 允许 Googlebot 访问所有内容
User-agent: Googlebot
Disallow:
# 禁止其他所有爬虫访问 /secret/ 目录
User-agent: *
Disallow: /secret/
什么是网站地图?
网站地图是一个 XML 文件,通常命名为 sitemap.xml,它列出了网站中所有重要页面的 URL,你可以把它想象成是给搜索引擎的一份清单”。
网站地图的作用
- 帮助搜索引擎发现页面:对于新网站、大型网站或内容链接不深的网站,爬虫很难发现所有页面,网站地图能确保它们不会遗漏重要内容。
- 提供元数据:网站地图可以包含额外的信息,如:
<lastmod>:页面上次修改的日期,搜索引擎可以用它来判断页面内容的新鲜度。<changefreq>的更新频率(如 "daily", "weekly", "yearly"),这只是一个提示,搜索引擎不一定遵循。<priority>:相对于网站上其他页面的优先级(从 0.0 到 1.0),这同样只是一个提示,不代表搜索排名。
网站地图示例
一个简单的 sitemap.xml 文件看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/</loc>
<lastmod>2025-10-27T18:00:00+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.example.com/about-us</loc>
<lastmod>2025-10-25T15:30:00+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/blog/post-1</loc>
<lastmod>2025-10-26T10:00:00+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
</urlset>
robots.txt 与网站地图的关系:如何协同工作?
robots.txt 和网站地图是合作关系,而不是互相替代,它们共同构成了网站与搜索引擎沟通的桥梁。
核心关系:
robots.txt告诉爬虫“去哪里找网站地图”,而网站地图则告诉爬虫“网站上有哪些重要页面”。
在 robots.txt 中指定网站地图
你需要在 robots.txt 文件中使用 Sitemap: 指令来告诉搜索引擎你的网站地图文件存放在哪里。
语法:
Sitemap: https://www.example.com/sitemap.xml
最佳实践:
- 放在文件顶部:将
Sitemap:指令放在robots.txt文件的开头,这样爬虫能第一时间看到它。 - 使用完整 URL:务必使用
https://开头的完整 URL,而不是相对路径。 - 可以指定多个:如果你的网站有多个网站地图(一个主站地图,一个博客地图,一个图片地图),你可以在
robots.txt中指定多个Sitemap:指令。
完整的 robots.txt 示例(包含网站地图)
这是一个功能完善的 robots.txt 文件示例:
# Sitemap location
Sitemap: https://www.example.com/sitemap.xml
# Crawler User-Agent specific rules
User-agent: Googlebot
# Allow Googlebot to access all parts of the site
Disallow:
User-agent: Bingbot
# Allow Bingbot to access all parts of the site
Disallow:
# Rules for all other crawlers
User-agent: *
# Disallow access to admin, private, and temporary files/directories
Disallow: /admin/
Disallow: /private/
Disallow: /temp/
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.css$
# Allow access to all other files
Allow: /
解读这个示例:
- 它告诉所有爬虫,网站地图在
https://www.example.com/sitemap.xml。 - 它为 Googlebot 和 Bingbot 设置了特殊规则,允许它们抓取所有内容。
- 它为其他所有爬虫设置了限制,禁止访问管理后台、私有目录和临时文件等,但允许访问公开的静态资源(如图片、CSS、JS 文件,这些需要通过
Allow:指令来覆盖Disallow:的限制)。
如何检查和管理?
-
创建和上传:
robots.txt文件:使用任何文本编辑器创建,命名为robots.txt,然后通过 FTP 或文件管理器上传到你网站的根目录(public_html/或www/)。sitemap.xml文件:可以使用 WordPress 插件(如 Yoast SEO, Rank Math)、在线生成器或编写脚本自动生成,同样上传到根目录。
-
测试工具:
- Google Search Console:提供了专门的“robots.txt 测试工具”和“站点地图”测试工具,你可以实时测试
robots.txt规则是否生效,以及提交和监控网站地图的抓取状态。 - Bing Webmaster Tools:也提供了类似的测试功能。
- Google Search Console:提供了专门的“robots.txt 测试工具”和“站点地图”测试工具,你可以实时测试
| 特性 | robots.txt |
网站地图 |
|---|---|---|
| 作用 | 指令:告诉爬虫什么不能抓取。 | 清单:告诉爬虫有什么可以抓取。 |
| 文件类型 | 纯文本文件 | XML 文件 |
| 核心指令 | User-agent, Disallow, Allow |
<urlset>, <url>, <loc> |
| 关系 | 通过 Sitemap: 指令,引导爬虫去读取网站地图文件。 |
被 robots.txt 引用,为爬虫提供一份完整的页面索引。 |
一个健康的、对搜索引擎友好的网站,应该同时拥有一个配置正确的 robots.txt 文件和一个包含所有重要页面的 sitemap.xml 文件,并确保两者正确关联。
