报错是这么冒出来的。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 让蜘蛛反复确认。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
