Robots文件放在哪、能管什么,哪些是它管不到的
robots.txt 放在网站的哪个位置、能管什么、管不到什么?位置是站点根目录,这个没有第二种选择;能力边界是「限制抓取」,而不是「限制索引」。很多站的问题恰恰出在这两点上:文件放错层级导致规则完全不生效,或者把不想公开的内容交给它去藏。搞清楚它管什么、不管什么,收录排查时才能判断问题是出在抓取侧还是内容侧。
位置为什么只能在根目录
这个文件的查找方式是固定的:爬虫访问站点时先按根路径取这一份,不会去二级目录或子站点目录找。放在 /static、/admin 或某个子目录下,等于没有生效。
多站点部署时这一点更容易出错:同一套程序挂多个域名,每个域名都要有各自根目录下的这份文件,规则互相不能借用。给主站写了限制,不等于分站也有同样的限制。
它能管的两件事
第一是路径可见性:声明哪些路径允许抓取、哪些不允许,规则对路径下的所有文件生效。第二是抓取节奏,通过独立的请求头字段告诉处理程序两次请求之间至少间隔多久,用它来控制对服务器的访问压力。
AnQiCMS 把这一项做成了后台可配置的 SEO 设置,改完直接生效,不需要手工去改服务器上的文件——这点对经常调整规则的站很有用,因为它降低了改错的代价。
它管不到的三件事
一是已经公开链接的页面。限制抓取只是不让它来取内容,页面本身如果有外部链接指过来,仍然可能出现在结果里,而且因为没有取到正文,展示出来的摘要反而更不可控。真要控制是否被收录,得在页面内用元标签或者响应头来下指令,这属于另一条链路。
二是访问权限。它不是鉴权机制,任何人打开这个文件都能读到里面写的路径,把后台目录、测试目录列进去等于给外人一张地图。
三是已经外发出去的旧地址。改版之后旧链接的走向要靠 301 重定向来处理,靠限制抓取来解决只会让新旧地址并存得更久。
指向站点地图的那一行怎么写
文件里可以声明站点地图的位置,写法是单独一行给出站点地图文件的完整地址。要注意三件事:这个地址必须能被直接访问;它指向的是当前生效的那一份,改版后别留着旧域名;多站点各自声明自己那份。
常见错误是把站点地图文件所在目录整块限制抓取,结果声明行指向了一个不允许访问的地址,两边互相矛盾,站点地图形同虚设。声明和限制之间谁覆盖谁,取决于路径匹配,检查时只看两点即可:站点地图地址本身可达,且它不在任何限制规则的路径下。
草稿与待发布内容不要靠它藏
草稿、待发布和回收站里的内容不应该对外可见。把它们的路径写进限制规则是最省事的做法,但不保险:链接一旦外发就可能在别处留下痕迹,而抓取限制并不会让页面下线。
更稳的做法是从状态上控制:草稿和待发布内容不生成对外可访问的地址,预览走带预览参数的专用链路,抓取侧默认不进入清单;站点地图与链接推送只输出正式文档。这样主动推送和新地址提交都不会把未完成内容递出去,也不需要在这个文件里堆规则。
常见问题
根目录访问不到这个文件是什么原因?多数是伪静态规则把请求吃掉了,或者站点部署在子路径下。先直接访问确认返回状态码是成功而不是跳转或重写到首页。
限制抓取会影响权重吗?它不直接作用在排名上,只决定能不能取到内容。要控制展示与索引,走页面内的元标签或响应头那条路。
多久该检查一次?每次改路径规则、加子站点、上线新模块之后都要复查一遍,平时按季度核一次即可。