当一批页面只有一部分被搜索引擎发现时,不要急着改 robots.txt,而应先把这批页面按“可抓取性差异”划分成对照组:一组是当前已被发现的页面,另一组是结构相似但尚未被发现的页面。只有两组在链接入口、robots 规则、页面模板上存在可验证的差异,后续调整才有比较意义。若两组差异不明确,先补全差异记录,再决定是否动规则。
批量页面只出现一部分,常见原因有三类:根本没有被抓取、被抓取但未索引、被抓取且索引但未展示。三者对应的动作完全不同。判断依据应来自服务器访问日志中的抓取记录、站点地图提交后的抓取行为,以及页面自身是否返回可正常解析的内容。
如果日志里完全没有目标路径的抓取记录,优先怀疑入口和规则;如果日志里有抓取但索引状态长期缺失,优先怀疑内容质量和重复问题;如果两者都有,则要检查展示层而非抓取层。robots.txt 的抓取限制不等于可靠的索引移除,反过来,放开抓取也不保证页面会被索引。这个区分决定了对照组该按“抓取差异”还是“索引差异”来分。
对照组不是随便挑几个页面,而是要让两组在除待测变量外尽量一致。可以按以下属性逐项记录:
把已发现组和未发现组逐项对照后,通常会看到一个或两个属性明显不同。这个不同点就是待验证变量。若两组在所有属性上都相同,却仍只有一部分被发现,则要转向抓取预算、链接权重分布或内容相似度等更间接的解释,而不是先改 robots 规则。
假设某商品列表有 200 个分页页面,其中前 20 页被发现,后 180 页没有。两组页面模板相同,但前 20 页有站内导航直接链接,后 180 页只能通过“下一页”逐级到达。此时可把前 20 页作为已发现组,从后 180 页中随机抽取 20 页作为未发现组,记录两组的入链深度和链接来源。
如果差异集中在入链深度,下一步动作应是增加后 180 页的入口,例如从分类页直接链接到若干中间分页,而不是修改 robots.txt。执行后观察日志中这些新增入口对应路径的抓取是否出现,再决定是否扩大到全量。这个动作的结果会直接影响下一步:若新增入口后抓取出现,说明问题在入口;若仍无抓取,则要重新检查规则和站点地图。
robots.txt 的规则匹配可能因路径前缀、通配符和大小写而产生非预期结果。划分对照组前,应先用规则逐条比对两组的完整 URL,确认没有一条规则只命中其中一组。站点地图不保证收录,因此不能把“已提交站点地图”当作已发现组的定义依据。
另外,HTTPS 不保证安全无漏洞或排名,它也不应作为划分对照组的变量,除非两组确实存在协议差异且日志显示抓取行为不同。不同搜索引擎对 robots 规则和站点地图的支持情况须分别核查,同一组页面在不同引擎下的发现比例可能不同,划分对照组时应按引擎分别记录,而不是合并成一个比例。
完成对照后,按差异类型决定动作:
每次只改一个变量,并保留改动前后的日志片段和规则版本,这样下一轮划分对照组时才能知道是哪个动作影响了结果。若一次同时改入口和规则,即使发现比例变化,也无法判断是哪一项起了作用。