先给结论:当一批页面只有一部分被搜索引擎发现时,不要按“已发现/未发现”去改 robots.txt,而要先按一个与抓取无关、但在两批页面之间分布不同的属性划分对照组。最实用的做法是:从同一批页面里选出“已发现”和“未发现”各若干条,先核对它们在 robots.txt 规则命中、内链层级、站点地图收录、模板类型上是否成对可比;如果这些条件在两批之间明显不对称,那么你看到的差异更可能来自这些条件,而不是 robots.txt 本身。
假设你有一批结构相同的页面,比如同一模板生成的产品页或文章页,数量在几百到几千之间。你从日志、站点地图报告或抓取统计里看到:一部分页面有被抓取的痕迹,另一部分完全没有。此时最容易犯的错误,是直接把“未被发现”归因于 robots.txt 写错了,然后去放宽或删除规则。
但 robots.txt 只表达抓取偏好,它不保证页面被收录,也不等于可靠的索引移除手段。反过来,一个页面没有被抓取,也不必然说明 robots.txt 挡住了它。你看到的“只发现一部分”,可能只是抓取顺序、内链结构或站点地图提交状态造成的表面差异。
解释一:robots.txt 规则对两批页面命中不一致。例如你写了一条带通配符的规则,本意是屏蔽带参数的筛选页,但规则可能同时命中了部分正常页面。表现特征是:未被发现的页面在路径、参数或目录结构上呈现规律性,且这些规律正好落在某条 Disallow 规则的匹配范围内。
解释二:两批页面在抓取可达性上本来就不对等。例如未被发现的页面只从很深的层级才能点到,或者根本没有出现在站点地图里,而另一批页面在导航、列表页或站点地图中都有直接入口。表现特征是:未发现页面的内链数量、入口位置、站点地图覆盖情况与已发现页面差异明显,而 robots.txt 规则对两者的命中是一致的。
两种解释可以同时成立,所以划分对照组的目的不是立刻选边,而是先把“规则命中”和“可达性”这两个变量分开。
在缺少完整数据或权限的情况下,你仍然可以执行一个最小动作:抽取样本,逐条记录以下字段。样本不必大,每组十几到几十条即可,但两组要来自同一批页面、同一模板、同一时间段。
记录完成后,比较两组在这些字段上的分布。如果“未发现”组几乎全部命中同一条规则,而“已发现”组基本不命中,那么规则命中是值得优先排查的方向。如果两组在规则命中上差不多,但“未发现”组普遍层级更深、站点地图缺失或内链稀少,那么差异更可能来自可达性,而不是 robots.txt 的写法。
这个动作的结果会直接决定下一步:若指向规则命中,下一步是收窄规则并观察同一批页面的抓取变化;若指向可达性,下一步是补内链和站点地图入口,而不是改 robots.txt。
假设某站有 400 个同模板页面,日志显示约 120 个有抓取记录,280 个没有。你抽取未发现组 20 条、已发现组 20 条,逐条核对后发现:未发现组里有 18 条只出现在站点地图中、没有任何内链,已发现组里有 17 条同时出现在列表页和站点地图中;两组命中 Disallow 规则的比例接近。按前面的判断方法,这组证据更支持可达性解释,而不是规则解释。此时正确的下一步是补内链入口,而不是放宽 robots.txt。
需要说明的是,这个例子是假设的,用于说明对照方法,不代表任何真实站点的数据。
即使你观察到“未被发现的页面全部命中某条规则”,也不能直接断定这条规则就是原因,因为抓取顺序、站点地图提交状态、内链结构都可能同时影响结果。反过来,即使你放宽了规则之后发现页面开始被抓取,也不能单独证明是规则改动起了作用,因为同一时间可能还发生了其他变化。
另外,抓取量归零或某项统计归零,不能单独证明处理正确,它可能来自抓取预算变化、站点整体调整或统计口径变化。站点地图也不保证收录,提交了不等于会被抓取或索引。不同搜索引擎对 robots.txt 的支持情况需要分别核查,不能把某一个引擎的表现直接套用到另一个。
因此,划分对照组的价值在于:把“规则命中”和“可达性”这两个变量分开观察,让下一步动作有据可依,而不是在缺少完整数据时凭现象直接改 robots.txt。