Quick answer
Pick a subdomain such as go.yourbrand.com, add it on your workspace's Domains page, find the company that hosts your domain's DNS (the Domains page tells you), then add two DNS records there: a TXT record that proves you own the domain and a CNAME record that points the subdomain to KeptLink. Select Verify; your domain is usually ready within minutes.
On this page
A custom domain puts your own name on your short links and QR codes: go.yourbrand.com/menu instead of keptlink.app/abc2345. You connect a subdomain you already own, and KeptLink takes care of the rest, including the HTTPS certificate.
You need access to your domain’s DNS settings. They’re usually where you bought the domain (GoDaddy, Namecheap, Squarespace and so on), or at a DNS service such as Cloudflare or Amazon Route 53.
Before you start: find your DNS host
Your DNS host is the company whose servers answer for your domain, and it’s where the records must go. It’s often the company you bought the domain from (your registrar), but not always: if you or your web designer pointed the domain’s nameservers to another service, such as Cloudflare or your website builder, that service is your DNS host. Records added anywhere else have no effect.
The quickest way to find it:
- Let KeptLink tell you. After you add your subdomain on the Domains page, KeptLink looks up your domain’s nameservers and shows “Your DNS is managed by …” with that provider’s steps.
- Check your nameservers yourself. Your registrar shows them on the domain’s settings page, usually under Nameservers. A free lookup such as the Google Admin Toolbox Dig (choose NS) shows them too. Match them with this table:
| DNS host | Your nameservers look like |
|---|---|
| Amazon Route 53 | ns-81.awsdns-10.comns-659.awsdns-18.net |
| Bluehost | ns1.bluehost.comns2.bluehost.com |
| Cloudflare | gabe.ns.cloudflare.comsima.ns.cloudflare.com |
| GoDaddy | ns39.domaincontrol.comns40.domaincontrol.com |
| Google Cloud DNS | ns-cloud-a1.googledomains.comns-cloud-a2.googledomains.com |
| Hostinger | ns1.dns-parking.comns2.dns-parking.com |
| IONOS | ns-1and1.ui-dns.comns-1and1.ui-dns.de |
| Namecheap | dns1.registrar-servers.comdns2.registrar-servers.com |
| Network Solutions | ns7.worldnic.comns8.worldnic.com |
| Porkbun | curitiba.ns.porkbun.comfortaleza.ns.porkbun.com |
| Squarespace Domains (incl. former Google Domains) | ns01.squarespacedns.comns02.squarespacedns.com |
| Wix | ns14.wixdns.netns15.wixdns.net |
Nameservers ending in googledomains.com belong to either Google Cloud DNS or Squarespace Domains (which took over Google Domains): use the one where you manage the domain. If your nameservers aren’t in the table, they usually contain the DNS host’s name; look for its DNS or zone editor and follow the steps under Another provider.
1. Choose a subdomain
Pick a short, recognizable subdomain that you don’t use for anything else, for example go.yourbrand.com, links.yourbrand.com or qr.yourbrand.com. Root domains like yourbrand.com can’t be connected.
2. Add it in KeptLink
Open your workspace, go to Domains, enter the subdomain and select Add domain. KeptLink shows the two DNS records you need. They are unique to your workspace, so copy them from the Domains page rather than from this guide.
| Type | Name | Value |
|---|---|---|
| TXT | _keptlink.go.yourbrand.com |
kl-verify= followed by your token |
| CNAME | go.yourbrand.com |
domains.keptlink.app |
The TXT record proves that you control the domain: only someone who can change its DNS can add it. The CNAME record makes your subdomain an alias of KeptLink, so visitors of go.yourbrand.com reach your links, and lets us get the HTTPS certificate. Add both; neither touches your website or email.
3. Add the records at your DNS provider
Most providers add your domain to the name automatically, so you enter only the part before your domain. For go.yourbrand.com that means:
- TXT name:
_keptlink.go - CNAME name:
go
If your provider shows the full name after you save, check that it doesn’t end with your domain twice (like go.yourbrand.com.yourbrand.com).
The Domains page recognizes most DNS providers and shows the steps for yours, with your own values. Here are the same steps for the most common providers:
The steps below use go.yourbrand.com as the example. Your own values are on theDomains page, which also tells you which provider manages your DNS.
- Amazon Route 53
- Bluehost
- Cloudflare
- GoDaddy
- Google Cloud DNS
- Hostinger
- IONOS
- Namecheap
- Network Solutions
- Porkbun
- Squarespace Domains (incl. former Google Domains)
- Wix
Amazon Route 53
- Sign in to the AWS console and open Route 53.
- In the navigation pane, choose Hosted zones, then choose yourbrand.com.
- Choose Create record (Simple routing), then the Record type. Add the TXT record: Record type
TXT, Record name_keptlink.go, Value"kl-verify=…"(the value from your Domains page). Choose Create records. - Add the CNAME record: Record type
CNAME, Record namego, Valuedomains.keptlink.app. Choose Create records.
Good to know
- Route 53 needs the TXT value in double quotation marks: type it exactly as shown, quotes included.
- Type only the part shown here in Record name: Route 53 shows .yourbrand.com after the box.
- A CNAME can't share its name with any other record.
Checked against Amazon Route 53's help: docs.aws.amazon.com (1), docs.aws.amazon.com (2), docs.aws.amazon.com (3).
Bluehost
- Sign in to the Bluehost Portal and choose Domains in the left menu.
- Select yourbrand.com, then the DNS tab.
- Select + Add record and choose the type. Add the TXT record: Type
TXT, Host Record_keptlink.go, TXT Valuekl-verify=…(the value from your Domains page). Save the record. - Add the CNAME record: Type
CNAME, Host Recordgo, Points Todomains.keptlink.app. Save the record.
Good to know
- Enter only the part shown here as the host record: Bluehost adds your domain.
- A CNAME can't share its host with other records.
- If you manage DNS in cPanel instead (Hosting → cPanel → Zone Editor), the same values work there.
Checked against Bluehost's help: bluehost.com (1), bluehost.com (2), bluehost.com (3).
Cloudflare
- Sign in to the Cloudflare dashboard and select yourbrand.com.
- Go to DNS → Records.
- Select Add record and choose the type. Add the TXT record: Type
TXT, Name_keptlink.go, Contentkl-verify=…(the value from your Domains page). Select Save. - Add the CNAME record: Type
CNAME, Namego, Targetdomains.keptlink.app. Select Save.
Good to know
- We recommend Proxy status DNS only (grey cloud) for the CNAME. Proxied also works, but your own Cloudflare rules and settings then apply before ours.
- TXT records are always DNS only; TTL can stay Auto.
- Enter only the part shown here: the provider adds your domain to the name.
Checked against Cloudflare's help: developers.cloudflare.com (1), developers.cloudflare.com (2), developers.cloudflare.com (3), developers.cloudflare.com (4).
GoDaddy
- Sign in to GoDaddy and open your Domain Portfolio.
- Select yourbrand.com to open its Domain Settings page, then select DNS.
- Select Add New Record and choose the type. Add the TXT record: Type
TXT, Name_keptlink.go, Valuekl-verify=…(the value from your Domains page). Select Save. - Add the CNAME record: Type
CNAME, Namego, Valuedomains.keptlink.app. Select Save.
Good to know
- Enter only the part shown here: the provider adds your domain to the name.
- Leave TTL at its default (1 hour).
- If Domain Protection is on, GoDaddy asks for a 2-step verification code before saving.
Checked against GoDaddy's help: godaddy.com (1), godaddy.com (2), godaddy.com (3).
Google Cloud DNS
- In the Google Cloud console, open Network services → Cloud DNS (the Zones page).
- Select the zone for yourbrand.com.
- Select Add standard, then choose the Resource record type. Add the TXT record: Resource record type
TXT, DNS name_keptlink.go, Valuekl-verify=…(the value from your Domains page). Select Create. - Add the CNAME record: Resource record type
CNAME, DNS namego, Canonical namedomains.keptlink.app.. Select Create.
Good to know
- The DNS name field already shows .yourbrand.com. after the box: type only the part shown here.
- The canonical name ends with a period, as shown.
- A CNAME can't share its name with any other record.
Checked against Google Cloud DNS's help: docs.cloud.google.com (1), docs.cloud.google.com (2), docs.cloud.google.com (3).
Hostinger
- Sign in to hPanel. In the left sidebar, choose Domains, then DNS.
- Select yourbrand.com: you land on its DNS records page.
- Under Manage DNS records, choose the Type. Add the TXT record: Type
TXT, Name_keptlink.go, TXT valuekl-verify=…(the value from your Domains page). Select Add Record. - Add the CNAME record: Type
CNAME, Namego, Targetdomains.keptlink.app. Select Add Record.
Good to know
- Hostinger adds your domain to the name automatically: don't include it.
- The default TTL is 14400 (4 hours); Hostinger says changes can take up to 24 hours.
Checked against Hostinger's help: hostinger.com (1), hostinger.com (2), hostinger.com (3), hostinger.com (4).
IONOS
- Sign in to IONOS and open Domains & SSL.
- Next to yourbrand.com, select the gear icon under Actions, then DNS.
- Select Add Record and choose the type. Add the TXT record: Type
TXT, Host name_keptlink.go, Valuekl-verify=…(the value from your Domains page). Select Save. - Add the CNAME record: Type
CNAME, Host namego, Point todomains.keptlink.app. Select Save.
Good to know
- IONOS adds your domain to the host name automatically: don't include it.
- If IONOS asks for the subdomain first, add it under the gear icon → Manage Subdomains, then open its DNS page.
- A CNAME replaces email and other IONOS services on that subdomain. IONOS uses a one-hour TTL.
Checked against IONOS's help: ionos.com (1), ionos.com (2), ionos.com (3).
Namecheap
- Sign in to Namecheap and open Domain List in the left menu.
- Select Manage next to yourbrand.com, then open the Advanced DNS tab.
- In Host Records, select Add New Record and choose the record type (TXT Record or CNAME Record). Add the TXT record: Type
TXT, Host_keptlink.go, Valuekl-verify=…(the value from your Domains page). Select Save All Changes. - Add the CNAME record: Type
CNAME, Hostgo, Valuedomains.keptlink.app. Select Save All Changes.
Good to know
- Namecheap adds your domain to the Host field automatically: don't include it.
- A CNAME blocks every other record on the same host: remove any URL Redirect, A or CNAME record already on it.
- TTL can stay Automatic. Namecheap says new records can take about 30 minutes to be accepted.
Checked against Namecheap's help: namecheap.com (1), namecheap.com (2), namecheap.com (3).
Network Solutions
- Sign in to Network Solutions and choose Domains in the left menu.
- Select yourbrand.com. Under Advanced Tools, select Manage next to Advanced DNS Records.
- Select + Add Record, choose the type, and under Refers to choose Other Host. Add the TXT record: Type
TXT, Host Name_keptlink.go, TXT Valuekl-verify=…(the value from your Domains page). Save the record. - Add the CNAME record: Type
CNAME, Host Namego, Alias to (hostname)domains.keptlink.app. Save the record.
Good to know
- Type only the subdomain part as the host name. The default TTL is 7200 (2 hours).
- This works only while your domain uses Network Solutions' name servers.
Checked against Network Solutions's help: networksolutions.com.
Porkbun
- Sign in to Porkbun and open Domain Management.
- Find yourbrand.com and select DNS under the domain name.
- Use Add Record and choose the Type. Add the TXT record: Type
TXT, Host_keptlink.go, Answerkl-verify=…(the value from your Domains page). Add the record. - Add the CNAME record: Type
CNAME, Hostgo, Answerdomains.keptlink.app. Add the record.
Good to know
- Porkbun adds your domain to the Host automatically: don't include it.
- A CNAME's host can't be shared with any other record. Leave TTL at its default.
Checked against Porkbun's help: kb.porkbun.com (1), kb.porkbun.com (2), kb.porkbun.com (3).
Squarespace Domains (incl. former Google Domains)
- Sign in to your Squarespace domains dashboard and select yourbrand.com.
- Select DNS, then DNS Settings, and scroll down to Custom Records.
- Select Add record and choose the type. Squarespace may ask for your password again. Add the TXT record: Type
TXT, Name_keptlink.go, Textkl-verify=…(the value from your Domains page). Select Save. - Add the CNAME record: Type
CNAME, Namego, Datadomains.keptlink.app. Select Save.
Good to know
- Squarespace adds your domain to the Name field automatically: don't include it.
- Don't put a period at the end of the CNAME's Data: Squarespace can't save it.
- Custom records have a 4-hour TTL; Squarespace says changes can take 24 to 48 hours.
Checked against Squarespace Domains (incl. former Google Domains)'s help: support.squarespace.com (1), support.squarespace.com (2), support.squarespace.com (3).
Wix
- Go to Domains in your Wix account.
- Next to yourbrand.com, select the Domain Actions icon, then Manage DNS Records.
- In the section for the type (TXT (Text) or CNAME (Aliases)), select + Add Record. For a CNAME, select Got it first. Add the TXT record: Section
TXT, Host Name_keptlink.go, Valuekl-verify=…(the value from your Domains page). Select Save, then Save Changes. - Add the CNAME record: Section
CNAME, Host Namego, Valuedomains.keptlink.app. Select Save, then Save Changes.
Good to know
- This works only while your domain uses Wix's name servers.
- Type only the subdomain part in Host Name. Leave TTL at its default.
- If Wix says the host name is already in use, another record uses it: remove or change that record first.
Checked against Wix's help: support.wix.com (1), support.wix.com (2), support.wix.com (3), support.wix.com (4).
Another provider
Look for a page called DNS, DNS records, Zone editor or Advanced DNS, add a TXT record and a CNAME record with the values from the Domains page, and enter only the part before your domain as the name if the provider shows your domain next to the field.

4. Verify
Back on the Domains page, select Verify. When we find your TXT record, the status changes to Getting the certificate while we set up HTTPS. This usually takes a few minutes, as long as the CNAME is in place. Then the status shows Connected, and you can choose your domain when you create a link.
If the TXT record isn’t found yet, wait a few minutes and try again. You don’t have to keep the page open: we check automatically every 10 minutes for 7 days.
5. Optional: choose what your bare domain opens
Someone may type just go.yourbrand.com. Under Root fallback on the Domains page, enter where that should go, for example your website. It’s checked for safety like any link. Without one, the bare domain shows a “not found” page.
Troubleshooting
-
You added the records but nothing happens: check that you added them at your DNS host, not only at your registrar (see Before you start). Records at a company that doesn’t host your DNS are never seen.
-
The name ended up twice, like
go.yourbrand.com.yourbrand.com: your provider adds your domain to the name automatically. Edit the record and enter only_keptlink.go(TXT) orgo(CNAME). The Domains page points this out when it sees it. -
Your provider won’t save the CNAME: another record already uses that name (an A record, another CNAME or a URL redirect). A CNAME can’t share its name, so remove the other record first, or choose a different subdomain.
-
“Waiting for DNS records” doesn’t change: check the TXT name (
_keptlink.go, not_keptlink.go.yourbrand.comtwice) and that the value matches the Domains page exactly. -
Stuck at “Getting the certificate”: check that the CNAME points to
domains.keptlink.app. If your domain has CAA records, they must allowletsencrypt.org,pki.googandssl.com, or certificates can’t be issued. -
Your domain is on Cloudflare and the certificate doesn’t issue: look for an old
_acme-challengeTXT record for the subdomain and remove it. -
“Couldn’t connect”: we couldn’t confirm the records within 7 days. Fix them, then select Try again for new records.
-
“DNS record missing”: the CNAME no longer points to KeptLink, so links on your domain don’t work. Restore it, and they work again within minutes.
Still stuck? Contact us with your subdomain and a screenshot of your DNS records.
Frequently asked questions
Where do I find my DNS settings?
At the company that hosts your domain's DNS. That's usually where you bought the domain, unless you moved its nameservers to a service such as Cloudflare. After you add a domain, the Domains page in KeptLink names your DNS host and shows its steps.
Can I use my main domain, like yourbrand.com?
No. Use a subdomain such as go.yourbrand.com or links.yourbrand.com. Most DNS providers don't allow the CNAME record we need on a root domain, and a CNAME there would interfere with your email and website.
How long does it take?
Most providers publish new records within minutes, and verification usually succeeds within 5 to 30 minutes. Because of DNS caching it can occasionally take a few hours. We keep checking automatically every 10 minutes for 7 days.
What happens to my links if I remove the DNS record?
Links on your domain only work while its CNAME record points to KeptLink. If you remove or change the record, or let the domain expire, those links stop working, and we can't prevent that, because the DNS belongs to you. Restore the record and they work again.
Does my website or email change?
No. You only add records for one subdomain. Your website, your root domain and your email records stay exactly as they are.