Custom Domains
Custom Domains
Section titled “Custom Domains”Configure custom domains for your podcast website on Cloudflare Pages, Netlify, or Vercel.
Cloudflare Pages
Section titled “Cloudflare Pages”Step 1: Add Domain
Section titled “Step 1: Add Domain”- Cloudflare Pages → Your project
- Click “Custom domains”
- Click “Set up a custom domain”
- Enter domain:
yourpodcast.comorwww.yourpodcast.com - Click “Continue”
Step 2: Configure DNS
Section titled “Step 2: Configure DNS”If domain is on Cloudflare DNS:
- DNS configured automatically ✅
- CNAME record added automatically
If domain is elsewhere:
Add CNAME record at your DNS provider:
Type: CNAMEName: @ (for root domain) or www (for subdomain)Value: your-project.pages.devTTL: Auto or 3600For apex domain (no www):
Some DNS providers require:
Type: CNAMEName: @Value: your-project.pages.devProxy: Enabled (if supported)Or use ALIAS/ANAME record (if supported):
Type: ALIASName: @Value: your-project.pages.devStep 3: SSL Certificate
Section titled “Step 3: SSL Certificate”Cloudflare provisions SSL automatically (5-10 minutes):
Check status:
⏳ Pending validation⏳ Pending certificate✅ ActiveForce HTTPS:
- Custom domains → Domain → “Always use HTTPS” → ON
Step 4: Update Site URL
Section titled “Step 4: Update Site URL”Update environment variable:
PUBLIC_SITE_URL="https://yourpodcast.com"In Cloudflare dashboard:
- Settings → Environment variables
- Edit
PUBLIC_SITE_URL - Change to your custom domain
- Save
- Trigger rebuild
Step 5: Redirect www
Section titled “Step 5: Redirect www”Redirect www → non-www (or vice versa):
Create Page Rule:
- Cloudflare Dashboard → Your domain
- Rules → Page Rules
- Add rule:
URL: www.yourpodcast.com/*Setting: Forwarding URL (301 - Permanent Redirect)Destination: https://yourpodcast.com/$1
Or use _redirects file:
https://www.yourpodcast.com/* https://yourpodcast.com/:splat 301Netlify
Section titled “Netlify”Step 1: Add Domain
Section titled “Step 1: Add Domain”- Site settings → Domain management
- Click “Add custom domain”
- Enter domain:
yourpodcast.com - Click “Verify”
Step 2: Configure DNS
Section titled “Step 2: Configure DNS”If domain is on Netlify DNS:
- Configured automatically ✅
If domain is elsewhere:
Add records:
# Root domainType: AName: @Value: 75.2.60.5 (Netlify's load balancer)
# www subdomainType: CNAMEName: wwwValue: your-site.netlify.appOr use CNAME (if supported):
Type: ALIAS/ANAMEName: @Value: your-site.netlify.appStep 3: HTTPS
Section titled “Step 3: HTTPS”Netlify provisions SSL automatically via Let’s Encrypt.
Enable HTTPS:
- Domain settings → HTTPS
- Toggle “Force HTTPS” → ON
Step 4: Update Site URL
Section titled “Step 4: Update Site URL”# In Netlify dashboardPUBLIC_SITE_URL="https://yourpodcast.com"Vercel
Section titled “Vercel”Step 1: Add Domain
Section titled “Step 1: Add Domain”- Project → Settings → Domains
- Enter domain:
yourpodcast.com - Click “Add”
Step 2: Configure DNS
Section titled “Step 2: Configure DNS”Add records at your DNS provider:
# Root domainType: AName: @Value: 76.76.21.21 (Vercel)
# www subdomainType: CNAMEName: wwwValue: cname.vercel-dns.comStep 3: Verify Domain
Section titled “Step 3: Verify Domain”- Vercel checks DNS records
- Wait for verification (5-10 minutes)
- Status changes to “Valid”
Step 4: SSL
Section titled “Step 4: SSL”Vercel provisions SSL automatically.
Step 5: Update Site URL
Section titled “Step 5: Update Site URL”# In Vercel dashboardPUBLIC_SITE_URL="https://yourpodcast.com"DNS Records Explained
Section titled “DNS Records Explained”CNAME Record
Section titled “CNAME Record”Points domain to another domain:
yourpodcast.com → your-project.pages.devPros:
- Simple setup
- Automatic updates
Cons:
- Some providers don’t support CNAME for root domain
A Record
Section titled “A Record”Points domain to IP address:
yourpodcast.com → 75.2.60.5Pros:
- Universally supported
- Works for root domain
Cons:
- IP address might change (rare)
ALIAS/ANAME Record
Section titled “ALIAS/ANAME Record”Like CNAME but works for root domain:
yourpodcast.com → your-project.pages.devPros:
- Works for root domain
- Automatic updates
Cons:
- Not all DNS providers support
Subdomain vs Root Domain
Section titled “Subdomain vs Root Domain”Root Domain (Apex)
Section titled “Root Domain (Apex)”yourpodcast.comPros:
- Shorter URL
- More professional
Cons:
- Requires ALIAS/ANAME support (or A record)
Subdomain
Section titled “Subdomain”www.yourpodcast.compodcast.yourdomain.comPros:
- Easy CNAME setup
- Universally supported
Cons:
- Slightly longer URL
Recommendation
Section titled “Recommendation”Use both:
yourpodcast.com (primary)www.yourpodcast.com (redirects to primary)Domain Verification
Section titled “Domain Verification”Verify Ownership
Section titled “Verify Ownership”Platforms verify you own the domain:
Cloudflare: Automatic (if using Cloudflare DNS)
Netlify: Add TXT record:
Type: TXTName: _netlifyValue: [verification token]Vercel: Add TXT record:
Type: TXTName: _vercelValue: [verification token]Check Propagation
Section titled “Check Propagation”DNS changes take time to propagate:
Check DNS:
# Check A recorddig yourpodcast.com
# Check CNAME recorddig www.yourpodcast.com
# Check from specific DNS serverdig @8.8.8.8 yourpodcast.comOnline tools:
Propagation time:
- Minimum: 5 minutes
- Typical: 30 minutes - 2 hours
- Maximum: 48 hours
SSL/HTTPS
Section titled “SSL/HTTPS”Automatic SSL
Section titled “Automatic SSL”All platforms provision SSL automatically:
- Cloudflare: Universal SSL (instant)
- Netlify: Let’s Encrypt (5-10 minutes)
- Vercel: Let’s Encrypt (5-10 minutes)
Force HTTPS
Section titled “Force HTTPS”Redirect HTTP → HTTPS:
Cloudflare:
- SSL/TLS → Edge Certificates → Always Use HTTPS → ON
Netlify:
- Domain settings → HTTPS → Force HTTPS → ON
Vercel:
- Automatic (no configuration needed)
Certificate Renewal
Section titled “Certificate Renewal”Automatically renewed before expiration:
- Let’s Encrypt: 90-day certificates, auto-renewed at 60 days
- Cloudflare: Auto-renewed
Multiple Domains
Section titled “Multiple Domains”Add Secondary Domains
Section titled “Add Secondary Domains”Point multiple domains to same site:
yourpodcast.com → Main siteyourpodcast.net → Redirects to .comyourpodcast.org → Redirects to .comSetup redirects:
Cloudflare:
https://yourpodcast.net/* https://yourpodcast.com/:splat 301https://yourpodcast.org/* https://yourpodcast.com/:splat 301Netlify:
[[redirects]] from = "https://yourpodcast.net/*" to = "https://yourpodcast.com/:splat" status = 301 force = trueBranch Domains
Section titled “Branch Domains”Deploy branches to subdomains:
main branch → yourpodcast.comstaging branch → staging.yourpodcast.comdev branch → dev.yourpodcast.comTroubleshooting
Section titled “Troubleshooting”Domain shows “Site not found”
Section titled “Domain shows “Site not found””Check 1: DNS records are correct
dig yourpodcast.com # Should show CNAME or A recordCheck 2: Domain is added in platform dashboard
Check 3: DNS has propagated (wait 30 min - 2 hours)
SSL certificate pending
Section titled “SSL certificate pending”Check 1: DNS points to platform
dig yourpodcast.com# Should show platform's IP/CNAMECheck 2: No CAA records blocking Let’s Encrypt
dig CAA yourpodcast.com# Should be empty or include letsencrypt.orgCheck 3: Wait longer (can take up to 24 hours)
www not redirecting
Section titled “www not redirecting”Add redirect:
Cloudflare:
https://www.yourpodcast.com/* https://yourpodcast.com/:splat 301Netlify:
[[redirects]] from = "https://www.yourpodcast.com/*" to = "https://yourpodcast.com/:splat" status = 301Mixed content warnings
Section titled “Mixed content warnings”Ensure all resources use HTTPS:
<!-- ❌ HTTP (causes warning) --><img src="http://example.com/image.jpg" />
<!-- ✅ HTTPS --><img src="https://example.com/image.jpg" />Related
Section titled “Related”- Cloudflare Pages - Deploy to Cloudflare
- Environment Variables - Configure variables
- Netlify - Deploy to Netlify
Next Steps
Section titled “Next Steps”- Environment Variables - Update site URL
- Performance - Optimize performance (coming soon)
- Monitoring - Monitor your site (coming soon)