你的网站流量突然腰斩,可能只是因为一个换行符
早上打开后台,发现收录量掉了一半,流量像被掐住了脖子。你查服务器、看外链、翻内容,全都没问题。最后在技术群里有人甩来一句:“你 robots.txt 写错了吧?”——你点开一看,Disallow: /admmin/,多打了一个 m。就这一个字母,爬虫三个月没进过你后台,连带把商品管理页全索引了,数据被人扒走好几万条。
为什么一个文本文件能毁掉你几个月的努力?
robots.txt 不是“建议书”,是爬虫的行动清单。它不理解语境,不讲人情,只认字面意思。你写 Disallow: /admin/,它真就不碰;你写成 /admmin/,它照常闯进去。
而且这个文件谁都能看。你在里面写了 Disallow: /wp-json/,别人立刻知道你用 WordPress;写了 /backup/,黑客可能直接去扫目录。
我朋友做电商,上线时手抖多敲一个 m,结果后台页面被 Google 收录,还出现在搜索结果里。他查日志才发现:那三个月,爬虫每天都在抓他的商品列表、库存接口、甚至未发布的草稿页。
最常见的几个配置错误,你中过几个?
1. 把整个网站 Disallow 了
想屏蔽某个目录,却写了 Disallow: /,后面没跟任何 Allow 规则。爬虫一读,整站拉黑。你发一百篇干货,搜索引擎压根看不见。
检查很简单:浏览器里打开 https://你的域名/robots.txt,如果第一眼看到 Disallow: / 单独占一行,且下面没有 Allow: / 或更细粒度的放行规则,那你已经“裸奔”了。
2. 把 Sitemap 路径写错了
有人写 Sitemap: https://你的域名/sitemap.xml,但实际文件叫 sitemap_index.xml;有人写 HTTP,站点却是 HTTPS;最离谱的是,把本地路径 C:\xampp\htdocs\sitemap.xml 直接贴进去了。
结果就是:爬虫找不到地图,新文章发出去两周没动静,改版页面迟迟不进库。
3. 滥用通配符和正则
robots.txt 只支持极简通配符(* 和 $),不是正则引擎。写个 Disallow: /*?*,本意是屏蔽带参数的 URL,结果分页、筛选、搜索页全被封死。
有个资讯站为防 utm 参数被滥用,加了 Disallow: /*utm_*,结果连正常投放链接里的 utm_source=weixin 都被拦了,推广渠道流量直接断档。
3 个方法帮你彻底排查 robots.txt 隐患
方法一:用搜索引擎的工具测一遍
Google Search Console 和百度资源平台都有现成的 robots.txt 测试工具。不用注册,不用装插件,打开就用。
把你当前的 robots.txt 内容复制进去,再输入几个关键 URL:首页、一篇刚发的文章、一个分类页、还有 /wp-admin/(或你的后台路径)。工具会明确告诉你:哪些能抓,哪些被挡。如果后台路径显示“允许”,马上改。
方法二:手动检查三个硬伤
打开你的 robots.txt,盯住这三处:
- 有没有
Disallow: /这种“一刀切”写法?如果有,必须搭配Allow: /或更具体的放行规则,否则等于自废武功。 Sitemap:后面那个地址,复制粘贴到浏览器地址栏,能不能直接下载到 XML 文件?打不开,就是错的。- 有没有误封静态资源?比如
Disallow: /assets/或Disallow: /static/—— 这会让 CSS、JS、图片不被抓,页面渲染异常,收录也受影响。
方法三:用服务器日志反向验证
如果你有访问日志权限(Nginx 的 access.log 或 Apache 的 log 文件),直接搜 Googlebot 或 Baiduspider 的记录。
重点看两件事:
- 爬虫访问完
robots.txt后,有没有继续请求你的重要页面?比如/article/xxx或/category/tech。 - 如果它只抓了 2–3 个页面就停了,大概率是规则太狠,把它吓跑了。
一个真实案例:多了一个空格,少了 30% 流量
去年帮一个旅游攻略站排查,收录掉了快三分之一。我打开他的 robots.txt,发现这么两行:
Disallow: /images/
Disallow: /css/
注意第二行:Disallow: 后面是两个空格,不是常规的一个。爬虫解析时,把 /css/ 当成一个带空格的路径,规则失效。
可他下面又有一条 Allow: /,按理说该放行全部。但因为前面那条“无效规则”干扰了解析逻辑,部分关键页面被跳过。
再加上他的 Sitemap 地址写成了 sitemap.xml,实际文件是 sitemap_index.xml。Google 找不到地图,新攻略上线后一个月都没被发现。等他手动提交正确路径,收录才慢慢爬回来——那段时间,广告收入明显缩水。
写 robots.txt 时,这 3 个坑千万别踩
坑一:拿 robots.txt 当防火墙
别指望它保护后台、会员中心或 API 接口。爬虫会守规矩,黑客不会。你写 Disallow: /api/v1/,攻击者反而更确定这里有接口。
真正要藏的东西,得靠登录态、IP 限制、.htaccess 密码,或者干脆关掉目录浏览。robots.txt 只防老实人。
坑二:以为 Allow 能随便覆盖 Disallow
规则优先级只看路径长度,不看顺序。Disallow: /admin/ + Allow: /admin/login.php 是 OK 的;但如果你写成 Allow: /admin/login,而实际 URL 是 /admin/login.php,那还是被挡。
别依赖“后来者居上”,路径越精确,越稳。
坑三:把 robots.txt 放错地方
它必须放在网站根目录,也就是 https://你的域名/robots.txt。
WordPress 用户常犯的错:用插件生成后自动存到 /wp-content/ 下;或者 FTP 上传时手滑进了 /blog/ 子目录。结果爬虫根本读不到,所有配置等于白写。
验证方式超简单:浏览器直接访问 https://你的域名/robots.txt。能打开,说明位置对;404,赶紧挪。
今天就能执行的一个操作步骤
现在,打开浏览器,访问 https://你的域名/robots.txt。
- 如果显示 404:说明文件不存在,或不在根目录。立刻新建一个纯文本文件,命名为
robots.txt,只写三行:
User-agent: *
Allow: /
Sitemap: https://你的域名/sitemap_index.xml
(把 sitemap_index.xml 换成你真实存在的 sitemap 文件名)
- 然后上传到你网站根目录(不是子文件夹,不是 WordPress 插件目录,就是和
index.html或wp-config.php同一层的位置)。 - 接着去 Google Search Console 或百度资源平台,找到「robots.txt 测试工具」,粘贴你刚写的三行,测试首页、一篇最新文章、一个分类页——确保都标着“允许”。
- 最后,在同一个平台里,手动提交一次你的 sitemap。
全程不用十分钟。做完,你就把最基础、最致命的漏网之鱼堵死了。