robots.txt写错一行,整站都可能被搜索引擎屏蔽抓取

来源:互联网 时间:2026-10-19

这个文件的位置是死的:必须放在域名根目录,路径就是/robots.txt。放错地方,写了等于没写。这一点没有例外,子目录里的同名文件不会被读取。

放在子目录、或者绑定的站点根目录指错了地方,搜索引擎一律当它不存在,回退到默认抓取策略。所以有时候文件明明写了规则却不生效,先确认访问的是不是根目录那一个。最要命的一行是Disallow下面只写一个斜杠,开发测试时为了不让搜索引擎碰,整站屏蔽,上线时忘了删。顺带说一句语法:每个User-agent段只管到下一个User-agent为止,段与段之间不共享规则。

通配符别当正则用

表现是收录一直不涨,抓取诊断里一切正常,日志里也能看到爬虫来访,就是不进索引。查的时候别只看面板,直接把域名后面拼上/robots.txt在浏览器里打开,逐行读一遍。这一步花不到两分钟,但绝大多数人从来没做过,收录出问题时也想不到来这儿查。

星号和美元符号也不是所有引擎都按同一套规则解析,写的时候要按最保守的那家来。同一个文件在两家引擎上生效的结果可能不一样,这条得认。Google支持星号匹配任意字符、美元符号匹配结尾,百度的支持范围要窄一些。更常见的是把正则写法直接搬过来,比如用星号加.php加美元符号拼成一条,在有的引擎里会被当成字面路径,结果什么都没屏蔽掉,用户还一直以为自己屏蔽了。还有Allow和Disallow冲突的情况,路径长度相同时Allow优先。爬虫也不是每次都来读这个文件,各家的缓存时间不一样,改完别指望立刻生效。

屏蔽样式和脚本的连带麻烦

为了省抓取配额,把/wp-includes/、/static/、/assets/这几个目录整片屏蔽掉,是常见做法,看起来很有道理。

问题是搜索引擎要靠这些文件渲染页面,渲染不出来,它看到的就是一个残缺的页面。那个页面在它眼里可能是排版错乱、主要内容为空的。移动适配、首屏内容、结构化数据的判断都会跟着受影响。省下的那点抓取额度换不回来。

抓取配额真不够用的时候,更该做的是把无意义的参数页挡掉。带一排排序参数的列表页、站内搜索结果页,这类地址的数量能比正文页多出好几倍,挡掉它们既不影响正文收录,又能把配额留给真正要推的文章。

改完自己验一遍

文件改完,用搜索引擎官方的robots测试工具跑一遍,别只看语法高亮变绿。百度和Google都提供在线测试,输入URL能看到最终生效的规则,以及某个具体页面是被哪一行挡住的。这一项花两分钟,比事后查半个月收录强。测试工具里还能模拟某个具体UA,看那个爬虫眼中的规则长什么样。

Sitemap地址也写在这个文件里,路径区分大小写。写完顺手把整站屏蔽那行搜一遍,确认它真的不在了。如果站点换过域名,旧文件里的Sitemap地址也要跟着改,否则爬虫拿到的还是旧站的地图。改过的文件留个备份,出问题时好对比是改前还是改后开始掉的收录。

相关文章

A5创业网 版权所有

返回顶部