robots.txt 是一个小型文本文件,但对网站的 SEO 有巨大影响。放错一行,Google 就会停止索引整个网站。本指南解释如何在 WordPress 中正确配置 robots.txt,以及要避免的事项。
1. 什么是 robots.txt?
robots.txt 是放在域名根目录的文本文件(如 yourdomain.com/robots.txt),它告诉搜索引擎爬虫哪些页面允许或不允许爬取。robots.txt 是一个小小的文件,但对网站的搜索引擎可见性影响巨大 — 配置错误可能导致 Google 完全无法索引您的网站,从而将您从搜索结果中彻底移除。
robots.txt 的基本格式
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://yourdomain.com/sitemap.xml
每一行的含义:
User-agent: *— 适用于所有爬虫(星号 * 表示"所有")Disallow: /path/— 告诉爬虫不要爬取这个路径Allow: /path/— 在 Disallow 范围内明确允许某个路径Sitemap:— 告诉爬虫网站地图的位置
第1大危险: Disallow: / 会阻止所有爬虫(包括 Google)爬取整个网站。这是最常见的 WordPress 错误。当在设置中勾选"阻止搜索引擎索引此网站"时,WordPress 会自动生成此内容。结果就是网站从 Google 搜索结果中完全消失。
robots.txt 的作用范围
许多网站管理员误以为 robots.txt 可以隐藏网站内容。实际上 robots.txt 只是一个礼貌的请求,并不是强制执行的安全措施。虽然合法的搜索引擎爬虫(如 Google Bot)会尊重 robots.txt,但恶意机器人不会。因此,如果您想真正保护敏感内容,应该使用密码保护或其他身份验证方法,而不是仅依赖 robots.txt。
2. WordPress 和虚拟 robots.txt
WordPress 5.3 及更高版本默认不会在服务器上创建物理 robots.txt 文件。而是动态生成所谓的"虚拟 robots.txt" — 当浏览器或爬虫访问 /robots.txt URL 时,WordPress 会在运行时生成内容。这种方式的好处是可以根据网站配置自动调整,无需管理员手动编辑文件。
WordPress 默认的 robots.txt 内容
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://yourdomain.com/sitemap.xml
这个默认设置是合理的。它阻止爬虫访问 WordPress 后台(/wp-admin/),但允许访问 admin-ajax.php(许多插件需要它)。问题出现在当网站所有者在 设置 → 阅读 中勾选"阻止搜索引擎索引此网站"复选框时。
最常见的 WordPress robots.txt 错误
当勾选"阻止搜索引擎"选项后,WordPress 会将虚拟 robots.txt 改为:
User-agent: *
Disallow: /
Disallow: / 的含义是 "阻止所有爬虫爬取网站的所有内容" — 这是一个致命的配置。网站会从 Google 搜索结果中消失,访问量也会直线下降。许多网站管理员在开发网站时勾选此选项来隐藏未完成的网站,结果在网站上线后忘记取消这个勾选。
提示: 如果您不小心配置了 Disallow: /,不用慌。只需取消 WordPress 设置中的"阻止搜索引擎"复选框,Google 在下一次爬取时就会看到新的 robots.txt。不过 Google 可能需要几天到几周时间才能重新索引之前被阻止的页面。
3. 编辑 robots.txt(三种方法)
方法 1:使用 Yoast SEO(最推荐)
Yoast SEO 是最受欢迎的 WordPress SEO 插件,提供了友好的界面来管理 robots.txt:
- 安装并激活 Yoast SEO 插件
- 在 WordPress 后台,转到 Yoast SEO → 工具 → 文件编辑器
- 点击 创建 robots.txt 文件(这会在服务器上创建一个物理文件)
- 在文本编辑器中进行修改
- 点击 保存 按钮
一旦您创建了物理 robots.txt 文件,Yoast 会负责维护它。WordPress 的虚拟 robots.txt 将被完全忽略。即使您后来停用 Yoast,物理 robots.txt 文件仍然存在并继续有效。
方法 2:使用 Rank Math 插件
如果您已经在使用 Rank Math(另一个流行的 SEO 插件),也可以通过它来编辑 robots.txt:
- 转到 Rank Math → 工具 → 编辑文件
- 选择 robots.txt 标签页
- 编辑内容后点击保存
方法 3:通过 FTP 或文件管理器手动上传
如果您不想安装 SEO 插件,可以直接通过 FTP 或虚拟主机的文件管理器上传 robots.txt:
- 在本地电脑上创建一个名为
robots.txt的纯文本文件 - 将其上传到 WordPress 安装的根目录(与
wp-config.php同级,通常是 public_html/) - 上传后,物理 robots.txt 文件会自动优先于 WordPress 的虚拟版本
哪个方法最好? 如果您已经安装了 Yoast SEO 或 Rank Math,使用插件的编辑器是最简单的 — 无需处理 FTP 凭证。如果您更喜欢直接控制,FTP 上传也完全可行。
4. WordPress 推荐的 robots.txt 配置
标准 WordPress 网站
大多数 WordPress 网站应该使用以下 robots.txt 配置:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/cache/
Disallow: /?s=
Disallow: /search/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://yourdomain.com/sitemap.xml
解释每一行:
/wp-admin/— 禁止爬虫访问 WordPress 后台(不是给公众的)/wp-login.php— 禁止爬虫访问登录页面/wp-includes/— WordPress 核心系统文件,爬虫无需访问/wp-content/plugins/— 插件文件,通常不需要索引/wp-content/cache/— 缓存文件,没有实际内容/?s=— 网站内搜索结果,会导致重复内容/search/— 搜索页面的另一个常见路径Allow: /wp-admin/admin-ajax.php— 例外!许多插件需要此文件工作
WooCommerce 在线商店的额外配置
如果您运行 WooCommerce 电商网站,还应该禁止购物车和结账页面(这些页面不应该被索引):
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/cache/
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /order-pay/
Disallow: /order-received/
Disallow: /?add-to-cart=
Disallow: /?s=
Allow: /wp-admin/admin-ajax.php
Sitemap: https://yourdomain.com/sitemap.xml
为什么要禁止这些购物车 URL?
/cart/— 购物车是动态的,用户特定的,不应该被索引/checkout/— 结账页面处理敏感信息,不应该被 Google 索引/my-account/— 用户帐户页面,每个用户不同/?add-to-cart=— 这是添加产品到购物车的 URL 参数,会导致重复内容
5. robots.txt 配置快速参考表
下表总结了 WordPress 网站中最常见的路径,以及是否应该禁止它们:
| 路径 | 应该禁止? | 原因 / 说明 |
|---|---|---|
/wp-admin/ | 是 ✓ | 后台管理面板,仅供管理员使用,不应该被索引 |
/wp-login.php | 是 ✓ | 登录页面,处理用户凭证,不应该被索引 |
/wp-includes/ | 是 ✓ | WordPress 核心系统文件,没有用户可见的内容 |
/wp-content/plugins/ | 是 ✓ | 插件文件,通常是代码而不是内容 |
/wp-content/cache/ | 是 ✓ | 缓存文件,没有真实内容值 |
/wp-content/uploads/ | 否 ✗ | 媒体库,包含您上传的图片。禁止此路径 = Google 无法索引您的图片 |
/wp-content/themes/ | 可选 | 主题 CSS/JS 文件。大多数网站禁止以节省爬虫预算,但不严格 |
/?s= | 是 ✓ | 网站内搜索 URL,会产生无限数量的重复内容 |
/tag/ | 可选 | 标签存档页面。如果网站使用标签分类,可以允许;否则禁止 |
/category/ | 否 ✗ | 分类页面通常对 SEO 有价值,不应该禁止 |
/ 或 Disallow: / | 永不禁止 ✗✗✗ | 这会阻止爬虫访问整个网站 — SEO 自杀,网站会从搜索结果中消失 |
6. 在 Google Search Console 中验证 robots.txt
使用 robots.txt 测试工具
Google Search Console 提供了一个专门的工具来测试和验证您的 robots.txt 配置。这是确保设置正确的最快方式:
- 在网络浏览器中打开 Google Search Console (https://search.google.com/search-console/)
- 选择您的网站属性
- 在左侧菜单中,进入 Settings(设置)→ Coverage(覆盖范围) 或 Tools(工具)→ robots.txt Tester
- 在文本框中输入您想测试的 URL(例如
https://yourdomain.com/wp-admin/) - 点击 Test(测试)按钮
- Google 会告诉您这个 URL 是 Allowed(允许)还是 Blocked by robots.txt(被 robots.txt 阻止)
关键页面测试清单
建议至少测试这些 URL:
https://yourdomain.com/— 首页(应该被允许 ✓)https://yourdomain.com/blog-post-title/— 示例文章(应该被允许 ✓)https://yourdomain.com/wp-admin/— 后台(应该被阻止 ✓)https://yourdomain.com/?s=keyword— 搜索结果(应该被阻止 ✓)- 如果用 WooCommerce:
https://yourdomain.com/checkout/— 结账页(应该被阻止 ✓)
使用 URL 检查工具查看 robots.txt 阻止
如果某个页面无法被索引,您也可以用 URL 检查工具来诊断原因:
- 在 Google Search Console 中,点击顶部的 URL Inspector(URL 检查)
- 粘贴要检查的 URL
- 在结果中查看 Indexing eligibility 部分
- 如果显示"Blocked by robots.txt",说明这个 URL 被您的 robots.txt 阻止了
- 结果还会告诉您是哪一条规则阻止了它(例如
Disallow: /wp-admin/)
重要提示: robots.txt 仅告诉爬虫不要爬取什么,但这不是最终决定。如果其他网站链接到被 robots.txt 阻止的页面,Google 仍可能知道该 URL 的存在,但不会抓取其内容。要真正从搜索结果中移除页面,请使用 <meta name="robots" content="noindex"> 元标签或在 Google Search Console 中手动请求移除。
7. robots.txt 的常见问题和误解
robots.txt 会影响现有的搜索排名吗?
不会立即影响,但可能会产生长期影响。如果您在 robots.txt 中禁止某个之前被索引过的页面,Google 不会立即从搜索结果中移除它。Google 可能需要几周甚至几个月才能重新抓取并确认该页面真的应该被移除。在这段时间内,搜索结果可能仍然显示该页面的缓存版本(陈旧的信息)。
robots.txt 可以保护我的网站免受黑客攻击吗?
不能。robots.txt 只是一个文本文件,任何人都可以读取。黑客和恶意机器人不会尊重 robots.txt 规则。如果您想真正保护敏感区域(如 /wp-admin/ 后台),应该使用:
- IP 地址白名单(只允许特定 IP 访问后台)
- 两步验证 / 2FA
- 强密码政策
- Web 应用防火墙(WAF)
- HTTPS 加密
我的网站被 robots.txt 阻止,现在从 Google 消失了。多久才能恢复?
恢复时间取决于 Google 的爬虫和索引刷新周期:
- 流量高的网站: 通常几天内 Google 会重新抓取 robots.txt 并发现限制已解除
- 流量低的网站: 可能需要 1-4 周
- 之前被索引的页面重新出现: 可能需要更长时间(有时 1-2 个月)
为了加快恢复,您可以在 Google Search Console 中使用"请求编入索引"工具手动提交您的网址。
robots.txt 会增加我的服务器负担吗?
不会有明显影响。robots.txt 文件非常小(通常只有 1-2KB),对服务器资源的影响可以忽略不计。正确配置 robots.txt 实际上可以减少服务器负担 — 通过阻止爬虫访问不必要的页面(如缓存文件和参数化搜索结果),您减少了不必要的爬虫请求,从而节省了带宽和服务器资源。
8. robots.txt 最佳实践总结
核心建议: 优秀的 robots.txt 配置应该只阻止那些真正不值得被索引的内容(如后台、登录页、缓存文件、搜索结果页面),而允许爬虫访问您想被 Google 找到的所有内容(如首页、文章、产品页面、媒体库)。定期在 Google Search Console 中验证您的配置,确保没有不小心阻止了重要页面。
检查清单
- ✓ 确保
Disallow: /没有被激活(除非网站正在开发中) - ✓ 在 WordPress 设置 → 阅读中,"阻止搜索引擎"复选框是 未勾选 的
- ✓ 如果使用 Yoast SEO,在 File Editor 中定期检查 robots.txt 内容
- ✓ 不要禁止
/wp-content/uploads/— 这会阻止您的图片被索引 - ✓ 如果使用 WooCommerce,禁止购物车和结账 URL
- ✓ 每月至少在 Google Search Console 中测试一次关键页面
- ✓ 在修改 robots.txt 后 24 小时内使用 GSC 的"请求编入索引"工具
9. 常见 robots.txt 配置错误
错误 1:禁止 /wp-content/uploads/
Disallow: /wp-content/uploads/ 是最大的错误。这会阻止 Google 索引您的所有图片、视频和媒体文件。搜索结果中就不会出现您的图片,损失了大量来自 Google Image Search 的流量。
正确做法: 如果安全考虑,可以考虑禁止特定文件夹,但绝不要禁止整个 uploads/ 目录。
错误 2:禁止整个 /wp-content/
Disallow: /wp-content/ 会禁止 themes、uploads 和所有其他子文件夹。这通常太宽泛了。最好只禁止 plugins/ 和 cache/,而不是整个目录。
错误 3:禁止 /page/ 或 /pagination/
Disallow: /page/ 会阻止分页存档页面被索引。如果您的网站用分页显示文章列表,禁止分页可能会降低索引覆盖率。通常不建议禁止。
错误 4:过度禁止 URL 参数
虽然禁止 /?s=(搜索参数)是对的,但禁止过多参数会导致大量 URL 被阻止。WordPress 的许多功能依赖参数,所以要谨慎。
底线: robots.txt 配置不复杂 — 只需知道禁止什么和永不阻止什么。保持简单:仅禁止管理员/系统路径,始终允许 /wp-content/uploads/,除非故意隐藏网站,否则不要使用 Disallow: /。
需要托管 WordPress 主机?
AsiaGB WordPress 主机预配置了正确的 robots.txt、每日备份和 LiteSpeed 缓存 — 无需技术专知识。
查看 WordPress 主机方案 →