Custom Domains·4 min read·

Connecting a custom domain

Bring your own domain with a CNAME record and an ownership TXT record — SSL provisioning is automatic.

By default your blog lives at <slug>.velocms.org. Custom domains are available on Pro and above — the setup is a CNAME record plus an ownership TXT record, and we handle SSL automatically. Most people complete the whole process in under five minutes, though DNS propagation means you might wait up to an hour before the domain is live everywhere.

Quick start — what you need before you begin

You'll need login access to your DNS provider (wherever you bought the domain — Cloudflare, Google Domains, Namecheap, GoDaddy, Squarespace, etc.) and a Pro, Business, or Agency plan on VeloCMS. The 14-day free trial counts: once the site owner starts it from the dashboard, it runs on the plan you picked on the pricing page, so you can connect your domain from day one of the trial. You don't need to configure anything on the server side — VeloCMS registers the domain with our hosting platform and provisions the SSL certificate automatically the moment you save the domain in your dashboard.

Step 1 — Register the domain in admin

Go to Admin → Settings → Branding and open the Custom domain section (the same screen is also at Admin → Setup → Custom domain). Enter the domain you want to use (for example blog.example.com). The panel then shows the exact records your domain needs: a CNAME target generated specifically for your domain, plus a TXT record that proves ownership. Copy both — you'll need them in the next step. Don't close this tab yet; the dashboard shows the live domain status so you can watch verification complete.

Step 2 — Add a CNAME record at your DNS provider

In your DNS provider control panel, navigate to the DNS records section for your domain. Add a new record with the values from the VeloCMS dashboard.

Type:   CNAME
Name:   blog
Target: <the per-domain target shown in your VeloCMS panel>
Proxy:  DNS only

The 'Name' field is just the subdomain part — so for blog.example.com, the name is blog. The target is unique to your domain, so always copy it from the panel rather than typing it from memory. Also add the ownership TXT record the panel shows. If you're using Cloudflare for DNS, set the proxy status to DNS-only (the gray cloud icon, not the orange one) — our hosting platform can only route the domain when the DNS record points at it directly, and a proxied record hides that. The panel re-checks your DNS and flips the status automatically once the records resolve.

Step 3 — Wait for verification and SSL

Switch back to the VeloCMS dashboard. The status field in the Custom domain section cycles from Pending DNS to Verifying to Active as your DNS records resolve and the certificate is issued. Verification typically completes within a few minutes, though DNS propagation can occasionally take longer on some DNS providers. If a record is wrong or missing, the status shows Failed with the reason.

You can visit your domain directly and check for the padlock icon in your browser's address bar. If you see a certificate warning instead, the certificate hasn't provisioned yet — wait a few more minutes and refresh. Don't repeatedly try different settings while it's provisioning; it just needs time.

Common pitfalls

The most common issue is leaving Cloudflare's proxy enabled (orange cloud) when your DNS is hosted on Cloudflare. The CNAME resolves publicly, but it points at Cloudflare's proxy instead of the target your panel shows, so the status sits at Pending DNS or flips to Failed. Flip the record to DNS-only and verification completes within a few minutes. A related pitfall: if your domain registrar auto-creates Cloudflare DNS when you transfer a domain, it often defaults to proxied — always double-check.

Another thing to watch: apex domains (bare example.com with no subdomain prefix) are fully supported — the Custom domain section detects when you enter an apex domain and walks you through the exact record your DNS provider needs (ALIAS/ANAME, CNAME flattening, or plain A records where none of those exist). If your registrar genuinely has no apex option at all, the fallback is to use www.example.com or blog.example.com instead — the www subdomain is CNAME-compatible on every provider and most readers don't notice or care about the www prefix.

Apex domains (example.com without a subdomain) are supported for every major registrar — the domain wizard walks you through the exact record your DNS provider needs. If your registrar truly has no apex option, use a subdomain like www.example.com or blog.example.com instead.

Related articles

  • Setting up a blog on a subdomain vs apex domain — choosing the right URL structure
  • Cloudflare configuration for VeloCMS — proxy settings, page rules, and cache
  • SSL troubleshooting guide — certificate errors, mixed content warnings, and HSTS

Run a free technical SEO, performance, and migration-readiness audit — no signup required.Audit my site