UL0
Back to Blog Guides
Infrastructure & DNSUpdated October 2026

The Complete Custom Domain DNS & CNAME Setup Guide for Branded Short Links

Updated Oct 6, 2026
9 min read (1,600+ words)
Why Branded Custom Domains Matter in 2026

Generic shorteners (bit.ly, tinyurl.com) are shared by millions of users, including spammers and phishers. Consequently, mobile carriers enforce aggressive 10DLC SMS spam blocks against shared links, and enterprise spam firewalls flag them. By connecting a dedicated subdomain (like go.yourbrand.com) through UL0's free custom domain engine, you own your sender reputation and boost click confidence.

1. DNS Architecture: Understanding CNAME Records

A Canonical Name (CNAME) record is an alias record in the Domain Name System (DNS) defined in RFC 1034. When a browser resolves your shortened domain alias (e.g., go.yourbrand.com), the DNS server consults the CNAME record and redirects the resolver query to the authoritative hostname of the service provider (cname.ul0.site).

This decoupled architecture provides two massive infrastructure benefits:

  • Zero Maintenance: You never need to hardcode server IP addresses. If our edge proxy routing IPs change or scale, your domain automatically follows our global routing network.
  • Edge Routing: DNS resolvers route requests to the nearest Point of Presence (POP) across global edge data centers, ensuring your HTTP 301 redirects execute in under 15 milliseconds.

2. Standard DNS Values for UL0

Before opening your domain registrar, note the exact values required to configure your branded shortener:

RECORD FIELDRECOMMENDED VALUENOTES
Record TypeCNAMEAlias record for subdomains
Host / Namego (or link, to, click)Your preferred subdomain prefix
Target / Valuecname.ul0.siteAuthoritative UL0 edge endpoint
TTL300 seconds (or Auto)Lower TTL enables faster initial verification

3. Step-by-Step Registrar Guides

Below are explicit instructions for the most popular domain registrars and DNS hosting providers.

A. Cloudflare DNS (Critical Settings)

Most Popular
  1. Log in to your Cloudflare Dashboard and select your domain zone.
  2. In the sidebar, navigate to DNS > Records.
  3. Click the blue Add record button.
  4. Select Type: CNAME.
  5. Set Name: go (or your chosen subdomain).
  6. Set Target: cname.ul0.site.
  7. CRITICAL STEP — Proxy Status: Set the toggle to DNS Only (Gray Cloud).
  8. Click Save.
Why Gray Cloud (DNS Only) Matters:

If you leave the Cloudflare Orange Cloud (Proxied) enabled during initial domain verification, Cloudflare intercepts the automated Let's Encrypt HTTP-01 challenge handshake. Setting it to Gray Cloud allows our edge proxy to provision your SSL certificate directly. Once your certificate is active, you can re-enable the Orange Cloud if desired.

B. Namecheap

  1. Log in to your Namecheap Account and go to your Domain List.
  2. Click Manage next to your domain name.
  3. Click the Advanced DNS tab at the top.
  4. Under the Host Records section, click Add New Record.
  5. Select CNAME Record from the dropdown menu.
  6. Enter Host: go.
  7. Enter Target: cname.ul0.site.
  8. Set TTL: Automatic or 1 min.
  9. Click the green checkmark icon to save the record.

C. GoDaddy

  1. Log in to your GoDaddy Domain Portfolio.
  2. Select your domain and navigate to the DNS management screen.
  3. Click Add New Record.
  4. Choose Type: CNAME.
  5. Enter Name: go.
  6. Enter Value: cname.ul0.site.
  7. Set TTL: 1/2 Hour (1800 seconds).
  8. Click Save.

D. Amazon Web Services (AWS Route 53)

  1. Open the AWS Route 53 Console and select Hosted zones.
  2. Click your domain's hosted zone.
  3. Click Create record.
  4. In Record name, type your subdomain prefix (e.g. go).
  5. In Record type, choose CNAME.
  6. In Value, paste cname.ul0.site.
  7. Set TTL (seconds): 300.
  8. Click Create records.

4. Deep DNS Troubleshooting Matrix

Encountering an issue? Here are the 5 most common DNS pitfalls and their exact resolutions:

Issue 1: SSL Certificate Pending / Cipher Mismatch Error

Cause: Your DNS was recently updated, but the SSL handshake certificate has not yet been issued by Let's Encrypt. Alternatively, Cloudflare proxying (orange cloud) is preventing direct verification.

Fix: Switch Cloudflare to Gray Cloud (DNS Only). Wait 5 minutes, then trigger verification in your UL0 Domains Dashboard.

Issue 2: DNS_PROBE_FINISHED_NXDOMAIN

Cause: Your registrar has not yet propagated the record, or there is a typo in the host name field (e.g. accidentally entering go.yourdomain.com into GoDaddy instead of just go).

Fix: Check that the host field only contains the subdomain prefix. Test global propagation using terminal command: dig +short CNAME go.yourdomain.com. It should output cname.ul0.site.

Issue 3: CAA Record Restrictions

Cause: Your domain zone has strict Certification Authority Authorization (CAA) records that restrict which certificate authorities are allowed to issue SSL certificates for your domain.

Fix: If you use CAA records, add a CAA record permitting Let's Encrypt: Type: CAA, Name: @, Flag: 0, Tag: issue, Value: "letsencrypt.org".

Issue 4: Conflicting A Records on the Same Hostname

Cause: In the DNS specification (RFC 1912), a CNAME record cannot coexist with any other record type on the exact same label. If an existing A or TXT record exists for go, the CNAME will be ignored.

Fix: Delete any legacy A, AAAA, or parked domain records on the specific subdomain before adding your CNAME record.

5. Verifying Your Setup with Terminal Tools

Before sharing your first branded short link, run this quick 5-second CLI check from your terminal:

Terminal command:
curl -I https://go.yourbrand.com/test

Expected response: An immediate HTTP/2 301 or HTTP/2 200 header confirming your edge routing is active.

Ready to Connect Your Custom Domain?

UL0 provides custom domain support completely free. No subscription required, no credit card required.

SK

Written by Saket Kesar

Founder & Developer at UL0. Focused on custom domain routing architectures, edge DNS optimization, and Let's Encrypt automation. Connect on GitHub.