改完一篇文章的标题、價格或正文,隔天去搜,看到的還是几個月前的舊摘要——這是做站点运营时常见的困惑。要理解這件事,先得接受一個前提:索引里儲存的不是你的頁面,而是蜘蛛某次抓取後留下的快照。
索引存的是快照,不是實时頁面
蜘蛛抓取一次,搜尋引擎拿到一份 HTML,抽取正文、建立索引、生成摘要。從那之後到你下次被重新抓取之前,索引里的内容就固定在那一次的结果上。頁面在服務器上怎么改,索引都不會自動同步。
所以“改了但没更新”通常不是失敗,而是流程還没走完。真正需要判断的是两件事:蜘蛛有没有再来過,来過之後索引有没有重算。
從改動到索引刷新,中間隔着三段等待
一、重新抓取的等待
蜘蛛不會因為你改了内容就立刻回来。它回訪的频率,主要看這個 URL 過去的更新歷史。一個長期稳定、几個月不動一次的頁面,抓取频率本来就低;经常有小幅更新的頁面,回訪會更勤。
站点整体也是如此:更新有規律、抓取顺利、错誤率低的站,重新抓取的等待時間通常更短。
二、判断這次改動值不值得重算
抓到新版本之後,搜尋引擎還要判断這次改動是否构成實质變化。改一個错別字、調一下段落顺序,很可能被認為與原版本等價,索引里不動也正常。标题、主体内容、價格、關键结论的改動,才更可能触發重算。
三、索引重算本身的排队
即使確認要更新,重算也不是即时的,站点規模較大时尤其明顯。這段等待你基本無法干预。
確認蜘蛛来過没有,看這几處
- 服務器日誌里這個 URL 最近的抓取時間和狀態碼,有没有 200 的成功抓取;
- 站点後台或 URL 检查工具顯示的“上次抓取時間”;
- 用搜尋指令看索引中目前展示的标题與摘要,是不是舊版本;
- 如果日誌里只有很早的一次抓取,說明問题在抓取环节,不在索引环节。
分清這两者很重要:没重抓,要處理的是入口、内鏈和抓取频率;重抓了但没更新,才是索引层面的判断問题。两者的排查方向完全不同。
想让更新被更快發現,可以做几件事
- lastmod 寫真實修改時間,不要每次全站刷新,否則這個信号會失效;
- 從首頁或栏目頁给這個 URL 一個較近的入口,入口本身的變化也是信号;
- 标题或頁面结构變化較大时,主動提交该 URL;
- 保持站点更新节奏稳定,比偶尔一次集中提交更有效。
不要為了催更新而反复提交同一個 URL、反复微調内容。這類操作通常不會加快重算,還可能让抓取预算浪費在無意义的重复抓取上。
三種容易被誤判的情况
看到舊摘要就以為没收錄
收錄和更新是两件事。頁面一直在索引里,只是展示的是舊快照,這跟“没被收錄”完全不同,處理方式也不一样。前者等,後者要查入口和质量。
只改了前端展示,服務端 HTML 没變
如果内容依赖 JS 渲染,而蜘蛛拿到的是未更新的 HTML 或不完整的 HTML,那它看到的确實還是舊内容。改動要落到蜘蛛實际能取到的那份 HTML 上。
同一内容有多個 URL
如果同一内容存在多個版本,更新可能只反映在其中一两個上,其余版本仍是舊的。這種情况下先收敛版本,再谈更新。
小结
頁面更新後索引没變,先別急着判断“收錄出了問题”。按抓取日誌、上次抓取時間、索引展示版本依次核對,多數情况只是流程還没走完。把更新真正落到服務端 HTML、让入口可被發現、保持节奏稳定,比反复提交更靠得住。