入口頁在訪問日誌里出現了搜尋蜘蛛的记錄,确實让人安心,但它只說明门口被敲過,不代表门後的目标 URL 會被發現並抓取。下面按從近到遠的顺序,把常见的卡点逐一排查一遍。
先分清两件事:没被抓,和抓了没用
很多站長把蜘蛛来過入口頁,直接等同于目标 URL 會被收錄。實际上這是三段獨立過程:入口頁被抓取 → 頁面里的連結被解析並加入待抓队列 → 目标 URL 被抓取並進入索引。任何一段断掉,外部看到的現象都是目标 URL 没動静。
第一步:確認入口頁是真的被完整讀取
- 看狀態碼是不是 200。返回 403、429、5xx 的訪問,蜘蛛大概率什么都没拿到。
- 看响應体大小。如果抓取记錄顯示只拿到几百字节,可能是被 WAF、驗證頁或預設错誤頁截断了。
- 看是否被压缩、编碼異常或分块传輸出错,導致解析器讀不出連結。
- 用自己的浏览器或命令行工具,用同样的路径再請求一次,確認服務端對匿名訪問返回的内容一致。
第二步:確認蜘蛛看到的 HTML 里确實有連結
這一步最容易想当然。你在浏览器里看到的連結,不一定是服務器直接返回给你的那份 HTML 里的連結。
- 用查看源代碼而不是開發者工具的元素面板,搜尋目标 URL 的特征片段。
- 如果連結只存在于 JavaScript 渲染後的 DOM 里,就需要评估搜尋蜘蛛是否执行脚本、执行是否稳定。
- 如果連結被 CSS 隐藏、塞在注释里、或寫在脚本字符串里,命中概率會明顯不同。
- 如果入口頁對不同 UA 輸出不同内容,要用蜘蛛的 UA 實际請求一遍,看返回结果。
第三步:確認目标 URL 自身可抓
- 目标站点的 robots.txt 是否屏蔽了對應路径。
- 目标站点是否對蜘蛛 UA 或常见抓取 IP 段返回 403 或驗證碼。
- DNS 解析、TLS 證书、重定向鏈是否正常,有没有形成循环跳轉。
- 目标 URL 是否只對特定地区或登入狀態開放,公開抓取时拿到的是空頁或错誤頁。
第四步:確認連結指向的地址足够干净
入口頁里的連結如果经過多层跳轉、带一長串參數,或者每次訪問拼出来的地址都不一样,蜘蛛解析到的 URL 可能和你的预期不一致,也容易被当成重复地址處理。
- 跳轉鏈尽量短,最终地址最好直接寫在連結属性里。
- 去掉只用于統計的參數,保留真正影响内容的參數。
- 同一個内容尽量只暴露一個規范地址,避免同一頁面對應几十個變体。
第五步:看抓取节奏,別用小时級的耐心下结论
蜘蛛對新入口頁的抓取往往分批次進行,間隔几天甚至更長都算正常。观察时建议按天統計入口頁的訪問次數、返回碼分布,以及目标 URL 首次出現的時間,而不是盯着一两個小时就判断蜘蛛不来。
第六步:把提交手段当作补充而不是依赖
站点地图和主動提交可以帮蜘蛛更快知道連結存在,但它們不能替你把連結寫進可解析的 HTML 里。如果前面几步就有問题,提交只會让蜘蛛反复撞上同一個坑。
每一步的结论都要有日誌或抓取记錄支撑。凭感觉判断蜘蛛不来,常常會把問题查到错誤的方向上,改来改去反而把原本正常的入口頁改坏了。
一份可以照着走的最小清單
- 入口頁:狀態碼、响應体大小、匿名訪問内容是否一致。
- 連結:是否出現在服務器返回的 HTML 源碼中,是否可被解析。
- 目标 URL:robots 限制、狀態碼、跳轉鏈、參數與規范化。
- 节奏:按天統計抓取與首次出現時間,给足一個完整观察周期。
按這個顺序走一遍,通常能定位到具体是哪一段出了問题。真正需要調整的往往只有一两個点,改完再观察一個完整的抓取周期,比反复折腾入口頁结构更有意义。