小谈一下网站的404, 算是对这一段时间的一个总结吧
先说一下什么是404?
网站404是服务器对ua请求一个不存在或已删除页面返回的一个"状态码", 判断一个404页面不是看它长的像不像404页, 而是要看返回码, 所以谷歌里面有个"软404"的概念.
更多网页返回码的意思请自行度娘.
404页面的重要性
404不重要吗? 我觉得很重要, 如果要写一个网站最先做的部分我的建议就是记录错误页面功能, 为什么呢? 记录/发现并及时改正错误是一个网站正常运行的基础. 当然我们也可以通过查看网站日志来找到这些错误.
404对搜索引擎的影响比较大, 搜索引擎检查到某个页面返回404代码就会不会收录这个页面, 如果是已经收录的页面蜘蛛在重新抓取的时候发现返回404就会从搜索引擎中删除这个已经收录的页面.
合理的设置404页面有利于增加网站体验
对于用户: 一个比较好的404页面引导可以避免用户流失降低跳出率, 这里要注意, 有的朋友在返回404码的同时做了转跳, 这时候ua获取到的可能会是302或200等代码, 请用返回码工具检查, 正如上面我所提到的, 404是个返回码, 而页面的呈现样式可以是五花八门的.
对于搜索引擎: 搜索引擎不会收录404码的页面; 对于已经收录的页面搜索引擎再次抓取发现返回404会删除这个已经收录的页面. 如果网站突然出现大量的404页面请用百度站长平台的删除死链工具提交死链, 以免影响蜘蛛对网站的体验.
怎样找出网站中的404错误?
1. 最直接的方法: 查看网站的访问日志;
2. 如果网站有记录404的统计可以方便很多.
对于网站中大量404死链的解决:
如上面我们提到的, 大量404影响用户和搜索引擎的体验, 提交死链删除很有必要。
收集死链是个复杂的问题, 目前百度还没有通配符的方式提交死链。
· 如果站点同目录下的死链可以根据死链的url规则来判断并找出这些死链;
· 对于泛域名解析导致的死链, 每个泛域名都是一个相对独立的站点, 少量的收录可以用手工的方式来收集, 但是大量收录只能借助第三方工具从百度都搜索引擎中抓取出来。
404页面设置举例:
以php为例, 用.htaccess自定义一个404页面
RewriteEngine on
RewriteBase /
ErrorDocument 404 /404err.php
那么在这个404err.php页面里面我们可以设置成自己想要的界面, 并统计记录错误页的URL,方便我们查看并解决问题。
<?php
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found"); //返回404错误
//注意这里不要用header("Location...")转跳,否则返回码是302而不是404
?>
<html>
....这里弄上要显示的界面
</html>
对于改版导致的死链
改版导致旧的url失效, 这时候需要用正确的方法来处理, 用301永久转跳到新的url 可以把我们从搜索引擎的损失降到最低, 在站长平台里的改版工具里面把新旧url提交, 以确保旧的url收录权重转移到新的url上. 要注意301对搜索引擎来说需要很长一段时间去更新, 所以301转跳要保持很长一段时间。
养成查看网站日志的习惯很重要.
以发现的实际案例为例:
某客户网站用.htaccess对网站的url重写, 百度抓取并能够成功收录, 但是在检查网站日志中发现了大量百度蜘蛛重新抓取时返回404页面, 仔细检查发现对url重写的时候没有对转码进行设置, 导致斜杠等参数被转码后不能正确识别所以返回404, 知道问题的所在也就可以顺利解决。