很多站点把“没有被收錄”归结為權重或算法問题,但更常见的原因是:蜘蛛压根没见過這個 URL。抓取的第一步不是解析,也不是渲染,而是發現。發現不了,後面所有優化都無從谈起。
蜘蛛發現 URL 的几類入口
同一篇文章,從不同入口進入抓取队列的時間可能差几天。常见的入口大致有這些:
- 站内連結:首頁、栏目頁、列表頁、相關推荐里的 a 标簽,是發現新連結最稳定的来源。蜘蛛顺着連結走,顺便還能带走連結所在頁面的上下文。
- Sitemap:适合批量告知,尤其是那些层級深、内鏈少的頁面。它更像一份清單,不是加速器。
- 外部連結:別人頁面上指向你新頁面的連結,往往能带来較快的首次訪問,但可控性差。
- 推送接口:搜尋引擎提供的主動推送(如 IndexNow、站点推送 API)能在短時間内把 URL 送出去,通常有配額限制,适合重点頁面。
- RSS / 订阅源:部分蜘蛛會定期拉取,适合内容更新频繁的站点作為补充。
入口不同,發現速度也不同
经驗上,從快到慢大致是:主動推送、首頁或高频更新栏目的内鏈、Sitemap、深层内鏈、纯外鏈。這不是绝對值,但方向可以拿来安排發布流程。
- 新文章發布後,先保證它在某個高频被抓取的列表頁里露出一段時間。
- 重点頁面可以配合推送,但不要把所有 URL 都推一遍,配額用完了真正需要加速的頁面反而没机會。
- Sitemap 更新後不需要反复提交,保持内容與實际 URL 一致更重要。
用日誌確認“首次發現時間”
發現速度是可以量化的,不必靠猜。做法是:
- 记錄頁面上线時間(不是寫作時間,是 URL 可訪問的時間)。
- 在服務器訪問日誌里筛出该 URL 的第一次蜘蛛訪問记錄,取時間戳。
- 用首次訪問時間减去上线時間,得到發現延迟。
- 按栏目或頁面類型分组,看哪些入口的延迟明顯更長。
- 對延迟異常的頁面,回头检查它的入口連結是否真的存在、是否可点击。
采样几十個頁面就能看出規律,比逐頁盯着看效率高得多。
让連結“看起来存在却抓不到”的几種寫法
- 連結靠 JS 交互生成:需要点击、滚動或登入後才出現的連結,蜘蛛不一定會触發。
- a 标簽缺 href:用 JS 绑定点击事件的“伪連結”,在 HTML 里没有可抓取的地址。
- nofollow / robots 誤伤:本意是控制權重或隐私,结果把發現入口也一起關掉了。
- Sitemap 與實际 URL 不符:提交了已刪除或跳轉的地址,蜘蛛白跑一趟,也會降低對這份清單的信任。
- URL 带随机參數:同一個頁面每次生成不同地址,蜘蛛每次看到的都像新頁面,實际互相分散。
把發現鏈路串起来
比較稳妥的组合是:站内連結负责日常發現,Sitemap 负责兜底,推送负责少數重点頁面,外鏈顺其自然。發布流程上,先確認頁面可訪問,再让它出現在列表頁,最後才考虑是否需要推送。
發現只是把 URL 交到蜘蛛面前,能不能抓、抓几次、要不要收錄,仍取决于服務器响應、頁面质量和站点整体情况。
定期做一次發現鏈路自查:随机挑十個新頁面,用日誌算一遍發現延迟,再回到頁面上找它的入口連結。多數“收錄慢”的問题,在這一步就能定位到原因。