Introduction

A migration can move the website successfully while a Cloudflare Pages project still serves the old site. DNS may already point through Cloudflare and the new build may exist, but the live custom domain remains attached to the previous Pages project or deployment, so visitors still see the outdated version.

Treat this as a Pages binding problem instead of a generic DNS outage. Start by checking which Pages project and deployment currently owns the live custom domain, because Cloudflare-hosted migrations can fail even when public DNS looks correct if the domain is still attached to the older Pages target.

Symptoms

  • A Cloudflare Pages project still serves the old site after migration
  • The new build exists, but the live custom domain still shows the previous version
  • Preview or direct project URLs look correct while the production domain does not
  • DNS appears correct in Cloudflare, but content still comes from the old Pages deployment
  • One hostname shows the new site while another attached custom domain still shows the old project
  • The issue started after replatforming, project replacement, or custom-domain cutover

Common Causes

  • The custom domain is still attached to the old Pages project
  • The wrong Pages deployment remains active for the production hostname
  • A new project was created, but production traffic still points at the previous Pages binding
  • Cutover validation focused on DNS instead of project-level hostname ownership
  • One domain or subdomain was moved while another still targets the older Pages setup
  • Teams confirmed the new build existed but did not verify which project served the live hostname

Step-by-Step Fix

  1. Check the exact hostname that still shows the old site and confirm which Cloudflare Pages project currently serves it, because project ownership matters more than assumptions about the latest build.
  2. Compare the live custom-domain attachment with the intended post-migration Pages project, because the domain may still belong to the previous project even though the new one is ready.
  3. Review the active production deployment for the target project, because a correct project can still show old content if the wrong deployment remains live.
  4. Compare the custom domain behavior with the direct Pages project URL or preview URL, because differences between them often reveal a binding or production-selection problem rather than DNS failure.
  5. Move or correct the custom-domain attachment at the actual Pages control point, because changing only DNS will not fix a hostname still owned by the wrong project.
  6. Confirm the intended new project now serves the production hostname and that the old project no longer owns the domain, because partial cutovers can leave traffic split across projects.
  7. Retest the live site after the binding change and verify the content now matches the intended deployment, because seeing the correct DNS record alone does not prove the Pages target changed.
  8. Review related custom domains or subdomains migrated in the same change, because Pages hostname ownership mistakes often affect more than one attached domain.
  9. Document the final Pages project, deployment, and custom-domain mapping after recovery, because Cloudflare-hosted cutovers are easy to misread when DNS and project bindings change at the same time.