蜘蛛池知识

蜘蛛池入口頁的 robots 與 meta 設定:哪些该放開,哪些该收紧

蜘蛛池里 robots.txt 和 meta robots 常被当成“收錄開關”,其實它們只影响抓取行為與索引指令的传递。本文拆解三层控制方式的差別、入口頁與跳轉层的常见配置组合,以及 Disallow 與 noindex 混用、CDN 缓存舊規則等容易踩的坑,並给出一套按日誌驗證的排查顺序。

蜘蛛池知识

蜘蛛池入口頁的 robots 與 meta 設定:哪些该放開,哪些该收紧

在蜘蛛池里,robots.txt 和 meta robots 经常被当成“收錄開關”来用,實际上它們控制的是抓取行為和索引指令的传递,並不承诺任何收錄结果。配置得当,蜘蛛能顺着入口頁走到目标連結;配置不当,要么蜘蛛進不来,要么入口頁被当成無價值頁面跳過。

一、先分清三层控制

  • robots.txt:站点級,按路径和 User-agent 控制“能不能抓”,放在域名根目錄。
  • meta robots:頁面級,寫在 HTML 的 head 里,控制“抓到之後怎么處理”,比如 noindex、nofollow。
  • X-Robots-Tag:HTTP 响應头級,适合非 HTML 资源,也可以在服務器或 CDN 层统一加。

三者不是简單的“谁大谁小”關系:robots.txt 决定蜘蛛是否發起抓取,抓不到頁面,里面的 meta 也就無從讀取。這一点决定了後面很多坑。

二、入口頁该放開還是收紧

入口頁的價值在于被發現、被爬取,所以預設應该是放開抓取。如果入口頁本身就被 Disallow,蜘蛛连頁面都取不到,入口也就失去了意义。真正需要收紧的通常是這几類:

  • 與目标站内容重复、不希望單獨出現在结果里的頁面,可以用 meta noindex,但要让蜘蛛仍然抓得到。
  • 跳轉层或中轉頁,可以用 noindex 配合放開抓取,让蜘蛛走完鏈路但不保留這個頁面。
  • 測試頁、临时頁、已经被大量采集污染的頁面,可以直接關掉抓取或干脆下线。

三、几種常见配置组合

下面這些组合在實际操作中出現频率較高,可以按用途對照:

  • 入口頁要被抓、也要被索引:robots.txt 放開對應路径,頁面不加 noindex。
  • 入口頁要被抓、不要被索引:robots.txt 放開,頁面加 meta noindex,follow,让連結關系繼續传递。
  • 废弃或敏感路径:robots.txt 里 Disallow,同时頁面加 noindex,两者叠加,避免 URL 被以“僅有地址”的形式保留。
  • 非 HTML 资源:用 X-Robots-Tag 控制,而不是硬塞 meta。
只寫 Disallow、不加 noindex,是常见誤解:蜘蛛抓不到頁面内容,自然看不到頁面里的 noindex,反而可能僅凭外鏈把 URL 留在索引中。要做到“不抓也不留”,两條一起用更稳妥。

四、容易踩的几個坑

  • robots.txt 被 CDN 或 WAF 缓存:改了規則,蜘蛛拿到的還是舊版本。排查时用不同 UA 直接請求一次,比對返回内容。
  • meta 靠 JS 注入:如果蜘蛛不执行脚本,這條指令等于不存在,關键指令尽量放在服務端輸出的 HTML 里。
  • 移動端與 PC 端規則不一致:两套模板輸出不同的 meta,容易造成判断混乱,配置时最好统一来源。
  • canonical 指向目标站:入口頁的 canonical 指到目标頁,等于主動声明“這不是正式頁面”,用不用要结合目的想清楚。
  • robots.txt 路径寫错:一條 Disallow: / 就可能把整個池子關掉,改規則前先备份。

五、改完之後的排查顺序

  1. 用命令行或抓取工具,以搜尋引擎 UA 請求 robots.txt,確認返回的是最新規則、狀態碼為 200。
  2. 抽取几個入口頁样例,检查 HTTP 狀態碼、head 里的 meta 和响應头里的 X-Robots-Tag 是否一致。
  3. 對照服務器日誌里的蜘蛛记錄,看目标路径的抓取量在改動後有没有明顯變化。
  4. 查看索引狀態时,注意区分“没抓”和“抓了没留”,两者的處理方向並不相同。

最後提醒一点:這些設定只是抓取與索引指令的传递方式,替代不了内容质量、連結结构和服務器稳定性。建议每次只改一小部分入口,观察一到两周的日誌,再决定是否扩大到整個蜘蛛池。