為什么入口頁的 robots 指令容易寫错
蜘蛛池入口頁的目标是让蜘蛛發現並顺着連結繼續走,但 robots 相關配置一旦寫反,可能让蜘蛛连门都進不来。很多操作者把 robots.txt 当成“隐藏頁面”的工具,或者複製模板时忘了改,结果入口頁對蜘蛛不可见,後續再铺多少連結都难以發挥作用。
三類指令分別管什么
robots.txt:管抓取,不管收錄
robots.txt 是放在域名根目錄的抓取许可文件,用来告诉蜘蛛哪些路径可以抓、哪些不能抓。它不阻止頁面被收錄:如果其他頁面有連結指向被屏蔽的 URL,搜尋引擎仍可能收錄该 URL,只是通常没有摘要。所以用 robots.txt 来“刪除”頁面是常见誤区。
meta robots:頁面級的抓取與索引指令
meta robots 寫在 HTML 的 head 里,常见值有 index/noindex、follow/nofollow。它只對目前頁面生效,而且蜘蛛必须能抓到頁面才能看到它。如果頁面已经被 robots.txt 屏蔽,蜘蛛抓不到 HTML,meta 指令也就無從讀取。
X-Robots-Tag:HTTP 响應头里的指令
X-Robots-Tag 通過 HTTP 响應头传递,适合非 HTML 资源,也可以對整站或某個目錄统一設定。它和 meta robots 作用類似,具体優先級由搜尋引擎實現决定,但通常响應头指令會被較早讀取。
蜘蛛池入口頁通常怎么放行
入口頁的首要任務是可抓取。一般建议:
- 根目錄 robots.txt 返回 200,内容不要全站 Disallow。
- 入口頁本身允许抓取,不要加 noindex,除非你明确不希望它出現在搜尋结果里。
- 如果入口頁有分頁、篩選參數,可以屏蔽無意义的參數组合,但別把主路径一起屏蔽。
- 静態资源通常應允许抓取,否則蜘蛛可能無法正确渲染頁面。
- 配置改完後观察日誌,確認蜘蛛仍能抓到入口頁,返回碼為 200。
哪些路径可以考虑屏蔽
不是所有目錄都需要對蜘蛛開放。以下類型可以考虑在 robots.txt 里屏蔽:
- 後台、測試、临时目錄,避免蜘蛛浪費抓取预算。
- 大量重复的參數頁、排序頁,如果它們不承载獨立内容。
- 站内搜尋结果的 URL,通常會产生無限组合。
- 統計、跳轉、下载中間頁,如果對收錄没有帮助。
但要注意:屏蔽路径不等于刪除已收錄頁面。如果頁面已经被收錄,更合适的做法可能是返回 404/410,或者加 noindex,前提是蜘蛛能抓到頁面。
常见誤用與後果
誤用一:Disallow: / 封整站
這是最嚴重的情况。整站被屏蔽後,蜘蛛不會抓取任何頁面,入口頁自然也失去作用。常见原因是複製了測試站的 robots.txt 没改,或者模板里带了預設屏蔽規則。
誤用二:用 robots.txt 控制收錄
robots.txt 只控制抓取,不控制收錄。想阻止收錄應使用 noindex,或者让頁面返回 404/410。如果既屏蔽抓取又希望不收錄,需要先允许抓取让蜘蛛看到 noindex,等頁面從索引移除後再考虑屏蔽。這個顺序经常被搞反。
誤用三:meta robots 寫在 body 里
meta robots 必须放在 head 中,寫在 body 里可能被忽略。如果頁面通過 JavaScript 動態插入 meta 标簽,蜘蛛不一定能及时讀取,最好在服務端輸出。
誤用四:robots.txt 返回 500 或超时
如果 robots.txt 服務器错誤,蜘蛛可能暂时停止抓取,或者按保守策略處理。确保它能稳定返回 200 和纯文本内容。
配置後的检查清單
- 直接訪問 /robots.txt,確認返回 200、内容正确、不是 HTML 頁面。
- 模拟蜘蛛抓取入口頁,看是否返回 200,HTML 里是否有 noindex。
- 检查响應头是否意外带上 X-Robots-Tag: noindex。
- 观察服務器日誌,確認蜘蛛仍在抓取入口頁和後續連結。
- 如果改了屏蔽規則,记錄改動時間,方便對照日誌變化。
robots 指令是入口頁可抓取性的底线,不是優化技巧。把放行和屏蔽的邊界理清楚,比反复調整内容更基础。