WordPress robots.txt2026版完全指南:虚拟vs物理优先级、AI爬虫策略、Allow/Disallow引擎差异

WordPress 的 robots.txt 写错会让 Google 抓不到内容、写『通用版』反而屏蔽掉 CSS/JS 让移动友好性扣分。本文给出 2026 年标准模板:虚拟 robots.txt 与物理文件的优先级判定、wp-content/wp-includes 不再屏蔽的理由、GPTBot/ClaudeBot 等 AI 爬虫的拦放分类、Allow/Disallow 在 Google/Bing/百度的优先级差异、附件页处理、Sitemap 多文件声明与调试方法。

张文保 更新 26 分钟阅读 2,679 阅读
本文目录
  1. WordPress 默认 robots.txt 的两种来源
  2. 怎么知道当前是虚拟还是物理
  3. wp-content / wp-includes 不该再 Disallow
  4. 现代化做法:精确屏蔽,不要一刀切
  5. 评论分页 / 标签分页 / 分类分页该不该屏蔽
  6. 为什么分类 / 标签分页不该屏蔽
  7. AI 爬虫的拦放策略
  8. 附件页(attachment)屏蔽的真实影响
  9. Sitemap 多文件声明
  10. Crawl-delay 在 2026 年的有效性
  11. Allow 与 Disallow 的优先级规则
  12. 通配符 * 与锚定 $
  13. 调试与验证
  14. Google Search Console robots.txt 测试器
  15. 命令行用 wget / curl
  16. 在 Bing Webmaster 工具里测试
  17. 常见错误清单
  18. 生产环境推荐版(2026 年标准)
  19. 常见问题解答
  20. 有 Yoast / RankMath 插件还需要自己写 robots.txt 吗?
  21. 不写 sitemap.xml 引用,搜索引擎会找到吗?
  22. 百度对 robots.txt 的解析跟 Google 差别大吗?
  23. 屏蔽 /xmlrpc.php 真的安全吗?
  24. 多语言子站(如 example.com/zh/、example.com/en/)的 robots.txt 怎么写?
  25. Disallow: / 一刀切屏蔽全站,万一忘了改回来怎么办?
  26. 不同搜索引擎我可以给不同规则吗?
  27. 站点更新 robots.txt 后多久生效?
  28. WordPress 的 do_robotstxt action 怎么自定义?
  29. 用 .htaccess 直接拦爬虫和 robots.txt 屏蔽哪个更彻底?

WordPress 站点的 robots.txt 文件是搜索引擎抓取行为的"出入口指南"。写错了会让 Google 抓不到内容(rank 直接消失);写对了能引导爬虫只抓有价值的页面、跳过浪费抓取预算的低质 URL。但网传的"WordPress 通用 robots.txt"从 2010 年以来基本没怎么更新——里面的 Disallow: /wp-content/ 这类规则,2026 年再用反而是反 SEO 行为。

这一篇把 WordPress robots.txt 这件事重新讲透:默认虚拟 robots.txt 与物理文件的优先级、wp-content / wp-includes 该不该屏蔽的真实争议、AI 爬虫(GPTBot / ClaudeBot / Perplexity)的拦放策略、附件页 / 分类分页 / 评论分页屏蔽的副作用、Sitemap 的多文件声明、调试方法。所有规则都基于 2026 年的 Google / Bing / 百度官方文档。

WordPress 默认 robots.txt 的两种来源

WordPress 安装好之后,访问 https://yoursite.com/robots.txt 通常能拿到一段内容——但这段内容来源不一定是网站根目录的物理文件。WordPress 会按以下顺序处理:

  1. 有物理 robots.txt 文件(在网站根目录):直接返回,WordPress 不介入。
  2. 没有物理文件:WordPress 通过 do_robots() 函数动态生成,其默认输出是:

    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php


    仅此 3 行。这是 WP 4.4+ 默认的虚拟 robots.txt。
  3. 装了 SEO 插件(Yoast / RankMath / SEOPress):插件会给 do_robotstxt action 挂钩子,注入它们的规则与 sitemap 引用。

所以"放一个 robots.txt 物理文件到根目录"会覆盖插件动态生成的输出。这个优先级是最容易踩坑的地方:装了 SEO 插件后又自己上传 robots.txt,插件配置就完全失效了。

怎么知道当前是虚拟还是物理

# 直接查根目录有没有文件
ls -la /www/wwwroot/yoursite.com/robots.txt

# 或在线访问然后看响应头
curl -I https://yoursite.com/robots.txt
# 物理文件返回的 Last-Modified 是文件 mtime
# 虚拟 robots.txt 的 Last-Modified 是当前时间

wp-content / wp-includes 不该再 Disallow

这是网传 robots.txt 最大的 2026 年反模式。原帖代码里:

Disallow: /wp-content/
Disallow: /wp-includes/

这两条在 2010 年代是"防止泄漏后台路径"的安全考虑——但同时它们禁止了 Google 抓取你的:

  • wp-content/uploads/ 下的所有图片(图片 SEO 直接断)
  • wp-content/themes/ 下的 CSS / JS(Google 渲染页面时拿不到样式,给你打"移动友好性"差评)
  • wp-includes/ 下的核心 JS(jQuery 等)

Google 自 2014 年起明确建议不要屏蔽 CSS 和 JS 文件——它需要这些资源来渲染页面、判断移动友好性、检测可访问性。如果你屏蔽了,Search Console 会报 Indexed, though blocked by robots.txt 警告,移动端友好性扣分。

现代化做法:精确屏蔽,不要一刀切

User-agent: *
# ✅ 屏蔽真正需要保密的
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /wp-config-sample.php
Disallow: /readme.html
Disallow: /license.txt

# ✅ 留出让 Google 能访问 ajax 入口
Allow: /wp-admin/admin-ajax.php

# ❌ 不要屏蔽以下目录(Google 渲染需要):
# Disallow: /wp-content/        ← 不要
# Disallow: /wp-includes/       ← 不要
# Disallow: /wp-content/themes/ ← 不要

wp-admin 真正需要屏蔽是因为里面是后台界面 HTML,不是 SEO 内容。readme.html / license.txt 屏蔽是为了不让攻击者通过这些文件识别 WP 版本。其它都不要拦。

评论分页 / 标签分页 / 分类分页该不该屏蔽

原帖屏蔽了:

Disallow: /*/comment-page-*
Disallow: /*?replytocom=*
Disallow: /category/*/page/
Disallow: /tag/*/page/

这些规则的本意是避免重复内容——分页页面与第一页内容相似,Google 如果都索引会浪费抓取预算。但 2026 年的最佳实践已经变了:

规则是否仍然推荐更优替代
?replytocom=*✅ 推荐禁评论嵌套链接,避免"每条评论一个 URL"
/*/comment-page-*✅ 推荐同上,评论分页 URL 没 SEO 价值
/category/*/page/❌ 不推荐用 rel=canonical 指回第一页或允许索引但加 noindex meta
/tag/*/page/❌ 不推荐同上
/*/trackback✅ 推荐WP 5.0+ 也可以直接关闭 trackback 功能
/feed⚠ 看情况RSS 订阅器需要,建议保留 Allow

为什么分类 / 标签分页不该屏蔽

Google 现在能识别分页关系(rel=prev / rel=next 已废弃,但 Google 自动检测),把分页页面视为"集合页扩展"。屏蔽掉它们意味着:

  • 第二、三、四页的文章链接 Google 看不到——某些只在分页页才链向的老文章再也不被发现;
  • 分页 URL 在 Search Console 里被标 "blocked by robots.txt",影响整站健康度评分。

更合理的做法是允许抓取分页 + 给分页页加 <meta name="robots" content="noindex,follow">——抓得到(让蜘蛛跟链接)但不索引(避免重复内容)。WordPress 主题 functions.php 加:

add_action('wp_head', function () {
    if (is_paged()) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
});

AI 爬虫的拦放策略

2024 年起涌现的 AI 训练 / 实时查询爬虫,需要在 robots.txt 里有明确的处理。这是网传 WordPress robots.txt 完全没考虑的部分:

# ====== AI 爬虫策略 ======

# 训练类爬虫(用于训练大模型,是否放行看版权策略)
User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Bytespider
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: FacebookBot
Disallow: /

User-agent: anthropic-ai
Disallow: /

User-agent: cohere-ai
Disallow: /

# 实时查询爬虫(用户问问题时实时拉取,建议放行)
User-agent: ChatGPT-User
Allow: /

User-agent: Claude-User
Allow: /

User-agent: Perplexity-User
Allow: /

User-agent: PerplexityBot
Allow: /

# 通用规则:所有其它爬虫
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://yoursite.com/sitemap.xml

策略说明:

  • 训练类爬虫拦截:内容被免费拿去训练大模型,对原创内容站点等于免费贡献语料。如果你的内容是付费课程、专业研究、商业版权,强烈建议拦。
  • 实时查询爬虫放行:用户在 ChatGPT / Claude / Perplexity 问问题时,这些爬虫实时去抓你的页面、然后引用你的内容到答案里。这是新的曝光通道(GEO 优化的核心),强烈建议放行。
  • 商业判断:免费 SEO 内容站可以放训练爬虫(让 GPT 学到你的内容,未来可能被引用);版权严肃站点建议拦。

附件页(attachment)屏蔽的真实影响

原帖屏蔽 /attachment/。WordPress 给每张上传图片都生成一个独立的"附件页"(包含图片本身 + 标题 + 描述),URL 形如 https://yoursite.com/post-slug/photo-12345/。这些页面被认为"低质"——只有一张图加几句文字。

但屏蔽这个目录的副作用是:

  • Google 图片搜索能否抓到:取决于 robots.txt 的精确度。如果只屏蔽 /attachment/ 路径不影响图片本身(图片在 /wp-content/uploads/)。
  • 更优做法:在主题层把附件页直接 301 跳到原图片或父文章,比屏蔽更彻底;或者给附件页加 noindex meta。
// 关闭附件页,访问时 301 跳到附件父文章
add_action('template_redirect', function () {
    if (is_attachment()) {
        global $post;
        if ($post && $post->post_parent) {
            wp_redirect(get_permalink($post->post_parent), 301);
            exit;
        }
        // 没父文章就跳首页
        wp_redirect(home_url(), 301);
        exit;
    }
});

Sitemap 多文件声明

大型 WordPress 站会有多个 sitemap:文章、页面、图片、新闻、视频分别一个 XML。robots.txt 里要把它们都列出来:

Sitemap: https://yoursite.com/sitemap.xml
Sitemap: https://yoursite.com/post-sitemap.xml
Sitemap: https://yoursite.com/page-sitemap.xml
Sitemap: https://yoursite.com/image-sitemap.xml
Sitemap: https://yoursite.com/news-sitemap.xml

注意:

  • 每条 Sitemap 单独一行,绝对 URL(包含协议);
  • 放在 robots.txt 的开头或结尾都可以,不归属任何 User-agent 块;
  • Yoast / RankMath 默认生成 sitemap_index.xml,主 sitemap 有索引文件,子 sitemap 内嵌——直接声明索引文件即可,不用每个子文件都写。

Crawl-delay 在 2026 年的有效性

原帖没用 Crawl-delay,但社区里经常有人加这条。2026 年的真实情况:

搜索引擎支持 Crawl-delay?建议
Google不支持(已明确废弃)用 Search Console "抓取速度"设置
Bing支持可以用,单位是秒
Yandex支持可以用
百度支持可以用,但效果不如百度站长平台手动调整
Baidu Mobile支持同上

结论:Crawl-delay 对 Google 无效。如果服务器小、抓取压力大,建议在 Google Search Console 后台直接调"抓取速度"。其它引擎可以用:

User-agent: bingbot
Crawl-delay: 5

User-agent: Baiduspider
Crawl-delay: 3

Allow 与 Disallow 的优先级规则

当一条 URL 同时匹配 Allow 和 Disallow 时,按以下规则解析:

  1. Google / Bing更具体(更长)的规则胜出Allow: /wp-admin/admin-ajax.php 长于 Disallow: /wp-admin/,所以 admin-ajax.php 被允许抓。
  2. 百度先出现的规则胜出。所以白名单 Allow 要写在 Disallow 之前。
  3. 大多数其它爬虫:保守按"最长匹配",或最早出现规则。

跨引擎兼容写法:把 Allow 写在 Disallow 前面,且 Allow 路径比 Disallow 长:

User-agent: *
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-admin/

通配符 * 与锚定 $

WordPress 站点常用的两个通配符:

  • *:匹配任意字符(含空)。
  • $:URL 结尾锚定。

例子:

# 屏蔽所有 .php 结尾 URL(小心不要误伤 wp-cron.php 之类)
Disallow: /*.php$

# 屏蔽所有带查询参数的 URL(极激进,慎用)
Disallow: /*?

# 只屏蔽特定查询参数(推荐)
Disallow: /*?replytocom=
Disallow: /*?utm_source=

# 屏蔽所有 PDF
Disallow: /*.pdf$

实际生产中 *? 一刀切屏蔽所有查询参数会把 search 页(?s=keyword)、分页(?paged=2)、自定义功能 URL 全屏掉,慎用。建议精确指定参数名。

调试与验证

Google Search Console robots.txt 测试器

登录 Google Search Console → "设置" → "robots.txt"。粘贴你的规则,输入要测试的 URL,工具会告诉你"允许"还是"被某条规则禁用",并高亮具体那一行。这是最权威的验证。

命令行用 wget / curl

# 直接验证 robots.txt 内容
curl https://yoursite.com/robots.txt

# 用 wget 模拟爬虫遵守 robots.txt 抓
wget --robots=on --user-agent="Googlebot" \
     --recursive --level=2 https://yoursite.com/

# 看 wget 是否遵守 robots.txt(应该跳过被屏蔽的 URL)

在 Bing Webmaster 工具里测试

Bing 的 robots.txt 解析与 Google 略有差异——上一节优先级规则提到 Bing 也用最长匹配,但实测某些 corner case 不同。Bing Webmaster Tools → 配置 → robots.txt 测试器,验证 Bingbot 视角的规则。

常见错误清单

  • 用 Allow / Disallow 时路径忘加开头斜杠Disallow: wp-admin/ 不会匹配,必须写 Disallow: /wp-admin/
  • 声明的 Sitemap URL 用错协议:站点是 HTTPS 但 Sitemap 写 http://,Google 抓 sitemap 时会因协议跳转浪费抓取预算。
  • 多个 robots.txt 文件冲突:根目录一个、wp-content/ 一个、子域一个。爬虫只读根目录的,子目录的全无效。
  • 用编辑器保存时加了 BOM:UTF-8 with BOM 会让某些爬虫把第一行当乱码不解析。robots.txt 必须用 UTF-8 无 BOM 保存。
  • 大小写敏感Disallow: /WP-Admin/ 不会匹配 /wp-admin/(在 Linux 服务器上路径大小写敏感)。统一小写。
  • Disallow 写正则:robots.txt 不支持完整正则,只支持 *$Disallow: /post-[0-9]+/ 这种正则写法会被字面解析(不会工作)。

生产环境推荐版(2026 年标准)

# ============================================
# WordPress robots.txt — 2026 推荐版
# ============================================

# AI 训练爬虫(按版权策略选择拦或放)
User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Bytespider
Disallow: /

User-agent: Google-Extended
Disallow: /

# AI 实时查询爬虫(建议放行,是 GEO 流量入口)
User-agent: ChatGPT-User
Allow: /

User-agent: Claude-User
Allow: /

User-agent: Perplexity-User
Allow: /

User-agent: PerplexityBot
Allow: /

# 慢速爬虫加抓取间隔(仅 Bing / 百度生效)
User-agent: bingbot
Crawl-delay: 5

User-agent: Baiduspider
Crawl-delay: 3

# 通用规则
User-agent: *
Allow: /wp-admin/admin-ajax.php
Allow: /wp-content/uploads/
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /wp-config-sample.php
Disallow: /readme.html
Disallow: /license.txt
Disallow: /xmlrpc.php

# 评论 / trackback 噪声
Disallow: /*?replytocom=
Disallow: /*/comment-page-*
Disallow: /*/trackback/

# 站内搜索 / UTM 参数
Disallow: /*?s=
Disallow: /*?utm_

# Sitemap
Sitemap: https://yoursite.com/sitemap.xml

这套规则在 2026 年的 Google / Bing / Baidu 上都验证过,没有"屏蔽 CSS/JS 影响渲染"这种自残行为,对 AI 爬虫做了明确分类,对评论 / 搜索噪声做了精确屏蔽,分页页让爬虫能跟链接但不索引(用 noindex meta 配合而不是 Disallow)。

常见问题解答

有 Yoast / RankMath 插件还需要自己写 robots.txt 吗?

不需要。这两个插件都内置 robots.txt 编辑器(Yoast → 工具 → 文件编辑;RankMath → 常规设置 → robots.txt)。从插件后台编辑会写到虚拟 robots.txt,不需要操作物理文件。如果你既上传了物理文件又用插件编辑,物理文件优先,插件配置失效——这是常见 cause of confusion。

不写 sitemap.xml 引用,搜索引擎会找到吗?

会,但慢。Google / Bing 都会自动尝试 /sitemap.xml/sitemap_index.xml。但显式声明能让爬虫立刻知道 sitemap 在哪,特别是 sitemap 路径非标准时(比如装了第三方 SEO 插件改了路径)。建议显式写。

百度对 robots.txt 的解析跟 Google 差别大吗?

三个主要差异:① 百度不严格区分 User-agent 大小写baiduspiderBaiduspider 等价;Google 严格区分;② 百度优先级是"先出现先匹配",Google 是"最长匹配"——Allow 顺序写错可能在百度失效;③ 百度对带查询参数的 URL 屏蔽更宽松,Disallow: /*? 在 Google 立竿见影,百度需要明确路径前缀。

屏蔽 /xmlrpc.php 真的安全吗?

实际上更稳的做法是在 Web 服务器层 deny(Nginx 或 Apache 直接 403)。robots.txt 只是"君子约定",恶意攻击者完全不遵守,他们会照样请求 xmlrpc.php 暴力破解。robots.txt 屏蔽是为了让搜索引擎不去爬这个端点,避免在 SERP 出现。安全靠应用层 + WAF。

多语言子站(如 example.com/zh/、example.com/en/)的 robots.txt 怎么写?

子目录形式的多语言用一个根 robots.txt 就行。但要注意子目录里的资源屏蔽规则要写完整路径:Disallow: /zh/wp-admin/(如果每个语言有独立 wp-admin,比如 multisite)。子域形式的多语言(zh.example.com / en.example.com)必须每个子域单独写一个 robots.txt——根域的 robots.txt 不影响子域。

Disallow: / 一刀切屏蔽全站,万一忘了改回来怎么办?

新站上线前的"暂时全屏蔽"是常见做法。预防忘记改回来的方法:① 在 Search Console 设个提醒;② robots.txt 里加注释 # TEMP! REMOVE BEFORE LAUNCH;③ 装 Yoast 插件,它在后台仪表板会显著提醒"您的网站当前禁止搜索引擎索引"。WordPress 的"设置 - 阅读 - 搜索引擎可见性"勾选后会自动加 Disallow: / 并在仪表板红字提示。

不同搜索引擎我可以给不同规则吗?

可以。每个 User-agent 块独立。给 Bingbot 慢一点,给 Googlebot 全开,给国产爬虫额外屏蔽——都能写。但写规则越多越复杂,维护成本越高,建议除非有明确差异化需求,否则统一用 User-agent: * 一组规则。

站点更新 robots.txt 后多久生效?

Google 缓存 robots.txt 通常 24 小时(可在 Search Console 强制刷新)。其它爬虫从几小时到几天不等。重要更改后,到 Search Console → "robots.txt 测试器" 主动提交一次,能立刻让 Google 重新拉。

WordPress 的 do_robotstxt action 怎么自定义?

主题 functions.php 加:add_action('do_robotstxt', function () { echo \"\\nUser-agent: BadBot\\nDisallow: /\\n\"; });。这样不需要物理文件,WordPress 动态生成的 robots.txt 末尾会追加你的内容。前提是没有物理 robots.txt 文件,否则虚拟生成不被触发。

用 .htaccess 直接拦爬虫和 robots.txt 屏蔽哪个更彻底?

.htaccess 拦截更彻底——直接 403 不让请求触达 PHP,恶意爬虫也无效绕过。robots.txt 是软请求,遵守与否看爬虫"良知"。生产环境推荐组合:robots.txt 给善意爬虫(搜索引擎 / SEO 工具)做"礼貌请求";.htaccess / Nginx / WAF 给恶意爬虫做"强制拦截"。两者互补。

FAQPage + Article AI 引用友好版

TL;DR · 60–80 字摘要 · 适用 ChatGPT / Perplexity / Gemini / 文心 引用

WordPress 的 robots.txt 写错会让 Google 抓不到内容、写『通用版』反而屏蔽掉 CSS/JS 让移动友好性扣分。本文给出 2026 年标准模板:虚拟 robots.txt 与物理文件的优先级判定、wp-content/wp-includes 不再屏蔽的理由、GPTBot/ClaudeBot 等 AI 爬虫的拦放分类、Allow/Disallow 在 Google/Bing/百度的优先级差异、附件页处理、Sitemap 多文件声明与调试方法。

关键实体 · Key Entities

  • robots.txt
  • AI爬虫
  • Yoast SEO
  • RankMath
  • 搜索引擎优化
  • WordPress SEO

引用元数据 · Citation Metadata

title:       WordPress robots.txt2026版完全指南:虚拟vs物理优先级、AI爬虫策略、Allow/Disallow引擎差异
author:      张文保 (Paul Zhang) — PatPat SEO 经理
url:         https://zhangwenbao.com/wordpress-add-robots-txt-files-and-optimize-website-collection.html
published:   2018-05-03
modified:    2026-05-16
source-type: First-hand expert commentary
language:    zh-CN
license:     CC BY-NC-SA 4.0 (要求保留原文链接与作者归属)
分享到
标签
版权声明

本文标题:《WordPress robots.txt2026版完全指南:虚拟vs物理优先级、AI爬虫策略、Allow/Disallow引擎差异》

本文链接:https://zhangwenbao.com/wordpress-add-robots-txt-files-and-optimize-website-collection.html

版权声明:本文原创,转载请注明出处和链接。许可协议: CC BY-NC-SA 4.0

继续阅读
发表评论
分享到微信 或在下方手动填写
支持 Ctrl + Enter 提交