网站 / SEO · HTTP / 网络

HTTP Headers 大全

SEO 视角:X-Robots-Tag/canonical/Cache-Control

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 57 次使用
单击卡片 展开详情 详情内 复制头名 / 示例值 SEO 对收录排名有影响 · SEC 安全相关 共内置 0 个 HTTP 头
第一节

关于本工具

About

部署新页面,发现搜索引擎抓取行为异常——排查半天,往往是X-Robots-Tag或Canonical标签写错。这个工具让你粘贴HTTP响应头,立即解析出robots指令、权威链接和缓存策略,一眼看出哪条指令冲突、哪条被覆盖。所有解析在浏览器本地完成,响应头内容不会上传服务器。

使用场景

屏蔽测试站被收录

SEO 专员小张把新功能部署到 staging.xxx.com 做验收,两周后 Google 搜到测试页并展示在搜索结果中。他用本工具在测试环境响应头添加 X-Robots-Tag: noindex,再用 curl 验证返回头确认生效。工具实时显示解析后的指令状态,避免因中间件覆盖导致指令失效,确保测试站彻底从索引中消失。

电商大促缓存调优

双十一凌晨,运营总监发现商品详情页加载超过 3 秒,用户流失率飙升。技术排查发现 CDN 缓存策略过时。运维用本工具检测当前页面的 Cache-Control 头,看到 max-age=0 和 must-revalidate,确认是缓存被禁用。他根据工具输出的建议模板,将静态资源改为 max-age=86400 并启用 stale-while-revalidate,页面加载降到 0.8 秒,转化率回升。

内容聚合站去重

内容团队从三个来源采集同一条新闻,导致搜索引擎显示三条相似结果。编辑用本工具检查各页面返回的 canonical 标签,发现其中两条指向不同 URL。她根据工具提示,统一将 canonical 指向主站原文链接,并验证响应头中 X-Robots-Tag 未设置 noindex。一周后搜索结果显示合并,点击率提升 40%。

CDN 配置验证

前端工程师在 Cloudflare 上为图片资源设置了 Cache-Control: public, max-age=31536000,但用户反馈图片更新后仍显示旧版本。他用本工具直接请求图片 URL,看到响应头中实际返回的是 s-maxage=0,说明 CDN 规则被覆盖。工具高亮显示冲突的指令,他据此修正了 Page Rule 优先级,图片在 10 分钟内完成刷新。

多语言站 hreflang 排查

国际站运营发现英文版页面在法国 Google 上排名下降。她用本工具检查 /en/ 页面的响应头,发现缺少 Link 头中 hreflang 声明,但 HTML 内嵌了 <link> 标签。工具提示:部分爬虫优先读取 HTTP 头而非 HTML。她根据工具建议,在服务器配置中补充了 Link: <https://example.com/fr/>; rel="alternate"; hreflang="fr",一周后法国流量恢复。

第二节

使用指南

Getting Started

使用步骤

  1. 1在输入框粘贴或键入完整 URL(含协议头),点击「检测」按钮,页面立即返回该 URL 的响应头列表
  2. 2在结果区找到 X-Robots-Tag 行,查看其值(如 noindex, nofollow),确认搜索引擎对该页的索引与抓取指令
  3. 3找到 Link 或 rel=canonical 行,核对 canonical URL 是否与当前页面一致,避免重复内容分散权重
  4. 4找到 Cache-Control 行,检查 max-age 值(秒数)或 no-cache/no-store 标记,判断缓存策略是否符合预期
  5. 5点击结果区任意响应头行右侧的「复制」图标,将该行键值对复制到剪贴板,用于配置或记录

输入输出示例

输入输出说明
https://example.com/page1X-Robots-Tag: noindex, nofollow Link: <https://example.com/page1>; rel="canonical" Cache-Control: public, max-age=3600常规:典型 SEO 页面,同时返回 X-Robots-Tag 和 canonical,验证工具是否同时解析多个 header
https://example.com/amp-versionLink: <https://example.com/canonical-url>; rel="canonical" Cache-Control: private, no-cache常规:AMP 页面常见 canonical 指向原始 URL,验证工具正确提取 rel 参数值
https://example.com/no-headers(无任何 HTTP header 返回)边界:目标 URL 不返回任何自定义 header,验证工具对空响应的处理(不报错、不输出假数据)
https://example.com/redirect-loopHTTP/1.1 302 Found Location: https://example.com/redirect-loop Cache-Control: no-store边界:重定向循环,验证工具是否检测到循环并终止请求,只返回首次响应 header
https://example.com/very-long-url?query=123&utm_source=test&utm_medium=test&utm_campaign=test&utm_content=test&utm_term=testX-Robots-Tag: all Cache-Control: public, max-age=86400边界:超长 URL(含大量 query 参数),验证工具是否截断或报错
https://example.com/blocked-by-robots(请求超时 / 403 Forbidden)易错:被 robots.txt 或 IP 限制的 URL,验证工具是否明确提示被拒绝而非返回空结果
https://example.com/page-with-multiple-x-robotsX-Robots-Tag: noindex X-Robots-Tag: nofollow易错:多个 X-Robots-Tag 行(每个只含一个指令),验证工具是否合并解析而非只取最后一行

常见错误对照

1.X-Robots-Tag 值与 meta robots 混用,语法不兼容

✗ 错误X-Robots-Tag: noindex, follow, max-snippet:50
✓ 修复X-Robots-Tag: noindex, follow

X-Robots-Tag 不支持 max-snippet 等部分指令,这些是 meta robots 的扩展。HTTP 头只识别 noindex / nofollow / none / all / index / follow 等基础值。

2.canonical 写相对路径,导致搜索引擎解析错误

✗ 错误Link: <page?id=123>; rel="canonical"
✓ 修复Link: <https://www.example.com/page/123>; rel="canonical"

RFC 8288 要求 canonical 必须是绝对 URI。相对路径会被搜索引擎基于当前请求 URL 拼接,可能拼出非预期地址。

3.Cache-Control 同时写 max-age 和 s-maxage 但顺序颠倒

✗ 错误Cache-Control: s-maxage=3600, max-age=0
✓ 修复Cache-Control: max-age=0, s-maxage=3600

HTTP 规范未规定顺序,但常见 CDN 解析时先读到的值可能覆盖后者。更安全的写法是只写一个控制公共缓存的指令,避免歧义。

4.X-Robots-Tag 用逗号分隔多个值,却误写成空格

✗ 错误X-Robots-Tag: noindex nofollow
✓ 修复X-Robots-Tag: noindex, nofollow

HTTP 头字段值用逗号分隔,空格是无效分隔符。搜索引擎会忽略整个头,导致爬虫按默认行为索引。

5.canonical 指向自身但 URL 带无关参数

✗ 错误Link: <https://example.com/page?utm_source=google>; rel="canonical"
✓ 修复Link: <https://example.com/page>; rel="canonical"

canonical 应指向最干净的标准 URL。带跟踪参数的 canonical 会让搜索引擎把参数版本视为标准,分散权重。

6.Cache-Control 只写 public 或 private,漏掉 max-age

✗ 错误Cache-Control: public
✓ 修复Cache-Control: public, max-age=86400

public 只声明允许缓存,不指定过期时间。浏览器/CDN 会使用启发式缓存(如 Last-Modified 差值),导致缓存时长不可控。

7.X-Robots-Tag 对非 HTML 资源(如 PDF)用错指令

✗ 错误X-Robots-Tag: noimageindex
✓ 修复X-Robots-Tag: noindex

noimageindex 只对图片有效。对 PDF 等非 HTML 资源,搜索引擎只识别 noindex / nofollow。使用不适用指令等于无效。

第三节

工作原理

How It Works

核心公式

Cache-Control: max-age = 当前时间戳(秒) - 资源最后修改时间戳(秒)

变量说明

  • max-age资源可缓存的最大秒数
  • 当前时间戳请求发起时的 Unix 时间戳(秒)
  • 资源最后修改时间戳服务器 Last-Modified 对应的 Unix 时间戳(秒)

示例

某页面 Last-Modified 为 2025-03-01 12:00:00 UTC(对应时间戳 1740825600),用户在 2025-03-10 12:00:00 UTC(时间戳 1741593600)请求。max-age = 1741593600 - 1740825600 = 768000 秒(约 8.9 天)。工具据此判断该资源在 768000 秒内可直接使用本地缓存,无需重新请求服务器。

粘贴 HTTP 头文本解析头字段(X-Robots-Tag / canonical / Cache-Control)分类展示(SEO 影响 / 缓存策略)复制关键判断• 是否含 X-Robots-Tag → 影响搜索引擎抓取与索引行为• 是否含 canonical → 指定权威页面,避免重复内容• 是否含 Cache-Control → 控制浏览器与 CDN 缓存策略
用户输入 本地解析 分类展示 复制结果
第五节

常见问题

Q & A
我用这个工具查到的 X-Robots-Tag 和 robots.txt 里的规则到底听谁的?

两者都生效,但优先级要看具体指令。robots.txt 控制爬虫是否能抓取(Disallow/Allow),而 X-Robots-Tag 控制抓取后如何索引(noindex/nofollow)及展示(nosnippet)。如果 robots.txt 禁止了抓取,爬虫根本看不到页面,X-Robots-Tag 也就不会被读取。反过来,如果允许抓取但 X-Robots-Tag 写了 noindex,页面会出现在索引但被标记为不收录。本工具会同时检查并标出冲突情况,比如 robots.txt 允许但返回了 noindex,会提示你检查是否合理。

为什么我设置了 canonical 标签,百度还是收录了别的网址?

Canonical 标签对搜索引擎是强烈建议而非强制命令,百度尤其有自己的判断逻辑。常见原因包括:1)canonical 指向的 URL 返回了 4xx/5xx 状态码,百度会忽略该提示;2)页面内部存在大量指向非 canonical 版本的内链或 sitemap 提交了不同 URL;3)网站有多个不同语言的 canonical 混用。本工具在检测 canonical 时会同时检查目标 URL 的响应状态码,如果目标不可达会在结果中标注“目标可能无效”。建议同时使用 301 重定向配合 canonical,效果更确定。

Cache-Control 设了 max-age=3600,但浏览器每次刷新还是重新请求,怎么回事?

浏览器地址栏回车、F5 刷新、Ctrl+F5 强刷、开发者工具勾选 Disable cache,这四种行为对缓存的处理完全不同。max-age=3600 只在“普通导航”(地址栏回车、链接点击)和“前进/后退”时生效。F5 刷新会带 Cache-Control: max-age=0 请求头强制验证,即使未过期也会发请求问服务器资源是否变化(配合 ETag/Last-Modified 返回 304 则不走正文)。Ctrl+F5 则直接忽略所有缓存。本工具会解析你当前请求头中的 Cache-Control 字段,并对比响应头,帮你判断是服务端没配好还是浏览器行为导致的“假刷新”。

我网站用了 CDN,这个工具测出来的 Headers 是源站还是 CDN 节点的?

取决于你输入的 URL 是否经过 CDN 解析。本工具完全在浏览器端(FE 实现)发起 fetch 请求,请求会经过你当前的网络路径——如果域名 CNAME 到了 CDN,那么拿到的就是 CDN 边缘节点返回的响应头。CDN 通常会添加或改写部分头(如 Age、X-Cache、Via),也可能抹掉源站的一些自定义头。如果你需要查看源站原始响应,建议直接通过源站 IP 或内网地址测试,或者使用 curl 带 -H 'Host: yourdomain.com' 绕过 CDN。本工具在结果区会列出所有响应头,你可以根据 X-Cache: HIT/MISS 或 CF-Cache-Status 等字段判断是否经过了 CDN。

用这个工具测试自己的网站,结果里有个 Set-Cookie 头,这正常吗?

正常,Set-Cookie 本身就是响应头的一种,本工具会原样显示。但需要注意两点:1)如果 Set-Cookie 带有 SameSite=None 且未设置 Secure 属性,现代浏览器会拒绝该 cookie,这在结果中会被标记为“不安全”;2)某些路径或子域名下的 cookie 可能通过 Domain 属性泄漏到非预期范围。本工具不会存储或发送任何 cookie(FE 实现,请求由浏览器发出但结果仅展示在页面),你看到的 Set-Cookie 只是服务器返回的原始值,不会影响你的浏览器状态。如果你发现敏感 cookie 暴露在响应头中,建议检查服务器配置是否合理。

为什么我查某些网站(比如 baidu.com)的 Headers 时,结果里没有 Content-Encoding?

不是所有响应都会被压缩。Content-Encoding 的出现取决于两个条件:1)请求头里带了 Accept-Encoding(浏览器默认会带 gzip, deflate, br);2)服务器选择对特定资源类型启用压缩。如果返回的是很小的 HTML(比如几 KB),或者服务器配置了只压缩 CSS/JS 而不压缩 HTML,就可能没有 Content-Encoding。另外,本工具是浏览器发起的 fetch,浏览器会自动处理压缩,你看到的响应体是解压后的,但原始响应头中 Content-Encoding 仍然会保留显示。如果完全没出现该头,说明服务器本次响应未启用压缩,可以考虑优化。

我输入了一个带中文的 URL,工具提示“请求失败”,但网址在浏览器里能打开,为什么?

浏览器地址栏会自动对中文进行 Percent-Encoding 编码(比如“首页”变成 %E9%A6%96%E9%A1%B5),而本工具直接使用你输入的字符串发起 fetch。如果未编码的中文字符出现在 URL 路径中,浏览器会拒绝该请求并报错。解决方法:在输入框中粘贴已经编码好的 URL(可以从浏览器地址栏复制完整链接),或者手动将中文部分替换为 % 编码。本工具后续版本会加入自动编码逻辑,目前建议直接复制浏览器地址栏的完整链接。另外注意,有些服务器只接受特定编码格式,编码后路径长度也可能变化,但不会影响功能。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭