做蜘蛛池的常见思路是:入口頁放上目标連結,等搜尋蜘蛛顺着連結爬到目标站。但很多人會忽略一件事——連結被發現和頁面被抓取並不是一回事。如果目标站自己用 robots.txt 挡住了抓取,入口頁铺再多連結也不會有實质變化。
先分清三個环节
搜尋蜘蛛處理一個 URL,大致要经過三步:發現、抓取、索引。
- 發現:搜尋蜘蛛在入口頁讀到連結,把目标 URL 放進待抓取队列,這一步不代表马上就會抓。
- 抓取:搜尋蜘蛛真正請求目标 URL,拿到 HTML 内容。
- 索引:内容经過解析和處理,進入可以被检索的資料库。
蜘蛛池能明顯影响的,基本只有第一步。後两步取决于目标站自身的狀態。
目标站禁止抓取时會發生什么
同样是“挡住搜尋蜘蛛”,不同的挡法结果並不一样。
- robots.txt 寫 Disallow: /:搜尋蜘蛛會遵守規則不去抓取目标 URL。連結可能被發現了,但内容抓不到。長期的抓取失敗,也會影响搜尋引擎對该站点的抓取意愿。
- 頁面 meta robots 寫 noindex:搜尋蜘蛛仍然會抓取頁面,但不會把它放進索引。抓取動作發生了,收錄结果却没有。
- 服務端返回 X-Robots-Tag: noindex:效果和 meta 标簽類似,只是配置寫在 HTTP 响應头里,光看頁面源碼是發現不了的。
有一種情况容易被誤讀:某些搜尋引擎在“只有外鏈指向、却没有抓到内容”时,仍可能把 URL 展示出来,但通常没有摘要。這既不稳定,也不等于頁面被正常收錄,不适合当成可依赖的结果。
几個容易搞混的点
noindex 和 nofollow 不是一回事
noindex 管的是這一頁要不要進索引,nofollow 管的是這一頁上的連結要不要被跟随。只寫 noindex 的頁面,上面的連結通常還是會被跟随;只有寫成 noindex, nofollow 或單獨加 nofollow,才可能让連結不被繼續發現。入口頁里的連結即使被發現了,如果目标頁自己 noindex,最终结果依然是不收錄。
robots.txt 是站点級,meta 是頁面級
robots.txt 一條 Disallow 可能把整站挡住,影响面很大,改起来也快。meta robots 則只作用于單個頁面,需要逐頁检查。排查时不要只看其中一個。
入口頁能做的事情有限
入口頁负责“告知存在”,不负责“决定结果”。把它的作用理解成一個通知渠道,比期待它直接推動收錄更符合實际。
照着做的排查清單
- 直接訪問目标站的 /robots.txt,看是否存在 Disallow: / 或對搜尋蜘蛛的专门限制。
- 打開目标頁源碼,確認 meta robots 寫的是 noindex 還是 noindex, nofollow。
- 用抓包或接口工具查看响應头,確認有没有 X-Robots-Tag。
- 確認目标 URL 返回 200,而不是 301、302 鏈到別的地址,或者直接 404、5xx。
- 核對規范标簽,看是否有多余的 canonical 指向別的頁面。
- 翻服務器日誌,確認搜尋蜘蛛是否真的抓過目标 URL,而不是只抓了入口頁。
這些情况下先別指望入口頁
目标站整站被 robots.txt 挡住、長期返回 5xx、頁面内容在登入墙之後、域名本身處于被處理狀態——遇到這些,入口頁再铺連結也不會带来實质變化。顺序應该是先修目标站,再谈蜘蛛池。
把入口頁当成“告诉搜尋蜘蛛有這么個 URL”的渠道更合理。抓不抓、收不收,最终還是目标站自己说话。任何工具都無法承诺收錄或排名。
所以,当發現入口頁里明明放了連結、目标站却迟迟没有動静时,先別急着加頁面或者換域名,從上面的清單逐條對一遍,往往能更快定位問题。