網站收錄

蜘蛛来過了,索引里却没有:抓取和收錄之間隔着什么

日誌里能看到蜘蛛抓取,但站点查询始终找不到頁面,這種情况多數不是“没被抓”,而是卡在抓取之後。本文把抓取、處理、索引、展現拆成四步,說明常见的卡点、判断顺序,以及哪些操作能让頁面更容易進入索引。

網站收錄

蜘蛛来過了,索引里却没有:抓取和收錄之間隔着什么

很多站点运营者會遇到同一種困惑:服務器日誌里明明有蜘蛛的抓取记錄,抓取時間、URL、返回碼都正常,但用各種方式查询,索引里就是找不到這個頁面。于是判断“抓取没用”“蜘蛛白来了”。其實這里混淆了两個不同的环节——抓取只代表蜘蛛取走了内容,收錄代表搜尋引擎决定把這條 URL 放進索引並保留一個版本,中間還有判断和處理的過程。

把握索引鏈條的四個环节

把過程拆開,會清楚很多:

  1. 發現與抓取:蜘蛛通過内部連結、sitemap、外鏈等入口找到 URL,發起請求並取回内容。
  2. 處理:解析 HTML、执行必要的渲染、识別正文、判断規范化版本。
  3. 索引:决定這條 URL 是否作為一個獨立版本進入索引,還是被合並、丢弃。
  4. 展現:在候選集合中被調用,參與某次搜尋结果的排序。

日誌只能證明第一步。後面每一步都有可能让頁面停下来,所以“抓過”和“收錄”之間並没有等号。

抓取正常但索引里没有,常见的几種情况

  • 返回的不是 200:跳轉鏈太長、返回 403/404,或者内容為空却返回 200(软 404),都可能让頁面在處理阶段被拦下。
  • 頁面被 noindex 拦住:meta robots 或响應头里的 X-Robots-Tag 寫了 noindex,蜘蛛可以抓,但不會進索引。這類頁面在日誌里看起来一切正常。
  • canonical 指向了別處:你查的這一版被声明為副本,索引里留的是另一個 URL,于是“這個地址没收錄”。
  • 正文依赖 JS 渲染:抓取到的初始 HTML 是空壳,正文要等脚本执行後才出現,處理阶段可能拿不到有效内容。
  • 站内存在大量相似内容:同一篇内容出現在多個 URL 上,索引只會保留其中一個版本。
  • 頁面本身價值不足:内容過薄、模板占比過高、與站内其他頁面高度重复,都可能被判断為不值得單獨成條目。
  • 只是還没轮到:抓取和索引之間有時間差,尤其是新站、新目錄,几天到數周都算常见。

判断卡在哪一步的顺序

  1. 先確認返回狀態碼和响應头,看是否存在跳轉、拦截或異常。
  2. 查看頁面源代碼,確認正文是否直接出現在 HTML 中,而不是只存在于脚本輸出里。
  3. 检查 meta robots、X-Robots-Tag 與 canonical,確認没有自我拦截,也没有指向其他 URL。
  4. 用站点的 URL 检查類工具看官方给出的狀態描述,這比站内搜尋查询可靠得多。
  5. 回到日誌,看這條 URL 的抓取频次和返回碼是否稳定,判断是偶發還是持續。
  6. 检查站内是否還有同内容的其他 URL,以及内部連結主要指向哪一版。
站内搜尋查询只能当作粗略參考,它受查询方式和索引更新影响,不能直接当作“收錄/未收錄”的结论。

几组最容易混在一起的概念

  • 可抓取不等于可索引:robots.txt 允许抓取,只是允许蜘蛛来看,不等于允许進入索引。
  • 被收錄不等于有排名:進入索引只是获得了入场资格,能否出現、出現多靠前是另一件事。
  • 提交 sitemap 不等于收錄:sitemap 提供的是發現入口,不是收錄承诺。
  • 抓取频繁不等于评價好:抓取量受站点規模和抓取预算影响,與頁面质量没有直接對應關系。

让頁面更可能進入索引的几件事

  • 保證 URL 稳定返回 200,避免频繁跳轉和間歇性超时。
  • 让正文出現在初始 HTML 里,脚本渲染作為补充而不是唯一来源。
  • 規范版本自指 canonical,站内連結、sitemap、分享連結尽量指向同一版。
  • 收敛同内容的多 URL:參數、大小寫、末尾斜杠、打印版之類尽量统一。
  • 给重要頁面留出足够的内部連結入口,避免只靠 sitemap 被發現。
  • 让頁面有獨立的信息價值,而不是把同一段内容反复換皮。

观察周期怎么安排

頁面刚上线就反复查询,得到的多半是“還没處理完”。新頁面、新目錄、整站改版後的地址,观察周期以周為單位更合理。每次調整後记錄下改動時間和對應 URL,隔一段時間再看狀態變化,比每隔几小时查一次更容易看出趋势。

回到最初的問题:蜘蛛来過但索引里没有,先別急着归因于“蜘蛛不抓”。按抓取、處理、索引的顺序逐項排查,多數情况能找到具体卡点——是返回異常、是頁面被拦住、是版本被合並,還是頁面本身没有足够理由被單獨保留。