搜索抓取

搜索蜘蛛抓取:robots.txt误屏蔽内链路径后的规则排查与恢复顺序

robots.txt写错时往往没有任何报错,蜘蛛不来、内页不更新却查不出原因。本文梳理整目录屏蔽、静态资源误拦、Disallow与noindex混用、通配符优先级写错等常见误伤,给出一套从文件可访问性到Sitemap一致性的排查顺序,并说明放开屏蔽后的内链补强与观察要点。

搜索抓取

搜索蜘蛛抓取:robots.txt误屏蔽内链路径后的规则排查与恢复顺序

robots.txt 是站点上最轻量的一份文件,却常常是抓取问题里最难第一时间想到的一环。它不参与页面渲染,也不影响用户访问,所以一旦规则写错,站长往往是在抓取量下滑、内页迟迟不更新时才回头排查。

误屏蔽为什么容易被忽略

搜索引擎蜘蛛在发起请求前会先读取 robots.txt,被 Disallow 命中的 URL 通常不会进入抓取队列。问题在于,这类屏蔽表现为“没有任何响应”,日志里既没有 4xx 也没有 5xx,看起来像是蜘蛛单纯没有来访。如果同一目录下的内链仍然存在,用户点击正常,页面也正常渲染,就更难察觉。

  • 被屏蔽的目录里仍有大量内链入口,抓取预算被消耗在无效路径上;
  • CSS、JS 被屏蔽后,蜘蛛拿到的页面结构与用户所见不一致;
  • 被屏蔽的 URL 依然可能出现在 Sitemap 中,形成互相矛盾的信号。

几类常见误伤

1. 整目录屏蔽但内链未同步清理

改版或下线栏目时习惯用 Disallow: /old/ 一刀切,导航和旧文章正文里的链接却没删。结果是蜘蛛不断发现这些 URL,又不断被拒绝,等于反复在门口打转。

2. 静态资源与接口路径被顺手屏蔽

有些模板为了“省抓取量”,会把 /assets/、/api/、/search/ 一并屏蔽。若页面依赖这些资源完成渲染,蜘蛛看到的可能只是空壳。建议只屏蔽明确的隐私路径或无限参数路径,渲染必需资源保持可抓取。

3. Disallow 与 noindex 混用

Disallow 阻止抓取,noindex 阻止索引,两者作用阶段不同。若 URL 已被 Disallow,蜘蛛读不到页面上的 noindex,旧快照可能长期存在。需要移除索引时,应先放开抓取,等 noindex 生效后再考虑屏蔽。

4. 通配符与规则优先级写错

$ 与 * 的组合、Allow 与 Disallow 的匹配长度优先级,都容易在复制粘贴中出错。例如 Disallow: /*? 可能把带参数的正常列表页一并拦掉。

按这个顺序排查

  1. 直接访问 /robots.txt,确认返回 200 且内容完整,没有被 WAF 或 CDN 改写;
  2. 逐条核对 Disallow 路径,与站点实际目录、Sitemap 条目做交叉比对;
  3. 抽取被屏蔽目录下的 5~10 个代表性 URL,检查站内是否仍有内链指向;
  4. 用抓取工具的“以蜘蛛身份访问”或日志中的蜘蛛 UA 验证实际可访问性;
  5. 确认规则无误后,再检查 Sitemap 是否仍包含被屏蔽 URL,保持两者一致。

恢复之后要盯一段时间

放开屏蔽只是第一步,蜘蛛重新发现这些 URL 需要时间,尤其是原本就缺乏内链的深层页面。建议在恢复后:

  • 从首页或栏目页补一到两条指向重点页面的内链,帮助页面重新进入抓取路径;
  • 观察日志中该目录的抓取频次变化,判断是规则问题还是内容本身的问题;
  • 如果页面已无价值,直接做 301 或 410,不要长期挂着 Disallow 占位。
把 robots.txt 当作临时止痛药来用,短期看似干净,长期往往留下更多需要清理的入口。每条规则最好都能对应一个明确理由。

robots.txt 的维护成本很低,但写错的代价不低。定期把它和站点结构、内链、Sitemap 放在一起看一遍,能避免很多“蜘蛛不来”的误判。