最近我一直忙着处理网站的错误页面,在这个过程中,学到了好多关于 404 Not Found 错误页面的知识呢。而且我还在给团队新来的小伙伴培训 seo 优化知识,所以就想着借助这个平台,和大家好好聊聊 404 错误页面的那些事儿。
你知道吗?据说在第三次科技革命之前,互联网就像一个大型的中央数据库,还设置在 404 房间里呢。那时候所有的请求都是人工手动处理的,要是在数据库里找不到请求者要的文件,或者请求者把文件编号写错了,用户就会收到一个返回信息:room 404 : file not found。后来互联网越来越火,大家就习惯用 404 来表示服务器没找到文件的错误代码了。不过,实际上传说中的 room 404 是不存在的哦。
一、404 Not Found 到底是啥意思?
简单来说,404 页面就是当用户访问网站时,不小心点了错误的链接,网站返回的那个页面。最常见的提示就是 “404 Not Found” 啦。它的作用就是告诉浏览者,你要的页面不存在或者链接错了,同时还能引导用户去看看网站的其他页面,而不是直接关掉窗口走人。而且错误页面上的文字是可以自己设置的哦。有些网站没设置 404 错误页面,或者直接跳转到首页,这样对搜索引擎可不太友好呢。HTTP 404 或 Not Found 错误信息是 HTTP 的一种 “标准回应信息”(HTTP 状态码),意思就是客户端浏览网页时,服务器没办法正常提供信息,或者服务器根本没反应,也不知道为啥。不过要注意,404 错误信息可别和 “server not found”(无法找到服务器)这些信息弄混了。
二、404 错误页面对网站有啥影响?
404 页面可是网站不能少的一部分,它对用户体验和 SEO 优化都很重要呢。一般用户访问了网站上不存在或者已经删除的页面,服务器就会返回 404 错误。要是站长没设置 404 页面,就会出现死链接,搜索引擎的蜘蛛来爬这些网址的时候,就不利于网站被搜索引擎收录。可以说,设置好 404 错误页面能大大增强用户体验。但很多站长在设置的时候,没注意到对搜索引擎的影响,比如服务器端配置错了,返回 “404” 状态码不对;或者自定义 404 错误页面用了 Meta Refresh,结果返回 “302” 状态码。正确设置的自定义 404 错误页面,不仅要能正常显示,还得返回 “404” 错误代码,可不能是 “200” 或 “302”。
虽然对访问的用户来说,“404” 和 “200” 没啥区别,但对搜索引擎来说,这可太重要啦。大家要是想了解更多,可以去看看《你真的懂 404 页面设置吗》这篇文章哦。总的来说,搜索引擎蜘蛛请求某个 URL 时,要是收到 “404” 状态回应,就知道这个 URL 没用了,不会再索引这个网页,还会告诉数据中心把这个 URL 对应的网页从索引数据库里删掉,不过这个删除过程可能要很久;但要是收到 “200” 状态码,搜索引擎就会觉得这个 url 是有效的,会去索引并收录到索引数据库里,这样就会出现两个不同的 url 内容一样的情况,也就是自定义 404 错误页面的内容,这会导致复制网页的问题,轻的话网站会被搜索引擎降权,严重的话网站可能会被 K 掉。
三、为啥会出现 404 Not Found 错误页面呢?
HTTP 404 错误就是说链接指向的网页不存在,原来网页的 URL 失效了,这种情况很常见,也很难避免。当 Web 服务器收到这样的请求,就会返回一个 404 状态码,告诉浏览器你要的资源找不到。一般导致这个错误的原因有这几种:
- 没办法在请求的端口上访问 Web 站点。
- Web 服务扩展锁定策略不让这个请求通过。
- MIME 映射策略阻止了这个请求。
- 网站更新改版了,可有些局部板块还用着原来的模块,结果原来模块调用的文件被删了或者路径变了。
- 跟踪访问的各类脚码或 CSS 文件不能用了,但调用代码还在。
- 某个目录直接被删掉了,这样一段时间内这个目录的文件被爬行时都会报 404 Not Found 错误。
- 网页 URL 生成规则变了、网页文件改名或者移动位置了、导入链接拼写错了等等,都会让原来的 URL 地址访问不了。
四、404 页面的使用误区
虽然 404 错误页面主要是为了引导用户,不参与网站排名,但要是用错了,网站也会被降权哦。比如这两种情况:
- 服务器端配置错了,404 错误页面返回 “200” 状态码。搜索引擎蜘蛛请求 URL 时,要是收到 “404” 状态回应,就知道 URL 失效了,不会再索引;但收到 “200” 状态回应,就会认为 url 有效去索引,这就会出现复制网页的问题。对搜索引擎来说,特别是 Google,网站很难获得信任指数 TrustRank,搜索引擎对网站质量的评定也会降低。
- 自定义 404 错误页面用 Meta Refresh 导致返回 “302” 状态码。很多网站的自定义 404 错误页面,先显示一段错误信息,然后通过 Meta Refresh 跳转到网站首页、网页地图或其他页面。这样的 404 页面可能返回 “200” 状态码,也可能返回 “302”,但从 SEO 技术角度看,这都是错误的。前面说过 “200” 状态的情况,那 “302” 呢?从理论上讲,搜索引擎认为 “302” 错误表示网页存在,只是临时改了地址,还是会索引收录这个页面,这样也会出现重复文本的问题。而且以 google 为代表的主流搜索引擎对 302 重定向的要求越来越严格,不当使用 302 重定向风险很大哦。
五、怎么解决 404 not found 错误呢?
- 如果网页内容还在,只是路径变了访问不了,可以在 IIS 中把 404 错误指向一个动态页面,在页面里用 301 永久重定向跳到新地址,这时候服务器会返回 301 状态码。
- 设置 404 指向一个设计好的 html 文件,这样页面返回的就是 404 状态码。现在的 idc 提供商基本都有 404 设置的功能,直接上传文件设置就行。在 IIs 中设置的话,打开 IIS 管理器,点击要设置自定义 404 的网站的属性,点击自定义错误选项,选中 404 页,选中并打开编辑属性,设置成 URL ,URL 里填写 “/err404.html”,按确定退出,再把做好的 err404.html 页面上传到网站根目录下。这里要注意,“消息类型” 一定要选 “文件” 或 “默认值”,别选 “URL”,不然会返回 “200” 状态码。
- 把 404 指向一个动态页面,比如 error.asp。要是不在页面里设置,只返回提示的 HTML 代码,页面会返回 200 状态码,这是不对的。我们可以在显示完提示内容后,加上语句:Response.Status="404 Not Found" ,这样就能保证页面返回 404 状态码了。
- Apache 下设置 404 错误页面也不难,在.htaccess 文件中加入 ErrorDocument 404 /notfound.php 就可以啦。
六、如何制作 404 页面呢?
常规来说分两种情况:
- Apache:
(1)在.htaccess 文件中加入 ErrorDocument 404 /notfound.php,然后把.htaccess 文件上传到网站根目录。
(2)自己设计一个 404 页面,命名为 notfound.php,也上传到网站根目录。不过要注意两点哦:一是千万别把 404 错误转向到网站主页,不然主页可能会在搜索引擎中消失;二是别用绝对 URL,用了绝对 URL 会返回 302+200 的状态码。 - IIS/.net:
首先,修改应用程序根目录的设置,打开 web.config 文件编辑,加入<configuration><system.web><customErrors mode=On defaultRedirect=error.asp><error statusCode=404″ redirect=notfound.asp /></customErrors></system.web></configuration> 。要注意哦,上文例中 error.asp 是系统默认的 404 页面,notfound.asp 是自定义的 404 页面,使用时要改相应文件名。然后,在自定义的 404 页面 notfound.asp 中加入 <% Response.Status = 404 Not Found %>,这样就能保证 IIS 正确返回 404 状态码啦。要是觉得这个 404 页面太简单,还可以去上看看《如何正确设置多样性的 404 页面》这篇文章,重新自定义网站的 404 页面哦。
七、制作 404 页面的注意事项
- 绝对不能用绝对 URL,不然返回的状态码会是 302+200。
- 404 页面别设置成自动跳转,要让用户自己决定下一步去哪,这对提升用户体验很重要哦。
- 尽量别用专业术语,“找不到网页” 比 “404 错误” 更容易让人接受。
- 可别责备访客,他们可能是从其他网站链接或者你网站的旧链接进来的,看到错误页面不是他们的错,所以措辞要充满歉意,多提供帮助。
- 可以提示访客检查拼写,但注意别失礼,别让访客觉得你在责备他们。
- 一定要让页面返回 404,每个网页都有服务器响应代码,404 表示页面找不到。如果设置了自定义 404 错误页面,要确保页面标题返回正确的响应代码,最简单的办法就是用 htaccess 文件指定错误页面。想了解更多服务器返回代码的知识,可以去看看《解读 IIS 日志中搜索引擎蜘蛛名称代码及爬寻返回代码》。
- 要清楚地告诉访客这是 404 错误页面,别让错误页面看起来和正常内容页太像,要大胆表明这是个错误页面。
- 要帮助访客找到他们想要的页面,错误页里可以加个选项,甚至可以有页面更改后的链接。
- 一定要放一个网站主页链接,别让访客找不到网站信息,说不定他们在网站上能找到喜欢的内容呢。
- 给访客提供一个反馈信息的便捷方式,他们点击了错误链接,你可以通过这个了解链接故障,解决问题。这能让访客发泄不满,也给你一个挽回潜在客户的机会哦。
- 404 页面的设计风格要和网站其他页面保持一致,别让访客以为到了外部网站。
- 如果网站是多语种的,404 错误页面的信息也要翻译成各个语言版本,还要提供对应语言版本网站的链接。
- 可以在页面上加个搜索框,要是访客访问的页面被移动了,他们可以搜索页面去哪了。
- 要是发现有很多访客访问 404 页面,说明网站有很多无效链接,赶紧用网站测试工具检查并修复,别等别人告诉你哦。
- 千万不要把 404 页面重定向到主页,不然主页可能会在搜索引擎中消失,访客也会很困惑。
- 404 页面设置好后,一定要检查设置效果和返回状态,http 头信息返回的必须是 404 状态,不然搜索引擎可能会认为网站作弊哦。
结尾:
虽然 404 页面被用户看到的概率比网站其他页面小很多,但随着网站的发展,页面难免会出错。不管是用户误操作还是服务器的原因,作为网页设计者或开发者,我们没法阻止错误页面出现,但可以通过定制 404 错误页面把损害降到最低。好的用户体验就要注意每一个细节,不仅要在 404 页面准确传达信息,还要引导用户下一步操作,让用户留在网站,而不是失望地关掉窗口。希望大家都能重视 404 页面的设置,让网站更友好、更吸引人!
147SEO » 网站404 Not Found错误页面的解决方法和注意事项