先给有条件的结论:如果一批页面里只有一部分被搜索引擎发现,而你怀疑是内链差异造成的,对照组应该按“链接来源类型”划分,而不是按“页面内容质量”或“URL 命名规则”划分。具体说,把已发现页面归入 A 组,未发现页面归入 B 组,然后逐个核对每个页面分别从哪些入口获得内链:导航、列表页、正文推荐、站点地图、站内搜索。只有当 A 组和 B 组在“某一种内链来源”上出现系统性差异时,这个差异才值得作为下一步验证的候选原因。如果两组在多种来源上同时不同,说明你还没把变量拆开,此时任何结论都不可靠。
最常见的错误做法是:把已发现的页面当成“质量好”,未发现的当成“质量差”,然后去改标题、加字数。这个划分方式的问题在于,它把结果当成了原因。页面被发现与否,本身就可能受内链深度影响,而内链深度又常常和内容新旧、栏目归属相关,两者纠缠在一起,无法区分。
更可操作的划分是记录每个页面的最短内链路径长度:从首页出发,经过几次站内链接点击能到达该页面。假设 A 组平均 2 次点击可达,B 组平均 5 次,那么“路径长度”就是一个比“内容质量”更干净的分组维度。你不需要精确到每一次点击,只需要确认 B 组页面是否普遍缺少一条来自高权重列表页或导航的直接链接。
为了让分组有意义,A 组和 B 组必须在以下三点上尽量一致,否则差异无法归因:
固定这三个不变量之后,你剩下的差异才有较大概率指向内链结构。若无法固定,就应该缩小比较范围,而不是硬做全站对照。
假设你按“是否有列表页内链”分组,发现 A 组全部有、B 组全部没有,于是判断列表页内链是决定因素。但如果 B 组页面同时全部是<noindex>状态,或者全部被 robots.txt 的抓取限制挡住,那么列表页内链的差异就解释不了结果——真正起作用的是索引指令或抓取限制。robots.txt 的抓取限制不等于可靠的索引移除,它只影响抓取行为;而 <noindex> 影响的是索引处理。两者与内链是不同层的问题。
这个反例的意义是:在划分对照组之前,先排除“索引指令”和“抓取限制”这两个更靠前的变量。只有当两组在这两项上一致时,内链差异才值得继续追。
假设某站有 200 个商品页,其中 80 个被发现、120 个未发现。你把 80 个记为 A 组、120 个记为 B 组,然后统计每个页面从“分类列表页”获得的内链数量。假设结果是:A 组平均每个页面有 3 条来自分类列表页的链接,B 组平均只有 0.4 条。这个对比只能说明“分类列表页内链数量”与“被发现”在两组间不同步,不能直接证明因果。下一步动作是:从 B 组中挑出内链数量接近 A 组的那部分页面,单独看它们是否也被发现。如果这些“内链条件相似”的 B 组页面依然大量未被发现,说明分类列表页内链不是主因,应该转向检查站点地图覆盖、服务器响应差异或页面本身的索引指令。这个动作的结果会直接决定你下一轮是改内链布局,还是改抓取与索引配置。
不要一上来就全站加内链。更稳的做法是:从 B 组里选 10 到 20 个页面,只给它们补上一条来自高权重列表页的内链,其余条件保持不变,同时保留一组不补内链的 B 组页面作为对照。观察后续抓取记录是否出现变化。这里要注意,站点地图不保证收录,补内链也不保证被发现,所以你要看的不是“是否立刻收录”,而是“抓取请求是否开始覆盖这些 URL”。如果补链组出现了抓取请求而对照组没有,下一步就可以扩大补链范围;如果两组都没有变化,说明瓶颈不在内链,应回到抓取和索引层面排查。