Robots.txt:2026年SEO完整指南
· 12分钟阅读
Robots.txt是一个简单的文本文件,位于您网站的根目录中,告诉搜索引擎爬虫它们可以访问哪些页面以及应该跳过哪些页面。尽管只是一个纯文本文件,但配置错误的robots.txt可能会完全破坏您的SEO工作——意外阻止重要页面被索引、在无关内容上浪费宝贵的抓取预算,或暴露您本想保密的敏感区域。
本综合指南涵盖了您需要了解的关于robots.txt文件的所有内容,从基本语法到高级优化技术。无论您是管理小型博客还是拥有数百万页面的大型电子商务网站,了解robots.txt对于有效的SEO都至关重要。
🛠️ 快速工具:现在需要生成robots.txt文件?使用我们的Robots.txt生成器在几秒钟内创建格式正确的文件。
什么是Robots.txt?
robots.txt文件位于yoursite.com/robots.txt,遵循1994年建立的机器人排除协议标准。当搜索引擎爬虫访问您的网站时,它做的第一件事就是检查此文件。可以把它看作是贴在您网站前门的一套说明。
该文件包含指令,告诉特定爬虫(或所有爬虫)它们被允许访问哪些URL路径以及应该避免哪些。重要的是要理解robots.txt是建议性的,而非强制性的。来自Google、Bing和其他主要搜索引擎的良好爬虫会遵守这些指令,但恶意机器人或爬虫可能会完全忽略它们。
以下是robots.txt可以做和不能做的事情:
| Robots.txt可以做什么 | Robots.txt不能做什么 |
|---|---|
| 控制爬虫访问哪些页面 | 阻止页面出现在搜索结果中 |
| 管理抓取预算分配 | 提供密码保护 |
| 指定站点地图位置 | 阻止恶意机器人(它们会忽略它) |
| 为特定机器人设置抓取延迟 | 删除已索引的页面 |
专业提示:如果您需要从搜索结果中删除内容,请改用noindex元标签或X-Robots-Tag HTTP标头。使用robots.txt阻止实际上会阻止爬虫看到noindex指令,这可能会适得其反。
Robots.txt如何工作
了解爬虫工作流程有助于您有效使用robots.txt。以下是搜索引擎机器人访问您的网站时发生的确切情况:
- 初始请求:爬虫在访问任何其他页面之前尝试获取
/robots.txt - 文件解析:如果找到,爬虫会读取并解析与其用户代理相关的指令
- 规则应用:爬虫应用最具体的匹配规则来确定它可以访问哪些URL
- 开始抓取:爬虫继续获取允许的页面,同时遵守任何抓取延迟指令
- 缓存持续时间:大多数爬虫会缓存robots.txt 24小时,然后再检查更新
如果您的robots.txt文件返回404错误,爬虫会假设它们有权访问所有内容。如果返回5xx服务器错误,它们通常会暂时暂停抓取并稍后重试。
用户代理匹配优先级
当多个用户代理块可能适用于单个爬虫时,搜索引擎遵循特定的优先级顺序。例如,Google使用最具体的用户代理匹配。如果您同时拥有User-agent: *和User-agent: Googlebot,Googlebot将仅遵循Googlebot特定的规则。
在单个用户代理块中,如果Allow和Disallow规则都可能适用于URL,则最具体的规则获胜。特异性由路径长度决定——较长的路径更具体。
语法规则和指令
Robots.txt使用简单但精确的语法。每个字符都很重要,小错误可能会产生大后果。让我们分解每个指令以及如何正确使用它。
基本结构
# 注释以井号开头
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Allow: /admin/public/
User-agent: Googlebot
Disallow: /private/
Crawl-delay: 10
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-images.xml
核心指令说明
User-agent:指定以下规则适用于哪个爬虫。使用*作为通配符来定位所有爬虫。常见的用户代理包括:
Googlebot— Google的主要爬虫Googlebot-Image— Google的图像爬虫Bingbot— 微软Bing的爬虫Slurp— Yahoo的爬虫(现在使用Bing)DuckDuckBot— DuckDuckGo的爬虫Baiduspider— 百度的爬虫(中国搜索引擎)
Disallow:阻止访问特定的URL路径。路径区分大小写,必须以/开头。空的Disallow(Disallow:)表示允许所有内容。
Allow:在禁止的路径中创建例外。当您想阻止目录但允许其中的特定文件或子目录时,这特别有用。
Sitemap:将爬虫指向您的XML站点地图。您可以包含多个Sitemap指令。这对于具有不同内容类型的多个站点地图的网站特别有用。
Crawl-delay:指定爬虫在请求之间应等待的秒数。请注意,Googlebot会忽略此指令——请改用Google Search Console调整抓取速率。
使用通配符进行模式匹配
现代robots.txt支持两个用于模式匹配的特殊字符:
| 字符 | 含义 | 示例 | 匹配 |
|---|---|---|---|
* |
匹配任何字符序列 | Disallow: /*.pdf$ |
网站上任何位置的所有PDF文件 |
$ |
锚定到URL末尾 | Disallow: /private$ |
/private但不包括/private/page |
实用模式示例
# 阻止所有带查询参数的URL
Disallow: /*?
# 阻止所有带特定参数的URL
Disallow: /*?sessionid=
# 阻止所有PDF文件
Disallow: /*.pdf$
# 阻止所有以特定扩展名结尾的URL
Disallow: /*.php$
# 阻止包含特定字符串的URL
Disallow: /*sort=
# 阻止多种文件类型
Disallow: /*.json$
Disallow: /*.xml$
Disallow: /*.txt$
快速提示:使用我们的Robots.txt测试器测试您的模式匹配,以确保您的通配符在部署到生产环境之前按预期工作。
常见用例和规则
让我们看看robots.txt在实际场景中的宝贵应用。这些示例涵盖了您在管理网站抓取指令时会遇到的最常见情况。
阻止管理区域
每个CMS都有不应出现在搜索结果中的管理区域。这些页面会浪费抓取预算,并可能暴露有关您网站基础设施的敏感信息。
# WordPress
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/themes/
Allow: /wp-content/uploads/
# Drupal
Disallow: /admin/
Disallow: /user/
Disallow: /node/add/
# Magento
Disallow: /admin/
Disallow: /downloader/
Disallow: /customer/account/
防止重复内容问题
电子商务网站和博客经常通过排序、过滤和分页生成重复内容。阻止这些变体以整合排名信号。
# 阻止排序和过滤参数
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?color=
Disallow: /*?size=
# 阻止搜索结果页面
Disallow: /search
Disallow: /?s=
Disallow: /search-results/
# 阻止标签和分类分页
Disallow: /tag/*/page/
Disallow: /category/*/page/
# 阻止打印版本
Disallow: /*/print$
Disallow: /*?print=
管理预发布和开发环境
如果您的预发布网站可公开访问(即使使用不同的子域),您绝对必须阻止其被索引,以避免重复内容惩罚。
# 阻止整个预发布环境
User-agent: *
Disallow: /
# 或阻止预发布子目录
Disallow: /staging/
Disallow: /dev/
Disallow: /test/
允许关键渲染资源
Google需要访问CSS和JavaScript文件才能正确渲染和理解您的页面。除非您有特定原因,否则切勿阻止这些资源。
User-agent: *
# 阻止大部分wp-content
Disallow: /wp-content/
# 但允许关键渲染资源
Allow: /wp-content/uploads/
Allow: /wp-content/themes/*.css
Allow: /wp-content/themes/*.js
Allow: /wp-content/plugins/*.css
Allow: /wp-content/plugins/*.js
站点地图声明
始终在robots.txt中包含您的站点地图位置。这有助于爬虫更有效地发现您的内容,即使您也通过Search Console提交了站点地图。
# 单个站点地图
Sitemap: https://example.com/sitemap.xml
# 不同内容类型的多个站点地图
Sitemap: https://example.com/sitemap-pages.xml
Sitemap: https://example.com/sitemap-posts.xml
Sitemap: https://example.com/sitemap-products.xml
Sitemap: https://example.com/sitemap-images.xml
专业提示:使用我们的站点地图生成器创建全面的XML站点地图,以补充您的robots.txt配置。
了解抓取预算优化
抓取预算是指搜索引擎爬虫在给定时间段内将访问您网站上的页面数量。对于页面少于1,000个的小型网站,抓取预算很少是一个问题——Google会轻松定期抓取您的整个网站。
但是,对于拥有数万或数百万页面的大型网站,抓取预算优化