蜘蛛池知识

蜘蛛池入口頁的 robots 指令:meta robots 與 X-Robots-Tag 的常见誤用

meta robots 和 X-Robots-Tag 是蜘蛛池入口頁最容易被忽略的两處指令。本文說明两者的区別與優先級,梳理模板預設 noindex、CDN 注入响應头、誤加 nofollow 等常见誤用,並给出批量入口頁的抽查方法,帮助减少上线後的無效抓取。

蜘蛛池知识

蜘蛛池入口頁的 robots 指令:meta robots 與 X-Robots-Tag 的常见誤用

蜘蛛池入口頁大多是批量生成、模板化上线的,模板里一旦带了 robots 相關指令,就可能被複製到成百上千個頁面上。meta robots 和 X-Robots-Tag 正是最容易被忽略的两個位置:它們不直接决定抓取速度,却直接影响蜘蛛抓完之後愿不愿意留下這個頁面。

一、meta robots 與 X-Robots-Tag 的区別

两者表達的是同一件事——告诉蜘蛛這個頁面能不能被索引、能不能被跟踪連結、能不能展示摘要。区別在于承载位置。

  • meta robots:寫在 HTML 的 head 里,蜘蛛需要抓取並解析 HTML 之後才能讀到,只對 HTML 頁面有效。
  • X-Robots-Tag:寫在 HTTP 响應头里,蜘蛛在握手阶段就能拿到,對 PDF、图片、JS、视频等非 HTML 资源同样适用。

两者同时存在时,一般以响應头里的 X-Robots-Tag 為准,因為它在更早的阶段被讀取,也更难被頁面模板覆盖。做批量排查时,两處都要看。

二、入口頁常见的几種誤用

1. 模板預設带 noindex

不少建站程序、CMS 主题或測試环境配置會預設輸出 noindex,用来防止測試頁被收錄。如果入口頁模板直接沿用了這套代碼,批量上线之後所有頁面都會带着 noindex。蜘蛛照样會来抓,但通常不會保留结果,等于白抓一趟。

2. 反代、CDN 或對象存储注入响應头

有的 CDN、WAF 或者静態托管平台會在响應头里统一加 X-Robots-Tag,常见于預設禁用索引的配置。頁面上看不到任何異常,只有查响應头才能發現。

3. 誤加 nofollow

為了防止出站連結被利用,有人在整頁加了 nofollow,结果连站内互鏈也被一起屏蔽。入口頁之間的互鏈是蜘蛛發現新地址的重要路径,一刀切加 nofollow 會削弱這部分作用。

4. 把 robots.txt 和 meta robots 混為一谈

robots.txt 里的 Disallow 只是阻止蜘蛛抓取,已经收錄的頁面不會因此消失;而 noindex 需要蜘蛛能抓到頁面才能讀到。两者用途不同,用 robots.txt 去“清理”已收錄内容往往達不到预期。

三、入口頁的检查方法

  1. curl -I 或浏览器開發者工具的網絡面板查看响應头,確認有没有意料之外的 X-Robots-Tag。
  2. 查看頁面源碼的 head 部分,確認 meta robots 的取值是否符合预期。
  3. 從批量生成的模板里抽查若干條 URL,而不是只看首頁或者自己打開的那一條。
  4. 检查服務器、CDN、反向代理、對象存储的預設配置,看是不是在统一注入指令。
  5. 修改之後重新抽样驗證,確認指令已经去掉,而不是只在後台点了儲存。

四、批量维護时的几点建议

  • 把 robots 指令放在统一模板里控制,避免單頁手寫,减少遗漏和冲突。
  • 真正需要 noindex 的只有測試頁、内部頁之類的少數场景,不要為了方便批量加上。
  • 指令調整後不會立刻生效,蜘蛛需要重新抓取才能讀到新狀態,中間存在時間差。
  • 把响應头和 HTML 两面都纳入上线检查清單,和狀態碼、canonical 一起看。
robots 指令表達的是“我希望你怎么處理這個頁面”,它不是收錄開關,也不保證一定按预期执行。真正决定頁面價值的,還是内容本身和抓取路径是否顺畅。

對批量运营的入口頁来说,比較省事的做法是:模板里預設不放任何限制性指令,需要时再單獨加;上线後定期抽查响應头,把誤伤尽量消灭在早期。