草率了!真的草率了!上个礼拜一拍脑袋觉得网站结构得优化,咔咔一顿删,把那些带?page=123的老页面全送走了,心想这破参数链接留着有啥用。结果今天一睁眼,流量统计跟跳崖似的,心里咯噔一下,赶紧去搜一下公司品牌词加个老产品名,好家伙,排在第一位的点进去就是个大大的404!我当时血压就上来了,这意味着搜索引擎库里躺着一堆我网站的“尸体”,用户点一个骂一次,这权重不掉就见鬼了。抽了根烟冷静下来,当务之急是把这些收录的死链全挖出来埋了(提交死链)。
说方法,第一反应就是去 服务器日志 里扒!这玩意儿最准,蜘蛛(尤其是百度和Google的)爬过哪些返回404的URL,日志里记得清清楚楚。但问题来了,看着那几G的压缩日志文件,头皮发麻,用Linux命令(比如grep)去筛,或者下个日志分析工具,这个过程枯燥得想撞墙但你必须得做。
第二个更直接但可能不全的办法,就是去 Google Search Console 和 百度搜索资源平台 后台。它们“覆盖率”或“索引”报告里,明明白白告诉你哪些URL是“已提交,未编入索引”或者“找到 - 未编入索引”,点进去很多就是因为404被抛弃的!这里的数据是搜索引擎官方认证的“死链清单”,权威性最高。尤其是百度,你甚至能直接导出。
第三个是笨办法但有效,找个靠谱的爬虫软件(比如 Screaming Frog),把你整个网站域名喂给它,让它模拟蜘蛛从头到尾爬一遍。设置里勾上“检查外部链接”,跑完以后筛选“客户端错误”里的404,一份热乎的全站死链报告就出来了,包括内链里的和外链进来的。**但是!** 这个方法只能找出你网站内部链轮指向的死链,对于那些已经被删了、没有任何内链指向,但还躺在搜索引擎库里的“孤魂野鬼”就无能为力了,所以得结合前两种方法。
最后,血泪教训:下次再动任何页面之前,哪怕就是个标签页,先把它的URL在各个搜索引擎里搜一遍,看看有没有被收录,如果有,做好301重定向到相关的新页面,没有相关页就做个友好的404引导页。千万别像我一样,脑子一热就 rm -rf,凌晨三点对着一条下滑的直线发呆,那滋味,真不想再来一次。
