排除缓存假象的核心做法是:不要只看一次页面输出,而是用带缓存规避参数的请求、原始HTML源码、响应头和不同网络环境交叉验证。内链策略的调整经常表现为“链接没变”“新链接没出现”“旧链接还在”,这些现象既可能是缓存,也可能是抓取未更新、模板未发布或CDN未刷新。多人协作时,交付验收要明确谁负责清缓存、谁负责验证源站、谁负责确认线上HTML,否则最容易返工。
内链通常经过浏览器缓存、CDN或反向代理缓存、服务端页面缓存与应用层对象缓存。不同层级的判断方法不同:
判断顺序建议从源站到边缘,再从边缘到浏览器。反过来查容易把“源站没更新”误判成“CDN没刷新”。
以下步骤适合多人协作交付,每一步都留下可复核的结果:
curl -s https://example.com/page | grep "目标链接文字"。如果源站有、线上没有,问题在缓存层或发布链路。curl -s "https://example.com/page?cachebust=20240601"。若带参数能看到新链接、不带参数看不到,基本可定位为缓存命中差异。Cache-Control、Age、X-Cache、CF-Cache-Status等字段。它们能说明是否命中缓存、缓存了多久,但不同服务商字段不同,需按实际响应判断。href,而不是只看渲染后的可见文字。前端渲染、懒加载或脚本注入都可能让“看起来没变”和“源码已变”同时成立。如果第2步和第3步结果一致,且源站与线上一致,缓存假象基本可以排除,应转向抓取、索引或内链本身的问题。需要提醒的是,robots.txt的抓取限制不等于可靠的索引移除;站点地图也不保证收录。内链变更后是否被搜索引擎采用,要按不同搜索引擎分别核查,不能用一个平台的结果推断全部。
从交付结果倒推,内链策略变更至少要留下四类信息:
常见返工原因是只验了浏览器可见结果。浏览器可能命中本地缓存,也可能执行了旧版脚本。更稳妥的验收对象是原始HTML和响应头,而不是渲染后的页面外观。
假设某篇文章应新增一条指向栏目页的内链,发布后线上仍看不到。按下面顺序判断:
这个例子的适用条件是:你能访问源站环境,且线上响应头可读取。如果只有后台编辑权限、看不到源站和响应头,至少要用带缓存规避参数的请求与无痕窗口交叉比对,并把“无法确认源站”作为验收风险明确记录。
下一次做内链调整时,先在任务单里加上“源站HTML验证、线上响应头、缓存规避请求、最终验收人”四项。发布完成后按这四项逐条勾选,再决定是否需要刷新缓存或转查抓取问题。这样能减少“改了但没生效”的反复沟通,也能让接手的人凭证据继续排查。