搭蜘蛛池入口頁时,很多人把精力全花在連結數量和頁面结构上,却忽略了最基础的一层開關:robots.txt。這份文件放在入口頁域名根目錄下,搜尋蜘蛛来抓之前會先讀它,讀到的規則會直接决定哪些路径能抓、哪些不能抓。一旦這里寫错,入口頁里的目标 URL 連結再合理,蜘蛛也没有机會走到。
robots.txt 管的是抓取,不是索引
先把邊界说清楚:robots.txt 里的 Disallow 只是“請不要抓取這個路径”,它是一種约定,不是强制封鎖,前提是蜘蛛能讀到這份規則。被 Disallow 的 URL 依然可能出現在搜尋结果里,比如蜘蛛通過站外連結得知了该 URL 的存在。所以想阻止頁面進索引,靠 robots.txt 是不够的。
反過来,如果入口頁的目的就是让蜘蛛顺着連結去發現新的 URL,那么 robots.txt 必须放行入口頁本身,以及連結指向的路径。
入口頁常见的几種 robots.txt 誤配
- 整站封禁:顶部寫着 Disallow: /,本意可能只是屏蔽後台或測試目錄,结果把整個入口頁一起關掉了。
- 路径寫错:想放行 /in/ 目錄,却寫成 Disallow: /in,漏掉末尾斜杠,前缀匹配的范围變宽,可能连带誤伤同前缀的其他路径。
- Crawl-delay 過大:部分蜘蛛會參考這個字段。设成十几秒的等待,抓取节奏會明顯變慢,連結發現看起来像是根本没生效。
- Sitemap 指令寫错:Sitemap 必须寫完整的绝對地址,且不能放在被 Disallow 的路径下。寫错了蜘蛛讀不到,等于没有提交。
- 分域名搞混:入口頁用獨立域名时,robots.txt 要放在该域名的根目錄,主站的規則不會自動繼承過来。
怎么確認規則没寫坏
- 在浏览器里直接訪問 域名/robots.txt,確認返回正常、内容是纯文本,而不是首頁或 404 頁面。
- 用搜尋引擎官方提供的 robots.txt 測試工具,分別輸入入口頁 URL 和目标 URL,看返回的是“允许”還是“被拦截”。
- 改完規則後观察服務器日誌,看對應搜尋引擎的 IP 或 UA 是否重新出現在入口頁的訪問记錄里。
- 對比修改前後一两周的抓取條數,判断趋势是在回升還是繼續走低。
已经拦住了,怎么恢复
把错誤的規則删掉或改成放行,重新提交一次 sitemap,然後耐心等。抓取节奏的恢复通常不是立刻的:蜘蛛對某個目錄的抓取频率是長期形成的,被压制之後重新提起来需要時間,几天到几周都算正常范围。這段時間里不要频繁改動規則,反复變動反而會让抓取更不稳定。
容易混淆的一点
robots.txt 是抓取開關,noindex 是索引開關。想阻止抓取用前者,想阻止收錄用後者。而给頁面加 noindex 的前提,是蜘蛛能抓到頁面、讀到這個标簽——如果頁面被 robots.txt 封着,noindex 永遠不會生效。
回到蜘蛛池的场景:入口頁的任務是把蜘蛛引到目标 URL,所以 robots.txt 的原則很简單——放行入口頁,放行連結指向的路径,不要用 Crawl-delay 人為拖慢,Sitemap 地址寫完整。把這几個基础項先確認一遍,再去排查連結结构、更新频率這些進阶問题,顺序會顺很多。