为什么你的网站页面明明存在,Google就是死活不收录?

你是不是也遇到过:文章发了,外链建了,等了一个月,后台还是显示“未收录”?
别急着改标题、重写开头——先打开你网站根目录下的 robots.txt 文件,看一眼。它可能正悄悄把你辛辛苦苦做的内容,一整页一整页地拦在爬虫门外。

我帮一个教育类网站做诊断,他们三个月没新增收录,最后发现 robots.txt 里写着 Disallow: /article/——而所有正文页面都在这个路径下。一行错,全站哑火。

robots.txt到底控制什么?它控制不了的又是什么?

robots.txt 不是“封禁开关”,它是爬虫的路标牌:告诉它们“这儿别走”,而不是“这儿别记”。

比如你写 Disallow: /admin/,爬虫就不会去抓 /admin/login.php。但如果别人在论坛里贴了这个链接,谷歌照样可能把它收进索引——只是点进去会显示 403 或空白页。

更关键的是:robots.txt 挡不住已经被外链引用的页面
有个客户把产品页路径 /product/ 加进 Disallow,以为能彻底隐身。结果三个月后,那些页面还在搜索结果里挂着,只是用户点进去看到“访问被拒绝”。这不是屏蔽,是自曝其短。

还有个常见误会:robots.txt 不是防盗门。它对恶意爬虫、黑产工具完全无效。想保护敏感数据?得靠权限控制、登录验证,不是靠这一行文本。

一个robots.txt文件到底应该包含哪些指令?给你3个必写项

翻过上千份 robots.txt,我发现新手最常漏掉的,其实是第二行。

第一行:User-agent
必须有,且通常就写这一句:

User-agent: *

* 表示所有爬虫都适用。别写 User-agent: Googlebot 然后幻想只管谷歌——百度、Bing、Yandex 的爬虫根本不会认这个账。

第二行:Sitemap 声明
不是强制项,但强烈建议加上:

Sitemap: https://你的域名.com/sitemap.xml

这等于直接把地图塞进爬虫手里。我自己的小站加了这行后,新文章被发现的速度明显提升。

第三行:Disallow 或 Allow
这是核心动作。Disallow: / 是“关门大吉”,只适合测试站或临时下线;正常网站该做的是“精准限行”:

  • 只禁真正不该被索引的路径(比如后台、筛选页、测试页)
  • 别用它拦购物车、分页、参数页——这些更适合用 <meta name="robots" content="noindex"> 控制

真实案例:某电商把 /cart/ 加进 Disallow,结果爬虫每次访问都触发 302 跳转,大量抓取配额耗在重定向上,连带影响了新品页的抓取频率。后来改成 noindex 标签,问题立刻缓解。

哪些页面必须用Disallow禁止?哪些千万别禁止?

判断标准很简单:用户直接输入这个 URL,能获得有效信息吗?

必须禁止的三类页面:

  1. 管理后台和登录入口 —— 比如 /wp-admin//admin//login。既无搜索价值,还可能暴露系统路径。
  2. 无限生成的筛选页 —— 比如 /products/?sort=price&filter=on&tag=123 这类带一堆参数的链接。一个电商站曾因没拦这类页面,70%以上的抓取配额被浪费在重复内容上。
  3. 临时性页面 —— 测试页、暂存页、A/B测试分支页。一旦被收录,后期删掉会引发 404 风险。

千万别禁止的两类资源:

  • CSS 和 JS 文件 —— 禁了 /assets//static/?那爬虫看到的就是没样式的白板网页,渲染失败 → 排名暴跌。样式和脚本是页面“活着”的基础。
  • 图片目录 —— 禁了 /images/?等于主动放弃图片搜索流量。我朋友公司就吃过这亏:竞品的产品图在谷歌图片里排前三,他们自己的图一张都搜不到,咨询量差距越拉越大。

robots.txt的语法陷阱:一个空格就能让你网站瘫痪

它看着像纯文本,实则处处是雷。下面这些坑,我都替人踩过:

陷阱1:路径大小写敏感
你的后台实际路径是 /Admin/(A 大写),但 robots.txt 写的是 Disallow: /admin/(a 小写)?那爬虫照爬不误。Linux 服务器和主流爬虫一律区分大小写,别赌服务器宽容。

陷阱2:冒号后面少了个空格
正确写法:Disallow: /wp-admin/
错误写法:Disallow:/wp-admin/(冒号紧贴路径)→ 这行直接被忽略。
同理,Allow: /public/ 是有效的,Allow:/public/ 是废的。

陷阱3:过度依赖正则,结果各平台表现不一
谷歌支持 *.pdf$,百度可能根本不认。最稳妥的做法是:用明确路径代替模糊匹配。
比如想拦下载页,写 Disallow: /downloads/,比 Disallow: /*.pdf 更可靠。

还有一个经典翻车现场:

User-agent: *
Disallow: /
Allow: /images/

看起来是“只放行图片”,但多数爬虫会按顺序执行,先看到 Disallow: / 就全拒了,后面的 Allow 形同虚设。真要这么干,得换种写法(见下文),但更推荐:只禁该禁的,其他默认开放

怎么测试你的robots.txt是否写对了?3个免费工具

改完别急着上传,先测。这三个工具我都天天用:

1. Google Search Console 的 robots.txt 测试器
路径:GSC → 设置 → robots.txt 测试器
它模拟谷歌爬虫的真实行为,告诉你某条路径是 Allowed 还是 Disallowed。这是我每天上线前必跑的第一关。

2. Bing Webmaster Tools 的 URL 测试功能
路径:Bing 网站站长工具 → 网站管理 → URL 测试
Bing 对通配符和路径匹配的逻辑和谷歌不同。我曾发现同一行规则,在 GSC 显示允许,在 Bing 却被拒——原因就是 Bing 不支持 $ 结尾匹配。

3. Chrome 插件 Robots.txt Checker
安装后,右键任意页面 → “Check robots.txt” → 一秒出结果。适合快速验证单个链接,不用反复切到 GSC。

测试时盯紧三件事:
✅ 首页能不能抓
✅ 你最想被收录的几篇内容页(比如最新文章、主力产品页)能不能抓
❌ 你明确想拦的路径(比如 /admin//search/)是不是真被拦住了

血的教训:有站长只测了首页,没注意他写的 Disallow: /sitemap(少了 .xml),结果爬虫在解析 sitemap 时路径匹配混乱,导致部分页面迟迟不被发现。robots.txt 里没有“差不多”,只有“对”或“错”。

今天就能做的一个操作:给你的robots.txt做一次“断舍离”

现在,花 5 分钟,做这件事:

第一步: 打开浏览器,访问 https://你的域名.com/robots.txt(比如 https://example.com/robots.txt

第二步: 把所有 Disallow: 开头的行,逐条问自己:
→ 这个路径下的页面,用户搜不到、点不开、也没人外链,真的有必要让它彻底消失吗?
→ 如果答案是“其实可以索引”或“我不确定”,直接删掉这行

第三步: 在文件最下方加一行(把域名换成你自己的):

Sitemap: https://你的域名.com/sitemap.xml

如果你还没生成 sitemap,用 WordPress 的 Yoast SEO、Rank Math,或者 Typecho 的插件,几分钟就能搞定。

第四步: 回到 Google Search Console,打开 robots.txt 测试器,粘贴你刚改好的内容,点“测试”。确认首页、主力内容页都是 Allowed,再点“保存”。

做完这四步,你的爬虫配额就开始流向真正重要的页面了。不用等算法更新,不用买新工具——就从这一份小小的文本开始。