Performance

Plan a CDN migration checklist for a site with no CDN

A scenario prompt for moving a WooCommerce site with geo-targeted pricing from origin-only serving onto a CDN, sequencing DNS, cache-control rules, and purge strategy without breaking dynamic pages.

Works with Claude / GPT390 uses 4.1

The prompt

performance-cdn-migration-checklist
A site currently serves every request, images, CSS, JS, and HTML, directly from its
origin server with no CDN in front of it. The plan is to put Cloudflare (or BunnyCDN)
in front of it to cut load times for international visitors.

SITE DETAILS: [WooCommerce store, hosted on a Kinsta VPS-style plan, DNS currently
managed through the registrar, SSL via Let's Encrypt through the host]
COMPLICATION: [a geo-targeted pricing plugin adjusts displayed prices by visitor
country, and there's a "recently viewed products" widget that's per-session dynamic]

Build this as a migration checklist a consultant would hand to a client's dev team,
in the actual order steps need to happen, not a random feature list:
1. Sequence the DNS and SSL cutover first: moving nameservers to the CDN provider,
   re-issuing or confirming SSL certificate coverage, and setting a safe DNS TTL
   window before the change to avoid a slow rollback if something breaks.
2. Define what should and shouldn't be cached at the edge: static assets get long
   cache-control headers, but cart, checkout, and my-account pages need to bypass edge
   cache entirely or every customer risks seeing someone else's cart.
3. Call out the geo-pricing plugin by name as the highest-risk item: if pages showing
   geo-adjusted prices get cached at the edge without a proper Vary header or a
   no-cache rule, visitors could see the wrong country's price, which is worse than
   the slow load this migration is meant to fix.
4. Handle the "recently viewed products" widget: whether it needs an edge-cache
   exception too, or whether it can be refactored to load via a separate AJAX call so
   the surrounding page can still be cached.
5. Define the purge strategy for ongoing content updates: a webhook or plugin that
   purges CDN cache automatically on publish, versus relying on someone remembering to
   purge manually, which fails in practice within a month.

The step people skip on a first CDN migration is auditing which pages are secretly dynamic per visitor, and a geo-pricing plugin is exactly the kind of thing that looks fine in testing (from one location) and then shows the wrong price to someone in another country a week later. This checklist puts that risk before the DNS steps, on purpose.

List out any per-visitor personalization on the site (pricing, geo-redirects, A/B tests) before running this, since each one needs its own cache-bypass rule.