解析用户组与规则、按会不会伤害收录逐条体检,并用三种 UA 对照发现 WAF 误伤爬虫;附 WordPress 专属Robots.txt生成器
输入网址,看爬虫到底被允许抓什么、被禁止抓什么,并逐条解读每个错误配置的后果 —— 顺便一键生成 WordPress 专属的 robots.txt
按需勾选,右侧实时生成一份带中文注释、可直接上传使用的 robots.txt。全部在浏览器本地完成,不会上传任何数据。
保存为 UTF-8 无 BOM 编码,上传到网站根目录。访问 https://你的域名/robots.txt 能直接打开内容即配置成功。
💡 相关工具:如果你想检测「单个网站页面」能否被搜索引擎或AI爬虫抓取,查看单条链接的robots.txt规则对不对,请使用➡️ 链接抓取测试工具,两者配合使用效果最好。
输入一个网址,工具会真实抓取该站的 robots.txt,把里面的用户组与规则逐条解析出来,再按「会不会伤害收录」做一次体检。同时用 Googlebot 的 User-Agent 复抓一次,用来发现被 WAF 或安全插件误伤的爬虫。
| 检测项 | 能看到什么 |
|---|---|
| 文件可访问性 | robots.txt 究竟返回 200 还是 404 / 403 / 5xx;返回的是纯文本还是被伪静态规则变成的网页;是否发生了跳转;文件是否为空 |
| 规则分组解析 | 有哪些 User-agent 组、每组下的 Allow / Disallow 分别写了什么、行号是多少,* 组代表所有未被单独列出的爬虫 |
| 爬虫可达性自查 | 用浏览器 UA 与 Googlebot UA 各请求一次,如果结果不一致,说明服务器按 UA 做了拦截 —— 这是「网站内容正常但完全没收录」的常见原因 |
| 收录风险体检 | 是否禁止抓取全站、是否误屏蔽 CSS / JS / 图片目录、是否屏蔽了搜索引擎主爬虫或 AI 爬虫、是否存在无效规则 |
| 乱码与编码问题 | 识别文件里的乱码行、非 ASCII 路径、BOM 头 —— 这三类问题会让规则「看起来写了,其实完全不生效」 |
| Sitemap 检查 | 是否声明了 Sitemap、地址能否访问、返回的是索引文件还是地址列表、包含多少条记录 |
| 规则生成 | 按 WordPress 实际目录结构生成一份可直接使用的 robots.txt,而不是套用通用模板 |
robots.txt 是放在网站根目录的一个纯文本文件,是爬虫进入站点的第一站:蜘蛛抓取任何页面之前,都会先来读它,按里面的规则决定「哪些能抓、哪些不抓」。它由「用户组(User-agent)」和「规则(Allow / Disallow)」两部分组成,同一组里的规则只对组内声明的爬虫生效。
它最大的特点是不对称:写对了没人夸,写错了代价极大。因为它的语法非常宽松 —— 拼错的指令不会报错,只会被静默忽略;少写一个斜杠、多写一个星号,规则的含义可能完全反过来。更麻烦的是它的错误往往是「静默生效」的:页面照常打开、访客毫无感觉,只有搜索引擎在慢慢减少收录,等到发现问题时,通常已经过去几周。
几个必须知道的规则细节:
Disallow: wp-admin/ 是无效写法,必须写 Disallow: /wp-admin/。Disallow: 等于没有限制,与 Disallow: / 的含义正好相反。Disallow: /wp-admin/ 加 Allow: /wp-admin/admin-ajax.php 是能正常工作的。* 代表任意字符,$ 代表路径结束(Google 支持,多数现代爬虫也支持)。下面这些都是在真实站点里高频出现的问题,本工具的体检项就是围绕它们设计的:
User-agent: Baidu、User-agent: 谷歌 这类写法爬虫无法匹配,规则等于没写。名称必须用官方 UA 标识,如 Baiduspider、Googlebot。Baiduspider、Googlebot 一起屏蔽了 —— 结果采集没挡住,自己的收录先没了。Disallow: /锛 * 这样的乱码行。它们既无效,又会让人误以为「已经屏蔽了」,实际什么都没屏蔽。User-agent 之前,不属于任何分组,会被直接忽略。这是唯一一种「位置错误导致规则失效」的情况 —— 很多人以为「组与组之间忘了空行,规则就会被并进上一组」,其实正好相反:空行不会结束分组(见下方说明)。/robots.txt 会返回首页的 HTML。爬虫按纯文本解析一堆标签,规则全部失效 —— 这种情况在体检里会明确标成「返回的是网页」。WordPress 的目录结构与普通静态站不同,所以不要照搬通用模板。下面是一份适合大多数内容站与外贸独立站的基础版本(本工具生成器的默认输出即按此思路组织):
User-agent: * # 后台:不收录,但放行 admin-ajax.php Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php # 版本暴露文件 Disallow: /readme.html Disallow: /license.txt # 站内搜索与聚合页,避免索引膨胀 Disallow: /?s= Disallow: /*?s= Disallow: /tag/ Disallow: /author/ Disallow: /*?replytocom= Sitemap: https://你的域名/wp-sitemap.xml
理解这份配置的关键是「目的」:robots.txt 的作用是把抓取额度集中到有价值的内容页上。WordPress 天生会生成大量相似页面 —— 搜索结果、标签归档、作者归档、日期归档、附件页、评论回复链接,它们内容重复且数量近乎无限。如果不加限制,蜘蛛的抓取预算会被这些页面吃掉,真正想被收录的产品页与文章反而排不上。
反之,下面这些目录永远不要屏蔽:/wp-content/uploads/(图片所在,屏蔽后图片搜索曝光归零)、/wp-includes/(核心 JS 与 CSS)、/wp-content/themes/、/wp-content/plugins/。另外,robots.txt 只影响爬虫、不影响真实访客,千万不要把它当成安全手段 —— 隐藏后台请用改登录地址、强密码、登录限制等方式。
2023 年以后,主流 AI 公司都上线了独立的爬虫标识,可以分成两类,处理策略完全不同:
OAI-SearchBot、ChatGPT-User、PerplexityBot、ClaudeBot。它们负责在你提问时实时去网上取内容,把结果带进回答里。屏蔽它们,等于主动放弃被 AI 引用和导流的机会 —— 也就是说,用户问 ChatGPT「WordPress 网站显示不安全怎么办」时,你的文章不会出现在答案来源里。GPTBot、Google-Extended、CCBot、Bytespider、Applebot-Extended 等。它们把内容用于模型训练,对当下的搜索排名没有直接影响,屏蔽与否纯属站长的自主选择(内容站通常倾向屏蔽以免被无偿使用)。如果你的目标是让内容在 AI 回答里被引用(也就是常说的 GEO 优化),推荐的做法是:放行检索引用型爬虫、按需屏蔽训练型爬虫。本工具的生成器里已经把这个选择做成了三档开关,不需要自己记爬虫名字。
但还有一个更隐蔽、杀伤力也更大的坑:CDN / WAF 把 AI 爬虫拦在门外。robots.txt 里写 Allow 只是你单方面的表态,AI 爬虫得真的能访问到你的页面才有意义。而阿里云 ESA、Cloudflare、各类安全插件提供的「人机校验」「UA 白名单」功能,默认只放行 Googlebot、Bingbot 这些传统搜索引擎,AI 爬虫一律被挡 —— 它们不执行 JavaScript,遇到验证页就拿不到任何内容,最后连你的 robots.txt 都读不到,前面做的所有 GEO 准备等于白费。
这种情况靠肉眼看不出来:页面在浏览器里一切正常,robots.txt 用浏览器打开也没问题(真实浏览器能通过 JS 校验)。本工具会用三种不同的 User-Agent 各取一次 robots.txt 做对照,如果发现「浏览器能读、AI 爬虫读不到」,会在体检结论里直接标出来。
robots.txt 的分组规则比大多数人想的宽松。按官方规范(RFC 9309),一个分组由一条或多条 User-agent 行加上它后面的规则组成,组的边界只由「下一条 User-agent 行」或「文件结束」决定,空行不产生任何影响。也就是说下面这种写法是完全合法的,三条 Disallow 都属于同一个组、全部生效:
User-agent: * Disallow: /wp-admin/ Disallow: /?s= Disallow: /tag/
不少在线检测工具会把空行后的规则误判为「不属于任何分组、将被忽略」,吓得不轻。如果某个工具这样提示你,可以用本工具复测确认 —— 解析逻辑是按规范实现的。真正会被忽略的只有一种情况:规则出现在整个文件的第一条 User-agent 之前,因为它确实不属于任何分组。