迁移后看到旧页面、旧样式或旧IP,先不要判断迁移失败。最可能的情况是你看到的是某一层缓存的副本,而不是新主机上的真实结果。排除假象的核心方法是:用带随机参数的URL绕过页面缓存,用无缓存请求头绕过CDN,再直接查询新主机的源站响应,最后逐层对比。只有源站返回的内容才是迁移是否成功的可靠依据。
WordPress主机迁移后,一个请求可能经过多个缓存层,每层都可能返回旧内容:
判断顺序应从最外层往最内层走:先排除浏览器,再排除CDN,再排除主机,最后排除WordPress插件。任何一层没排除,后面的结论都不可靠。
这是最关键的一步。在命令行执行:
curl -I -H "Cache-Control: no-cache" -H "Pragma: no-cache" https://你的域名/
如果要绕过CDN直接访问新主机源站,把域名换成新主机的IP,并带上Host头:
curl -I -H "Host: 你的域名" http://新主机IP/
看返回头里的几个信号:
X-Cache: HIT或cf-cache-status: HIT说明命中了CDN缓存,这条响应不能代表源站。X-Cache: MISS或BYPASS说明请求到了源站或回源了,可信度更高。适用条件:你需要知道新主机的源站IP,并且源站允许直接访问。如果源站只允许CDN回源,就改用CDN提供的缓存刷新功能,再重复上面的curl检查。
在浏览器打开:
https://你的域名/?nocache=20240101a
每次换一个不同的随机值。如果带参数时显示新内容,不带参数时显示旧内容,说明页面缓存层在按URL缓存,问题出在缓存,不是迁移。如果带参数仍然显示旧内容,继续检查CDN和主机层缓存。
验收信号:同一页面在带随机参数和不带参数两种情况下返回一致的内容,且与源站curl结果一致,才算排除页面缓存假象。
页面缓存清掉后仍显示旧标题、旧菜单或旧小工具,可能是对象缓存或数据库里还存着旧值。检查项:
wp_options表中的siteurl和home是否已改为新域名。多人协作时,建议在交付说明里写清楚:谁负责清CDN、谁负责清主机缓存、谁负责清WordPress插件缓存,以及每一步完成后用什么命令验证。这样能减少“我这边看是新的,你那边看是旧的”这类返工。
按顺序执行并记录结果:
判断结果:源站返回新内容、缓存层清理后前端一致,迁移才算真正完成。任何一层仍返回旧内容,都不能下迁移成功的结论。
下一步:把上面的curl命令和随机参数检查写成一份交付前的验证记录,每次迁移后由同一人执行并留档,避免多人协作时重复排查同一层缓存。