运营中很常见的一幕:頁面标题、價格、活動時間已经改了,搜尋结果顯示的還是两周前那一版。很多人第一反應是“是不是没收錄”,于是反复提交 URL 或者反复查 site: 结果。其實更可能的情况是:頁面确實在索引里,只是索引中儲存的那份快照還没被替換。
把“收錄”和“更新”当成两件事来看,排查思路會清楚很多。
索引里存的是抓取时的快照,不是你的實时頁面
搜尋引擎展示的标题、描述和摘要,来自它上一次成功抓取並處理這份 URL 时儲存的内容。整個鏈條大致是:調度抓取 → 取回 HTML → 渲染 → 抽取正文與關键信息 → 寫入索引。任何一环慢下来,你看到的就是舊版本。
還有一点容易被忽略:展示的标题和描述不一定完全照搬你寫的那段。搜尋引擎會參考頁面标题、正文首段、外鏈锚文本等信号自己生成一段摘要。所以展示文字和你改的内容不一致,有时不是没更新,而是它本来就没打算照抄。
更新生效慢的常见原因
- 抓取频率本身就低。訪問量少、内鏈少、站点整体權重不高的 URL,重新被抓取的間隔本来就更長。
- 下次抓取是由調度决定的。你改了内容,但没有任何机制主動告诉它“這里變了”,只能等下一轮。
- CDN 或頁面缓存返回了舊内容。蜘蛛拿到的 HTML 是缓存里的舊版,它自然只能记下舊版。
- 更新後的内容依赖 JS 渲染。渲染要排队,更新會比静態内容更慢一步。
- 舊 URL 仍然可訪問。改版後新的 URL 已经上线,舊地址還返回 200,两個版本可能同时存在于索引里,你看到的可能恰好是舊的那個。
先自查:到底是没更新,還是看错了頁面
- 用 URL 检查類工具看這個 URL 的最近一次抓取時間。如果時間就在改動之前,那說明只是還没轮到。
- 看抓取时的頁面快照,和线上實际内容對比。很多“没更新”在這一步就能確認原因。
- 用命令行直接請求源站,带上缓存相關头部,看返回的是不是新内容,以及 Age、ETag、Last-Modified 這些字段是否顯示命中缓存。
- 確認是否存在多版本:新舊 URL、带參數版本、移動端版本分別打開看看。
- 確認改動落在搜尋引擎真正讀取的区域,而不是被折叠、被懒加载挡住的部分。
推動更新,可以按這個顺序做
- 先保證源站返回的就是新内容,並刷新 CDN 缓存。這一步没做,後面的操作都是白費。
- 把入口重新接上。在列表頁、導航、相關推荐里更新指向该頁的連結,让爬虫從高频訪問的頁面重新走到它。
- 更新 sitemap 中的 lastmod,但只寫真實修改時間。長期乱寫會让這個字段失去參考價值。
- 對少數關键頁面主動提交抓取請求,注意額度有限,優先给真正重要的 URL。
- 修改幅度小、只改几個字的頁面,不必投入太多精力。改動越大、頁面越重要,被重新處理的優先級通常越高。
如果只是担心标题描述被改寫,可以先观察一段時間。搜尋结果的展示文案本来就允许被生成和調整,它和頁面的收錄狀態、排名表現是两回事。
小结
頁面改了但索引還是舊版,多數时候不是收錄出了問题,而是快照替換需要一轮新的抓取。先確認线上内容、缓存、多版本這三件事,再看抓取時間和入口連結,基本能把原因定位到具体环节。真正需要長期投入的,是让重要頁面持續有訪問、有内鏈、有明确的更新時間,而不是每次改動後反复刷新搜尋结果頁面。