这个坑值得记一笔。站内搜索页为了收口,把 canonical 统一指向首页,同时没加 noindex,三周后 GSC 里这类页面被标成软 404,数量一万二,首页的规范信号也被搅乱。
刚开始盯着「搜索页被内链大量引用,蜘蛛持续发现新组合」,折腾了半个多小时,排掉了。
真正麻烦的地方在于,几个原因的现象几乎一样。canonical 指向内容无关的首页,被判定为错误规范;页面返回 200 且正文有内容,软 404 与 canonical 冲突;sitemap 里误包含了搜索页地址。
上来先看搜索页的 canonical 和状态码
curl -sI 'https://www.example.com/search?q=abc' | head -3; curl -s 'https://www.example.com/search?q=abc' | grep -i canonical
然后改成 noindex 并去掉错误 canonical
curl -s 'https://www.example.com/search?q=abc' | grep -i 'noindex\|canonical'
接着把搜索页从 sitemap 排除
curl -s https://www.example.com/sitemap.xml | grep -c '/search'
断开指向搜索页的内链
grep -rn '/search?q=' themes/ | head
报错是间歇性的,我蹲守了半小时才抓到一次完整现场。
改完先别撤,确认这几项。搜索页返回 noindex 且不再输出跨页 canonical,软 404 数量两周后开始下降,首页规范恢复。
补一句。canonical 只能指向内容等价的页面,指到首页属于错误用法,比不写更容易被判软 404。这类问题最好一次改到位,反复小改反而容易把原因搅混。
