Custom domains - Paragraph

Set up a custom domain

Set up a custom domain to strengthen your brand and retain the SEO value you build over time. Instead of paragraph.com/@username, your publication can live at example.com or blog.example.com. Activating a custom domain is a one-time $50 purchase from your publication settings.


Requirements

Before you begin, make sure you:


DNS configuration

All custom domains use a CNAME record pointing to cname.paragraph.com. You’ll also need to add the TXT records shown in your Publication Settings for verification.

Subdomains (blog.example.com) — Recommended

Subdomains work with all DNS providers and are the easiest to set up.

Type Name Value
CNAME blog cname.paragraph.com
TXT Provided in your Publication Settings Provided value
TXT Provided in your Publication Settings Provided value

Root domains (example.com)

Root (apex) domains require your DNS provider to support CNAME or ALIAS records at the apex. Not all providers support this.

Type Name Value
CNAME or ALIAS @ cname.paragraph.com
TXT Provided in your Publication Settings Provided value
TXT Provided in your Publication Settings Provided value

If your registrar doesn’t allow adding a CNAME record for @, try adding an ALIAS record instead. If neither option is available, consider moving your DNS to Cloudflare (free) which supports CNAME at the apex. You can keep your domain registered at your current registrar.

Common setup mistakes

Using the full domain in the Name field

Most DNS providers automatically append your domain to whatever you enter in the Name field.

You enter What gets created
@ example.com ✓
blog blog.example.com ✓
example.com example.com.example.com ✗
blog.example.com blog.example.com.example.com ✗

Conflicting A records

If you have an existing A record for the same domain, delete it before adding the CNAME. A records take precedence and will prevent your domain from routing to Paragraph.

Wildcard records

If you have a wildcard record (*) pointing to another server, it may interfere with your subdomain. Either:

Verification

  1. Add your domain in Publication Settings.
  2. Copy the TXT records shown and add them at your registrar.
  3. Add the CNAME record pointing to cname.paragraph.com.
  4. Wait at least 30 minutes, then click the refresh (↻) button in Paragraph.
  5. Once verified, your publication will load at your new domain.

DNS propagation can take up to 24–48 hours, though most changes appear within a few hours.

Troubleshooting

”Custom hostname does not CNAME to this zone”

This means your domain isn’t pointing to cname.paragraph.com. Check that:

Domain shows as verified but returns a 404 error

Your verification TXT records are correct, but traffic isn’t reaching Paragraph. This usually means:

Root domain won’t work

Your DNS provider likely doesn’t support CNAME or ALIAS at the apex. Options:

  1. Move DNS to Cloudflare (free, keeps domain registered elsewhere)
  2. Use a subdomain like www.example.com instead

What happens to your old URL?

We set up a permanent redirect from your old paragraph.com URL to your new custom domain. Search engines will follow the redirect, so your SEO won’t be harmed.


Common issues

Timeline expectations

Time What to expect
0–30 min Changes propagating, may not work yet
30 min–2 hr Most domains begin resolving
2–24 hr Should be working for nearly everyone
24–48 hr Contact support if still not working

Still having trouble?

Before reaching out, please gather:

Then email us at hello@paragraph.com and we’ll help get you set up.