Ghost Custom Domain Setup: DNS, SSL & Email

Point your own domain at Ghost(Pro) or self-hosted Ghost: exact DNS records, automatic SSL, and a custom email sending domain — every step clearly explained.

Luxe Themes Updated 5 min read

Quick answer: Point your domain to Ghost by adding a DNS record at your registrar — a CNAME (or A record) to your Ghost host — then set the domain in Ghost admin. Ghost(Pro) includes a free domain with automatic SSL; self-hosters configure DNS, SSL (Let’s Encrypt), and an optional custom email-sending domain.

Your Domain, Your Publication

A custom domain is the foundation of your online presence. Instead of yoursite.ghost.io, readers see yourdomain.com. This affects credibility, SEO authority, and brand recognition.

Ghost makes custom domain setup straightforward on both Ghost(Pro) and self-hosted installations. This guide covers both paths.

Ghost(Pro) Custom Domain Setup

Ghost(Pro) includes a free custom domain on all plans. No additional cost.

Step 1: Purchase a Domain

If you do not already own a domain, purchase one from a domain registrar:

  • Namecheap: Popular for competitive pricing
  • Cloudflare Registrar: At-cost domain registration with built-in DNS
  • Google Domains (now Squarespace Domains): Simple interface
  • Porkbun: Budget-friendly with free WHOIS privacy

Domain cost: typically $10-15/year for a .com. Some newer TLDs (.blog, .news, .pub) are available and can be relevant for publications.

Step 2: Add Your Domain in Ghost Admin

  1. Go to Settings → General in Ghost Admin
  2. Under Publication URL, enter your custom domain (e.g., yourdomain.com)
  3. Ghost will provide DNS records to configure

Step 3: Configure DNS Records

In your domain registrar’s DNS settings, add the records Ghost provides. Typically:

Option A: CNAME Record (Recommended)

TypeNameValue
CNAME@ (or blank)yoursite.ghost.io
CNAMEwwwyoursite.ghost.io

Some registrars do not allow CNAME on the root domain (@). In that case, use ANAME/ALIAS if supported, or use Ghost’s provided A records.

Option B: A Records

TypeNameValue
A@[IP address provided by Ghost]
CNAMEwwwyoursite.ghost.io

Step 4: Wait for DNS Propagation

DNS changes take time to propagate globally:

  • Most changes: 15 minutes to 2 hours
  • Full global propagation: up to 48 hours
  • Use a DNS checker (like whatsmydns.net) to verify propagation

Step 5: SSL Certificate

Ghost(Pro) automatically provisions and renews SSL certificates via Let’s Encrypt once DNS is properly pointed. No manual action required. Your site will be accessible via https://yourdomain.com within minutes of DNS propagation.

www vs Non-www

Choose one canonical version and stick with it. Ghost handles the redirect:

  • yourdomain.com (non-www) — cleaner, more common for publications
  • www.yourdomain.com — some prefer this for technical reasons

Ghost will redirect the non-canonical version to your chosen version automatically.

Self-Hosted Custom Domain Setup

Self-hosted Ghost installations require more manual configuration. Your exact steps depend on where Ghost runs — the Ghost hosting comparison shows how each option handles custom domains.

Step 1: Point DNS to Your Server

In your registrar’s DNS settings, create an A record pointing to your server’s IP address:

TypeNameValue
A@your.server.ip.address
CNAMEwwwyourdomain.com

Step 2: Configure Ghost for Your Domain

During Ghost installation with Ghost-CLI, you specify the domain:

ghost install

Ghost-CLI prompts for your URL during setup. Enter https://yourdomain.com.

If Ghost is already installed and you need to change the domain:

ghost config url https://yourdomain.com
ghost restart

Step 3: SSL Certificate via Let’s Encrypt

Ghost-CLI can automatically set up SSL using Let’s Encrypt:

ghost setup ssl

This provisions a free SSL certificate and configures Nginx to serve your site over HTTPS. Certificates auto-renew every 90 days.

If automatic setup fails, you can manually configure SSL with Certbot or another ACME client.

Custom Email Sending Domain

On Ghost(Pro) Publisher ($29/month) and above, you can configure a custom sending domain for newsletters. Instead of noreply@ghost.io, your emails come from newsletter@yourdomain.com.

Why This Matters

  • Brand recognition: Subscribers see your domain in the “from” field
  • Deliverability: Custom domains with proper authentication records land in inboxes more reliably
  • Reply handling: Replies go to your domain’s email address
  • Professionalism: Generic addresses signal amateur publishing

Setup Steps

  1. Go to Settings → Newsletters → [Your Newsletter]
  2. Under Email address, select your custom domain
  3. Ghost will provide DNS records for email authentication:

Required DNS records for email sending:

Record TypePurpose
SPF (TXT)Authorizes Ghost’s servers to send email on your behalf
DKIM (TXT)Cryptographic signature verifying email authenticity
DMARC (TXT)Policy for handling unauthenticated emails
  1. Add these records to your domain’s DNS settings
  2. Ghost verifies the records and activates your custom sending domain

Self-Hosted Email Domain (Mailgun)

Self-hosted Ghost uses Mailgun for email delivery. Mailgun requires its own domain verification:

  1. Add your sending domain in Mailgun (e.g., mg.yourdomain.com)
  2. Configure the DNS records Mailgun provides (SPF, DKIM, CNAME for tracking)
  3. Verify the domain in Mailgun
  4. Update Ghost’s config with your Mailgun API key and domain

For detailed Mailgun setup, see our Ghost newsletter guide.

Common Domain Issues

Domain Not Resolving

  • Verify DNS records are correct using dig yourdomain.com or nslookup
  • Wait for full propagation (up to 48 hours)
  • Ensure there are no conflicting records (e.g., multiple A records)

SSL Certificate Not Provisioning

  • DNS must be fully propagated before SSL can provision
  • Verify your domain points to the correct IP or CNAME
  • On self-hosted: ensure port 80 is open for Let’s Encrypt verification

Email Deliverability Issues

  • Verify SPF, DKIM, and DMARC records are correctly configured
  • Use a tool like MXToolbox to validate your email authentication
  • Allow 24-48 hours for DNS changes to propagate before testing

Subdirectory Installation

Ghost(Pro) Business plan ($199/month) supports subdirectory installations (e.g., yourdomain.com/blog/). This is a paid add-on ($50/month) for cases where Ghost runs alongside another application on the same domain.

Your Domain Is Just the Start

With your custom domain configured, your publication has its professional foundation. The next step is making it look the part with a theme that reflects your brand.

Our themes are built for Ghost publishers, starting at $69. Every theme includes dark mode, 46 language translations, and multiple post layouts.

Browse Ghost themes →

Frequently Asked Questions

How do I connect a custom domain to Ghost(Pro)?
Go to Settings then General in Ghost Admin and enter your domain under Publication URL. Ghost provides DNS records to add at your registrar, typically a CNAME pointing to yoursite.ghost.io. After DNS propagates, your domain serves your publication. Ghost(Pro) includes a free custom domain on all plans at no additional cost.
Which DNS records do I need for a custom Ghost domain?
Add the records Ghost provides at your registrar. The recommended option is a CNAME on the root and www pointing to yoursite.ghost.io. If your registrar blocks CNAME on the root, use an ANAME or ALIAS, or Ghost's provided A records. Self-hosters point an A record to their server IP instead.
Does Ghost handle SSL certificates automatically?
On Ghost(Pro), SSL is automatic. Once DNS points correctly, Ghost provisions and renews certificates via Let's Encrypt with no manual action, so your site loads over HTTPS within minutes of propagation. Self-hosters run the Ghost SSL setup to provision a free Let's Encrypt certificate, which auto-renews every 90 days.
Should I use www or non-www for my Ghost domain?
Pick one canonical version and stick with it. Non-www looks cleaner and is more common for publications, while some prefer www for technical reasons. Either works. Ghost automatically redirects the non-canonical version to your chosen one, so set up DNS for both and let Ghost handle the redirect consistently.