This is a research guide based on cited documentation. It is not a report of firsthand testing. Our editorial method

What TTL actually controls

RFC 1035 defines the TTL field as the time interval that a resource record may be cached before the source of the information should again be consulted. It is an instruction attached to each answer, and it is read at the moment a resolver fetches the record. That detail drives everything else in this guide: a resolver that cached your A record yesterday with a one-day TTL holds the instruction it received yesterday, not the shorter value you set this morning.

Cloudflare states the trade-off plainly on its TTL reference page: a longer TTL also means that updates to your records take longer to go into effect. Lowering TTL before a move is therefore not about the cutover moment itself. It is about making sure every cached copy that exists at cutover was fetched under the short TTL, so that the change you make is picked up within minutes instead of hours.

For a course or membership site this matters more than for a brochure site. During the window when some visitors reach the old host and some reach the new one, a student can complete a lesson, or a member can renew, on a server whose database you are about to abandon.

The timing math

The rule is simple arithmetic: the earliest safe cutover time is the moment you lowered the TTL plus the old TTL value. If the A record currently carries a TTL of 86400 seconds (one day) and you lower it to 300 at 09:00 on Monday, a resolver that cached it at 08:59 can keep the old answer until 08:59 on Tuesday. Cutting over on Monday afternoon would leave those visitors on the old host for most of a day.

After the change, the maximum staleness drops to the new TTL. With 300 seconds, a resolver that respects the TTL should ask again within five minutes. Add a margin to both numbers, because you do not control exactly when each resolver last refreshed.

Current TTLLower it no later thanWorst-case stale window after cutover (new TTL 300)
300 seconds (5 minutes)Already short; no change neededAbout 5 minutes
3600 seconds (1 hour)At least 1 hour before; the day before is easierAbout 5 minutes
14400 seconds (4 hours)At least 4 hours beforeAbout 5 minutes
86400 seconds (1 day)At least 24 hours before; 48 hours gives marginAbout 5 minutes

Cloudflare: DNS-only versus proxied records

On Cloudflare, a TTL of Auto is set to 300 seconds. For DNS-only records Cloudflare lets you choose a TTL between 60 seconds (non-Enterprise) or 30 seconds (Enterprise) and 1 day. Cloudflare says DNS queries for DNS-only records resolve to the record's actual origin IP address, so the timing math above applies to them directly.

Proxied records behave differently. Cloudflare documents that a DNS query to a proxied record is answered with Cloudflare anycast IP addresses, and that all proxied records have a TTL of Auto, which is set to 300 seconds. Because the public answer is a Cloudflare address, moving your origin from the old host to the new one does not change what resolvers see. The switch happens inside Cloudflare when you edit the origin address on the proxied record, and lowering TTL in advance does nothing useful for that record.

This is why a migration checklist should start by listing every record that will change and marking whether it is proxied. A site whose www and apex records are proxied, but whose mail or API subdomain is DNS-only, needs the TTL step only for the DNS-only records.

What TTL cannot control

TTL applies to records inside your zone. It does not speed up a nameserver change, which is made at the registrar. Cloudflare's setup guide tells you to wait up to 24 hours while your registrar updates your nameservers, and to turn DNSSEC off at the registrar before replacing nameservers because changing nameservers while DNSSEC is active can cause the domain to become unreachable. If your move also changes DNS providers, plan for that longer window separately; the DNSSEC side is covered in the nameserver migration check guide.

TTL is also a request to caches, not a guarantee about every client. Treat the stale window as a minimum, keep the old host serving the site until traffic there stops, and decide in advance what happens to any writes it receives. For a membership site the safest answer is usually a short write freeze: put the old site into maintenance mode at cutover so no new orders, renewals, or lesson completions land in the old database.

  • Lowering TTL does not change answers already cached under the old value.
  • Proxied Cloudflare records hide the origin; origin moves do not touch public DNS.
  • Nameserver changes follow the registrar's timeline, not your record TTLs.
  • Old-host traffic after cutover is a data problem, not only a DNS problem.

A step-by-step TTL plan

Use this sequence for a planned host move where the DNS provider stays the same. Write each time and value into the cutover worksheet so the rollback owner can see what was changed and when.

  • Two to three days before: export the zone and record every record that will change, its current value, its current TTL, and whether it is proxied.
  • At least one old-TTL period before cutover (plus margin): lower the TTL on the DNS-only records that will change, for example to 300 seconds.
  • Confirm the new TTL is being served by querying your authoritative nameservers directly.
  • At cutover: freeze writes on the old site, run the final data sync, then change the record values.
  • For the next hour: watch old-host access logs; traffic there should taper off within roughly the new TTL.
  • After the site is stable for a day or two: raise TTLs back to your normal value, since short TTLs only buy faster changes.

Questions before you decide

Can I just set the TTL to 60 seconds permanently?

On a non-Enterprise Cloudflare plan, 60 seconds is the lowest DNS-only TTL Cloudflare offers. A permanently short TTL is not required for a migration; it only needs to be short during the window when you expect to change records. Raise it again after the move is stable.

My site records are orange-clouded on Cloudflare. Do I need to lower TTL?

Not for those records. Cloudflare answers proxied records with its own anycast addresses and a fixed Auto TTL of 300 seconds, so changing the origin IP does not change the public DNS answer. Lower TTL only on DNS-only records that will change.

Sources & verification

Product details and prices can change. Check the linked provider before buying.

  1. IETF: RFC 1035, Domain names - implementation and specification Accessed 13 Oct 2026
  2. Cloudflare: Time to Live (TTL) Accessed 13 Oct 2026
  3. Cloudflare: Proxy status Accessed 13 Oct 2026
  4. Cloudflare: Full setup Accessed 13 Oct 2026

Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.

Your decision at a glance

Compare the options

Full comparison

Documentation-based guidance. No tested ranking or performance score.

Managed VPS

KnownHost

Consider it for
Consider KnownHost Basic VPS when you need a specific server configuration and clearly defined management support. It was advertised from $43.25 per month; confirm the billing term and full quote.
Starting cost
Basic managed VPS advertised from $43.25/month on 2026-09-15; confirm term and full invoice
Before you choose
Not for undiagnosed application bottlenecks or sites a shared plan already covers. No course-capacity or migration test is claimed here.

Checked 15 Sep 2026 · Pricing source

View KnownHost plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Hosting

Liquid Web

Consider it for
Use Liquid Web when the job is a defined managed-server responsibility and the quoted plan lists which server tasks they own versus yours.
Starting cost
Quote-dependent; VPS commonly $10–$100 and managed configurations can exceed $100 per Liquid Web's cost explainer (2026-09-15)
Before you choose
Not a fit until the failing component is identified. Management does not include application debugging unless the written scope says so.

Checked 15 Sep 2026 · Pricing source

View Liquid Web plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Managed WordPress

Kinsta

Consider it for
Use Kinsta Single 20GB, listed at $35/month, when a WordPress course site needs published PHP-capacity controls and a staging rehearsal.
Starting cost
Single 20GB listed $35/month on 2026-09-15; first-month promotions and annual billing change the cash invoice
Before you choose
Do not treat visitor allowances as class concurrency. No plan here is verified for a specific learner count.

Checked 15 Sep 2026 · Pricing source

View Kinsta plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Managed WordPress

WP Engine

Consider it for
Use WP Engine Essential when the quoted plan covers your plugin stack, membership cache rules, and an isolated staging copy.
Starting cost
Essential 1-site card displayed $336/year on 2026-09-15 with promotional first-year pricing; confirm undiscounted checkout
Before you choose
Skip if you cannot rehearse membership access and payments at the destination. No measured speed advantage is claimed.

Checked 15 Sep 2026 · Pricing source

View WP Engine plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Shared hosting

SiteGround

Consider it for
Use SiteGround StartUp, advertised at $2.99/month for a prepaid first 12 months then $17.99/month, when one WordPress site needs shared hosting rather than a server you administer.
Starting cost
StartUp first-term $2.99/mo prepaid 12 months, renews $17.99/mo on 2026-09-15 (world page: ex. VAT); 1 website, 10GB, ~10,000 visits marketing estimate
Before you choose
Visit marketing estimates are not class concurrency. Renewal is $17.99/mo after the prepaid term. No course-capacity test is claimed.

Checked 15 Sep 2026 · Pricing source

View SiteGround plans

Affiliate link: we may earn a commission on an eligible purchase. Link disclosure

Cloud VMs

DigitalOcean

Consider it for
Use a DigitalOcean Droplet when you will administer a cloud VM, not when you need managed WordPress hosting.
Starting cost
Basic Droplet listed from $4.00/mo (512 MiB, 1 vCPU, 10 GiB SSD, 500 GiB transfer) on 2026-09-15; 3 static sites listed free. Confirm live checkout and bandwidth overage.
Before you choose
A listed VM size is not a WordPress or course-capacity claim. You own OS, updates, backups, and mail unless a separate product says otherwise. The static-site free tier is not a course site.

Checked 15 Sep 2026 · Pricing source

View DigitalOcean plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure