Documentation sectionsBrowse
HomeDocsServerless custom domains

Customer documentation

Serverless custom domains

Attach domains to Vercel-backed serverless sites, copy DNS records, verify connection, and fix pending DNS states.

Serverless custom domains

  1. 1Open Client portal, Serverless.
  2. 2Select the deployed site.
  3. 3In Custom domains, enter the domain, such as app.example.com.
  4. 4Copy the DNS records shown by the portal.
  5. 5Add those records at your DNS provider.
  6. 6Return to the portal and click Verify.
Apex domain
A root domain like example.com usually needs Vercel A records shown by the portal.
Subdomain
A name like app.example.com usually needs a Vercel CNAME record shown by the portal.
TXT record
Some domains may show a TXT record for ownership verification.
Pending DNS
The portal has the domain attached, but DNS is not pointing correctly yet.
Connected
DNS is configured and the domain is serving the serverless site.
Remove domain
Disconnects the custom domain from the serverless site. DNS at your provider may still need cleanup.

Domain connection map

Generated URL
Every successful deployment gets a generated public URL first. Test this before adding a custom domain.
Custom domain
A domain you own, such as example.com or app.example.com, attached to the serverless site.
DNS provider
The company or dashboard where your DNS records are managed. This may be your registrar, Cloudflare, GoDaddy, Namecheap, or another provider.
Apex/root domain
The bare domain, such as example.com. Vercel commonly uses an A record for this type of host.
Subdomain
A name under the root domain, such as app.example.com. Vercel commonly uses a CNAME record for this type of host.
Verification
The portal checks whether DNS is pointing correctly. Pending DNS means records still need work or time.

Vercel DNS records

Copy the exact DNS records shown in the portal. Vercel record values can vary by domain and project, so treat the portal values as the source of truth.

A record
Used for many apex/root domains. Vercel often uses 76.76.21.21, but you should copy the exact value shown in the portal.
CNAME record
Used for many subdomains such as www.example.com or app.example.com. Vercel commonly uses a vercel-dns.com target, but copy the exact portal value.
TXT record
May be required to verify domain ownership or prove control of the domain.
Conflicting records
Remove old A, AAAA, or CNAME records for the same host when they point somewhere else. A host should not point to cPanel and Vercel at the same time.
Cloudflare proxy
If verification keeps failing, temporarily set the record to DNS only while Vercel verifies the domain.
Propagation time
DNS often updates quickly, but some providers and resolvers can take hours. Vercel notes DNS changes can take up to 24 hours.

Copy DNS records correctly

  1. 1Open the serverless site detail page.
  2. 2Add the custom domain.
  3. 3Copy each Type, Name, and Value exactly as shown.
  4. 4Open the DNS provider for that domain.
  5. 5Add or update the matching records.
  6. 6Remove conflicting A, AAAA, or CNAME records for the same host when needed.
  7. 7Preserve unrelated email records such as MX, SPF, DKIM, and DMARC.
  8. 8Wait for DNS propagation, then click Verify in the portal.

Apex vs subdomain examples

example.com
Apex/root domain. Usually use A records shown by the portal.
www.example.com
Subdomain. Usually use a CNAME record or redirect to the apex domain depending on the desired setup.
app.example.com
Subdomain. Usually use a CNAME record shown by the portal.
Keep one primary
Choose whether the main site should live at example.com, www.example.com, or app.example.com.
Avoid duplicate confusion
Do not point the same host to cPanel and serverless at the same time.

Email DNS warning

Do not break email records
Vercel-backed serverless domains are for website traffic. Vercel does not provide your mailbox service. If your domain also uses email, preserve MX, SPF, DKIM, and DMARC records unless you are intentionally changing mail providers.

HTTPS certificates

Automatic HTTPS
After DNS verifies, Vercel provisions HTTPS for the connected domain. You usually do not upload a certificate manually.
Pending certificate
If DNS is wrong, certificate issuance can stay pending. Fix the DNS records first, then verify again.
Mixed content
If the page loads but shows browser warnings, check that images, scripts, fonts, and API calls use https:// URLs.
Old hosting cache
If the domain still shows the old site, clear CDN/browser cache and confirm DNS no longer points at the previous host.

Serverless troubleshooting

Serverless locked
You need an active, approved, or completed hosting order before Serverless appears.
New deployment disabled
You may have reached the site limit for the account.
Repository not found
Confirm the GitHub URL is valid and public, or use ZIP upload.
Branch not found
Leave Branch blank for the default branch or enter the exact branch name.
Build fails
Open Build logs, copy the relevant error lines, and check framework, root directory, commands, Node version, and env vars.
Live URL missing
Refresh the site detail page. If the build is still queued or building, wait for it to finish.
Domain will not verify
Confirm records were copied exactly, remove conflicting DNS records, wait for propagation, then click Verify again.
Site should be offline
Use the site actions to remove the deployment, then remove or change DNS records at your provider.