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
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
- In the left sidebar under Management, click Domains.
- Click the Add Domain button in the top-right corner.
- 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)"
- Placeholder:
- 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.comorgo.yourbrand.com/links
- Correct:
- 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
- Open the DNS Configuration dialog for your domain in Linkzly.
- Log in to your domain registrar or DNS provider's dashboard.
- For each record in the table, copy the Name and Value using the copy buttons.
- In your DNS provider, create a new record of the correct Type (CNAME, A, or TXT) and paste in the name and value.
- 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:
- Go to Domains.
- Click the RefreshCw icon (Check DNS Propagation) in the Actions column for your domain.
- 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
- Go to Domains in the sidebar.
- Click the ShieldCheck icon (Verify) in the Actions column. This button only appears for domains with a Pending verification status.
- 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
- Open the DNS Configuration dialog and check which records show Failed.
- 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.
- Save your DNS records, wait a few minutes, and click Verify again.
- 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
- After your domain is verified, Linkzly automatically begins provisioning an SSL certificate.
- This process typically completes within a few minutes.
- 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.
- In the link creation form, open the Custom Domain dropdown.
- Select the domain you want to use. The link preview updates immediately.
- If you have a default domain configured, it is pre-selected automatically.
- 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.comonly 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