蜘蛛池入口頁承担的任務很直接:让搜尋蜘蛛能走進来,顺着連結發現更多 URL。但很多人把精力放在内容和内鏈上,却忽略了一個最前面的關卡——robots 規則。一旦規則寫错,蜘蛛可能连门都進不来,後面做再多也白費。
robots.txt 管抓取,meta robots 管索引
先把分工理清。robots.txt 是放在域名根目錄的文本文件,告诉蜘蛛哪些路径可以抓、哪些不要抓。它管的是“抓取”這個動作。meta robots 是寫在頁面 HTML 里的标簽,比如 <meta name="robots" content="noindex,follow">,它管的是“索引”和“連結跟踪”。两者不是一回事,也不能互相替代。
還有一個容易被漏掉的是 HTTP 响應头里的 X-Robots-Tag。它能在服務器层面给整站或某類文件下發索引指令,效果類似 meta robots,但不需要改頁面代碼。如果服務器配置里残留了 X-Robots-Tag: noindex,頁面内容再正常,蜘蛛也可能不把它放進索引。
常见誤区:這些設定容易把蜘蛛挡在门外
- 用 Disallow 屏蔽全站,又指望蜘蛛来抓。 robots.txt 里寫 Disallow: / 等于告诉蜘蛛整站別来。蜘蛛池入口頁本身就是為了被抓取,這種設定属于自断通路。
- noindex 和 nofollow 一起用。 如果入口頁只是中轉站,noindex 可以理解,但再叠加 nofollow,頁面上的連結就不會被跟踪,入口頁的引導作用基本消失。
- robots.txt 本身返回 404 或 500。 蜘蛛拿不到規則文件时,行為並不稳定。有的會暂时放行,有的會减少抓取。更稳妥的做法是让 robots.txt 稳定返回 200,内容明确。
- User-agent 寫错或大小寫不匹配。 不同蜘蛛對 User-agent 的匹配規則不完全一样。寫错名稱,規則可能不生效,也可能被誤讀。
- 只寫 Disallow 忘了 Allow。 如果前面用宽泛規則封了目錄,後面又希望放行某個子路径,需要用 Allow 明确寫出来,並注意顺序和最長匹配原則。
- 屏蔽 CSS 和 JS 後抱怨頁面讀不懂。 入口頁结构通常不复杂,但如果蜘蛛需要渲染才能看到連結,屏蔽静態资源可能影响它识別頁面内容。
按目的選擇:放行、限制還是只让爬不让索引
蜘蛛池入口頁不一定要追求自身排名,它的價值在于被發現和传递連結。所以規則要围绕目的来定。
- 希望入口頁被索引並作為發現节点: robots.txt 允许抓取,meta robots 保持 index,follow,X-Robots-Tag 不要加 noindex。
- 只把入口頁当中轉,不參與排名: 可以用 noindex,follow,让蜘蛛抓取頁面並跟踪連結,但不把入口頁本身放進索引。注意,這種方式下連結價值的传递可能打折扣,需要观察日誌再判断。
- 某些目錄不想被频繁抓取: 用 robots.txt 做路径級限制,而不是整站屏蔽。限制後仍要保留一條清晰的爬行通路,避免蜘蛛在门口反复试探。
驗證與調整建议
規則改完不要只靠猜。可以在服務器日誌里观察主流蜘蛛對入口頁的訪問狀態,看它們是拿到 200 還是被 403、404 挡住。也可以借助各搜尋引擎提供的 robots 測試工具,检查某條 URL 最终生效的抓取和索引指令。
蜘蛛池入口頁的 robots 規則不需要复杂,但需要一致:想让它来,就明确放行;想限制,就限制在路径級別,別把整站鎖死。
最後提醒一点,robots 規則只是入口頁能被發現的前提之一,它不保證收錄,也不保證排名。把規則寫對,是為了不让蜘蛛在第一道门就被挡回去,後面的抓取预算、内鏈结构和更新节奏才有發挥空間。