蜘蛛池知识

蜘蛛池入口页的 robots.txt:放行什么、屏蔽什么、坑在哪里

robots.txt 只控制抓取,不控制收录。本文围绕蜘蛛池入口页的批量部署场景,梳理哪些路径该放行、哪些目录值得屏蔽,以及通配符、子域、文件编码等高频错误,最后给出一份上线前的自查清单,减少入口页成批失效的情况。

蜘蛛池知识

蜘蛛池入口页的 robots.txt:放行什么、屏蔽什么、坑在哪里

robots.txt 是站点根目录下一个纯文本文件,用来说明哪些路径允许抓、哪些不允许。文件本身很简单,但在蜘蛛池场景里,入口页数量多、模板统一、常常批量生成,一条写错的规则影响的往往不是一个页面,而是整批页面同时失去被抓取的机会。下面按放行什么、屏蔽什么、容易踩的坑来讲。

一、先分清:它管的是抓取,不是收录

robots.txt 只能告诉蜘蛛这条路不要走,并不能决定 URL 会不会出现在搜索结果里。一个常见误解是:把入口页 Disallow 掉,就等于这批页面干净了。实际上只要 URL 通过外链、历史记录或主动提交被蜘蛛知晓,它仍可能被收录,只是内容读不到,展示出来的往往是空标题或旧摘要。所以动手屏蔽之前先想清楚目的:是不希望蜘蛛在这里浪费抓取配额,还是不希望页面被看到。这两件事的解法并不一样。

二、入口页通常需要放行的部分

  • 入口页自身路径:如果希望蜘蛛读到入口页内容并顺着链接继续走,就不要对整个目录做 Disallow。
  • CSS、JS 等静态资源:资源被屏蔽后,蜘蛛拿到的渲染结果可能和用户看到的不一致,判断页面质量时容易出偏差。
  • Sitemap 所在路径:文件本身不面向用户,但保持可抓取会更省事。

三、这些路径通常值得屏蔽

  • 后台、登录、测试目录等不适合被外部访问的路径。
  • 站内搜索结果页,以及带大量参数的筛选页,这类 URL 组合几乎可以无限生成。
  • 统计脚本、跳转中间页等只服务于点击计数的路径。
  • 同一内容的多套 URL 变体,可以先用 Disallow 兜住,长期还是建议用 301 或 canonical 处理。

四、几个高频坑

1. 通配符和结尾符号用错

Disallow 里的路径不带通配符时按前缀匹配,写了 /tmp 会把 /tmpabc 一起拦掉。需要精确到目录时补上结尾斜杠;需要匹配参数或后缀时用 * 和 $,但建议先小范围验证,再全量生效。

2. 多域名、多子域各写各的

robots.txt 按主机名生效,子域不会自动继承主域的规则。入口页分散在多个域名下时,要逐站确认文件存在,不要只在主站放一份。

3. 文件格式出问题

文件开头的 BOM 头、全角冒号、大小写混用,都可能让整段规则被忽略。写完直接拿浏览器打开看一眼,比事后排查要快得多。

4. 把它当成访问控制手段

robots.txt 是约定,不是屏障。真正敏感的内容请用权限校验,别指望一行 Disallow 挡住谁。

五、和 Sitemap 的配合

可以在文件末尾用 Sitemap 字段声明站点地图地址,方便蜘蛛顺带发现。但要注意,如果 robots.txt 本身返回 404、500 或者响应超时,部分蜘蛛可能暂时放缓对该站的抓取,所以这个文件的可用性也该纳入日常监控。反过来,Sitemap 提交是独立通道,不要因为 robots.txt 写错就把它一起停掉。

六、上线前的自查清单

  1. 直接访问域名下的 robots.txt,确认文件能打开、内容无乱码。
  2. 检查有没有误写 Disallow: / 这类全站封禁。
  3. 逐条核对通配符和结尾符号,确认没有误伤入口页目录。
  4. 确认每个承载入口页的域名都有一份独立文件。
  5. 改动后隔一段时间看服务器日志,确认蜘蛛对入口页的请求量没有异常下滑。

把 robots.txt 当成入口页体系的一部分来维护,而不是建站时随手放一个默认文件,能省掉不少页面明明在、蜘蛛就是不来的排查时间。