Migrate domains
Use this as a reference, not a required sequence. Adapt the approach and code to suit the app and the user’s needs.
Separate the changes
| Change | Controls |
|---|---|
| Vercel project domain | Which deployment serves the hostname |
| DNS hosting | Who manages DNS records |
| Registrar transfer | Registration, renewal, billing |
| Redirects | Where old URLs send visitors |
A site can run on Vercel while its DNS and registrar remain elsewhere.
Prepare and connect
Record the current registrar, DNS provider, records, and old app URL. Include apex, www, mail, and verification records. Agree the canonical hostname and path before changing callbacks or asset paths.
Run Vercel CLI from the linked project, or use Project Settings → Domains:
vercel domains add example.com
vercel domains inspect example.comUse the actual DNS records Vercel reports, not copied IP addresses from an old tutorial. Update them with the current DNS provider and complete ownership verification. You do not need to move nameservers or transfer registration simply to connect the site.
If DNS hosting is also moving, copy all existing records and handle DNSSEC correctly before changing nameservers. If registration is explicitly moving, track its separate approval, completion, renewal, and contact-privacy status.
Redirects and old URLs
Set the preferred apex/www redirect in Vercel’s domain settings. For app route redirects, use the framework or Vercel redirects, preserving paths and query parameters. Do not use a broad redirect that captures APIs or login callbacks.
To redirect val.run URLs, add redirects once the migrated app is verified.
Verify and recover
Inspect the domain again, then test HTTPS, both hostnames, deep links, queries, callbacks, and email delivery. Check private protection on custom and generated URLs.
Keep prior DNS/routing values and the working source version. If users have written new data on Vercel, reconcile it before rolling back. Remove temporary domains after verification.
Last updated