当错误页面返回 200 状态码时,先不要改内链,而要用“抓取响应 + 渲染后可见内容”两路证据交叉核对:只有在状态码、正文主题、内链目标三者一致时,才把它当作正常页处理;任一项矛盾,就按错误页处理并暂停向它新增链接。下面给出两种条件下的不同选择,以及一个可复现的核对流程。
这是最常见的一类误报成功。判断依据不是状态码本身,而是三件事同时成立:响应头状态为 200、渲染后的可见文本以错误说明为主、页面里指向首页或栏目的链接被当作“补救出口”。此时正确的动作是:把该 URL 从内链候选池中剔除,并检查所有指向它的锚文本是否在承诺一个不存在的页面。
实施动作可以这样落地:先取该页的原始响应与渲染后文本各一份,标出错误提示所在位置;再反查站内指向它的链接,记录锚文本和所在模板。结果是——如果锚文本写的是“查看详情”“下载报告”这类承诺型文字,就需要改指向真实存在的目标,或把链接删除;如果锚文本只是站点名或栏目名,影响面较小,可先保留但不再新增。这个结果直接决定下一步是批量清理还是逐条替换。
另一种情况是页面本身没问题,问题出在它内部指向别处的链接。此时状态码与内容一致,不一致发生在“链接承诺”与“目标实际内容”之间。判断依据是:点击或抓取该内链目标,看目标页返回什么、正文主题是什么。如果目标是软 404(返回 200 但内容为空或为错误提示),那么问题在目标端,不在这条链接的源页。
实施动作:对每条可疑内链记录源页、锚文本、目标 URL、目标响应状态、目标渲染后首屏主题这五项。结果是——同一目标被多个源页引用时,应优先修目标页而不是逐个改源页;只有目标页确实不该存在时,才批量改锚文本或移除链接。这个顺序能避免在几十个源页上做重复劳动。
这套步骤的输出不是“修好了”,而是一份能交给下一位编辑的判断依据:哪些页面被冻结、冻结原因是什么、解除冻结需要满足什么条件。
个别样本成立不等于可以照搬。常见例外有三类:一是分页或筛选参数页,返回 200 且内容看似正常,但实际是空结果集;二是登录或权限拦截页,对未授权访问返回 200 的错误提示,对已授权访问返回正常内容;三是多语言或镜像页,状态与内容在某一语言版本下不一致。
这些例外的共同点是:同一 URL 在不同请求条件下表现不同。因此不能只用一次抓取就下结论。应分别用未登录、已登录、带与不带参数等条件各取一次证据,比较差异。若差异存在,就把该 URL 归入“条件依赖”类,单独处理,不并入批量规则。
抓取量归零、某次统计里该 URL 不再出现,都不能单独证明状态与内容已经一致。它们还有其他合理解释:抓取预算被调走、站点地图更新延迟、统计口径变化。同样,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录,HTTPS 不保证页面内容正确或排名提升。核对一致性时,应以响应状态与渲染后内容这两项直接证据为主,其余信号只作辅助参考。
如果站点使用多种搜索引擎,还需分别核查各自对同一 URL 的抓取与展示结果,因为支持情况和处理方式并不相同。只有在直接证据一致、条件依赖已排除之后,才可以把该 URL 重新纳入内链建设范围。