網站收錄

頁面改了,索引里還是舊版本:先分清是没重抓還是没更新

頁面内容更新後,索引里仍顯示舊标题、舊正文,這種情况和“不收錄”並不是一回事。文章把它拆成三類:頁面未被重新抓取、抓到了舊内容、已抓取但索引未切換,並给出按顺序排查的方法,包括核對抓取時間、用爬虫 UA 直接請求、检查多版本 URL 與内鏈入口。

網站收錄

頁面改了,索引里還是舊版本:先分清是没重抓還是没更新

更新了一個頁面,過几天在搜尋结果里看到的還是舊标题、舊價格、舊正文,這是运营里很常见的一類反馈。它和“頁面不收錄”不是一回事:頁面已经在索引里,只是索引儲存的那份内容不是最新的。要處理它,先得把“没重新抓取”和“抓取了但没更新”分開看。

索引里存的是快照,不是實时頁面

搜尋引擎抓取一個 URL 时,會把当时看到的 HTML 存下来,再经過解析、去重、质量判断,决定是否替換索引里的舊版本。這條鏈上任何一环没走完,你看到的就還是舊内容。所以“我明明改了”本身不构成索引更新的理由,它只是一次信号,能不能触發重抓、重抓後會不會替換,還取决于別的條件。

三種“没更新”,表現相似但處理不同

一、頁面根本没被重新抓取

用抓取日誌或站点管理工具里的抓取統計,看這個 URL 最近一次被抓的時間。如果時間点還停在改動之前,問题在“發現與調度”层面,而不是内容层面。常见原因包括:该頁面本身抓取频次低、入口連結太少、上一次抓取返回過错誤、robots 或 CDN 對爬虫返回了不同版本。

二、抓了,但抓到的還是舊内容

抓取時間更新了,内容却没變,通常是源站自己在“骗”爬虫:

  • 缓存:頁面走了多級缓存,爬虫命中的是舊副本;
  • CDN:邊缘节点還留着舊版本,或者不同节点版本不一致;
  • 异步渲染:正文由接口或 JS 渲染,爬虫拿到的是空壳或預設值;
  • 多版本 URL:同一内容存在參數、大小寫、带 www 與不带 www 等多個地址,改的是一份,被抓的是另一份。

這一類要回到源站排查:直接以爬虫 UA 請求一次,看返回的 HTML 里到底是什么。

三、抓到了新版,索引還没切換

如果抓取時間更新、返回内容也是新版,但索引展示仍是舊的,說明問题在索引更新环节。可能是新版本被判為與舊版本差別不大,可能是新版结构或内容被判為质量更弱,也可能只是這次更新還没生效。這類情况一般不需要再動结构,保持入口稳定、繼續观察即可。

建议的自查顺序

  1. 確認索引里的“舊版本”是不是真的舊:可能是搜尋结果的展示缓存,也可能是你本地缓存或登入態造成的差异。
  2. 看這個 URL 最近一次抓取時間,判断是否發生過重抓。
  3. 若没有重抓,检查入口:内鏈是否指向它、sitemap 里是否包含它、URL 是否能正常訪問。
  4. 若已重抓,用爬虫 UA 直接抓一次,比對返回 HTML 與源站編輯器里的内容是否一致。
  5. 检查是否存在同一内容的多個 URL,改動只落在其中一個上。
  6. 確認返回狀態碼稳定為 200,中途没有多余的重定向或多版本跳轉。

想让它更快被感知,可以做和不该做的事

  • 把更新頁放回顯眼位置:首頁、栏目頁、相關内容的内鏈,给爬虫一條能走到的路。
  • sitemap 里的 lastmod 要真實,長期乱寫會让這個字段失去參考價值。
  • 更新幅度尽量是實质性的,正文有實际變化,比改几個标点更容易被识別為新版本。
  • 不要為了催更频繁改 URL 或造出大量近似頁面,這會把問题從“没更新”變成“重复内容”。
索引更新没有固定的時間承诺,能做的是让發現更顺、让内容差异更明确,而不是反复提交。

把“改了却不见”当成一條排查鏈路来看,比反复质疑收錄更有效:先確認是否重抓,再確認抓到的是什么,最後才考虑索引為什么没換。多數情况下,卡点在前两步,而不是索引本身。