站点运营

站点运营:HTTP 响应头自查,别让看不见的头部信息影响抓取

页面上的标题和内链容易检查,服务器返回的响应头却常被忽略。Content-Type 字符集、X-Robots-Tag、缓存与重定向字段,任意一项配错都可能影响浏览器渲染和搜索引擎抓取。本文整理一份可落地的响应头自查清单,适合上线和换 CDN 后复查。

站点运营

站点运营:HTTP 响应头自查,别让看不见的头部信息影响抓取

做站点运营时,大家习惯盯着页面上的标题、正文和内链,却很少打开浏览器开发者工具里的 Network 面板。服务器返回的响应头虽然不直接显示给访客,但它会告诉浏览器和搜索引擎这个页面是什么类型、能不能索引、要不要缓存。几个字段配错,可能让整站抓取出问题。

一、Content-Type 与字符集

响应头里的 Content-Type 应该同时声明 MIME 类型和字符集,例如 text/html 加上 charset=utf-8。如果只写 text/html 而页面实际使用 UTF-8,浏览器可能靠猜测来解码,出现乱码;搜索引擎解析时也可能出现标题、摘要截断或乱码。

另一个常见问题,是把 HTML 页面返回成 application/octet-stream 或 text/plain,导致浏览器直接下载文件或显示源码,访问体验和抓取都会受影响。

  • 页面里的 charset 声明是否与响应头一致,不要一个说 UTF-8、一个说 GBK。
  • 模板是否混用了不同编码,特别是老站点迁移过来的栏目。
  • 图片、附件、PDF 的 MIME 类型是否正确,不要全部塞成 text/html。

二、X-Robots-Tag:藏在头部里的 noindex

X-Robots-Tag 可以在响应头里控制索引和抓取,作用类似页面里的 meta robots,但优先级很高,而且不一定能在页面上看到。最常见的误配是:测试环境加了 noindex,上线时只删了页面里的 meta,忘了删响应头;或者 CDN、反向代理统一加了一条 noindex,结果整站被挡。

反过来,有些站点想屏蔽后台或附件目录,却把 noindex 加在了全站响应头里,核心内容也跟着一起被忽略。

  • 确认 noindex、nofollow、noarchive 的作用范围是单页、目录还是全站。
  • 检查源站、CDN、WAF 是否各自加过一组头,最终响应里可能叠加。
  • 用 curl -I 查看最终响应,而不是只看源站配置。

三、缓存与重定向相关头

Cache-Control、Expires、ETag、Last-Modified 决定浏览器和 CDN 怎么缓存页面。设置过长的强缓存,会让改版后的新内容迟迟不生效;设置过短,又会让每次访问都回源,增加服务器压力。

重定向相关头里的 Location 要和状态码配合:301 表示永久搬家,302、307 表示临时跳转。如果实际是永久换地址却返回了 302,搜索引擎可能继续保留旧地址,把抓取次数花在跳转上。

四、自查步骤

  1. 用 curl -I 或开发者工具查看目标页面的最终响应头,确认状态码是 200。
  2. 检查 Content-Type 是否包含正确的 charset。
  3. 搜索 X-Robots-Tag,确认没有意外的 noindex、nofollow、noarchive。
  4. 看 Cache-Control 的 max-age、s-maxage,判断新内容多久能被访客和蜘蛛看到。
  5. 对首页、栏目页、详情页、附件、后台各抽一个样本,不要只看首页。
  6. 把响应头配置记录在运营文档里,改模板、换 CDN 后复查一次。

五、几个容易踩的坑

  • 只改页面里的 meta robots,忽略服务器或 CDN 加的头。
  • 把 404 页面配成 200,或者把正常页面配成 404,可以用状态码快速确认。
  • HSTS、CSP 等安全头配置过严,导致部分资源加载失败,影响页面渲染。
  • 多个中间层各自加了一组头,最终响应里出现重复字段。
响应头不是给访客看的,但会直接影响浏览器和搜索引擎怎么理解你的页面。定期抽查,比出问题后再翻配置更省事。

站点运营里的很多问题,最后都能落到配置和页面是否一致上。响应头自查不需要高深工具,一条 curl 命令加一张记录表就够。把它放进上线检查清单,能减少很多看不见的麻烦。