做蜘蛛池时,很多人把精力放在入口頁數量、外鏈和發布节奏上,却忽略了 robots.txt 和 noindex 這類基础配置。這两項一旦寫错,蜘蛛可能根本走不到入口頁,或者走到了却不跟随連結,前面的工作等于白做。
先分清抓取和索引是两件事
搜尋引擎處理一個 URL 分两步:先抓取頁面内容,再决定是否收錄進索引。robots.txt 里的 Disallow 作用在第一步,它會阻止蜘蛛抓取该路径;meta robots 的 noindex 作用在第二步,頁面可以被抓取,只是不進索引。
理解這点很關键:入口頁如果被 Disallow,蜘蛛连頁面都不抓,頁面上的連結自然也不會被跟随;如果只是 noindex,蜘蛛仍然可以抓取,也能沿着連結繼續走。
入口頁本身该怎么配置
大多數情况下,入口頁需要被蜘蛛抓取,才能把目标站的連結带出去。因此建议:
- robots.txt 中對入口頁所在目錄保持放行,不要随手加 Disallow;
- 如果不想让入口頁出現在搜尋结果里,用 noindex 而不是 Disallow;
- 不要對同一個路径同时寫 Disallow 和 noindex,因為被挡住後蜘蛛看不到 noindex,頁面可能以其他方式進入索引;
- 入口頁的 CSS、JS、图片路径也要放行,否則渲染可能異常,影响蜘蛛對頁面的判断。
哪些路径應该挡掉
入口頁放行的同时,有些路径确實没必要让蜘蛛浪費抓取額度:
- 後台、管理目錄、測試环境;
- 带大量參數的重复頁面,比如篩選、排序、會话 ID;
- 無意义的翻頁或日歷归档;
- 大体积的下载文件和冗余图片目錄。
寫規則时慎用通配符。像 Disallow: /*? 這類寫法容易把带參數的入口頁一起挡住,改完最好用抓取測試工具驗證几條真實 URL。
指向目标站的連結要不要加 nofollow
入口頁存在的意义就是让蜘蛛沿着連結去目标站。如果给這些連結加上 nofollow,蜘蛛不會跟随,入口頁就變成了一個没有出口的頁面。所以除非有特殊考虑,一般不加 nofollow。
确實需要加的情况也有,比如連結带有付費或交換性质,或者目标站暂时不想被關联。但要清楚,加了 nofollow 就要接受蜘蛛不去目标站的结果,不能既想屏蔽又想被發現。
入口頁上的連結,加不加 nofollow 是策略問题;但一旦加了,就要重新评估這個入口頁還有没有繼續维護的價值。
meta 和 X-Robots-Tag 用哪個
普通 HTML 頁面用 meta robots 就够了。如果是 PDF、图片、视频等非 HTML 文件,没法寫 meta,就要用 HTTP 响應头里的 X-Robots-Tag。两者同时存在时,以更嚴格的那個為准,配置时注意別互相打架。
改完之後怎么观察
改 robots.txt 或 noindex 之後,不要立刻下结论。建议:
- 在服務器日誌里對照改動前後的蜘蛛抓取量,看入口頁是否還在被抓;
- 抽查几條入口頁 URL,確認返回狀態碼正常、連結可跟随;
- 如果抓取量明顯下滑,先排查是不是規則誤伤了入口頁目錄;
- robots.txt 尽量一次改到位,避免频繁来回切換。
几個常见的坑
- 模板复用时把測試站的 Disallow 規則一起带到正式站;
- 只屏蔽了入口頁,却忘了屏蔽同目錄下的重复頁面;
- 認為 noindex 的頁面還能传递權重,實际上 noindex 主要影响索引,不承担這個作用;
- 多個域名共用一份 robots.txt,路径结构却不一致。
總的来说,robots.txt 和 noindex 的配置原則是:先保證入口頁可被抓取,再逐步收窄不该被抓的部分。規模越大,越要用统一的規則模板和定期巡检来兜底,避免某次改動悄悄切断了整批入口頁的抓取路径。