站点运营中常见的困惑是:某些頁面長期没有出現在抓取日誌里。原因可能在上游——蜘蛛根本不知道有這些 URL;也可能在中游——知道了却走不過去;還可能在下游——抓到了但没被索引。把這三段分開看,排查會清晰很多。
先分清三種“没抓到”
- 没發現:日誌里完全没有该 URL 的訪問记錄。問题多出在入口、内鏈、Sitemap 或 robots 允许范围。
- 發現了但没抓:Sitemap 或外鏈里出現了,但蜘蛛没来。可能是排队、被限速,或服務器响應不稳定。
- 抓了没索引:日誌有訪問、狀態碼正常,却没有進入索引。這通常属于内容與质量层面,已经不在抓取路径上。
分清類型之後再决定往哪個方向排查,能避免一上来就重复提交 URL 或堆外鏈。
第一步:用日誌還原蜘蛛的走法
服務器日誌是能證明蜘蛛實际走過哪里的資料。至少要能筛出搜尋引擎 UA,並按狀態碼、路径、時間做分组。
- 看狀態碼分布:大量 3xx 說明跳轉鏈太長,大量 5xx 或 429 說明抓取被拒或被限。
- 看路径分布:蜘蛛集中在你不在意的列表頁、篩選頁,還是深入到了詳情頁。
- 看時間分布:抓取是否集中在某個时段,是否與站点备份、批量任務重叠。
如果日誌里只看到首頁和少量栏目頁,問题多半在連結结构;如果詳情頁被抓但反复失敗,更可能是响應鏈路。
第二步:從入口頁手動走一遍
關掉搜尋框和站内推荐,從首頁開始,只用連結点击到目标頁,记錄步數與每一跳的頁面類型。這是最直接的抓取路径測試。
- 首頁是否能在一到两次点击内到達主要栏目。
- 栏目頁是否把詳情頁放在預設可见区域,而不是需要篩選或排序才出現。
- 分頁是否使用可抓取的連結,而不是纯按钮事件。
- 列表頁是否存在大量參數组合,把同一批詳情頁重复指向。
如果目标頁在点击路径中根本走不到,Sitemap 可以作為补救入口,但不應成為唯一入口。
第三步:核對 Sitemap 與真實 URL 的一致性
Sitemap 的價值在于告诉蜘蛛“這里有哪些地址”,但它無法替代内鏈。常见問题有三類:
- 列出的 URL 返回 404、301,或需要登入才能訪問。
- 寫的是參數版地址,頁面上 canonical 却指向另一個版本。
- lastmod 被批量刷成目前時間,失去參考意义。
建议定期抽检:随机取 Sitemap 中的若干條,確認狀態碼、canonical 與頁面内容是否一致。URL 數量大的站点可以按目錄抽样。
第四步:检查响應鏈路里的隐性成本
即便連結结构没問题,蜘蛛也可能因為服務器端体驗差而减少回訪。重点看以下指标:
- TTFB:整体响應時間偏長时,抓取並發會受影响。
- 重定向鏈:一次跳轉可以接受,连續多次會消耗抓取配額。
- 限速與拦截:429 與防火墙規則會让蜘蛛降低频率。
- CDN 與缓存:不同节点返回不同内容,可能让蜘蛛拿到空頁或错誤版本。
抓取频率不是求来的,而是站点稳定性與内容更新节奏共同形成的结果。
第五步:處理抓得到但不被選中的情况
這一步已经超出纯抓取問题,但仍值得一起排查,因為很多“没收錄”的誤判来自這里。
- 頁面主体内容是否與其他頁面高度重复。
- 是否存在 noindex、robots 規則,或 canonical 指向他處。
- 頁面是否依赖脚本渲染,蜘蛛执行後拿不到主要内容。
针對這類頁面,優先做内容差异化與结构清晰化,而不是反复提交。
一個可复用的排查顺序
- 用日誌確認蜘蛛是否来過、来過几次、结果如何。
- 手動点击確認内鏈路径是否存在断点。
- 核對 Sitemap 中 URL 的可訪問性與一致性。
- 检查服務器响應、重定向、限速與缓存表現。
- 最後再评估内容层面的抓取與收錄條件。
按這個顺序走,多數“蜘蛛不来”的問题都能落到具体环节。剩下的就是修好那一环,然後给它一点時間。