蜘蛛池入口頁的作用,是让搜尋引擎蜘蛛有可抓取的入口,並顺着頁面里的連結繼續發現 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:允许跟随連結但不收錄本頁。某些跳轉型入口頁會這么用,需要明确目的之後再决定。
入口頁常见的誤配置
- 建站模板或 CMS 插件預設给所有頁面加了 noindex,只在首頁或少數模板里放行,入口頁被整体覆盖。
- 從測試环境複製頁面到正式环境时,把 meta name="robots" content="noindex" 一起带了過来。
- 同一個頁面里存在多個 meta robots 标簽且内容冲突,最终按哪條生效並不總是符合预期。
- 服務器或 CDN 层统一追加了 X-Robots-Tag: noindex,模板里改多少次 meta 也不起作用。
- 安全插件把 X-Robots-Tag 当作防爬手段,對所有响應统一下發 noindex。
- 拼寫或大小寫問题,例如寫成 NOINDEX、no-index、nofollows,可能被忽略或产生歧义。
排查顺序
- 用 curl -I 查看响應头里有没有 X-Robots-Tag。
- 查看未执行 JS 的原始 HTML,確認 meta robots 的數量與内容。
- 確認反向代理、CDN、WAF 是否改寫或追加了响應头。
- 在搜尋引擎提供的 URL 检查工具里看解析出的指令,與源碼逐條對照。
- 修正後重新抓取,再观察訪問日誌與索引狀態的變化。
使用建议
入口頁的指令越简單越好。多數情况下保持預設的可抓取、可跟随即可;只有在“頁面本身不需要被收錄、但需要传递抓取路径”时,才考虑 noindex, follow,並且要清楚它並不等于頁面一定不會被索引。反過来,确實不希望被收錄的頁面,用 noindex 把態度寫明确,比留着預設值更省心。
把 meta robots 当成一次性的配置,而不是一次性的調试。改動模板、切換主题、上线新插件之後,都值得重新確認一遍入口頁的指令。
X-Robots-Tag 與 meta robots 出現冲突时,通常以更嚴格的一條為准,但不同引擎、不同版本的處理细节會有差异。與其去赌哪條生效,不如让两處保持一致,並在每次改動後回到响應头和原始 HTML 里复核一次。