常见問题

入口頁响應头里的 X-Robots-Tag:noindex 和 nofollow 對搜尋蜘蛛的作用一样吗?

入口頁用 X-Robots-Tag 控制收錄與連結跟随时,noindex 和 nofollow 的效果完全不同。本文說明响應头指令與 meta robots 的区別、两者對目标 URL 發現路径的實际影响,以及如何用 curl 和服務器日誌核對搜尋蜘蛛真正收到的响應头,避免入口頁白建。

常见問题

入口頁响應头里的 X-Robots-Tag:noindex 和 nofollow 對搜尋蜘蛛的作用一样吗?

蜘蛛池入口頁常见的一種做法是:頁面本身可以正常訪問,但不希望入口頁自己被收錄,于是在 Nginx、Apache 或 CDN 上加了一行 X-Robots-Tag。問题随之而来——加了之後,搜尋蜘蛛還會不會繼續跟進頁面里的目标連結?答案取决于你寫的是 noindex 還是 nofollow,這两者對連結跟進的影响完全不同。

X-Robots-Tag 和 meta robots 的区別在哪

meta robots 寫在 HTML 的 head 里,只有搜尋蜘蛛成功下载並解析 HTML 之後才可能生效;X-Robots-Tag 寫在 HTTP 响應头里,爬虫在讀响應头阶段就能拿到指令。

  • 作用范围更广:图片、PDF、视频等非 HTML 资源用不了 meta 标簽,只能靠响應头传递指令。
  • 不依赖頁面解析:即使 HTML 下载到一半中断,响應头里的指令依然會被讀到。
  • 容易和 meta 冲突:同一份指令寫在两處时,以搜尋引擎實际實現的規則為准,建议只保留一處,避免自己都记不清寫過什么。

noindex 和 nofollow 對目标連結的影响

這是入口頁运营里最容易混淆的一点:

  • X-Robots-Tag: noindex —— 只是告诉搜尋引擎不要把入口頁本身放進索引。頁面通常仍可被抓取,頁面里的連結一般也仍會被發現和跟進。對蜘蛛池入口頁来说,這往往是想要的效果:藏住入口頁,放過目标 URL。
  • X-Robots-Tag: nofollow —— 表示不要跟随頁面上的連結。這會直接掐断從入口頁到目标 URL 的發現路径,等于白建一個入口頁。
  • 两者叠加在同一個响應头里时,入口頁既不收錄、連結也不被跟,基本只剩“存在過”的意义。
nofollow 在主流搜尋引擎里多為提示性质而非硬性禁止,但把它当成可靠開關来用並不划算——你無法确定對方是否采纳。想让連結被跟,就別在入口頁上加 nofollow。

入口頁設定时的几個實操点

  1. 想隐藏入口頁本身,優先考虑 noindex,而不是用 robots.txt 整段屏蔽。被 robots.txt 挡住的 URL,搜尋蜘蛛不會去讀取内容,自然也看不到里面的連結。
  2. 不要顺手加上 noarchive、nosnippet 之後又忘了,指令越堆越容易互相打架,排查成本也越高。
  3. 语法上指令名不区分大小寫,但值要寫對,多個指令之間用英文逗号分隔,例如 noindex, nofollow。
  4. 如果站点同时存在 meta 和响應头两套指令,先清理到只剩一處,再做測試,別在叠加狀態下判断效果。

怎么確認搜尋蜘蛛實际收到的响應头

不能只看服務器配置文件,因為 CDN、反向代理、缓存层都可能改寫或补充响應头。

  • 用 curl -I 直接請求入口頁 URL,看返回头里有没有 X-Robots-Tag,值具体是什么。
  • 換一個常见的搜尋蜘蛛 UA 再請求一次,部分站点會按 UA 返回不同内容,两者需要對比。
  • 清一次 CDN 缓存再测,避免测到的其實是舊响應头。
  • 结合服務器日誌核對蜘蛛 UA 與真實抓取记錄,判断指令是否真的被讀到。

常见誤区

有人以為加了 noindex 就等于入口頁對搜尋蜘蛛隐身,其實入口頁仍可能被抓取,只是不進索引;也有人以為响應头里的指令一定比 meta 優先,實际以搜尋引擎文档和實测结果為准。對蜘蛛池运营来说,判断标准只有一個:目标 URL 有没有被稳定發現和抓取,而不是入口頁有没有被收錄。指令配置完成後,观察几天日誌里的抓取记錄,通常比反复纠结标簽寫法更有意义。