做蜘蛛池或站点运营时,经常遇到一種情况:入口頁在日誌里能看到搜尋蜘蛛訪問,但目标 URL 過了几天仍然没有抓取记錄。這时不要急着加更多入口頁,先按下面顺序把問题拆開。
先分清“没被抓”的具体含义
“目标 URL 没被抓”至少有四種不同表現,處理方式完全不同:
- 入口頁根本没被訪問:說明蜘蛛還没發現入口頁,或入口頁被 robots、防火墙、DNS 等問题挡住。
- 入口頁被訪問,但目标連結没被解析:連結寫法、渲染方式、内容類型、响應截断等都可能導致。
- 目标 URL 被請求過,但日誌里没看到:可能日誌采样、CDN 缓存、只记錄了部分狀態碼,或者你看的是错誤日誌。
- 目标 URL 被抓過,但没進索引:抓取和收錄是两件事,抓取正常不代表會展示。
先確認你手里的是抓取日誌、服務器訪問日誌,還是搜尋平台後台的抓取統計。三者口径不同,不要混着判断。
入口頁侧:連結是否真的能被發現
入口頁被訪問,只代表蜘蛛拿到了這個頁面,不代表它會跟進里面的每一個地址。可以逐項检查:
- 目标地址是否寫成可解析的超連結,而不是纯文本、图片、按钮或僅存在于 JavaScript 變量里。
- 連結是否被 nofollow、X-Robots-Tag、robots.txt 或頁面級 noindex 間接影响。
- 入口頁返回狀態碼是否稳定為 200,Content-Type 是否接近 text/html。
- 入口頁是否响應過慢、体积過大,導致蜘蛛只讀取了前面一部分。
- 是否用了 iframe、meta refresh、POST 表單等非常規發現路径。
如果入口頁本身经常返回 5xx、驗證頁或登入頁,蜘蛛即使来過,也可能不會繼續解析連結。
目标 URL 侧:能抓不等于會抓
入口頁把連結交出去之後,蜘蛛還要對目标 URL 做一轮判断:
- 目标 URL 是否返回 200,是否稳定,是否會跳轉到登入頁或驗證頁。
- 目标頁是否被 robots.txt 屏蔽,是否带 noindex,canonical 是否指向別的地址。
- 是否和大量參數 URL、大小寫變体、尾斜杠變体重复,導致蜘蛛認為不值得重复抓取。
- 服務器或 WAF 是否對蜘蛛 IP 返回 403、429 或人机驗證。
這些情况在日誌里可能表現為“蜘蛛来過入口頁,但目标 URL 一次都没出現”,也可能是“目标 URL 出現了一次,之後再也没来”。
抓取配額與調度:入口頁多不等于抓得快
蜘蛛池常见誤区是:入口頁從几十個增加到几百個,目标 URL 就應该立刻被抓。實际上,搜尋蜘蛛的抓取量受站点整体质量、歷史抓取反馈、服務器响應速度、頁面更新频率等影响。入口頁數量只是發現渠道之一,不是配額開關。
如果入口頁每天大量轮換、同一批 URL 反复出現在不同入口頁,蜘蛛可能把抓取预算花在重复入口上,目标 URL 的調度反而被推迟。更稳妥的做法是保持入口頁结构稳定,让新 URL 有持續、可预期的發現路径,同时用 sitemap 和站内連結做补充。
一套可执行的自查顺序
- 在日誌中按目标 URL 精确搜尋,確認是否出現過任何一次請求,包括 4xx、5xx 和重定向。
- 用蜘蛛视角检查入口頁:返回碼、Content-Type、是否含可解析連結、是否被 noindex 或 nofollow 影响。
- 检查目标 URL:返回碼、robots.txt、meta robots、canonical、是否有登入或驗證拦截。
- 對比 sitemap、内鏈和入口頁三種發現路径,看目标 URL 是否至少有一種稳定入口。
- 观察一到两周,不要因為当天没抓就立刻換域名、換入口頁或堆大量新連結。
几個容易誤判的点
- 日誌里的 User-Agent 带 spider 字样,不一定是官方搜尋蜘蛛,可能是第三方采集或掃描。
- 使用了 CDN 或反向代理时,源站日誌可能看不到全部蜘蛛請求,需要看 CDN 日誌或邊缘日誌。
- 目标 URL 被抓取過一次,不等于會被持續抓取;内容更新频率、頁面质量和站点整体抓取反馈都會影响後續調度。
總结一下:入口頁有蜘蛛訪問但目标 URL 没被抓,優先排查“連結是否可發現”和“目标頁是否允许抓取”,再看抓取配額和日誌口径。把入口頁、sitemap 和内鏈做成稳定组合,比频繁增加入口頁更有利于 URL 被持續發現。抓取和收錄没有保證,能做的只是减少障碍、保持稳定。