{"id":778,"date":"2026-04-12T09:00:00","date_gmt":"2026-04-12T14:00:00","guid":{"rendered":"https:\/\/tolinku.com\/blog\/?p=778"},"modified":"2026-03-07T03:33:26","modified_gmt":"2026-03-07T08:33:26","slug":"branded-link-domains","status":"publish","type":"post","link":"https:\/\/tolinku.com\/blog\/branded-link-domains\/","title":{"rendered":"Branded Link Domains: Setup and Management Guide"},"content":{"rendered":"\n<p>A branded link domain turns generic URLs into recognizable, trustworthy links. Instead of <code>platform.io\/xK7rQ<\/code>, your links become <code>go.yourapp.com\/summer-sale<\/code>. The setup involves DNS records, SSL certificates, and platform configuration. This tutorial walks through every step.<\/p>\n\n\n\n<p>For the strategic case behind branded links (trust, CTR, and analytics ownership), see <a href=\"https:\/\/tolinku.com\/blog\/branded-short-links\/\">Branded Short Links: Setup and Best Practices<\/a>. This guide focuses on the technical implementation.<\/p>\n\n\n\n<p><img decoding=\"async\" src=\"https:\/\/tolinku.com\/blog\/wp-content\/uploads\/2026\/03\/screenshot-routes-1772819856524.png\" alt=\"Tolinku dashboard showing route configuration for deep links\">\n<em>Tolinku route configuration with QR code generation for each deep link.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Choosing Your Domain Strategy<\/h2>\n\n\n\n<p>Before touching DNS records, decide what domain structure fits your needs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Option 1: Subdomain of Your Main Domain<\/h3>\n\n\n\n<p>The most common and recommended approach:<\/p>\n\n\n\n<pre><code>go.yourapp.com\nlinks.yourapp.com\nl.yourapp.com\n<\/code><\/pre>\n\n\n\n<p><strong>Advantages:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Inherits domain authority and trust from your main domain<\/li>\n<li>No additional domain purchase needed<\/li>\n<li>SSL certificates can be provisioned automatically via CNAME validation<\/li>\n<li>Users immediately recognize the connection to your brand<\/li>\n<\/ul>\n\n\n\n<p><strong>Common subdomain choices:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>go<\/code> &#8211; Short, implies action (&quot;go to this link&quot;)<\/li>\n<li><code>links<\/code> &#8211; Descriptive, clear purpose<\/li>\n<li><code>l<\/code> &#8211; Minimal, saves characters<\/li>\n<li><code>get<\/code> &#8211; Good for app download links<\/li>\n<li><code>share<\/code> &#8211; Good for user-generated sharing links<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Option 2: Separate Short Domain<\/h3>\n\n\n\n<p>A dedicated domain purchased specifically for short links:<\/p>\n\n\n\n<pre><code>yrapp.co\ngetyr.app\n<\/code><\/pre>\n\n\n\n<p><strong>Advantages:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Maximally short (fewer characters in the full URL)<\/li>\n<li>Can be creative or brandable<\/li>\n<li>Separates link infrastructure from your main domain<\/li>\n<\/ul>\n\n\n\n<p><strong>Disadvantages:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Requires purchasing and maintaining a separate domain<\/li>\n<li>Doesn&#39;t benefit from your main domain&#39;s established reputation<\/li>\n<li>Users may not immediately associate it with your brand<\/li>\n<li>Additional SSL certificate management<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Option 3: Multiple Domains<\/h3>\n\n\n\n<p>Some organizations use different domains for different purposes:<\/p>\n\n\n\n<pre><code>go.yourapp.com       \u2192 Marketing campaigns\nref.yourapp.com      \u2192 Referral program links\nhelp.yourapp.com     \u2192 Support and documentation links\n<\/code><\/pre>\n\n\n\n<p>This adds management overhead but provides clean separation for analytics and routing. Each domain can have different routing rules and analytics views.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">DNS Configuration<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">CNAME Records (Subdomains)<\/h3>\n\n\n\n<p>For subdomain setups, create a CNAME record pointing your subdomain to your deep linking platform:<\/p>\n\n\n\n<pre><code>Name:   go\nType:   CNAME\nValue:  link.tolinku.com\nTTL:    3600 (or Auto)\n<\/code><\/pre>\n\n\n\n<p>In your DNS provider&#39;s interface, this typically means:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Navigate to DNS management for your domain<\/li>\n<li>Add a new record<\/li>\n<li>Select type &quot;CNAME&quot;<\/li>\n<li>Enter the subdomain name (just <code>go<\/code>, not <code>go.yourapp.com<\/code>)<\/li>\n<li>Enter the target value<\/li>\n<li>Save<\/li>\n<\/ol>\n\n\n\n<p><strong>DNS propagation<\/strong> takes anywhere from a few minutes to 48 hours, though most changes take effect within 15-30 minutes. You can check propagation status using tools like <a href=\"https:\/\/www.whatsmydns.net\/\" rel=\"nofollow noopener\" target=\"_blank\">whatsmydns.net<\/a> or running <code>dig go.yourapp.com CNAME<\/code> from your terminal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">A Records (Root Domains)<\/h3>\n\n\n\n<p>If you&#39;re using a root domain (no subdomain) like <code>yrapp.co<\/code>, you can&#39;t use a CNAME record. <a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc1034\" rel=\"nofollow noopener\" target=\"_blank\">RFC 1034<\/a> prohibits CNAME records at the zone apex because they conflict with other required records (SOA, NS).<\/p>\n\n\n\n<p>Your options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ALIAS\/ANAME record<\/strong>: Some DNS providers (Cloudflare, DNSimple, Route 53) support ALIAS or ANAME records that function like CNAME at the zone apex. Check if your provider offers this.<\/li>\n<li><strong>A record<\/strong>: Point directly to your platform&#39;s IP address. The downside is that IP addresses can change, requiring you to update the record.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cloudflare-Specific Notes<\/h3>\n\n\n\n<p>If you use Cloudflare for DNS:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Set the CNAME record to <strong>DNS only<\/strong> (grey cloud icon), not <strong>Proxied<\/strong> (orange cloud). Proxying interferes with SSL certificate provisioning and can cause redirect loops.<\/li>\n<li>If you need Cloudflare&#39;s CDN for your main domain, that&#39;s fine. Just ensure the link subdomain specifically is set to DNS only.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">SSL Certificate Provisioning<\/h2>\n\n\n\n<p>HTTPS is non-negotiable. Browsers flag HTTP links as insecure, social platforms may block them, and email providers are more likely to spam-filter them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Automatic SSL<\/h3>\n\n\n\n<p>Most deep linking platforms, including <a href=\"https:\/\/tolinku.com\/docs\/user-guide\/domains\/custom-domains\/\">Tolinku<\/a>, provision SSL certificates automatically once DNS is verified. The typical flow:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>You add the domain in the dashboard<\/li>\n<li>The platform verifies DNS points to the correct server<\/li>\n<li>An SSL certificate is requested (usually via Let&#39;s Encrypt or similar)<\/li>\n<li>The certificate is installed and auto-renewed<\/li>\n<\/ol>\n\n\n\n<p>This entire process usually completes within minutes of DNS propagation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting SSL Issues<\/h3>\n\n\n\n<p>If SSL provisioning fails:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DNS not propagated yet<\/strong>: Wait 15-30 minutes and retry<\/li>\n<li><strong>CNAME pointing to wrong target<\/strong>: Double-check the exact value your platform requires<\/li>\n<li><strong>Cloudflare proxy enabled<\/strong>: Switch to DNS only (grey cloud)<\/li>\n<li><strong>CAA record blocking<\/strong>: If your domain has a <a href=\"https:\/\/letsencrypt.org\/docs\/caa\/\" rel=\"nofollow noopener\" target=\"_blank\">CAA record<\/a>, ensure it allows your platform&#39;s certificate authority (typically Let&#39;s Encrypt)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Platform Configuration<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Adding the Domain in Tolinku<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Navigate to your Appspace&#39;s <a href=\"https:\/\/tolinku.com\/docs\/user-guide\/domains\/\">Domains<\/a> page<\/li>\n<li>Click &quot;Add Domain&quot; and enter your branded domain<\/li>\n<li>The platform checks DNS and provisions SSL<\/li>\n<li>Once verified, the domain appears with a green status indicator<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"800\" src=\"https:\/\/tolinku.com\/blog\/wp-content\/uploads\/2026\/03\/platform-platform-domains.png\" alt=\"Tolinku custom domain configuration for deep links\" class=\"wp-image-534\" srcset=\"https:\/\/tolinku.com\/blog\/wp-content\/uploads\/2026\/03\/platform-platform-domains.png 1280w, https:\/\/tolinku.com\/blog\/wp-content\/uploads\/2026\/03\/platform-platform-domains-300x188.png 300w, https:\/\/tolinku.com\/blog\/wp-content\/uploads\/2026\/03\/platform-platform-domains-1024x640.png 1024w, https:\/\/tolinku.com\/blog\/wp-content\/uploads\/2026\/03\/platform-platform-domains-768x480.png 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><figcaption class=\"wp-element-caption\">Domain management in the Tolinku dashboard with DNS verification and SSL status<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Configuring Routes<\/h3>\n\n\n\n<p>Once your domain is active, all <a href=\"https:\/\/tolinku.com\/docs\/user-guide\/routes\/\">routes<\/a> in your Appspace are accessible via the branded domain. A route with path <code>\/summer-sale<\/code> becomes available at:<\/p>\n\n\n\n<pre><code>https:\/\/go.yourapp.com\/summer-sale\n<\/code><\/pre>\n\n\n\n<p>Routes are domain-agnostic within an Appspace, meaning the same route works on any verified domain associated with that Appspace. This is useful if you have multiple branded domains for different purposes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Apple App Site Association (AASA)<\/h3>\n\n\n\n<p>For <a href=\"https:\/\/developer.apple.com\/documentation\/xcode\/supporting-universal-links-in-your-app\" rel=\"nofollow noopener\" target=\"_blank\">Universal Links<\/a> to work on your branded domain, the platform serves the AASA file at:<\/p>\n\n\n\n<pre><code>https:\/\/go.yourapp.com\/.well-known\/apple-app-site-association\n<\/code><\/pre>\n\n\n\n<p>This file tells iOS which URL paths should open in your app instead of the browser. It&#39;s served automatically by the deep linking platform; you don&#39;t need to configure it manually.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Android Asset Links<\/h3>\n\n\n\n<p>Similarly, the <a href=\"https:\/\/developer.android.com\/training\/app-links\/verify-android-applinks\" rel=\"nofollow noopener\" target=\"_blank\">Digital Asset Links<\/a> file for App Links is served at:<\/p>\n\n\n\n<pre><code>https:\/\/go.yourapp.com\/.well-known\/assetlinks.json\n<\/code><\/pre>\n\n\n\n<p>Both files are generated based on your Appspace configuration (bundle ID, Team ID, package name, SHA-256 fingerprint).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Testing Your Setup<\/h2>\n\n\n\n<p>Before using your branded domain in production, verify everything works:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">DNS Verification<\/h3>\n\n\n\n<pre><code class=\"language-bash\"># Check CNAME record\ndig go.yourapp.com CNAME +short\n# Should return: link.tolinku.com (or your platform&#39;s value)\n\n# Check that the domain resolves\ncurl -I https:\/\/go.yourapp.com\n# Should return HTTP 200 or a redirect\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">SSL Verification<\/h3>\n\n\n\n<pre><code class=\"language-bash\"># Check SSL certificate\nopenssl s_client -connect go.yourapp.com:443 -servername go.yourapp.com &lt; \/dev\/null 2&gt;\/dev\/null | openssl x509 -noout -subject -issuer\n<\/code><\/pre>\n\n\n\n<p>Or simply visit <code>https:\/\/go.yourapp.com<\/code> in a browser and click the lock icon to inspect the certificate.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Link Verification<\/h3>\n\n\n\n<p>Create a test route and verify the full redirect chain:<\/p>\n\n\n\n<pre><code class=\"language-bash\"># Follow redirects and show each step\ncurl -L -v https:\/\/go.yourapp.com\/test-route 2&gt;&amp;1 | grep &quot;&lt; HTTP\\|&lt; location&quot;\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Universal Links \/ App Links<\/h3>\n\n\n\n<p>On an iOS device, verify that tapping a link from Messages or Notes opens your app (not the browser). On Android, verify that App Links open your app directly without the disambiguation dialog.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Managing Multiple Domains<\/h2>\n\n\n\n<p>If your organization uses multiple branded domains, keep things organized:<\/p>\n\n\n\n<p><strong>Document the purpose of each domain<\/strong>: &quot;go.yourapp.com is for marketing, ref.yourapp.com is for referrals.&quot; This prevents confusion when team members create new links.<\/p>\n\n\n\n<p><strong>Consistent naming across domains<\/strong>: If <code>go.yourapp.com\/summer-sale<\/code> is your marketing link, don&#39;t also create <code>ref.yourapp.com\/summer-sale<\/code> for something else.<\/p>\n\n\n\n<p><strong>Audit regularly<\/strong>: Domains that are no longer in use should be removed to reduce your attack surface and management overhead.<\/p>\n\n\n\n<p><strong>Monitor SSL renewal<\/strong>: Most platforms auto-renew certificates, but verify that renewals succeed. An expired SSL certificate on your link domain means every link stops working.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Migration from Another Platform<\/h2>\n\n\n\n<p>If you&#39;re moving your branded domain from another link platform to Tolinku (or any new platform):<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Lower your DNS TTL<\/strong> to 60 seconds a few hours before the switch. This ensures the change propagates quickly.<\/li>\n<li><strong>Update the CNAME<\/strong> to point to the new platform&#39;s target.<\/li>\n<li><strong>Wait for DNS propagation<\/strong> (with low TTL, this should be fast).<\/li>\n<li><strong>Recreate your routes<\/strong> on the new platform with the same paths.<\/li>\n<li><strong>Verify everything works<\/strong>, then raise the TTL back to 3600 or higher.<\/li>\n<\/ol>\n\n\n\n<p>The critical consideration is that during migration, any links pointing to routes that haven&#39;t been recreated on the new platform will break. Plan for this by migrating routes before switching DNS, or accept a brief window of downtime.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ongoing Maintenance<\/h2>\n\n\n\n<p>Branded link domains are set-and-forget once configured, but a few things warrant periodic attention:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SSL certificate expiration<\/strong>: Verify auto-renewal is working<\/li>\n<li><strong>DNS record accuracy<\/strong>: If you change DNS providers, remember to recreate the CNAME<\/li>\n<li><strong>Route cleanup<\/strong>: Archive or delete routes for expired campaigns<\/li>\n<li><strong>Domain renewal<\/strong>: Don&#39;t let your branded domain registration expire<\/li>\n<\/ul>\n\n\n\n<p>For more on branded link strategy, see <a href=\"https:\/\/tolinku.com\/blog\/branded-short-links\/\">Branded Short Links: Setup and Best Practices<\/a>. For the broader context of short links in mobile marketing, see <a href=\"https:\/\/tolinku.com\/blog\/qr-codes-short-links-mobile-apps\/\">QR Codes and Short Links for Mobile Apps<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Set up a branded domain for your short links. Configure DNS, SSL, and routing for a custom short link domain that builds brand trust.<\/p>\n","protected":false},"author":2,"featured_media":777,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Branded Link Domains: Setup and Management Guide","rank_math_description":"Set up a branded domain for your short links. Configure DNS, SSL, and routing for a custom short link domain that builds brand trust.","rank_math_focus_keyword":"branded link domain","rank_math_canonical_url":"","rank_math_facebook_title":"","rank_math_facebook_description":"","rank_math_facebook_image":"https:\/\/tolinku.com\/blog\/wp-content\/uploads\/2026\/03\/og-branded-link-domains.png","rank_math_facebook_image_id":"","rank_math_twitter_title":"","rank_math_twitter_description":"","rank_math_twitter_image":"https:\/\/tolinku.com\/blog\/wp-content\/uploads\/2026\/03\/og-branded-link-domains.png","footnotes":""},"categories":[16],"tags":[158,157,20,168,49,169],"class_list":["post-778","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-marketing","tag-branding","tag-custom-domains","tag-deep-linking","tag-dns","tag-short-links","tag-ssl"],"_links":{"self":[{"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/posts\/778","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/comments?post=778"}],"version-history":[{"count":2,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/posts\/778\/revisions"}],"predecessor-version":[{"id":2148,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/posts\/778\/revisions\/2148"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/media\/777"}],"wp:attachment":[{"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/media?parent=778"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/categories?post=778"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/tags?post=778"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}