先说结论:抓取入口頁不等于發現了連結
很多运营者看到服務器日誌里出現了搜尋蜘蛛訪問入口頁的记錄,就預設頁面里的目标 URL 已经被“發現”了。實际上日誌只记錄了請求這一件事:爬虫来了、拿走了 HTML,僅此而已。頁面里的連結是否被提取、是否被排進待抓取队列、什么时候真的去抓,這几件事都不在服務器日誌里。
所以判断入口頁有没有起作用,不能只看“入口頁被抓了没有”,而要看目标 URL 有没有在合理時間内被同一個爬虫請求。
日誌里能直接看到的三種记錄
- 入口頁的請求:說明抓取動作發生過,是判断的前提。
- 目标 URL 的請求:說明連結被發現並完成了後續抓取,這是最有價值的信号。
- 静態资源請求:图片、CSS、JS 等,能反映爬虫是只抓 HTML 還是會拉取渲染所需资源。
除此之外,連結提取、去重、入队這些過程都發生在搜尋引擎内部,外部看不到。
目标 URL 出現时的几個观察点
- 時間差:入口頁被抓到目标 URL 被抓之間隔了多久。几分钟到几天都算正常,隔了几周基本可以認為這條路径没起效。
- UA 一致性:確認是同一個来源的爬虫,而不是其他渠道带来的抓取。
- 請求顺序:如果入口頁和目标 URL 在很短時間内被连續請求,多半是從入口頁跟過去的;如果時間点完全分散,就要考虑其他来源。
- referer 字段:部分爬虫會带 referer,可以作為辅助參考,但不能当作唯一依據,因為很多請求並不带。
几個容易誤判的情况
- 只看了 CDN 或反向代理日誌:邊缘日誌和回源日誌對不上时,容易把命中缓存的請求当成没被抓。
- 日誌保留時間太短:只留 3 天日誌,而抓取間隔本来就超過一周,自然會觉得“一直没来”。
- 目标站和入口頁不在同一台服務器:入口頁日誌里永遠看不到目标 URL 的請求,需要去目标站的日誌里查。
- 頁面依赖 JS 渲染:抓取 HTML 时看不到連結,需要等渲染队列,時間差會被明顯拉長。
- 連結被 robots、nofollow 或响應头挡住:日誌里既看不到入口頁異常,也看不到目标 URL,需要回头检查這些限制條件。
做一個最小對照測試
- 新建一個入口頁,只放少量連結,避免連結之間互相干扰。
- 记錄入口頁被抓取的具体時間点,作為观察起点。
- 在目标站日誌里按爬虫 UA 和這個時間点之後的時間窗口過滤。
- 持續观察 7 到 14 天,记錄目标 URL 是否出現、出現的频率如何。
- 如果始终没有出現,按 robots、nofollow、JS、跳轉方式、响應狀態碼的顺序逐個排查,而不是繼續增加連結數量。
這個測試的價值在于把“感觉没效果”變成“到底哪一步断了”,避免盲目扩大入口頁規模。
看到信号之後该做什么
目标 URL 有被抓取记錄,說明入口頁這條路径是通的,接下来要關注的是抓取是否稳定、目标頁是否被正常處理。如果目标 URL 被抓了但狀態碼是 4xx、5xx,或者被跳轉到別處,問题就不在入口頁,而在目标站本身。反過来,如果目标 URL 完全没有被抓取记錄,繼續堆入口頁和連結數量,通常也不會改善情况。
入口頁只是让 URL 多一個被發現的入口,能不能被發現、多久被發現,最终仍由搜尋引擎决定,没有任何做法可以保證收錄,也無法保證抓取频次。