Custom Domain — Connect Your Domain to Netlify
Connect a custom domain to your Dax Pro site on Netlify: choose a domain, point DNS records, enable HTTPS with Let's Encrypt, and verify the site and Decap CMS work at your domain. Includes troubleshooting for DNS propagation and common misconfigurations.
Why a Custom Domain Matters
The default Netlify URL (your-site.netlify.app) works. It is free, it is HTTPS, and it is stable. But it has three limitations:
1. It is not memorable. Readers remember example.com, not amazing-name-123456.netlify.app.
2. It does not build brand trust. A real domain signals a real business. A Netlify subdomain signals a project.
3. It does not help SEO. Search engines treat your-site.netlify.app as a subdomain of Netlify, not as your own site. Your pages rank for your brand only if readers search for your-site.netlify.app directly, which they will not.
A custom domain fixes all three. It costs $10–$20 per year (depending on the TLD and registrar). It is the single highest-value upgrade you can make to a deployed Dax Pro site.
This chapter walks through connecting a custom domain to your Netlify deployment:
1. Choosing a domain — registrars, TLDs, naming tips
2. Purchasing a domain — step by step
3. Adding the domain to Netlify — one click, one input
4. Configuring DNS — the actual connection between domain and Netlify
5. Enabling HTTPS — automatic with Netlify
6. Verifying everything works — site, admin panel, emails
7. Troubleshooting — DNS propagation, misconfigured records, HTTPS failures
For sites on other hosts (Vercel, Cloudflare, VPS), the DNS concepts are the same. The specific records differ. Refer to your host's documentation for the exact records.
Part 1 — Choosing a Domain
Registrars
Popular domain registrars:
| Registrar | Price Range | Notes |
|---|---|---|
| Cloudflare Registrar | At-cost (~$10/year for .com) |
No markup. Requires Cloudflare DNS. Best for Cloudflare users |
| Namecheap | $10–$15/year for .com |
Free WHOIS privacy. Good UI |
| Porkbun | $10–$12/year for .com |
Free WHOIS privacy. Fast checkout |
| Google Domains | Closed (sold to Squarespace) | Do not use |
| GoDaddy | Higher prices, aggressive upsells | Avoid unless already invested |
| Netlify Reseller | $20/year for .com |
Integrated with Netlify, one less step |
For most users, Cloudflare Registrar or Namecheap is the best combination of price, features, and reliability.
TLD Choices
For a business or personal brand:
.com— most trusted, most expensive, mostly taken.dev— developer-focused, requires HTTPS (which Netlify provides).io— startup and tech community, expensive.co— alternative to.com, moderate pricing.net— acceptable but second choice to.com.tech,.studio,.agency,.design— descriptive, usually available.xyz,.top,.click,.loan— associated with spam.tk,.ml,.ga,.cf,.gq— free TLDs, often blocked by email providers and browsers- Keep it short. Under 15 characters if possible. Long domains are hard to type and remember
- Avoid hyphens.
my-company-name.comreads awkwardly on phone calls.mycompanyname.comis better - Avoid numbers unless they are part of your brand (e.g.,
web3.dev) - Avoid trademarked words. Do not use
wordpress,google,netlify, or other brand names — this is trademark infringement - Check social handles first. If
mycompanyis available as a domain but taken on Twitter and GitHub, consider whether the mismatch matters - Say it out loud. If people cannot spell it after hearing it once, pick something else
- Pending → Active → Ready
ada.ns.cloudflare.combob.ns.cloudflare.com- Type: A
- Name:
@(or the apex domain) - Value:
75.2.60.5(Netlify's load balancer IP) - TTL: Auto
- Type: CNAME
- Name:
www - Value:
your-site.netlify.app - TTL: Auto
For a niche site:
Avoid:
Naming Tips
Part 2 — Purchasing a Domain
The steps below assume Cloudflare Registrar, which is the cheapest option for Cloudflare users. Namecheap and Porkbun are similar.
Step 1: Create a Cloudflare Account
1. Open cloudflare.com and click Sign up
2. Enter your email and password
3. Confirm your email
4. You land on the Cloudflare dashboard
Step 2: Search for a Domain
1. In the Cloudflare dashboard, find Domain Registration → Register Domains
2. Enter your desired domain name
3. Cloudflare shows availability and pricing
4. If the domain is available, click Purchase
5. If the domain is taken, try variations: .dev, .co, add a word, add a hyphen
Step 3: Complete the Purchase
1. Enter payment details
2. Enable WHOIS Privacy — this hides your personal contact info from public WHOIS lookup. Cloudflare includes it free
3. Auto-renew — recommended for production domains. If the domain expires, your site goes down
4. Confirm and pay
5. The domain is now yours for one year
Step 4: Cloudflare Activates the Domain
New domains on Cloudflare take a few minutes to become active. The dashboard shows status changes:
Wait until the status is Active. This usually takes 5–10 minutes.
Step 5: Note the Nameservers
Cloudflare assigns two nameservers to your domain, like:
Since Cloudflare is both your registrar and your DNS provider, you do not need to update nameservers manually — Cloudflare already points the domain at its own nameservers. If you purchased through Namecheap or Porkbun, you would need to update nameservers to Cloudflare's.
Part 3 — Add the Domain to Netlify
Once you own the domain, tell Netlify that it should serve your site at that domain.
Step 1: Open Netlify Domain Management
1. Open app.netlify.com and log in
2. Click your site from the list
3. Click Site configuration in the left sidebar
4. Click Domain management
Step 2: Add a Custom Domain
1. Click Add a domain
2. Enter your domain — example.com (no www, no https://, no trailing slash)
3. Click Verify
4. Netlify checks whether the domain points to Netlify. It does not yet, so Netlify offers two paths:
- Option A: set up a Netlify DNS zone (recommended if you use Cloudflare Registrar)
- Option B: configure DNS records manually at your DNS provider
5. Choose based on your DNS setup
Option A — Netlify DNS (Recommended for Cloudflare Users)
Netlify DNS means Netlify manages your DNS records. This is the easiest path.
1. Click Set up Netlify DNS
2. Netlify shows four nameservers, like:
- dns1.p01.nsone.net
- dns2.p01.nsone.net
- dns3.p01.nsone.net
- dns4.p01.nsone.net
3. Copy these nameservers
4. Go to Cloudflare dashboard → DNS → Records for your domain
5. Update the nameservers to Netlify's four nameservers
- Note: Cloudflare Registrar does not allow changing nameservers away from Cloudflare. If you used Cloudflare Registrar, use Option B instead
6. Return to Netlify and click Verify
If you used Cloudflare Registrar, use Option B. Cloudflare Registrar is locked to Cloudflare DNS. Netlify DNS is not compatible.
Option B — Manual DNS Records
If you cannot use Netlify DNS (e.g., Cloudflare Registrar), add the records manually.
Netlify shows two records to add:
Record 1 — Apex domain:
Record 2 — WWW subdomain:
Steps:
1. In Netlify, note both records
2. Open Cloudflare dashboard → DNS → Records
3. Click Add record for the A record
4. Fill in:
- Type: A
- Name: @
- Content: 75.2.60.5
- Proxy status: DNS only (gray cloud, not orange)
5. Click Save
6. Click Add record for the CNAME
7. Fill in:
- Type: CNAME
- Name: www
- Content: your-site.netlify.app
- Proxy status: DNS only (gray cloud)
8. Click Save
9. Return to Netlify and click Verify
Important: set Cloudflare proxy status to DNS only (gray cloud), not Proxied (orange cloud). Netlify provides its own CDN and SSL. Cloudflare's proxy would break the SSL handshake between Netlify and the browser. If you want Cloudflare's proxy, use Cloudflare Pages instead of Netlify.
Step 3: Wait for Verification
Netlify checks DNS records periodically. When the records propagate (5 minutes to 1 hour, sometimes up to 24 hours), Netlify marks the domain as Verified.
You will receive an email when verification completes. You can also check by refreshing the Domain management page in Netlify.
Part 4 — HTTPS Setup
Netlify provisions HTTPS certificates automatically via Let's Encrypt. The process begins after the domain is verified.
Step 1: Watch for HTTPS Certificate
1. In Netlify, Site configuration → Domain management
2. Find your domain in the list
3. Watch for the HTTPS column to show Let's Encrypt certificate
4. This takes 5–30 minutes after DNS verification
Step 2: Enable Force HTTPS
After the certificate is issued:
1. Scroll to HTTPS
2. Click Force HTTPS
3. Netlify redirects all HTTP traffic to HTTPS
This step is optional but recommended. Without it, visitors can access your site over unencrypted HTTP. With it, all traffic is encrypted.
Step 3: Verify HTTPS
1. Open https://yourdomain.com in a browser
2. Confirm the padlock icon in the address bar
3. Click the padlock, verify the certificate is issued to your domain
4. Visit http://yourdomain.com — should redirect to https://yourdomain.com
Part 5 — Verifying Everything Works
After DNS verifies and HTTPS is active, verify the full setup.
Site Verification
1. Open https://yourdomain.com — homepage loads
2. Navigate to /about/, /posts/, /services/, /contact/ — all pages load
3. Click navigation links — no 404s
4. Check the console (F12) for errors — should be none
5. Test on mobile (resize browser or actual phone) — layout responsive
Decap CMS Verification
1. Open https://yourdomain.com/admin/
2. Log in with your Identity credentials
3. Navigate the collections — all appear
4. Edit a field, click Publish
5. Wait 30–60 seconds
6. Open https://yourdomain.com in a new tab — the change appears
7. Check the Netlify Deploys tab — a new build ran
Email Verification
If you use Formspree for the contact form:
1. Navigate to /contact/
2. Submit a test submission
3. Check the recipient inbox — the email arrives
4. Check the Formspree dashboard — submission appears
5. If Formspree requires domain verification, verify your custom domain in Formspree
SEO Verification
1. Open opengraph.xyz
2. Enter https://yourdomain.com
3. Confirm the preview shows your title, description, and image
4. Check the social preview for a post URL — the post image, title, and description appear
WWW and Non-WWW
1. Open https://www.yourdomain.com — should redirect to https://yourdomain.com (or vice versa, depending on your primary domain setting)
2. Open https://yourdomain.com — loads without redirect
Netlify sets one as the primary domain. The other redirects. Both work; one is canonical.
To change which is primary:
1. In Netlify → Domain management
2. Find both example.com and www.example.com in the list
3. Click the three-dot menu on the one you want as primary
4. Choose Set as primary domain
Part 6 — Update Site Metadata
After the custom domain is live, update _data/metadata.yaml so canonical URLs and social previews use the new domain.
Before
url: "https://your-site.netlify.app"
After
url: "https://yourdomain.com"
1. Open Decap CMS at https://yourdomain.com/admin/
2. Click ⚙ Settings → Site Metadata
3. Change URL to https://yourdomain.com
4. Click Publish
5. Wait for the rebuild
6. Verify the canonical URL: view source on any page, confirm uses the new domain
Why this matters: the canonical URL tells search engines which domain to index. If it says netlify.app while the site is at yourdomain.com, search engines may index the wrong domain or see duplicate content.
Update Formspree
If you use Formspree, update the verified domain:
1. Open formspree.io and log in
2. Open your form
3. Go to Settings → Domains
4. Add yourdomain.com as a verified domain
5. Follow the DNS verification steps (TXT record or HTML)
6. Once verified, remove your-site.netlify.app if it was added
Without this step, submissions from the custom domain may be marked unverified or rejected.
Update Social Links
If your metadata.yaml has a social section with your old URL, update those too:
social:
- name: "GitHub"
url: "https://github.com/your-username"
- name: "Gumroad"
url: "https://creativitaz.gumroad.com/l/dax-pro"
# add your new domain if applicable
Part 7 — Troubleshooting DNS and HTTPS
DNS Does Not Verify
Symptom: Netlify shows "Awaiting external DNS" for hours.
Causes and fixes:
75.2.60.5 and the CNAME points to your-site.netlify.app. No typos.dev, .app) require DNS to be set up before they resolve. Add basic records first, then Netlify's recordsCheck propagation:
1. Open dnschecker.org
2. Enter your domain
3. Select A record
4. Confirm the record resolves to 75.2.60.5 from multiple global locations
If dnschecker shows the correct IP worldwide but Netlify still says "Awaiting," wait 10 more minutes. Netlify checks every few minutes.
HTTPS Certificate Fails
Symptom: HTTPS column shows "Certificate provisioning failed."
Causes and fixes:
letsencrypt.org. Check with your registrar. Cloudflare lets you add CAA records in the DNS tabTo retry:
1. In Netlify → Domain management
2. Click the three-dot menu on the domain
3. Choose Renew certificate
If the certificate still fails after 30 minutes, contact Netlify support with the domain name and DNS setup details.
Site Loads but Admin Fails
Symptom: https://yourdomain.com/ loads, but https://yourdomain.com/admin/ shows an error or blank page.
Causes and fixes:
public/admin/config.yml for a base_url that points to the old Netlify domain. If you set it earlier for the subdomain strategy, update it to the new custom domainTo fix:
1. Open public/admin/config.yml
2. Confirm backend.name is git-gateway and backend.branch is main
3. If base_url or site_domain are present, update them to the custom domain or remove them
4. Rebuild and redeploy
WWW Does Not Redirect
Symptom: www.yourdomain.com loads a broken page or the Netlify default, not your site.
Causes and fixes:
www → your-site.netlify.appwww.yourdomain.com. Wait for it, or set yourdomain.com as primary (which redirects www to apex)Email Not Arriving
Symptom: contact form submissions succeed but no email arrives.
Causes and fixes:
Part 8 — What to Do After the Domain Is Live
Once the custom domain is verified, HTTPS is active, and the site works, do these five tasks:
1. Update Bookmarks
Replace all bookmarks from your-site.netlify.app with yourdomain.com. If you bookmarked the admin panel, update that too.
2. Update Social Profiles
If you have social profiles with a URL field, update them:
3. Submit to Search Engines
1. Google Search Console — verify ownership, submit sitemap https://yourdomain.com/sitemap.xml
2. Bing Webmaster Tools — same
3. Yandex Webmaster — optional for CIS/Russia audiences
Verification methods:
(add via a template edit — developer task)The sitemap is generated automatically by Dax Pro. It lists every page and post.
4. Set Up Analytics (Optional)
Dax Pro does not include analytics by default. If you want to track visitors:
For most small sites, analytics is optional. If you add it, place the script in templates/layouts/base.dax (developer task).
5. Configure Backups
Your GitHub repository is the backup. Confirm:
git push any local changes)main)~/Projects/dax-pro) that you can restore fromOptional: download a ZIP of the repository from GitHub every few months as an extra backup. Or enable GitHub's archive-on-delete feature.
What You Have Now
After this chapter, you have:
www subdomainshttps://yourdomain.comhttps://yourdomain.com/admin/metadata.yaml so canonical URLs and social previews use the custom domainThe site is now production-ready at a custom domain. The next chapter covers the Developer Guide — templating, layouts, partials, and the DAX engine internals for developers who want to customize beyond what the theme provides.
→ Continue to Developer Guide