SEO & Discoverability

HTTP 状态码对 SEO 的实际含义

一份面向影响抓取、索引、重定向和移出索引的响应码的实用指南——不把每一个状态码都当成排名危机。

The Wux Webtools Team The Wux Webtools Team 9 分钟阅读 人工智能辅助,人工审核
Illustration of HTTP status code paths affecting how a search crawler reaches or skips web pages.
目录
  1. 状态码不是 SEO 的全部
  2. 200 OK:可被索引,但不自动有价值
  3. 301 和 308:永久重定向
  4. 302 和 307:临时重定向
  5. 304 Not Modified:有用,但不是排名捷径
  6. 404 Not Found:页面消失时很正常
  7. 410 Gone:比 404 更强,但要谨慎使用
  8. 401、403 和被阻止的访问
  9. 429 Too Many Requests:带有后果的抓取控制
  10. 500、502、503 和 504:可靠性信号
  11. 重定向链和循环值得特别关注
  12. 实用优先级清单
  13. 选择正确状态码的简单规则

HTTP 状态码是一个很容易让 SEO 建议变得莫名紧张的话题。一个 404 会被说成“权重丢失”。一次重定向会被说成“链接权重泄漏”。一个 500 会被当成紧急事故,即使它只是在部署期间持续了六分钟。

更冷静的说法是:HTTP 状态码是指令和信号。它们告诉浏览器、机器人、缓存以及其他客户端,在请求某个 URL 时发生了什么。搜索引擎会根据这些响应来决定是否抓取、索引、保留、替换或删除某个页面。

但并不是每个状态码都有相同的 SEO 权重。有些是常规现象。有些只有在规模化出现时才是问题。少数则需要立即关注。

状态码不是 SEO 的全部

状态码只是 HTTP 响应的一部分。搜索引擎还会查看:

  • 重定向后的最终 URL
  • canonical 标签
  • robots 指令
  • 页面内容
  • 内部链接
  • sitemap 信号
  • 历史抓取行为
  • 服务器长期可靠性

这意味着,“页面返回 200”并不等于“页面可以被索引”。一个 URL 可以返回 200,但仍然被 noindex 阻止、被 canonical 到其他位置,或者因为内容稀薄或为空而被视为软 404。

同样,404 并不自动意味着坏事。已删除的页面通常应该返回 404 或 410。SEO 问题不在于存在缺失页面,而在于重要页面返回了错误的状态码,或站点发出了相互矛盾的信号。

如果你正在生产环境中调试,不要只依赖浏览器显示的内容。请检查实际的响应链。原始 header 检查、命令行请求或重定向追踪,比可见页面能提供更多信息。我们在用于在生产环境中调试重定向和 HTTP headers 的小工具集中介绍过一个实用流程。

200 OK:可被索引,但不自动有价值

200 OK 响应表示请求成功,服务器返回了内容。对 SEO 来说,这是你希望被抓取并可能被索引的页面的正常响应。

但 200 并不能保证索引。如果页面重复、质量较低、被页面级指令阻止,或无法通过链接被发现,搜索引擎仍可能选择不索引它。

关于 200 响应,最常见的 SEO 错误是把它们返回给并非真实页面的 URL:

  • 空的搜索结果页
  • 只显示“抱歉,暂不可用”文本的已删除产品页
  • 没有实质内容的地点页
  • 只渲染出外壳的损坏模板
  • 应该被移除或重定向的过期列表页

这些可能变成软 404。软 404 指的是服务器说“OK”,但内容告诉抓取器“这里没有有用的东西”。搜索引擎仍可能像处理缺失页面一样处理该 URL。

一个好的规则是:如果人会说“这个页面已经不存在了”,服务器大概率就不应该说 200。

301 和 308:永久重定向

301 Moved Permanently308 Permanent Redirect 告诉客户端某个 URL 已永久迁移。对 SEO 来说,当页面有明确替代项时,它们是正确的工具:

  • HTTP 到 HTTPS 迁移
  • 旧 slug 到新 slug
  • 合并后的文章指向更强的文章
  • 停产产品指向相近的后续产品
  • trailing slash 或 canonical host 规范化

搜索引擎通常会通过永久重定向传递规范化信号。用白话说:如果你把旧 URL 重定向到正确的新 URL,搜索引擎可以合并许多与旧页面相关的信号。

风险不在于 301 本身有害。风险在于映射做得不好。

不好的重定向模式包括:

  • 将每个旧 URL 都重定向到首页
  • 将已删除页面重定向到关系模糊的分类页
  • 创建 A → B → C → D 这样的链条
  • 重定向到被阻止、noindexed 或 canonicalized 到其他位置的 URL
  • 移动端和桌面端重定向不一致

永久重定向应该回答一个问题:“这个 URL 当前最好的等价页面是什么?”如果没有等价页面,404 或 410 可能更诚实。

302 和 307:临时重定向

302 Found307 Temporary Redirect 表示迁移是临时的。原始 URL 预期会长期保持为主 URL。

请将临时重定向用于真正临时的情况:

  • 短期活动路由
  • 不应替代 canonical URL 的地理位置或 A/B 测试
  • 临时维护替代页面
  • 经常变化的库存或可用性流程

对 SEO 来说,主要问题是不明确。如果一个“临时”重定向持续数月或数年,搜索引擎最终可能仍会把目标 URL 视为 canonical。但你不应该依赖这种解释。

如果迁移是永久的,请使用永久重定向。如果是临时的,请使用临时重定向。这个无聊的答案就是正确答案。

304 Not Modified:有用,但不是排名捷径

304 Not Modified 是 HTTP 缓存的一部分。它告诉客户端,自它已有的版本以来,该资源没有发生变化。

这个状态码有利于抓取效率和性能卫生。它可以减少不必要的数据传输,并让重复请求成本更低。但它不是简单意义上的直接排名因素。

把 304 看作基础设施质量。它帮助客户端和抓取器更高效地与你的网站交互。它不会把薄弱内容变成强内容。

404 Not Found:页面消失时很正常

404 Not Found 表示服务器找不到所请求的资源。这并不自动构成 SEO 灾难。

以下情况适合使用 404:

  • 页面已移除且没有替代项
  • 错误的外部链接指向不存在的 URL
  • 用户输错 URL
  • 旧的测试或 staging URL 本来就不应该存在

搜索引擎最终会把持续返回 404 的 URL 从索引中移除。这通常正是你想要的结果。

当 404 影响重要 URL 时,你应该修复它们:

  • 拥有有价值反向链接的页面
  • 获得有意义流量的 URL
  • 在迁移期间被意外移除的重要页面
  • 指向缺失页面的内部链接
  • 返回 404 的 sitemap URL

不要把每个 404 都重定向到首页。这会让用户和搜索引擎困惑。如果有相关替代页面,就重定向。如果没有,就返回 404,并为用户提供有用的错误页面。

410 Gone:比 404 更强,但要谨慎使用

410 Gone 表示资源已被有意移除,并且预计不会再回来。

对 SEO 来说,当你希望更明确地移除 URL 时,410 可能有用:

  • 过期的法律页面
  • 被移除的用户资料
  • 已删除的垃圾页面
  • 没有替代项的过时落地页

搜索引擎可能会把 410 视为比 404 更强的移除信号。实际差异通常是速度,而不是结果。持续的 404 和 410 响应都可能导致移出索引。

当你确信页面永久消失时,请使用 410。如果页面可能会恢复,404 或临时处理方式可能更安全。

401、403 和被阻止的访问

401 Unauthorized 表示需要身份验证。403 Forbidden 表示服务器理解了请求,但拒绝访问。

对 SEO 来说,这些状态码通常会阻止受保护内容被正常抓取和索引。对于私有 dashboard、账户区域、staging 系统以及不应公开索引的付费内容,这没有问题。

当公开页面因为以下原因意外向抓取器返回 401 或 403 时,问题就会出现:

  • bot protection 规则
  • 配置错误的防火墙
  • 国家或地区屏蔽
  • CDN 规则
  • 过期的身份验证假设
  • 从 staging 带入生产环境的限制

一个你登录后能正常访问的页面,抓取器未必能访问。务必以未认证客户端的身份进行测试。

429 Too Many Requests:带有后果的抓取控制

429 Too Many Requests 告诉客户端它们正在被限流。当机器人确实压垮基础设施时,这可能是合适的。

不过,随意使用 429 可能会减少抓取活动。如果搜索引擎反复遇到限流,它们可能会放慢请求速度。这会延迟新内容或更新内容的发现。

如果需要限流,请做到精准。避免意外阻止主要搜索抓取器。使用服务器日志区分激进抓取和合法抓取。如果可能,返回 Retry-After header,让行为良好的客户端知道何时回来。

500、502、503 和 504:可靠性信号

5xx 系列表示服务器未能完成一个有效请求。

常见示例:

  • 500 Internal Server Error
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout

偶发的 5xx 响应会发生。短暂的部署问题通常不是灾难。持续的 5xx 错误则不同。它们告诉抓取器你的网站不可靠;如果搜索引擎反复无法获取页面,可能会降低抓取频率,或临时移除受影响页面。

503 Service Unavailable 是计划维护的正确状态码,尤其是在配合 Retry-After header 时。它表示:“这是临时情况;稍后再来。”为维护页面返回 200 更糟,因为抓取器可能会把维护内容当作页面内容。

如果故障影响重要 URL,请监控恢复情况。确保原始页面重新返回 200,而不是缓存的错误页面、重定向循环或临时维护模板。

重定向链和循环值得特别关注

重定向很正常。重定向链则是可以避免的负债。

从旧 URL 简单重定向到新 URL 是可以的。包含五次重定向的链条会增加延迟、浪费抓取预算,并为请求失败创造更多位置。循环更糟:客户端永远到不了最终页面。

对于 SEO 迁移,请维护一份重定向映射,并在上线前测试。每个退役 URL 理想情况下都应在一次跳转内到达最终目标。上线后,抽样检查旧 URL、高流量 URL 和反向链接较多的 URL。

这也是性能和 SEO 重叠的地方。重定向会延迟真正页面加载的开始。如果你在审查可抓取性的同时也在评估用户体验,冷静阅读 Lighthouse 报告可以帮助你把严重加载问题和嘈杂诊断区分开。

实用优先级清单

如果你正在审计状态码,不要把每条警告都同等对待。从这里开始:

  1. 重要 URL 返回 5xx —— 先修复服务器可靠性。
  2. 可索引页面返回错误状态 —— 恢复预期的 200 响应。
  3. 重定向链和循环 —— 简化为一次跳转的重定向。
  4. sitemap URL 返回非 200 响应 —— 保持 sitemaps 干净。
  5. 指向 404 的内部链接 —— 修复导航和内容链接。
  6. 软 404 模式 —— 不要再为为空或已删除页面返回 200。
  7. 意外阻止抓取器 —— 调查意外的 401、403 和 429 响应。

目标不是让网站没有任何 404。这不现实,也通常没有必要。目标是让每个 URL 都给出真实、一致的响应。

<!-- tool-cta:start -->

💡 试试这个: 使用 Redirect Checker 检查你的 URL 实际返回哪些状态码,它会显示爬虫看到的完整链路。

<!-- tool-cta:end -->

选择正确状态码的简单规则

不确定时,选择与用户可见事实相匹配的状态码:

  • 页面存在且应可访问:200
  • 页面已永久迁移:301308
  • 页面已临时迁移:302307
  • 页面不再存在且没有替代项:404
  • 页面被有意永久移除:410
  • 页面暂时不可用:503
  • 请求被阻止或属于私有内容:401403

搜索引擎很擅长处理普通的 Web 混乱。真正造成 SEO 问题的是大规模的不一致:永久迁移被标记为临时,已删除页面假装仍有效,服务器错误长期未解决,以及上次迁移后再也没人测试过的重定向逻辑。

HTTP 状态码不是神奇的 SEO 杠杆。它们是基本的 Web 语义。诚实地使用它们,大部分 SEO 收益都会随之而来。

常见问题

404 对 SEO 有害吗?
单独来看不是。对于不再存在且没有替代项的页面,404 是正确响应。当重要页面、sitemap URL 或内部链接的 URL 意外返回 404 时,它才会成为 SEO 问题。
做 SEO 应该使用 301 还是 302 重定向?
当迁移是永久的,使用 301 或 308。当迁移是临时的,使用 302 或 307。搜索引擎可以解释长期存在的临时重定向,但依赖这种解释不如发送正确信号来得明确。
5xx 错误会影响排名吗?
短暂的 5xx 错误通常不是灾难。持续的服务器错误可能降低抓取频率、延迟索引;如果搜索引擎长期无法访问页面,还可能导致页面被临时移除。
什么是软 404?
软 404 指的是某个 URL 返回 200 OK,但内容看起来像缺失、为空或无用的页面。即使服务器表示请求成功,搜索引擎也可能像处理 404 一样处理它。
已删除页面应该重定向到首页吗?
通常不应该。只有在确实存在高度相关的替代页面时,才重定向已删除页面。如果没有有用的等价页面,请返回 404 或 410,并为用户提供有帮助的错误页面。

来源与进一步阅读

  1. Google Search Central: HTTP status codes and network errors
  2. MDN Web Docs: HTTP response status codes
  3. RFC 9110: HTTP Semantics
  4. Google Search Central: Redirects and Google Search
关于作者
The Wux Webtools Team

最后更新:

继续阅读