先给结论:入口页正常只说明抓取与索引的第一跳没断,深层链路失效往往出在入口页到目标页之间的可发现性、渲染或状态码环节。定位方法是把“入口页能收录”和“深层页被收录”拆成两个独立事实,再用站点日志、内部链接抓取和页面状态三组证据交叉核对,找出第一个不成立的环节。
多个角色对同一事实理解不同,通常是因为各自看到的证据层级不同。运营看到入口页有排名,认为整站收录正常;技术看到日志里有抓取记录,认为链路通畅;SEO 看到索引量下降,认为出了大问题。这三种说法可以同时成立,因为它们描述的是不同环节。
把分歧转成可核对的项目,需要先约定一个判断口径:以“目标深层 URL 是否出现在索引中”为最终事实,其余都是中间证据。入口页收录、日志抓取、站点地图提交都只是过程指标,不能替代最终事实。约定口径后,各方看的是同一张表,而不是各说各的。
一个实际动作:列出 20 到 50 个深层目标 URL,逐个记录“是否被索引”“最近一次抓取时间”“返回状态码”三项。这个清单会直接决定下一步是查链接、查渲染还是查状态码,避免全站盲目排查。
入口页正常但深层页不收录,最常见的原因不是抓取被拒,而是深层页根本没有被入口页有效链接到。判断方法是从入口页出发做一次站内抓取,看目标 URL 是否出现在可达链接集合里。
这里有一个容易误判的点:robots.txt 的抓取限制不等于可靠的索引移除。被 robots.txt 拦截的 URL 仍可能因为外部链接而被索引,只是内容不可抓取。所以看到 robots.txt 拦截就断定“已处理”,是不成立的。
如果链接层没问题,下一步看渲染和状态码。入口页往往是服务端渲染或静态输出,深层页可能依赖客户端脚本加载内容。抓取工具看到的 HTML 里如果没有目标内容,索引自然无法建立。
核对方法:用抓取工具获取目标 URL 的原始 HTML,搜索目标正文的关键句。如果原始 HTML 中不存在,而浏览器中能看到,断点在渲染层。此时需要确认内容是否依赖脚本注入,以及脚本是否对抓取来源做了差异化处理。
状态码方面,注意区分几种情况:
一个假设例子:某站点入口页索引正常,深层产品页全部不收录。抓取原始 HTML 后发现产品描述由脚本异步加载,原始 HTML 中只有空容器。此时断点在渲染层,修复动作是改为服务端输出或预渲染,修复后再用同一批 URL 核对原始 HTML 是否包含正文,才能进入下一步验证。
站点地图不保证收录。提交站点地图只表示你告知了 URL 的存在,不代表抓取和索引一定发生。把站点地图提交量当作收录量,是常见的口径错误。
同样,请求量或抓取量下降不能单独证明链路失效。抓取量下降还有几种合理解释:站点整体抓取预算被重新分配、入口页更新频率降低、外部链接变化导致抓取优先级调整。这些解释与深层链路是否失效没有直接因果关系。要确认断点,仍需回到目标 URL 的索引状态和原始 HTML 内容这两个事实。
如果多个搜索引擎的表现不一致,需要分别核查各自的抓取和索引情况,不能用一个引擎的结果推断另一个。不同引擎对脚本渲染、站点地图和抓取限制的支持情况不同,核查方式也要分开。
定位到断点后,取舍取决于断点是否可修、修复成本与页面价值是否匹配。
三种选择的前提不同,不能同时套用。保留适用于断点可修且价值明确;改写适用于结构问题而非内容问题;退出适用于价值消失或修复成本超过收益。选定一种后,下一步动作是重新采集同一批 URL 的状态数据,用修复前后的对比确认断点是否真的被消除,而不是凭单次抓取量变化下结论。