跳到内容

5

什么是 HTTP 状态码?

HTTP 响应状态码表示特定的 HTTP 请求是否已成功完成。有许多状态码,但只有少数在 SEO 环境中有意义。

现在我们来看看它们。

200

HTTP 200 OK成功状态响应码表示请求已成功。

为了使页面在 Google 上被索引,它必须返回状态码200。这是您通常希望在页面中看到的状态码,以便它们获得自然流量。这是 Next.js 成功渲染页面时将设置的默认代码。

301/308

HTTP 301 永久移动重定向状态响应码表示请求的资源已永久移动到目标 URL。

这是一个永久重定向。一般来说,这是最广泛使用的重定向类型。

重定向可用于多种原因,但主要原因是表示 URL 已从 A 点移动到 B 点。需要重定向以确保,如果内容从一个地方移动到另一个地方,您不会失去现有和潜在客户,并且机器人可以继续索引您的网站。

注意:Next.js 永久重定向默认使用 308 而不是 301,因为它是一个更新的版本,被认为是更好的选择。

这两个状态码的主要区别在于,301允许将请求方法从POST更改为GET,而308不允许。

您可以通过在getStaticProps()函数中返回重定向而不是 props 来触发 Next.js 中的308重定向。

//  pages/about.js
export async function getStaticProps(context) {
  return {
    redirect: {
      destination: '/',
      permanent: true, // triggers 308
    },
  };
}

您还可以在next.config.js中设置的重定向中使用permanent: true键。

//next.config.js
 
module.exports = {
  async redirects() {
    return [
      {
        source: '/about',
        destination: '/',
        permanent: true, // triggers 308
      },
    ];
  },
};

302

HTTP 302 临时移动重定向状态响应码表示请求的资源已临时移动到目标 URL。

在大多数情况下,302重定向应该是301重定向。如果您暂时将用户重定向到某个页面(例如促销页面),或者根据位置重定向用户,则可能不是这种情况。

404

HTTP 404 未找到客户端错误响应码表示服务器无法找到请求的资源。

如上所述,已移动的页面应使用HTTP 301状态码重定向到新位置。如果未发生这种情况,URL 可能会返回404状态码。404状态码默认情况下不一定都是坏的,因为如果用户恰好访问了一个不存在的 URL,这是预期的结果,但它们不应该是您页面中的常见错误,因为它可能导致搜索排名不佳。

Next.js 会自动为应用程序中不存在的 URL 返回404状态码。

在某些情况下,您可能还希望从页面返回404状态码。您可以通过返回以下内容而不是 props 来实现:

export async function getStaticProps(context) {
  return {
    notFound: true, // triggers 404
  };
}

您可以通过创建pages/404.js创建自定义 404 页面,该页面在构建时静态生成。

示例

// pages/404.js
export default function Custom404() {
  return <h1>404 - Page Not Found</h1>;
}

410

HTTP 410 已删除客户端错误响应码表示目标资源在源服务器上不再可用,并且这种情况可能是永久性的。

这不常使用,但如果您要删除网站上不再存在的内容,您可能需要查找此状态码。

建议使用HTTP 410 Gone的示例包括:

  • 电子商务:从库存中永久移除的产品。
  • 论坛:用户已删除的帖子。
  • 博客:从网站上移除的博客文章。

此状态码通知机器人它们不应再返回爬取此内容。

500

HTTP 500 内部服务器错误响应码表示服务器遇到意外情况,阻止其完成请求。

Next.js 会自动为意外的应用程序错误返回500状态码。您可以通过创建pages/500.js创建自定义500错误页面,该页面在构建时静态生成。

示例

// pages/500.js
export default function Custom500() {
  return <h1>500 - Server-side error occurred</h1>;
}

503

HTTP 503 服务不可用服务器错误响应码表示服务器尚未准备好处理请求。

当您的网站出现故障并且您预计网站将长时间无法运行时,建议返回此状态码。这可以防止长期失去排名。

您已完成本章5

下一章

6:什么是 robots.txt 文件?