搜尋抓取

meta robots 與 X-Robots-Tag:頁面級指令在抓取环节管什么

robots.txt 管站点、nofollow 管連結,頁面級指令則决定蜘蛛抓到内容後怎么處理。本文说清 meta robots 與 X-Robots-Tag 的差异、noindex 與 nofollow 的区別,以及它們與 robots.txt、canonical 配合时容易踩的坑,並给出一份上线前可逐條核對的自查清單。

搜尋抓取

meta robots 與 X-Robots-Tag:頁面級指令在抓取环节管什么

站点的抓取控制通常分三层:robots.txt 管站点級,nofollow 管連結級,還有一层常被忽略——頁面級指令,也就是 HTML 里的 meta robots 标簽和 HTTP 响應头里的 X-Robots-Tag。它們不决定蜘蛛能不能来,而是决定蜘蛛看到内容之後怎么處理。

頁面級指令可以寫在哪里

  • HTML 的 meta 标簽:寫在 head 区域,格式是 meta name 為 robots、content 里放具体指令,只對 HTML 頁面生效。
  • HTTP 响應头的 X-Robots-Tag:對任何類型的内容都有效,包括 PDF、图片、脚本文件,這是它比 meta 标簽更實用的地方。
  • 针對單個爬虫的寫法:把 robots 換成具体的爬虫名稱,只有该爬虫遵守,其他爬虫仍按預設規則處理。

noindex 和 nofollow 是两件事

noindex 的意思是“可以抓,但別進索引”;nofollow 的意思是“頁面可以看,但頁面里的連結不要顺着走”。很多人把 noindex 当成屏蔽手段用,结果是頁面被反复抓取,只是不出現在搜尋结果里,抓取资源照样消耗。

真正想阻止抓取,只能靠 robots.txt 或服務器层面拦截。但這里有個经典矛盾:被 robots.txt 屏蔽的 URL,蜘蛛讀不到頁面上的 noindex,于是這個地址仍可能以缺少描述的形式挂在索引里。想让它彻底登出,通常要先放開抓取、让蜘蛛讀到 noindex,確認生效後再考虑屏蔽。

X-Robots-Tag 的几個實用场景

  • 批量控制非 HTML 文件:一批對外 PDF 不想被索引,改响應头比逐個改文件省事得多。
  • 临时頁面或測試环境:對整段路径统一下發指令,比逐個頁面加标簽可靠。
  • 需要统一口径的精细指令:noarchive、max-snippet 這類設定寫在响應头里更容易保持一致。

與 canonical、robots.txt 怎么配合

canonical 表達的是“哪個地址是正主”,頁面級指令表達的是“這個頁面要不要出現在结果里”,两者不冲突,但必须方向一致。常见错誤是:A 頁 canonical 指向 B 頁,同时又给自己加 noindex,蜘蛛讀到两套相反的信号,只能靠猜来處理。

頁面級指令只影响處理方式,不影响抓取本身。把“不抓”和“不要索引”混為一谈,是抓取资源被白白消耗的常见原因。

上线前的自查清單

  1. 確認指令寫在 head 里或响應头里,位置正确、拼寫無誤。
  2. 用抓取工具查看蜘蛛實际收到的响應头,而不是只看頁面源碼。
  3. 检查是否同时存在 robots.txt 屏蔽與 noindex,避免两邊互相抵消。
  4. 變更後观察訪問日誌與索引狀態,给蜘蛛留出重新抓取和更新的周期。

頁面級指令是抓取控制里最细的一层。用對了能省下不少抓取资源,用错了則可能让頁面既抓不到、也進不了索引。把它和 robots.txt、内鏈结构、Sitemap 放在一起整体看,抓取路径才會清晰。