站内搜索没有匹配时返回 404 加一句「没有找到」,百度抓取诊断把这个地址标成死链,用户从外部链接点进来看到错误页直接退出。产品要求改成 200,改完又被判成软 404。

一开始怀疑是「页面 title 直接拼搜索词 大量页面标题重复」,查了一圈,方向不对。

真正麻烦的地方在于,几个原因的现象几乎一样。无结果页返回 404 被搜索引擎直接记为死链。少数情况下是改成 200 但正文只有一句话 被判软 404。

少数情况下是无结果页没有引导链接 蜘蛛抓到就断在这里。

第一件事是用无意义关键词看返回码

curl -s -o /dev/null -w '%{http_code}\n' 'https://www.example.com/?s=zzzz'

然后改成 200 并补上推荐栏目

http_response_code(200); include 'recommend.php';

给无结果页加 noindex 标签

<meta name="robots" content="noindex,follow">

剩下的就是统计软 404 的报错数量

grep -c 'Soft 404' gsc_export.csv

恢复的判定其实很直接。抓取诊断不再报 404,索引报告里软 404 归零,页面上能看到至少十条推荐链接。

补一句。无结果页是流量入口不是错误页,状态码和内容要一起改,只改一个还会被另一个规则拦住。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189