# Subdomain vs custom domain for SaaS: which to offer

> A tenant subdomain on your domain versus the customer's own custom domain: the DNS, TLS, cookie and SEO differences, and what each costs to support.

- Canonical HTML page: https://dodomain.io/glossary/subdomain-vs-custom-domain
- This Markdown twin: https://dodomain.io/glossary/subdomain-vs-custom-domain.md
- Site index for agents: https://dodomain.io/llms.txt
- Full documentation as Markdown: https://dodomain.io/docs/llms-full.txt

Generated at build time from the same React source the HTML page renders, never a hand-maintained second copy. Every public page on this host has a twin at `<url>.md`.

---

[Glossary](https://dodomain.io/glossary)

## Subdomain vs custom domain

In a SaaS product, a subdomain is an address the vendor issues under its own domain, such as acme.yourproduct.com; a custom domain is an address on the customer's own domain, such as app.acme.com, which the customer points at the product through their DNS.

Also called: Custom domain, Branded domain, Tenant subdomain

### Two ways to give a tenant an address

Most multi-tenant products start with **tenant subdomains**: `acme.yourproduct.com`, `globex.yourproduct.com`. You own the domain, so one wildcard DNS record and one wildcard certificate cover every tenant. The customer does nothing.

A **custom domain** is the customer's own name, `app.acme.com` or `status.acme.com`, pointed at your product. The customer has to change their DNS, you have to obtain a certificate for a name you do not own, and your application has to map an arbitrary hostname to a tenant. In return the customer's page carries their brand end to end.

### What changes for each

- **DNS.** Subdomain: yours, one wildcard record. Custom domain: the customer's DNS host, one [CNAME](https://dodomain.io/glossary/cname-record) for a subdomain or [A records](https://dodomain.io/glossary/a-record) for an [apex](https://dodomain.io/glossary/apex-domain).
- **TLS.** Subdomain: one wildcard certificate. Custom domain: a certificate per hostname, issued once the DNS points at you, usually through ACME or a platform such as Cloudflare for SaaS.
- **Tenant lookup.** Subdomain: parse the first label. Custom domain: look the full Host header up in a table of verified hostnames.
- **Cookies.** Tenant subdomains share your registrable domain, so a cookie scoped to it reaches every tenant. Custom domains are separate sites, isolated by default.
- **Search.** Pages on a tenant subdomain build your domain's reputation; pages on a custom domain build the customer's. Customers who care about SEO ask for the latter.
- **Ownership.** A custom domain needs [verification](https://dodomain.io/glossary/txt-record-verification) before you serve it, and monitoring afterwards, because the customer can change their DNS at any time.

### A subdomain of the customer's domain is still a custom domain

The words overlap. `app.acme.com` is a subdomain of `acme.com`, and it is a custom domain from your product's point of view. In custom-domain work the useful split is not subdomain versus domain but **subdomain versus apex** of the customer's zone: a subdomain can be a CNAME to you, an apex cannot.

### Which should a SaaS product offer?

Both, usually: a tenant subdomain on day one so nobody waits on DNS, and a custom domain for customers who want their brand on it. Many products gate custom domains to paid plans. Webflow's free Starter plan, for example, publishes only on a `webflow.io` subdomain, and Notion charges a monthly add-on per custom domain for Notion Sites. The [guide to custom domains and conversion](https://dodomain.io/guides/custom-domains-and-conversion) looks at what evidence exists that the feature moves conversion, and how to measure it in your own product.

The hard part of a custom domain is not the code that reads the Host header; it is getting a non-technical customer's DNS changed, verified, and kept that way. The [Next.js](https://dodomain.io/docs/guides/custom-domains-multi-tenant-nextjs) guide walks through the whole path on one stack.

### Related

- [How to let customers use their own domain](https://dodomain.io/guides/let-customers-use-their-own-domain)
  
  The record, the proof, the certificate, routing and monitoring, with the limits that shape each.
- [Do custom domains raise conversion?](https://dodomain.io/guides/custom-domains-and-conversion)
  
  What the evidence says, and how to test it in your own product.
- [Custom domains in multi-tenant Next.js (docs)](https://dodomain.io/docs/guides/custom-domains-multi-tenant-nextjs)
  
  Tenant lookup, DNS, TLS and the apex on one stack.
- [DoDomain with Cloudflare for SaaS](https://dodomain.io/compare/cloudflare-for-saas)
  
  One way to hold certificates for customer hostnames, and where DNS setup fits.
- [Apex domain](https://dodomain.io/glossary/apex-domain)
  
  Why customers who want their bare domain need different records.

### Frequently asked questions

#### What is the difference between a subdomain and a custom domain in SaaS?

A subdomain is an address the vendor issues on its own domain, like acme.yourproduct.com. A custom domain is on the customer's own domain, like app.acme.com, and needs the customer to change their DNS.

#### Is app.customer.com a subdomain or a custom domain?

Both. It is a subdomain of customer.com and a custom domain from the SaaS product's point of view. Because it is not the apex, the customer can connect it with a single CNAME record.

#### Does a custom domain help SEO?

It changes whose domain the pages build reputation for. Content on a tenant subdomain accrues to the vendor's domain; content on a custom domain accrues to the customer's.

#### Do I need a wildcard certificate for custom domains?

No. A wildcard certificate covers tenant subdomains on your own domain. Custom domains need a certificate for each customer hostname, issued once their DNS points at you.

### Start on the free plan

No card, no sales call: create an app, mint a session, and watch the first domain verify.

[Start with 50 free](https://app.dodomain.io/signin?mode=signup) [Read the quickstart](https://dodomain.io/docs)
