Linkzly

Custom Domains

By default, all short links you create in Linkzly use the shared `linkz.ly` domain — for example, `linkz.ly/abc123`. Custom domains let you replace this with yo

15 min read

Custom Domains

By default, all short links you create in Linkzly use the shared linkz.ly domain — for example, linkz.ly/abc123. Custom domains let you replace this with your own branded domain, so your links look like go.yourbrand.com/abc123 or links.yourcompany.io/abc123.

Using a custom domain improves brand trust, makes your links more recognizable in emails and social posts, and gives you full ownership of the link experience. Custom domains are verified and secured with a free SSL certificate provided by Let's Encrypt, so all traffic is served over HTTPS automatically.

Note: Custom domains are a paid feature. Free plan accounts cannot add custom domains. See Plan Limits for details.


Where to Find It

In the left sidebar, find the Management section and click Domains (Globe icon). This takes you to the Custom Domains page.

  • Sidebar section: Management
  • Sidebar label: Domains
  • Page title: Custom Domains
  • Page subtitle: Add and manage custom domains for your shortened links
  • Route: /dashboard/domains

11.1 Adding a Custom Domain

  1. In the left sidebar under Management, click Domains.
  2. Click the Add Domain button in the top-right corner.
  3. In the Add Custom Domain dialog, enter your domain in the Domain field.
    • Placeholder: example.com
    • Helper text: "Enter your domain without http:// or https:// (e.g., example.com)"
  4. Click Add Domain to save it.

A warning is shown before you submit: "After adding the domain, you'll need to configure DNS records to verify ownership and enable SSL." The domain will not serve traffic until DNS is configured and verified.

Domain Format Rules

  • Enter the domain without any protocol or path. Do not include http://, https://, or a trailing slash.
    • Correct: go.yourbrand.com
    • Incorrect: https://go.yourbrand.com or go.yourbrand.com/links
  • Use only lowercase letters, numbers, hyphens, and dots.
  • The domain must be globally unique — no two organizations can use the same domain.

Domain Types Supported

Linkzly supports two types of custom domains:

Type Example DNS Record Required
Subdomain go.yourbrand.com, links.yourcompany.io CNAME record
Root domain (apex) yourbrand.com A record

The subdomain setup using a CNAME is the most common and easiest to configure.

Plan Limits

Custom domain availability depends on your subscription plan:

Plan Max Custom Domains
Free 0 — feature not available
Starter 1
Professional Multiple
Enterprise Unlimited

Free plan accounts cannot add any custom domains. If you exceed your plan's domain limit, you will need to upgrade before adding more.


11.2 DNS Configuration

After adding your domain, Linkzly generates the specific DNS records you need to add at your domain registrar or DNS provider (such as Cloudflare, Route 53, GoDaddy, or Namecheap). Adding these records is how you prove to Linkzly — and the internet — that you control this domain.

Viewing DNS Records

Click the Info icon (View DNS Records) in the Actions column of any domain row. This opens the DNS Configuration dialog.

The dialog is organized as follows:

  • Dialog title: DNS Configuration
  • Section title: DNS Setup Required
  • Section subtitle: Configure DNS records to verify domain ownership and enable SSL
  • Table columns: Type | Name | Value | Status

Each row shows a record type badge, the record name and value in copyable monospace blocks, and a per-record status.

How to Add DNS Records

  1. Open the DNS Configuration dialog for your domain in Linkzly.
  2. Log in to your domain registrar or DNS provider's dashboard.
  3. For each record in the table, copy the Name and Value using the copy buttons.
  4. In your DNS provider, create a new record of the correct Type (CNAME, A, or TXT) and paste in the name and value.
  5. Save the records in your DNS provider.

DNS Record Status

Each record in the table shows a status:

Status Meaning
Verified Linkzly has confirmed this record is correctly configured and propagated.
Pending The record has been added but has not yet propagated globally. DNS propagation can take up to 48 hours.
Failed Linkzly cannot find this record or the value does not match. Double-check the record in your DNS provider.

Checking DNS Propagation

DNS records take time to spread globally after you add them — typically minutes to a few hours, with a maximum of 48 hours. Linkzly queries multiple DNS resolvers (Google, Cloudflare, OpenDNS, and Quad9) to check propagation.

To run a propagation check:

  1. Go to Domains.
  2. Click the RefreshCw icon (Check DNS Propagation) in the Actions column for your domain.
  3. Linkzly runs a check across multiple resolvers and reports back.

If propagation is still in progress, wait a few hours and run the check again.

Note: DNS propagation and domain verification are two distinct steps. Propagation means your records have spread across the internet. Verification means Linkzly has confirmed your records are correct and authorizes the domain.


11.3 Domain Verification

Once your DNS records are in place, you can trigger a verification check in Linkzly.

How to Verify

  1. Go to Domains in the sidebar.
  2. Click the ShieldCheck icon (Verify) in the Actions column. This button only appears for domains with a Pending verification status.
  3. Linkzly checks all required DNS records against multiple DNS resolvers. If everything is correct, the status updates immediately.

Verification Statuses

Status Icon Color What It Means
Pending Clock Yellow DNS records have not yet been confirmed. Add your DNS records and then click Verify.
Verified CheckCircle Green All required DNS records are correct. SSL provisioning begins automatically.
Failed XCircle Red One or more DNS records are missing or incorrect. See the DNS records table for details.

Verification Methods

Linkzly supports three verification methods depending on your domain setup:

  • TXT record — A verification token is added as a DNS TXT record.
  • CNAME record — Your subdomain points to Linkzly's origin server via CNAME.
  • File verification — A file is served at a specific path on your domain.

The verification method is determined automatically based on your domain type. You do not need to choose manually.

What to Do If Verification Fails

  1. Open the DNS Configuration dialog and check which records show Failed.
  2. Log in to your DNS provider and confirm that the record name and value exactly match what Linkzly requires.
    • A common mistake is adding extra characters, or including the full domain in the record name when your provider automatically appends it.
  3. Save your DNS records, wait a few minutes, and click Verify again.
  4. If the issue persists after 48 hours, contact Linkzly support and provide your domain name and the DNS records you have configured.

11.4 SSL Certificates

HTTPS encryption is required for all custom domains in Linkzly. SSL certificates are provisioned automatically using Let's Encrypt — you do not need to purchase or manage certificates yourself.

How SSL Provisioning Works

  1. After your domain is verified, Linkzly automatically begins provisioning an SSL certificate.
  2. This process typically completes within a few minutes.
  3. Once the certificate is active, all traffic to your custom domain is served over HTTPS. HTTP traffic is automatically redirected to HTTPS.

SSL Statuses

Status Badge Style Meaning
Pending Secondary The certificate is being provisioned. Usually completes within minutes of verification.
Active Default The certificate is valid and all traffic is secured over HTTPS.
Renewing Secondary The certificate is being renewed automatically before expiry.
Expired Destructive The certificate has expired. Linkzly automatically attempts renewal. If renewal fails, this status appears.
Failed Destructive Certificate provisioning or renewal failed.

SSL Auto-Renewal

Linkzly monitors SSL certificates and automatically renews them when they are within 30 days of expiry. Renewal requires your DNS records to remain correctly configured. If auto-renewal fails, check that your DNS records are still in place and re-verify the domain.

What to Do If SSL Fails

  • If the status is Expired and renewal did not succeed, confirm your DNS records are still correct, then click Verify again to trigger re-provisioning.
  • If the status is Failed, contact Linkzly support and provide your domain name so the support team can investigate.

11.5 Managing Domains

Domains List Table

The Domains page displays all of your custom domains in a table with the following columns (in order):

Column Description
Domain The full domain name.
Verification The current verification status: pending (Clock, yellow), verified (CheckCircle, green), or failed (XCircle, red).
SSL Status The current SSL certificate state: pending, active, renewing, expired, or failed.
Default Shows a "Default" badge if this domain is the default for new short links.
Added The date the domain was added to your account.
Actions Icon buttons for actions available on this domain.

Domain Statistics

If you have at least one domain, a statistics summary is shown above the table:

Stat Description
Total Domains The total number of custom domains in your account.
Active Domains The number of domains that are verified and have active SSL.
Total Clicks The total number of clicks across all short links using your custom domains.
Domains with SSL The number of domains with an active SSL certificate.

Empty State

If no domains have been added yet, the page shows:

  • Heading: "No custom domains"
  • Message: "Add a custom domain to brand your shortened links with your own domain name. This helps build trust with your audience and maintains your brand identity."
  • Button: "Add Your First Domain"

Domain Actions

Each domain row shows a set of icon buttons in the Actions column. The actions available depend on the domain's state:

Icon Action When Shown
Info View DNS Records — opens the DNS Configuration dialog Always
ShieldCheck Verify — triggers a verification check Only when verificationStatus is pending
RefreshCw Check DNS Propagation — runs a propagation check Always
Trash2 (red) Delete — permanently removes the domain Only when the domain is not the default

Default domain behavior: The domain marked as default shows a "Default" badge in the Default column. The Delete action is not available for the default domain. To delete it, first set another domain as the default.

Setting a Default Domain

Only one domain can be the default at a time. The default domain is automatically pre-selected when you create a new short link, QR code, or smart link.

To set a domain as the default, use the set-default action (available in the domain management flow). When you set a new default, the previous default is automatically unset.

Deleting a Domain

When you click the Trash2 (Delete) icon, a confirmation dialog appears:

  • Title: Delete Domain
  • Message: "Are you sure you want to delete {domainName}? This action cannot be undone."
  • Warning: "Deleting this domain will permanently remove all associated DNS configuration and SSL certificates. Any existing short links using this domain may stop working."
  • Buttons: Cancel | Delete Domain (red/destructive)

When a domain is deleted, its customDomainId reference is removed from associated short links. Those links remain in your account but will fall back to the Linkzly default domain. Review any active links before deleting a domain.


11.6 Using Custom Domains

Custom domains work across several features in Linkzly. When you use a verified custom domain, the short URL, QR code URL, or smart link URL reflects your brand rather than the default linkz.ly domain.

Features That Support Custom Domains

Feature Custom Domain Support
Short Links Select your custom domain when creating or editing a link
QR Codes QR codes generated for custom-domain links use the branded URL
Smart Links Campaign links support custom domains
App Distribution App distribution links support custom domains

Note: Affiliate tracking domains are a completely separate system managed through the Affiliate section. They are not the same as custom domains and are not configured here.

Selecting a Custom Domain When Creating a Link

When you create a short link, a domain selector lets you choose from your verified custom domains.

  1. In the link creation form, open the Custom Domain dropdown.
  2. Select the domain you want to use. The link preview updates immediately.
  3. If you have a default domain configured, it is pre-selected automatically.
  4. If you leave the field unset, the link uses the Linkzly shared domain (linkz.ly).

How Domain Changes Affect Existing Links

If you edit a short link and change its domain:

  • Future visits to the new domain's URL are redirected to the link destination.
  • The old short URL (on the previous domain) will no longer work — it is not automatically forwarded.
  • Click history and analytics for the link are preserved regardless of domain changes.

11.7 API Reference

The following API endpoints are available for managing custom domains programmatically:

Method Endpoint Description
POST /api/domains Add a custom domain
GET /api/domains List all custom domains (paginated)
GET /api/domains/stats Get organization-level domain statistics
GET /api/domains/:domainId Get details for a specific domain
POST /api/domains/:domainId/verify Trigger domain ownership verification
PATCH /api/domains/:domainId Update domain settings
POST /api/domains/:domainId/check-propagation Run a DNS propagation check
GET /api/domains/:domainId/ssl Get SSL certificate details
POST /api/domains/:domainId/set-default Set domain as the organization default
DELETE /api/domains/:domainId Delete a domain

Required Permissions

Action Permission
Add domain DOMAIN_CREATE
Verify domain DOMAIN_VERIFY
Update settings DOMAIN_UPDATE
Delete domain DOMAIN_DELETE

Tips

  • Add DNS records before clicking Verify. Linkzly cannot verify your domain until your DNS records are in place and have had time to propagate.
  • Use a subdomain for the simplest setup. A subdomain like go.yourbrand.com only requires a CNAME record and works with all major DNS providers.
  • DNS propagation is usually fast. While the maximum is 48 hours, most DNS changes propagate globally within 15–60 minutes. Run a propagation check after adding records rather than waiting the full 48 hours.
  • SSL is automatic. You do not need to do anything to activate SSL after verification — Linkzly provisions the Let's Encrypt certificate automatically.
  • Do not delete your default domain. If you need to remove it, set another domain as the default first. The delete action is intentionally unavailable for the default domain.
  • Custom domains and affiliate tracking domains are different. Custom domains brand your short links, QR codes, smart links, and app distribution pages. Affiliate tracking domains are configured separately through the Affiliate section.
  • Check your links before deleting a domain. When you delete a domain, associated short links lose their custom domain reference. Review active links first to avoid broken URLs.

Was this helpful?

Help us improve our documentation