当前所在位置: 首页 > SEO优化

robots.txt写错会怎么样?三个真实的翻车案例

2026-09-09 本站作者 【 字体:大 中 小 】

robots.txt是网站根目录下一个小文件,用来告诉搜索引擎哪些页面可以抓取,哪些不可以抓取。文件不大,但一行写错就可能,网站的收录就有可能出现大幅下滑。本文分享三个robots.txt翻车案例,每个都是实际发生过的,看完你就知道这个小文件有多重要。

案例一:User-agent和注释写同一行,国外引擎没拦住

背景:一个做企业站的站长,网站上线半年,百度收录一直比较稳定。某天在后台改了robots.txt,加了一段国内搜索引擎白名单规则,想只允许百度、360、搜狗等国内引擎抓取,屏蔽谷歌等国外引擎。

翻车过程:改完之后这位站长把国内引擎逐一写了User-agent规则,然后在写兜底规则时,本意是写 User-agent: * 加 Disallow: / 。结果手误写成了 User-agent: *# ,后面跟了一段注释。

问题在于 robots.txt 的解析逻辑里, # 号才是注释的开始。搜索引擎读到 User-agent: *# 时,会把 *# 整体当作User-agent的名称,而不是把 * 当作通配符。结果就是真正的兜底规则(User-agent: *)没有被识别到。

更关键的是,他把百度的 User-agent 写成了 Baiduspider/2.0 而不是标准的 Baiduspider。百度蜘蛛自己解析robots.txt时是前缀匹配,Baiduspider/2.0 能命中百度蜘蛛的UA。但问题是兜底规则失效后,国外搜索引擎(Google、Bing等)的蜘蛛匹配不到对应的规则组,也找不到 * 组,就按默认逻辑——允许抓取。

站长本来想屏蔽的国外引擎,结果全部畅通无阻。等于白写了一堆白名单规则。

结果:改完一两周后,站长才发现问题——国外蜘蛛的抓取量暴涨,服务器日志里全是Googlebot和各种海外爬虫。虽然百度收录没受影响,但服务器带宽被占了不少,而且大量海外爬虫扫描敏感路径,带来了安全风险。

修复方法:把 User-agent: *# 后面的注释单独挪到上一行,确保 # 注释独立成行。User-agent名称统一用标准名(Baiduspider,不加版本号)。改完后用百度搜索资源平台的抓取诊断工具测试,确认百度蜘蛛正常抓取,同时观察日志里海外蜘蛛的抓取量是否下降。

教训:robots.txt里 # 号后面的内容都是注释,所以不能把注释和规则写在同一行。User-agent名称写爬虫的标准名称即可,不要加版本号。

案例二:Disallow通配符写错,栏目页全部消失

背景:一个SEO博客站长,网站有5个栏目,收录和排名都不错。某天想屏蔽一些敏感目录(后台、数据目录等),在robots.txt里加了一堆 Disallow 规则。

翻车过程:这位站长想屏蔽 /data/ 目录,但为了"更模糊一点",写成了 Disallow: /da* 。他以为 /da* 只会匹配 /data/ ,但实际上通配符 /da* 会匹配所有路径以 /da 开头的URL。

恰好他有一个栏目叫"大家谈",URL路径是 /dajiatan/ 。这个栏目的所有文章页URL都以 /da 开头,全部被 Disallow 规则命中,搜索引擎不再抓取。

结果:两周后,"大家谈"栏目从百度收录里基本消失了,栏目页和大部分文章页都搜不到。其他栏目正常。

修复方法:把 Disallow: /da* 改回精确写法 Disallow: /data/ 。不要在路径前缀上用通配符,尤其是2个字母的短前缀,误伤概率会高。修复后重新提交sitemap,两周左右栏目页逐步恢复收录。

教训:通配符 * 看着方便,但越短的前缀误伤面越大。2-3个字母的前缀大概率会碰到正常URL。屏蔽目录用完整目录名,不要图省事用通配。

案例三:sitemap地址写错,新内容迟迟不收录

背景:一个内容站站长,每天更新3-5篇文章,但新文章发布后百度迟迟不收录,有时候要等7-10天才被收录。之前收录速度比较快,一般1-2天就能收录。

翻车过程:站长检查了TDK、伪静态、内链都没问题,之后发现是robots.txt里的sitemap声明写错了。他的网站域名从http换到了https,但robots.txt里的sitemap地址还是 http:// 开头。

百度蜘蛛访问这个地址时会先301跳转到https,虽然百度能识别跳转,但多一步跳转增加了sitemap读取失败的概率,尤其在服务器不稳定的时候。

另外他的sitemap文件路径从 sitemap.xml 改成了 sitemap/index.xml ,但robots.txt里还写的是旧地址 Sitemap: http://www.example.com/sitemap.xml 。两个错误叠加,搜索引擎读取sitemap的成功率大幅下降,拿不到新内容列表,只能等蜘蛛自己慢慢爬。

结果:新内容收录从1-2天变成7-10天,收录速度明显下降。老内容不受影响,因为已经被收录过了。

修复方法:把sitemap地址改成完整的https地址,确认文件路径正确: Sitemap: https://www.example.com/sitemap/index.xml 。改完后在百度搜索资源平台手动提交一次sitemap,隔天就有新内容开始被收录。

教训:网站换https、换域名、改目录结构后,一定要同步更新robots.txt里的sitemap声明。sitemap地址要写完整的URL(含https://) ,不要写相对路径。

robots.txt自查清单

看完这三个案例,建议你立刻检查自己的robots.txt:

检查一:User-agent后面不要加版本号,不要在同一行写注释。 Baiduspider 对, Baiduspider/2.0 和 User-agent: *#注释 都不对。

检查二:Disallow路径不要用2-3个字母的短前缀通配符。 /data/ 是精确写法(安全), /da* 是通配写法(容易误伤)。

检查三:sitemap地址要用完整URL,协议要和网站一致(https)。换了域名或证书后要同步更新。

检查四:改完robots.txt后在百度搜索资源平台用"抓取诊断"工具测试一下,确认蜘蛛能正常抓取首页和栏目页。

检查五:不要在 robots.txt 里放敏感信息。robots.txt是公开可访问的,任何人都能看到你的 Disallow 规则,等于告诉别人你有哪些目录不想被看到。

总结

robots.txt是SEO的基础设施,文件虽小但影响全局。改之前先备份,改之后立刻验证,这是不翻车的基本操作。

关于百度收录的更多排查方法,可以看上篇《百度收录了页面为什么不显示标题和描述?》,讲的是收录正常但展示异常的问题。

——老吴SEO,专注搜索引擎优化与建站实操。更多内容访问 laowuseo.com

阅读全文