改动前保存原始状态,核心是让“改动前”可复查:把当时的页面HTML、HTTP响应头、robots.txt、sitemap、URL状态和查询结果分别留档,并记录抓取时间与来源。这样改动后如果收录时间查询结果变化,才能判断是改动造成,还是抓取、索引本身在波动。只截图一张搜索结果页不够,因为它无法还原页面当时对爬虫返回了什么。
很多人发现百度收录时间查询结果异常,第一反应是截一张搜索结果图,然后直接改标题、改正文、改robots。这个做法的问题在于:搜索结果页展示的是百度索引中的旧快照,不等于你站点当时实际返回的内容。页面可能已经改过、服务端可能按UA返回不同内容、CDN可能缓存了旧版本,而截图无法区分这些情况。
另一个误解是“保存了原始页面,就能证明百度当时抓到了什么”。原始页面只能证明你当时对外提供了什么,不能证明百度蜘蛛实际抓取的是哪个版本。因此证据要分两层:一层是你站点的原始输出,一层是百度侧可观察到的收录与抓取线索。两层都留,才能做因果判断。
按“能复查、能对比、能定位”三个标准收集,优先级如下:
curl或浏览器“查看网页源代码”保存改动前的完整HTML,不要只保存渲染后的DOM。文件名带URL和日期,例如article-2025-06-01.html。Content-Type、Last-Modified、Cache-Control、X-Robots-Tag。这些能解释“页面没变但收录变化”的情况。site:查该URL是否被收录,记录查询时间、查询词和结果摘要。注意这只是观察记录,不是官方收录时间接口。如果页面是HTTPS,仍要保存证书与跳转链信息:HTTPS不保证安全无漏洞或排名,但它会影响抓取路径。保存从HTTP到HTTPS的跳转链,能避免改动后误判“抓取失败”的原因。
假设要改的URL是https://example.com/page-a,在改动前执行:
curl -sS -D headers-page-a.txt -o body-page-a.html https://example.com/page-a
这会同时得到响应头和原始HTML。把headers-page-a.txt和body-page-a.html放进以日期命名的文件夹。适用条件是:页面无需登录、无需JavaScript渲染即可返回主要内容。如果页面依赖JS渲染,curl拿到的可能不是用户看到的内容,此时应额外保存一份浏览器渲染后的DOM,并注明“渲染后”,不要与原始HTML混为一谈。
判断结果时看两点:响应头里的状态码是否为200,以及X-Robots-Tag是否包含noindex。如果状态码是301或302,说明你保存的不是最终页面,需要继续跟踪跳转后再保存。
改动完成后,不要立刻下结论。按以下顺序对比:
noindex。Last-Modified和正文关键段落,确认改动确实生效。site:观察收录状态,记录时间。如果收录时间查询结果没变,可能是百度尚未重新抓取,不一定是改动无效。这里要区分“可能原因”和“已经定位的原因”。收录消失可能由noindex、抓取限制、服务器返回异常、页面被合并等多种因素造成,不能只凭一个现象断言唯一原因。只有当你保存的响应头或robots.txt明确显示对应限制时,才能说已经定位。
留档不能保证百度一定重新收录,也不能保证收录时间查询结果按预期变化。它解决的是“改动后能否复盘”的问题,而不是“改动一定有效”的问题。不同搜索引擎支持情况须分别核查,百度侧的观察记录不能直接套用到其他引擎。
下一步:在动手改任何标题、正文或robots之前,先为待改URL建一个日期文件夹,放入原始HTML、响应头、robots.txt、sitemap和一条site:观察记录。改完后用同一套文件逐项对比,再决定是继续修改还是等待重新抓取。