回到主页

企业站seo-搜索引擎优化的HTTP状态代码和标题的最终指南

企业站seo

您是否了解HTTP协议的工作原理及其对抓取和索引网页的影响?没有?以下是Contributor Barry Adams撰写的有关HTTP状态代码和标题的指南,以便于学习。

在万维网的客户端 - 服务器体系结构中,浏览器和网站之间的交互是通过超文本传输​​协议(HTTP)来处理的。该协议于1991年推出,是官方网络标准。几乎所有Web上的流量都是通过HTTP处理的。

当像Googlebot这样的搜索引擎蜘蛛抓取网站时,它们就像浏览器从网站请求网页并依赖HTTP进行此交换。这就是为什么搜索引擎优化专家(SEO)必须了解HTTP协议如何工作以及它对搜索引擎的网页爬行和索引的影响。在本专栏中,我将解释您需要了解的所有内容。

但首先,让我告诉您在网站建设上执行必要测试所需的工具。Google Chrome DevTools允许您查看统一资源定位器(URL)完整HTTP响应,但查看起来很麻烦。我更喜欢使用Ayima Page Insights和Ayima Redirect Path Chrome插件向我显示URL的完整HTTP响应。

使用Chrome中的Ayima Page Insights插件,这就是HTTP响应的样子:

另一个执行相同工作的工具是Chrome的Live HTTP Headers。

HTTP状态代码

我们来谈谈HTTP状态代码。

当从网站请求网页时,网站的服务器以HTTP状态代码响应。此代码是对客户端请求的确认,并指示服务器发送给客户端的响应类型。

Web服务器可以响应数百种不同的HTTP状态代码,您可能会在日常谷歌优化(SEO)工作中遇到这些代码。它将帮助您熟悉大部分内容,以便您了解如何使用它们。以下是更常见的HTTP状态代码列表:

  • 200好的。
  • 300多种选择。
  • 301永久移动。
  • 302暂时移动。
  • 304未修改。
  • 307临时重定向。
  • 400错误请求。
  • 401未经授权。
  • 404未找到。
  • 410已经过去了。
  • 429请求太多。
  • 500内部服务器错误。
  • 501未实施。
  • 503服务不可用。
  • 550许可被拒绝。

Seach引擎优化专家需要密切了解这些状态代码,并了解每个响应代码所服务的目的。此外,SEO应该了解Google等搜索引擎如何处理这些状态代码。让我们看看一些比较常见的。

200好的

让我们从显而易见的开始吧。来自Web服务器的200响应意味着请求成功,请求的Web页面存在,Web服务器将开始将该页面及其相关资源(图像,CSS和JS文件等)发送到客户端。

这个响应代码非常简单。通常,附加标头与响应代码一起发送,这可能会影响搜索引擎处理URL的方式。我们将在下面的HTTP Headers部分中查看这些内容。

301永久移动

301 HTTP状态代码是SEO行业的最爱之一,因为它让浏览器和搜索引擎知道网页已经被另一个页面取代,而且这种变化是永久性的。对于搜索引擎,这是他们更新索引并将旧URL的链接指标与新URL相关联所需的信号。

通过301重定向与新网址关联的原始网址中的链接值是一个推测问题,谷歌对此做出了相互矛盾的陈述。

我相信301重定向具有相同的PageRank阻尼因子作为链接应用 - 所以当页面A重定向到页面B时,它与链接到页面B的页面A具有相同的效果。
 

总体而言,301重定向是网站搜索引擎优化库中的一个重要工具,并且具有广泛的有用应用程序,可以帮助网站seo保持其排名甚至改善它们。

302临时移动

另一种类型的重定向是302 HTTP状态代码,表示页面已被其他URL临时替换。

在短期内,这意味着搜索引擎会将原始URL保留在索引中,而用户则会被发送到重定向的目标URL。但是,从长远来看,Google会将302重定向解释为永久301重定向,并会相应地开始处理它。

许多网站使用302重定向进行自动地理重定向,以便向用户发送其内容的正确国家/语言版本。虽然这在理论上似乎很好,但通常不建议使用重定向,因为它可能意味着像谷歌这样的搜索引擎只会看到该网站内容的一个国家版本。

Google主要从美国的IP地址抓取,因此针对所有美国流量的自动302重定向意味着Google只会看到网站的美国内容。除非您找到为Googlebot制作例外的方法,否则其他国家/地区和语言版本对Google有效。
 

304未修改

04 HTTP状态代码不经常使用。此代码的作用是通知浏览器和搜索引擎抓取工具自上次访问后资源未发生更改。这意味着不必通过Internet重新发送资源,并且客户端可以仅依赖于已缓存的资源的版本。

对于大型网站,明智地应用304状态代码可以帮助节省大量服务器资源。如果您在上次抓取后页面尚未更新时向Googlebot提供304资源,则无需在互联网上生成或发送该页面(及其所有相关资源),因此您可以保留大量中央处理单元(CPU)周期和带宽。

307临时重定向

307 HTTP状态代码有点虚假标志。我们会不时在通过HTTPS提供的网站上看到它并且在HSTS预加载列表中。根据Chromium项目:

07 HTTP状态代码有点虚假标志。我们会不时在通过HTTPS提供的网站上看到它并且在HSTS预加载列表中。根据Chromium项目:

HSTS告诉浏览器始终使用HTTPS。Google Chrome,Firefox,Safari,Opera,Edt和Internet Explorer都支持HSTS。

基本上,307所发生的事情是浏览器识别出对http://website.com的请求应该改为http s://website.com并直接在那里。

所以它不是一个真正的HTTP响应代码; 网站的服务器永远不会看到原始请求。浏览器实现此重定向本身,因为它知道(由于HSTS预加载列表)有问题的URL是通过HTTPS而不是HTTP提供的。Google,PayPal,Twitter,Stripe,DropBox,Facebook和LastPass是预装HSTS列表中的一些知名网站。

Ayima Redirect Path插件会相应地显示:

404未找到并且410已消失

在400范围的HTTP状态代码中,有两个我要强调,因为它们对SEO很重要。

第一个也是最常见的是404未找到的HTTP状态代码。这表示该网址不存在,Google Search Console会在网站的抓取错误报告中显示这些错误。大多数情况下,404响应是由Google发现然后尝试抓取的网站上某处的错误链接造成的。

网站将在删除后开始在页面上提供404未找到的HTTP响应。在我看来,你不应该允许这种情况发生。404错误表示意外错误,某处错误输入链接。如果用于提供有效内容的网址已被删除,则不应提供404; 您应该将URL重定向到有效的活动页面,或者提供410状态代码。

410响应的HTTP响应是“故意的404”。对于410响应,你说的是,曾经有一个页面在这里,但它已被永久删除。

搜索引擎以不同于404s的方式处理410s。虽然两个状态代码都在Google Search Console中报告为“未找到”错误,但410是Google明确表示要从其索引中删除该网址的信号。虽然Google会将404解释为意外错误,并且会在其索引中保留一段时间为404的URL,但410响应会被视为从Google索引中删除该网址的明确请求。

以下是来自前Google员工Matt Cutts的旧视频,解释了Google如何处理404和410状态代码,但它仍然是一个非常好看的视频:

429请求太多

在您的SEO职业生涯中,您会遇到许多4XX HTTP状态代码,但很少会像429响应一样令人气愤。当您使用自己喜欢的SEO抓取工具抓取网站时,您很可能会看到此HTTP状态代码。

429响应表明客户端在给定时间段内发出了太多请求,而不是URL的正确响应,而是获得429响应。这是某种形式的速率限制技术的结果,该技术可防止网站被外部请求过载。它通常也会干扰SEO工具对网站的爬行,您可能需要请求网站的技术团队对您用于抓取网站的IP地址进行例外处理。

一些限速技术也会以这种方式阻止Googlebot,这可能会对Google可以抓取网站的速度和效率产生深远的影响。

这可能很难识别,因为Google不会在Search Console中报告429个回复。如果一个网站使用限速技术,那么总是值得仔细检查是否存在有效Googlebot抓取的例外情况。

500内部服务器错误和503服务不可用

任何类型的5XX HTTP响应都表明存在某种服务器端问题。它们是尽可能避免的代码。

它们很常见,特别是在大型网站上。Google会在Search Console中报告这些服务器错误:

对于网站排名优化,这些错误的影响主要是爬行效率。由于这些错误的严重性,当网站启动服务器5XX类型的响应时,Googlebot将降低其抓取网站的速率,甚至完全停止抓取网站,直到错误消失。

因此,这些错误与429响应具有类似的效果,并且可能会影响网站的抓取速度。结果可能在延迟获取索引的新内容或更改内容时显而易见。通常,网站应尽量减少其服务的5XX HTTP响应的数量。

如果您必须提供5XX错误消息,例如当您关闭网站进行维护时,应始终使用503服务不可用的HTTP状态代码。

一个503是一个500到410是一个404:这是一个故意的信号,所以像Googlebot这样的爬虫知道你故意把网站搞砸了。

当Googlebot看到503时,它会降低其抓取速度并且不会更改其索引中的页面状态。您可以在网站上工作时安全地继续投放503,而不会影响您网站在Google中的排名。

只有当503错误持续很长一段时间后,Google才会将其解释为持久性错误并相应地更新其索

HTTP标头

状态代码只是服务器发送给客户端的完整HTTP响应的一部分。使用状态代码发送附加信息。状态代码和附加信息的完整响应称为HTTP标头。

此标头可以包含客户端和搜索引擎可用于正确处理URL的指令。

由于HTTP标头的可扩展性,因此URL的完整HTTP标头响应可以包含的字面上没有限制。

接下来让我们看一下SEO的一些重要的HTTP头元素。

规范链接

我们习惯于在网页的超文本标记语言(HTML)源代码中查找规范标记。但是,您也可以发送规范链接作为URL的HTTP标头的一部分。这完全受Google支持,并且与页面HTML源中的rel = canonical链接具有完全相同的影响。

因为在页面的HTML中实现rel = canonical标签相对容易,所以很难找到作为页面HTTP响应的一部分发送的规范链接。但是,总是值得仔细检查页面的规范链接的HTTP标头,特别是如果您在网站上看到不寻常的索引和排名问题。

Hreflang链接

与规范链接相同,您还可以在页面的HTTP标头响应中包含hreflang链接。Hreflang链接引用表示在网站设计时页面具有针对不同语言和/或国家/地区的备用版本。通常,这些都包含在页眉的HTML源代码中,或者作为XML站点地图的一部分。

使用HTTP标头的Hreflang实现很少见,而且就个人而言,我不推荐它,因为它可能非常难以排除故障。具有可扩展标记语言(XML)站点地图的实现是最容易管理的,其次是HTML链接引用。

机器人元标记和X-Robots-Tag
当我们想要指示搜索引擎不对页面编制索引时,我们可以使用robots元标记来执行此操作。此元标记告知Googlebot和其他搜索引擎不对网页编制索引,也不会抓取网页上包含的任何链接。

 

此元标记存在限制:它只能在为网页提供服务的网址上实施。

例如,您要确保您网站上的所有PDF文件都没有编入索引,但您不能使用此元标记,因为它不适用于PDF文件。相反,您可以使用X-Robots-Tag HTTP标头发送完全相同的信号。

配置Web服务器以向所有以PDF结尾的文件的“noindex”值发送X-Robots-Tag HTTP标头相对简单。

在Apache Web服务器上,只需几行代码即可添加到站点的.htaccess文件中:

因为可以轻松地为整个目录配置X-Robots-Tag HTTP标头,这也可以作为防止搜索引擎索引安全文件夹的有效方法。

除了“noindex”和“nofollow”之外,您还可以提供其他一些影响Google处理网址的X-Robots-Tag响应:

缓存控制

另一组HTTP标头响应可以影响浏览器如何缓存页面及其相关资源。例如,您可以提供“max-age”响应,告知浏览器在一定时间后需要从服务器重新请求页面。

缓存控制标头主要影响页面的主观(重新)加载速度,并且不会对搜索引擎抓取和索引页面的方式产生巨大影响。尽管如此,由于加载速度对SEO优化和一般可用性的重要性,值得熟悉这些HTTP标头,以确保您能够为希望提高网站加载速度的客户提供准确而有价值的建议。

变化
Vary HTTP标头用于与压缩,cookie和移动网站相关的一系列目的。

对于移动网站,当网站为移动用户使用动态服务时,特别重要的是提供特定的Vary HTTP标头,以便搜索引擎知道使用桌面和移动抓取工具抓取网站。此特定HTTP标头是Vary:User-Agent。

这个HTTP标头告诉Googlebot该网站将为桌面和移动用户提供不同的代码。因此,Google将使用两种类型的用户代理抓取网站,并确定要为哪种类型的用户排名的代码版本。
 

用于安全性的HTTP标头
虽然与SEO没有直接关系,但帮助网站更安全绝不是一件坏事。

HTTP标头在安全性方面也发挥着重要作用,因为正确使用正确的HTTP标头可以使网站不易受到一系列潜在安全问题的影响。

有许多HTTP标头用于安全目的,例如:

严格 - 传输的安全性。
X-XSS-保护。
X-Content-Type的。
X框选项。
我们刚刚触及表面
我提供了一小部分HTTP状态代码和HTTP标头。如果本文引起了您的兴趣,那么Web将为您提供无数资源,让您了解有关HTTP协议和Web客户端 - 服务器架构的更多信息,例如:

在Mozilla的开发者网站。
谷歌的开发者网站。
熟练掌握网络的这一方面将有助于您成为一个更有效的搜索引擎优化,并在数字营销的其他领域为您提供良好的服务。

毕竟,我们所做的主要是关注网络,因此更好地理解网络的底层技术确实非常有用。
 

所有文章
×

还剩一步!

确认邮件已发至你的邮箱。 请点击邮件中的确认链接,完成订阅。

好的