LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

HTTP 状态代码的基本 SEO 指南

admin
2024年9月20日 20:54 本文热度 281

您可以在网站上评估的最重要的事情之一是那里存在哪些超文本传输协议状态代码(或 HTTP 状态代码)。这些代码可能非常复杂,通常会成为一个令人生畏的拼图游戏,必须先解决,然后才能成功完成其他任务。

在这篇博文中,我们将介绍最常见的 HTTP 状态代码和错误,并解释如何处理它们以避免弄乱您的网站。

什么是 HTTP 状态代码?

HTTP 状态代码就像来自服务器的简短说明,它们放在网页之上,但实际上并不是它们的一部分。它们是来自服务器的消息,通知您服务器如何接收不同的请求。

基本上,每当浏览器与服务器交互时,都会返回此类消息。但是,在许多情况下,用户可能根本看不到它们。但是,如果您拥有或优化网站,则了解 HTTP 状态代码对您来说至关重要。在诊断和修补您网站上的各种配置错误时,它们至关重要。

有哪些状态代码类?

每个请求都有 HTTP 服务器响应数据,其中包括一个指定请求结果的三位数数字。这些响应代码分为 5 个不同的类。让我们快速浏览一下它们中的每一个:

1XX 状态码

这些是信息代码,通知客户一切都在按计划进行。它们表示服务器已收到请求并正在处理该请求,但尚无响应。1XX 状态代码通常不会显示在屏幕上。相反,它们用作只有浏览器引用的内部代码。

  • 100 —  Continue:通知客户端继续处理请求,或者在请求完成时忽略响应。

  • 101 — Switching Protocols: 为响应客户端的 Upgrade 请求标头而发送,指示服务器的协议切换。

  • 102 — Processing: 指示服务器正在处理请求,并且尚无可用的响应。

  • 103 — Early Hints: 主要与 Link 标头一起使用,允许在服务器准备响应或重新连接到源时预加载资源。

2XX 状态代码

2XX 状态代码是成功代码,表示客户端已成功接收、理解、接受和处理请求。浏览器在内部使用这些状态代码来确认请求的成功和当前状态。

  • 200 — OK这些状态代码表示请求成功。“成功”的含义取决于所使用的 HTTP 方法,例如:
    1. GET:消息正文中已获取并传输资源。

    2. HEAD:表示标头包含在响应中,没有任何消息正文。

    3. PUT 或 POST:描述操作结果的资源在消息正文中传输。

    4. TRACE:消息正文包含服务器收到的请求消息。
  • 201 — Created: 请求成功,并创建了一个新资源,通常在 POST 或 PUT 请求之后。

  • 202 — Accepted: 已收到请求,但未采取任何行动。这些适用于其他进程或服务器正在处理它的情况,或适用于批处理。

  • 203 — Non-Authoritative Information: 这意味着返回的元数据与源服务器提供的元数据不同。相反,它来自本地或第三方副本。这些通常用于镜像或备份。

  • 204 — No Content: 此请求没有要发送的内容,但标头可能很有用;用户代理可以更新缓存的标头。

  • 205 — Reset Content: 指示用户代理重置发送此请求的文档。

  • 206 — Partial Content: 当客户端使用 Range 标头仅请求资源的一部分时使用。

  • 207 — Multi-Status: 提供有关多个资源的信息,适用于多个状态代码。

  • 208 — Already Reported当 DAV:propstat 元素的成员已列出并且不会再次包含时使用。

  • 226 — IM Used: 服务器完成了 GET 请求,响应表示应用于当前实例的实例操作的结果。

3XX 状态代码

它们是重定向代码,仅表示请求的内容已临时移动到另一个 URL。

  • 300 — Multiple Choices: 该请求具有多个可能的响应,提示用户或用户代理选择一个,通常通过 HTML 链接推荐。

  • 301 — Moved Permanently所请求资源的 URL 的永久更改;响应中提供了新 URL。

  • 302 — Found: 临时更改所请求资源的 URL,并可能在将来进行更改;应将同一 URL 用于将来的请求。

  • 303 — See Other: 服务器发送此响应是为了指示客户端通过 GET 请求在另一个 URL 上获取请求的资源。

  • 304 — Not Modified: 用于缓存,通知客户端响应尚未修改,从而允许继续使用缓存的版本。

  • 307 — Temporary Redirect请求的资源已临时移动到其他 URL。与 302 Found 响应相比,唯一的区别是用户不得更改使用的 HTTP 方法。

  • 308 — Permanent Redirect该资源现在永久位于另一个 URL 中。此代码与 301 的区别在于用户不得更改 HTTP 请求方法。

4XX 状态码

4XX 状态代码是客户端错误,表示请求有问题。它们通常与安全问题相关,但如果客户端超时或请求输入错误,也可能返回它们。

  • 400 — Bad Request由于客户端错误,例如无效的请求消息框架、欺骗性请求路由、大小过大等,服务器无法或不会处理请求。

  • 401 — Unauthorized: 客户端必须对自身进行身份验证才能获得请求的响应。

  • 403 — Forbidden客户端没有内容的访问权限。与 401 未授权不同,服务器知道客户端的身份。

  • 404 — Not Found服务器找不到请求的资源,并且未设置重定向。

  • 405 — Method Not Allowed: 服务器识别请求方法,但目标资源不支持该方法。

  • 406 — Not Acceptable: 当 Web 服务器在执行服务器驱动的内容协商后,无法找到满足用户代理设置的条件的内容时发送。

  • 407 — Proxy Authentication Required与 401 Ununauthorized 类似,但代理需要身份验证。

  • 408 — Request Timeout服务器超时,因为客户端未在分配的时间内生成请求。

  • 409 — Conflict当请求与服务器的当前状态冲突时发送。它显示有关问题的信息,以便客户端可以修复并重新提交问题。

  • 410 — Gone当请求的内容已从服务器中永久删除且没有转发地址时发送。

  • 411 — Length Required: 服务器拒绝了该请求,因为 Content-Length 标头字段未定义,并且服务器需要它。

  • 412 — Precondition Failed: 客户端在其标头中指定了服务器无法满足的前提条件。

  • 413 — Payload Too Large: 客户端的请求大于服务器的限制,服务器拒绝处理它。

  • 414 — URI Too Long: 客户端请求的 Uniform Resource Identifier 比服务器愿意解释的时间长。

  • 415 — Unsupported Media Type: 服务器拒绝该请求,因为它不支持所请求数据的媒体格式。

  • 416 — Range Not Satisfiable: 无法满足请求中 Range 标头字段指定的范围。

  • 417 — Expectation Failed: 服务器无法满足 Expect 请求标头字段指示的要求。

  • 421 — Misdirected Request: 该请求被定向到无法生成响应的服务器。

  • 422 — Unprocessable Content: 请求格式正确,但由于语义错误而无法跟进。

  • 423 — Locked: 访问的资源当前处于锁定状态。

  • 424 — Failed Dependency: 由于上一个请求失败,请求失败。

  • 426 — Upgrade Required服务器拒绝使用当前协议处理请求,除非客户端升级到其他协议。

  • 428 — Precondition Required源服务器要求请求是有条件的。

  • 429 — Too Many Requests: 用户在特定时间范围内发送了太多请求。

  • 431 — Request Header Fields Too Large: 服务器不愿意处理请求,因为其标头字段太大。

  • 451 — Unavailable For Legal Reasons用户代理请求了无法合法提供的资源。

5XX 状态码

这些是服务器错误,用于指定服务器找到了请求的网页,但无法授予对该网页的访问权限。该请求最终无法处理。

  • 500 — Internal Server Error服务器遇到未知问题,不知道如何处理。

  • 501 — Not Implemented服务器不支持请求的方法。

  • 502 — Bad Gateway服务器在充当网关以获取处理请求所需的响应时收到无效响应。

  • 503 — Service Unavailable: 服务器尚未准备好处理请求。这通常发生在服务器过载或正在进行维护时。

  • 504 – Gateway Timeout当服务器充当网关且无法及时获得响应时,会给出此错误响应。

  • 505 — HTTP Version Not Supported服务器不支持请求中使用的 HTTP 版本。

  • 506 — Variant Also Negotiates服务器存在内部配置错误。

  • 507 — Insufficient Storage服务器无法完成请求,因为它缺少用于必要表示的存储空间。

  • 508 — Loop Detected: 服务器在处理请求时识别出无限循环。

  • 510 — Not Extended服务器需要对请求进行进一步的扩展才能完成它。

  • 511 — Network Authentication Required: 需要客户端身份验证才能访问网络。

我想提请您注意一个事实,即并非每个状态和错误代码都可以看到,事实上,它们中的大多数根本没有显示给用户。但是,您可以通过浏览器检查页面来检查它们(Ctrl+Shift+C 在 Inspect Element 模式下打开 Chrome Developer Tools)。只需转到 Network 选项卡并刷新页面即可获取页面上每个元素的错误代码列表,包括页面本身:

现在,让我们仔细看看最常见的服务器响应以及需要如何处理它们。

SEO 最重要的状态代码

不用说,如果你想知道如何做页面搜索引擎优化,首先要确保你的网站没有 HTTP 状态码问题。

在我们继续之前,我想指出有 40 多种不同的服务器状态代码,但您在工作中可能不会遇到超过几个。因此,如果您负责网站和页面 SEO 流程,则必须了解它们,以便您知道在遇到 HTTP 状态代码问题时该怎么做。


以下是最常见的 HTTP 响应状态代码列表:


301 状态代码 —Moved Permanently

HTTP 301 Moved Permanently 状态代码表示客户端请求的 URL 已移动到新位置。浏览器遵循 301 重定向,而不要求用户执行操作。

301 状态代码通常用于将网站从 HTTP 切换到 HTTPS,但也用于设置对网站镜像的访问、URL 尾部斜杠配置以及将网站的一部分或整个网站转移到新域。

如果您的目标是将旧网页的 SEO 排名和权限转移到新网页,则强烈建议使用此重定向。但是,仅更改 URL 而不更新内容将对新更改的索引产生负面影响。想一想:你向搜索引擎发送了一个新信号,表明你希望新页面出现在搜索中,但由于旧 URL 具有很大的权重,Google 不想用新页面替换它。

专业提示: 永远不要将用户从已删除的 URL 重定向到您的主页。此类重定向被 Google 视为软 404,这意味着搜索巨头不会关注它们,不会将 PageRank 或任何其他信号从旧 URL 传递到新 URL。相反,将用户引导至与目标页面类似的页面。

此外,请避免重定向循环,因为它们会阻止用户到达目标页面。换句话说,避免使用包含重定向到已属于同一链的 URL 的链接的链接链。

同样重要的是不要使用多个重定向,因为每个新的重定向都会导致排名权重下降,并且 Google 可能无法索引整个链接链。

因此,只需去掉中间人并将第一页直接重定向到您设置的最后一页即可。最重要的是,您可以随着时间的推移删除 301 重定向以减少服务器负载。

302 状态代码 —Found

302 Found 状态代码与 301 代码非常相似,但 302 状态代码是针对网站不是永久移动而只是临时移动的情况创建的。

基本上,浏览器会自动遵循 302 代码,这表明该页面已成功找到,但已被临时移动到新位置。作为一般规则,当您最终打算将网站访问者带回旧网页时,它只应用于简短的内容维护过程。

当您设置 302 重定向时,您告诉搜索引擎您计划将来再次使用旧 URL。因此,临时新页面不会从原始 URL 获得任何流量值或页面权重。

专业提示:如果你将 302 重定向放置太久,Google 最终会将其视为 301 重定向。此外,请确保检查您的网站是否没有任何应该是 301 的 302 重定向,因为这是一个非常常见的错误。

304 状态代码 —Not Modified

当网页与服务器上的缓存副本保持同步时,浏览器会看到 304 Not Modified HTTP 状态代码。从本质上讲,这意味着页面自上次访问以来未更改。

更详细地说,当浏览器将数据存储在其缓存中时,它们也会存储 Last-Modified 标头数据。反过来,这使浏览器能够确切地知道上次修改页面的时间。当搜索引擎查看页面并看到两个 header 值相同时,服务器会返回 304 代码。

此代码实际上可用于加快网站索引。例如,当爬虫浏览您的网站时,他们会偶然发现多个页面。如果他们得知一个或多个页面没有以任何方式更改,他们就会跳过它们,最终使更多页面被索引。

专业提示: 每个 SEO 专家都希望看到 200 OK 状态代码,表明请求成功,但 304 状态代码基本上意味着同样的事情。根据经验,新页面和首次页面访问应获得 200 代码,并且每次后续访问都应生成 304 代码。

307 状态代码 —Temporary Redirect

307 临时重定向状态代码表示请求的 URL 已被临时移动,用户代理应将原始 URL 用于将来的请求。

请注意,302 和 307 状态代码之间的唯一区别是,用户代理必须使用与请求原始 URL 相同的 HTTP 请求来请求新 URL。

专业提示: 如果 SEO 需要将访问者指向新的 URL,则应使用此状态代码,但最终在成功进行所有网站更改或更新后将他们带回原始 URL。当你不想将 SEO 链接汁从旧 URL 传递到新 URL 时,最好使用此代码。

308 状态代码 —Permanent Redirect

308 重定向状态响应代码指出,请求的网页已永久移动到 Location 标头中指定的 URL。

这意味着网页现在永久位于另一个 URI 上,该 URI 由 Location: HTTP Response 标头指定。这与 301 Moved Permanently HTTP 响应状态具有相同的语义。区别在于,在 308 中,用户代理不得更改使用的 HTTP 方法。

因此,如果在第一个请求中使用了 POST,则必须在第二个请求中使用 POST。

专业提示:对于 SEO 专家来说,这让搜索引擎知道网页及其所有资源都已被永久重定向。就链接汁而言,它被传递到重定向的页面。

403 状态代码 —Forbidden

403 Forbidden 状态代码表示用户无权访问请求的网页。这个很简单。

出现此状态代码的原因有多种。例如,用户已登录网站,但没有访问其封闭内部网络所需的权限。

可能出现 403 状态代码的其他情况包括主页的索引文件不正确的情况。索引文件应该叫 “index”,扩展名是 *.shtml、*.html、*.htm、*.phtml 或 *.php,所以一定要检查一下你的情况是不是这样。

此外,当您切换到 HTTPS 时,如果域名系统 (DNS) 缓存尚未更新,则可能会出现 403 状态代码。最佳实践建议您等到缓存更新,但如果这是生死攸关的问题,请立即清除 DNS 缓存。

专业提示:产生 403 响应代码的页面最终将从索引中删除,这就是为什么 Google 建议使用 404 状态代码来代替。

404 状态代码 —Not Found

这是 SEO 中最著名的响应状态代码之一。404 Not Found 错误表示服务器未找到与请求的 URL 匹配的任何内容,但已成功在服务器和客户端之间建立网络连接。

现在,如果您在 Google Search Console 帐户中看到大量 404 页面,请不要担心。Google 只是让您知道哪些页面已被删除,由您来检查是否一切正常。但请确保从您的网站中删除指向已删除页面的所有链接,这样您就不会在访问者浏览网站时感到困惑。

当我们在浏览器中手动输入错误的 URL 并因此尝试访问不存在的页面时,我们通常会看到此错误代码。但是,如果服务器管理员删除了文件,而没有先将 URL 重定向到有效的新位置,也会出现这种情况。要解决此问题,您需要检查请求的 URL,自己修复或等待管理员进行修复。

专业提示:显示 404 响应代码的页面不会编入索引,也不会传递任何权限。这就是为什么一些 SEO 专家使用软 404 页面的原因。它返回 200 状态代码以及一个页面,通知用户该页面不存在。但这被认为是一种不好的做法,因为成功代码会告诉 Google 该 URL 上有一个真实的页面。最终,该页面最终可能会被列入 SERP,搜索巨头将继续尝试抓取不存在的 URL,而不是抓取您的实际页面。

为您的网站设置 404 页面

404 页面过去看起来像一堵坚固的代码墙,但现在时代变了,它变得更有创意了。但是,您必须记住,用户带着特定的请求来到您的网页,您的工作不仅仅是用很酷的图片来娱乐他们,而是帮助他们找到他们正在寻找的东西。因此,请确保将您的网站导航或联系表格添加到您的 404 页面,尤其是在它们仍然看到流量的情况下。

现在,如果您的内容管理系统没有为您的网站生成 404 页面,您可以自己创建一个。您可以这样做:

通过 .htaccess 的 404 页面

要在网站上设置 404 错误页面,请转到根目录,打开 .htaccess 文件(如果缺少,请创建一个),然后添加以下记录:'ErrorDocument 404 /404.html'。

通过 PHP 的 404 页面

至于通过 PHP 创建 404 页面,简而言之,您可以使用 header 功能。

通过 WordPress 的 404 页面

在 WordPress 中创建自定义 404 页面时,您有多种选择:

  • 编辑您的主题提供的现有 404 页面。

  • 如果您的模板没有提供自定义 404 页面,请添加自定义 404 页面。

  • 使用 404 插件。

410 状态代码 —Gone

410 Gone 状态代码表示请求的网站在服务器上不再可用,并且没有已知的转发地址。而且由于 Google 的 URL 检查工具也将 410 代码标记为 404,因此您最终会在 Google Search Console 中看到更多的 404 页面错误。

此状态代码通常用于信任度低、没有任何链接的页面以及永久删除的页面。例如,假设您不再在您的网站上提供特定服务,并希望停止吸引搜索不存在的页面的流量。这就是 410 状态代码发挥作用的地方。

由于 Google 在技术上不会以相同的方式处理 404 和 410 错误,因此您可以使用临时自定义 410 页面为搜索引擎机器人提供更准确的状态和信息,即应从抓取索引中删除旧链接。因此,这可以阻止不必要、不相关的流量流入。

但是在永久删除页面之前,请务必三思而后行。如果您不确定,您可以随时设置重定向并仍然看到一些流量。但是,如果您决定完全杀死一个页面,请留意链接到即将删除的页面的链接,这些页面一旦被删除就会中断。

500 状态代码 —Internal Server Error

500 状态代码向浏览器发送一个信号,指出存在导致网站无法访问的内部服务器错误。遗憾的是,此状态代码并未具体说明错误背后的原因。基本上,该请求无法满足。

专业提示:一些网站管理员实际上会将此类错误响应记录为 500 状态代码,其中包含有关请求的更多信息,以帮助调试错误并防止将来再次发生。

您可以做的是刷新页面,检查使用的 URL 和您的互联网连接,然后检查您在 PHP 和 CGI 文件中拥有的权限,并生成一个干净的 .htaccess 文件。

502 状态代码 —Bad Gateway

每次您访问网站时,您的浏览器都会向 Web 服务器发送一个请求。并非所有请求都成功返回。502 状态代码表示服务器在充当网关或代理并尝试执行请求时访问了入站服务器,从而从入站服务器收到无效响应。

专业提示:坏网关实际上可以指许多与网络有关的事情。事实上,这不是一个可以轻松修复的错误,因为它需要使用 Web 服务器或您尝试访问的代理。

确保您使用的是正确的 URL 后,清除浏览器缓存、DNS 刷新,并联系您的主机以解决您的数字资产上的此类问题。

503 状态代码 —Service Unavailable

503 Service Unavailable 状态代码表示网站服务器当前不可用,因此无法处理传入的客户端请求。

在绝大多数情况下,如果服务器太忙,例如它超出了并发用户数的限制,或者服务器正在进行维护工作,则会显示 503 状态代码。

它也可以在其他情况下使用,例如,如果:

  • 网站遭到 DDOS 攻击,

  • 该网站使用了大量脚本或外部元素,如小部件和图像,

  • 从数据库中提取请求的数据花费的时间太长,或者

  • 许多搜索机器人或解析软件同时发出请求。

理想情况下,503 页面应包含一条消息,用于指定访客应返回的确切时间,但这种情况很少见。

最后但并非最不重要的一点是,503 状态代码阻止搜索引擎为网站编制索引。此外,它还向搜索引擎发出信号,表明该网站维护不善,因为用户找不到他们正在寻找的内容。因此,尽快解决此类问题非常重要。否则,它会影响您的整体搜索排名。


通过 PHP 设置 503 页面

以下是 PHP 中 503 状态代码的样子:

<?php
?header(“HTTP/1.1 503 Service Temporarily Unavailable”);
?header(“Status: 503 Service Temporarily Unavailable”);
?header(“Retry-After: 3600”);
??>

使用 Website Audit 检查服务器响应并修复问题

为了掌握您网站发生的一切,您必须始终关注您的网页并监控其状态代码。当然,你可以使用 Chrome 的 Live HTTP Headers 扩展和 Google Search Console 中的 Index Coverage 报告来查看网页的状态代码,但最好在搜索引擎之前发现并分析它们。这就是为什么您的网站需要审计的原因,您可以使用 SE Ranking 的网站审计工具轻松运行审计。

当您滚动浏览审计报告时,您将看到您网站所有正确和错误的详细分类,包括其 SEO 健康状况、页面、元、内容和链接。最好的部分是您可以轻松找出您的网站是否有任何具有意外状态代码的页面。

只需转到 Crawled Pages 选项卡即可轻松分析您的页面状态代码 - 直接在平台中或通过导出 XLS 文件:

您还可以在 Issue Report(问题报告)选项卡上查看状态代码问题。在 HTTP Status Code 部分,您将找到各种类型的问题及其关联的 URL。

除了能够查明和快速识别网站错误外,网站诊断工具还可以生成一份建议列表,以帮助 SEO 专家准确地完成他们的工作。

要解决 HTTP 状态代码问题,请按照该工具提供的建议提示进行操作:

处理 3XX 页面:

确保您网站上的 3XX 页面的百分比保持较低。如果超过 10%,请通过删除不必要的重定向来解决此问题。

处理 4XX 页面:

检查您的 4XX URL 列表并查看链接到它们的所有内部页面。删除或替换为指向活动页面的相关链接。对于重新定位或删除的页面,请设置 301 重定向。

处理 5XX 页面:

检查具有 5XX 错误的 URL 时,请尝试在浏览器中重现问题,并检查服务器的错误日志。如果问题仍然存在,请联系您的托管服务提供商或 Web 开发人员。您的服务器可能过载或配置错误。这也可能是由于服务器维护而发生的临时问题。

您仍然需要手动实施更改,但找到它们将不再是一项艰巨的任务。

使用网站诊断优化网页的状态代码后,请让 Google 知道,以便它可以检查和更新它们供所有人查看。


该文章在 2024/9/27 12:47:51 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved