蜘蛛池知识

蜘蛛池入口頁的 meta robots 指令:noindex、nofollow 與誤配置排查

入口頁能被抓取,不等于連結會被跟随。meta robots 與 X-Robots-Tag 决定頁面被抓到之後如何處理,一旦被模板、插件或 CDN 誤下發 noindex、nofollow,入口頁可能照常出現在訪問日誌里,却起不到發現 URL 的作用。本文梳理常见指令含义、誤配置场景與排查顺序。

蜘蛛池知识

蜘蛛池入口頁的 meta robots 指令:noindex、nofollow 與誤配置排查

蜘蛛池入口頁的作用,是让搜尋引擎蜘蛛有可抓取的入口,並顺着頁面里的連結繼續發現 URL。但頁面能不能被抓、抓到之後連結會不會被跟随,不只取决于 robots.txt,還取决于頁面級的 meta robots 指令,以及 HTTP 响應头里的 X-Robots-Tag。這两處一旦寫错,入口頁可能在訪問日誌里被正常請求,却起不到應有的作用。

三個层級的分工

robots.txt 管的是“抓不抓”,meta robots 和 X-Robots-Tag 管的是“抓到之後怎么處理”。

  • robots.txt 的 Disallow 會让蜘蛛干脆不来請求,頁面通常不會出現在訪問日誌里。
  • meta robots 的 noindex 允许抓取,但要求不要把頁面放進索引。
  • X-Robots-Tag 通過 HTTP 响應头下發同样的指令,常用于非 HTML 资源或無法改模板的场景。

如果入口頁既需要被抓取、又要顺着頁面里的連結繼續爬,那么“可抓取 + 可跟随”是基本要求。

常见指令值

  • index, follow:預設狀態,通常不需要顯式寫。
  • noindex:不要收錄本頁。入口頁若被誤设,等于把入口從索引里摘掉。
  • nofollow:不跟随本頁連結。對以連結發現為核心的入口頁来说,這是破坏性最强的一條。
  • noarchive / nosnippet:影响快照與摘要展示,一般不影响抓取和連結跟随。
  • none:等價于 noindex, nofollow,影响最大。
  • noindex, follow:允许跟随連結但不收錄本頁。某些跳轉型入口頁會這么用,需要明确目的之後再决定。

入口頁常见的誤配置

  1. 建站模板或 CMS 插件預設给所有頁面加了 noindex,只在首頁或少數模板里放行,入口頁被整体覆盖。
  2. 從測試环境複製頁面到正式环境时,把 meta name="robots" content="noindex" 一起带了過来。
  3. 同一個頁面里存在多個 meta robots 标簽且内容冲突,最终按哪條生效並不總是符合预期。
  4. 服務器或 CDN 层统一追加了 X-Robots-Tag: noindex,模板里改多少次 meta 也不起作用。
  5. 安全插件把 X-Robots-Tag 当作防爬手段,對所有响應统一下發 noindex。
  6. 拼寫或大小寫問题,例如寫成 NOINDEX、no-index、nofollows,可能被忽略或产生歧义。

排查顺序

  1. 用 curl -I 查看响應头里有没有 X-Robots-Tag。
  2. 查看未执行 JS 的原始 HTML,確認 meta robots 的數量與内容。
  3. 確認反向代理、CDN、WAF 是否改寫或追加了响應头。
  4. 在搜尋引擎提供的 URL 检查工具里看解析出的指令,與源碼逐條對照。
  5. 修正後重新抓取,再观察訪問日誌與索引狀態的變化。

使用建议

入口頁的指令越简單越好。多數情况下保持預設的可抓取、可跟随即可;只有在“頁面本身不需要被收錄、但需要传递抓取路径”时,才考虑 noindex, follow,並且要清楚它並不等于頁面一定不會被索引。反過来,确實不希望被收錄的頁面,用 noindex 把態度寫明确,比留着預設值更省心。

把 meta robots 当成一次性的配置,而不是一次性的調试。改動模板、切換主题、上线新插件之後,都值得重新確認一遍入口頁的指令。

X-Robots-Tag 與 meta robots 出現冲突时,通常以更嚴格的一條為准,但不同引擎、不同版本的處理细节會有差异。與其去赌哪條生效,不如让两處保持一致,並在每次改動後回到响應头和原始 HTML 里复核一次。