5
章节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 服务不可用服务器错误响应码表示服务器尚未准备好处理请求。
当您的网站出现故障并且您预计网站将长时间无法运行时,建议返回此状态码。这可以防止长期失去排名。
这有帮助吗?