报错是这么冒出来的。Bing 站长工具的抓取错误里 404 有一万两千条,占了总量的六成,抽查发现多是早年改版前的旧目录,站点现在还有几万篇正常文章。

中间走过弯路,把「分页和筛选参数被当成独立地址写进了历史 sitemap」当成主因,改完现象没变。

这类报错背后常见的原因有几处,逐个排除就行。改版时目录结构变了,旧地址没有做任何跳转。少数情况下是外链和转载站还指向旧路径,Bing 顺着链接反复来抓。

另外,附件和缩略图路径跟着主题升级一起变了。

第一件事是把错误 URL 按路径前缀聚类

grep ' 404 ' access.log | awk '{print $7}' | cut -d/ -f2 | sort | uniq -c | sort -rn | head

再往下看看这些地址是否还有外链指向

curl -s 'https://www.bing.com/search?q=link%3Awww.example.com%2Fold%2F' | grep -o 'example.com/old/[^"]*' | head

然后把仍有价值的旧地址做 301 映射

rewrite ^/old/(.*)$ /new/$1 permanent;

等前面都确认过,再对彻底下线的目录直接返回 410

location /old-temp/ { return 410; }

别只看报错消失,验证要多做一步。处理后 Bing 的错误列表里 404 数量两周内降到两千以下,旧目录的抓取次数同步减少。

容易忽略的是,Bing 处理 410 比 404 更快,确定不再恢复的目录别留着 404 让蜘蛛反复确认。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189