一般来说,当我们在浏览网页的时候,浏览器会发送请求到服务器,当浏览器接收并显示网页内容前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。经常直接显示在前台并被用户看到的应该就是 404 响应代码了,它一般表示这个页面丢失了,所以不能正常加载。
在介绍 404 和软 404 状态码的区别之前,我们先来看下常见的 HTTP 状态码有哪些,便于理解后面的内容。
常见的 HTTP 状态码
分类 | 状态码 | 英文名称 | 中文描述 |
---|---|---|---|
信息响应 | 100 | Continue | 表明迄今为止的所有内容都是可行的,客户端应该继续请求。 |
101 | Switching Protocols | 服务器根据客户端的请求切换协议。 | |
成功响应 | 200 | OK | 请求成功,且 Google 会将内容传递给索引编制。 |
201 | Created | 该请求已成功,并因此创建了一个新的资源。 | |
202 | Accepted | 请求已经接收到,但还未响应。Googlebot 会等待一段时间,然后将其接收的任何内容传递给索引编制流水线。 | |
204 | No Content | 服务器成功处理,但对于该请求没有内容可发送。可能会在 GSC 后台显示 soft 404 错误。 | |
重定向响应 | 301 | Moved Permanently | 请求资源的 URL 已永久更改,返回信息会包括新的URL。 |
302 | Found | 表示所请求资源的 URI 已 暂时更改,客户端继续使用原有URL。 | |
303 | See Other | 指示客户端通过一个 GET 请求在另一个 URL 中获取所请求的资源。 | |
304 | Not Modified | 用于缓存的目的,告诉客户端响应还没有被修改,因此客户端可以继续使用相同的缓存版本的响应。 | |
307 | Temporary Redirect | 临时重定向,与 302 类似。 | |
308 | Permanent Redirect | 永久重定向,与 301 类似。 | |
客户端错误 | 400 | Bad Request | 被认为是客户端错误(例如,错误的请求语法、无效的请求消息帧或欺骗性的请求路由),服务器无法或不会处理请求。 |
401 | Unauthorized | 客户端必须对自身进行身份验证才能获得请求的响应。 | |
403 | Forbidden | 客户端没有访问内容的权限;也就是说,它是未经授权的,因此服务器拒绝提供请求的资源。 | |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。 | |
410 | Gone | 客户端请求的资源已经不存在,已从服务器中永久删除。 | |
服务器错误 | 500 | Internal Server Error | 服务器内部错误,无法完成请求。 |
501 | Not Implemented | 服务器不支持请求的功能,无法完成请求。 | |
502 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应。 | |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。 | |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求。 | |
505 | HTTP Version not supported | 服务器不支持请求的 HTTP 协议的版本,无法完成处理。 |
什么是 404 响应
现在大家应该知道 404 响应是什么意思了吧?通俗的说就是打开一个网址,但是发现它不见了,这时候前台就会显示一个 404 页面。
对于做外贸营销或者独立站的人来说,建议找人专门设计下这个 404 页面,可以简单解释下页面丢失了,然后加上一些有用的链接,比如首页,热门产品分类页,或者一些资源页面等,主要目的是为了把客户尽量留在我们网站上,并且产生互动。
为什么会有 404 响应
一般来说,服务器返回 404 状态码可能是因为:
- 误删了某个页面,导致这个链接不存在
- URL 地址输错了,导到了一个不存在的网址
如何修复 404 状态码
如果 404 的原因是链接错误,则修复链接就好了,难处在于怎么找到所有失效的链接。你可以用爬虫软件或者 SEO 软件来做这件事,常见的有 Xenu、Greenflare、Screaming Frog、DeepCrawl、Ahrefs、Semrush 等,还可以查看 GSC 后台,上面也列出了很多返回 404 状态码的页面。
然后看下这个页面是不小心被删除的还是故意删除的。如果是被误删的页面,可以选择恢复页面,如果是确定不要的,可以选择 301 重定向到相关页面。如果能确定 404 页面没有被任何其他页面链接过的话,也可以先将页面从搜索引擎的索引中删除,然后再彻底删除这个页面。之所以要确保没有链接到这些页面,是因为爬虫会跟踪链接爬行到不存在的页面,然后继续返回 404 状态码。
什么是 soft 404
首先要明确的是,软 404 错误不是官方状态代码,服务器不会向浏览器发送软 404 响应。当我们在 GSC 后台看到“软404”的时候,意味着当用户访问某个页面时,前台会显示页面已经不存在了,但是网页还会返回一个 200(成功)的状态码给搜索引擎,从而让搜索引擎误认为该页面是有效的。在某些情况下,软 404 可能是一个不含任何主要内容的页面或是一个空页面。
出现 soft 404 的原因
可能是由网站的网络服务器、内容管理系统或用户的浏览器出于各种原因生成的。
页面内容单薄
如果页面的内容很少或者几乎没有内容,那么谷歌可能会在后台显示该页面为 soft 404。常见的有空白的分类页、标签页、空的博客页面、产品筛选页面等。
重定向链接不相关
有时候开发人员会将一些准备删除的链接重定向到另一个 URL,但忽略了两个页面的相关性,不相关的重定向也可能会导致 soft 404 的问题。这个问题在电子商务网站上很常见,下架的产品或者分类直接随意地被重定向到了另一个产品或者分类页面。
爬虫不能正常抓取文件
当网站阻止 Google 访问 JavaScript 或 CSS 文件时,有时会出现 soft 404,这些文件主要用于呈现一些交互效果页面。如果爬虫不能访问它们,就可能会导致一个软 404 错误。
页面不存在,但返回 200
某个页面已经被删除,但是可能由于服务器配置错误,将其重定向到了主页或自定义的 URL,并返回了 200 成功状态码,会发生软 404 的情况。
404 和 soft 404 的区别
现在我们应该知道它们之间的区别了吧?主要是返回给搜索引擎的状态不一样。常规的 404 状态码明确是内容丢失,而且会同时向搜索引擎跟用户告知这个信息。而对于软 404 ,用户可以在后台看到,但是它并不会传递给搜索引擎这个信息,因为返回的是 200 成功状态码。
Soft 404 对 SEO 有影响吗
如果你的网站出现大量的 soft 404,那么在一定程度上这些页面会对 SEO 效果有影响。
占用爬虫抓取预算
我在另一篇介绍搜索引擎工作原理的博客中有讲到“抓取预算”这个概念,不太了解这个概念的朋友可以去看下。我们这里就简单说下,为了减轻服务器的压力,谷歌会给每个网站安排一个抓取预算上限,一般来说大型网站或者优质网站的抓取预算会比较高,一些内容质量比较低的网站预算相对来说会低一些。
现在我们知道了每个网站的预算是固定的,那么如果谷歌把预算都浪费在抓取这些没用的网址上,是不是就占用了一部分预算呢,导致其他有用的网址无法被搜索引擎发现。而且从另一方面来说,如果谷歌爬虫每次到网站后抓取到的都是这种没用的页面,它之后可能会降低抓取你的网站的频率。
影响用户体验
虽然这些软 404 页面不会出现在搜索引擎结果页,但是别忘了还有一种软 404 的网址是因为页面不存在,可能是被删了或者被移动了才产生的。如果之前有链接到这些页面的内链或者外链,用户点击了锚文本并跳转到了对应的页面,但是最后发现是个空白页面,那么可想而知,这个用户体验是很差的,大概率情况下,用户会直接离开页面,让你的网站的跳出率变高,互动率变低,再间接影响 SEO 排名。
怎么查找 soft 404
做 SEO 优化的人应该都知道 GSC(Google Search Console) 工具,它可以帮我们分析网站的表现,一些细心的人可能已经在“网页”报告看到了被添加进“软 404”的网址。
一些 URL 比较多的网站,尤其是商城网站,可以关注下软404的比例,很多时候因为商城系统或者CMS 系统会自动生成一些没意义的网页。
如何修复 soft 404
修复软 404 有 4 种常见的办法,我们一一来介绍。
检查服务器设置
检查你的 web 服务器设置,确保服务器配置为丢失的页面返回 404 错误,如果服务器配置不正确,它可能会返回 200 状态码而不是 404,这将导致Google索引该页面,即使页面不存在。
设置 noindex 标签
你也可以为那些返回软 404 的页面添加 noindex 标签,这样谷歌就不会再索引这些页面,也就不会返回 soft 404 状态码了。不过有时候即使你添加了 noindex 标签,不表明谷歌一定不会抓取这些页面,如果爬虫从其他链接进入这些页面,那么谷歌仍然会索引这些页面,然后返回 soft 404 代码。
设置 301 重定向
如果你的网页已被移动到别的地方或者有明确的替换网页,可以选择返回 301 (permanent redirect) 以重定向用户,这样原本被引导到旧 URL 的人会被自动带到新的 URL。但是在设置 301 重定向的时候,有一个点一定要避免,就是不能重定向到毫不相干的页面,不然还是有可能返回软404。
丰富网页内容
如果某些软404页面你既不想彻底删除让它返回 404 状态码,也不想 301 重定向到其他页面,那么你可以在这些页面上增加一些有实质用处的内容。跟重定向一样,增加的内容必须保证相关性,而且得是对用户有帮助的,不能随意填充一些内容。添加了内容之后再去 GSC 后台去提交下索引申请就好了。
总结
通过上面对 404 和 软 404 之间的区别的介绍,形成的原因和解决方法,希望对你能有所帮助。你可以根据自己网站的实际情况选择解决方法,不过最简单的方法应该是彻底删除页面或者301重定向。那么现在就开始检查自己的网站吧,如果有不清楚的可以给我留言,我看到的话会回复的。