robots.txt 写错一行,两个引擎都不来:Z-Blog 常见配置对照

· zblog · 阅读 2
摘要

robots.txt 是那种「平时不管,出问题时损失最大」的文件。写错一行,可能整站几个月不被抓。先确认它真的存在且能打开浏览器访问 https://你的域名/robots.txt,返回 200 且有内容才算数。返回 404 其实不致命,但

robots.txt 是个很小的文件,但它能让整站从搜索引擎里消失。我见过不止一个 Z-Blog 站,因为一行写错,两个引擎同时不来了,站长还以为是内容出了问题。

它是什么

robots.txt 放在站点根目录,文件名固定,全小写。搜索引擎第一次访问你的站,会先读这个文件,看看哪些目录不许抓。它是个「君子协定」,遵守与否靠引擎自觉,但主流引擎都遵守。

Z-Blog 上最常见的三种写法

第一种,最保守也是最推荐的:只禁用后台和几个不需要收录的目录。

User-agent: *
Disallow: /zb_system/
Disallow: /zb_users/
Allow: /zb_users/upload/
Sitemap: https://你的域名/sitemap.xml

注意 /zb_users/ 被禁之后,里面的 upload 目录也要单独放行,否则文章配图全抓不到。这个细节很多人漏掉,导致图片一直不收录。

第二种,禁止动态地址。如果你开了伪静态,不希望引擎去抓 /index.php? 这种动态地址,可以加一条 Disallow: /*?* 。但要小心,这条写下去,带参数的分页、搜索页也会被一起禁掉。

第三种,也就是最危险的一种:写成了 Disallow: / 。一个斜杠,意思是禁止抓取全站。这种错误通常来自「想先关掉收录,等站做好再开」的临时操作,结果忘了改回来。

怎么确认没写错

直接在浏览器访问 https://你的域名/robots.txt,看返回的内容。如果显示的是 HTML 页面而不是纯文本,说明伪静态规则有问题,robots.txt 没被正确读取。

然后去百度搜索资源平台的「抓取诊断」跑一次,谷歌用 Search Console 的 robots.txt 测试工具。两个工具都会告诉你,按当前的 robots 规则,某个具体 URL 能不能被抓。这一步比看文档有用得多。

一个容易忽略的点

robots.txt 禁止抓取不等于页面不会被收录。如果别的站链接了你的禁止页面,引擎仍然可能把它放进索引,只是显示一个没有摘要的条目。真正想让页面不出现在搜索结果里,要用 meta noindex 或者页面级 X-Robots-Tag。

这个区别很关键:robots 是「别来看」,noindex 是「别收录」。很多人混着用,结果越弄越乱。

建议

除非有明确理由,robots.txt 保持最简。只在里面禁后台、放行 sitemap 就够了,不要为了「优化」加一堆规则。规则越多,出错概率越大,而它出错的代价是整站级别的。