> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sellauth.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Domain

> Run your shop on your own domain instead of the default mysellauth.com address, using Cloudflare for DNS.

Every shop starts on `yourshop.mysellauth.com`. Connecting your own domain replaces that with an address you own, and nothing about your shop changes: same products, orders and payment methods, new address.

<video controls playsInline preload="none" poster="/images/custom-domain-walkthrough.jpg" className="w-full aspect-video rounded-xl" src="https://zipline.echoauth.dev/u/vDyhmw.mp4" />

The walkthrough covers the full flow: buying the domain at Namecheap, adding it to Cloudflare, switching the nameservers and adding the SellAuth records. The rest of this page is the same thing in writing.

Domains are managed under [**Domains**](https://dash.sellauth.com/domains) in the dashboard, which walks you through the connection and shows the DNS records to add.

<Note>
  **You need**

  * A plan that includes custom domains
  * A domain from a registrar such as Cloudflare, Namecheap or Porkbun
  * A free Cloudflare account, used to manage the domain's DNS
</Note>

## Apex or subdomain

Decide which address the shop runs on before you start.

| Choice | Example | Notes |
| - | - | - |
| **Apex domain** | `yourstore.com` | The shorter, more usual choice for a shop |
| **Subdomain** | `shop.yourstore.com` | Use when the apex is already serving another site |

An apex domain needs a CNAME record at the root of the domain, which standard DNS does not allow. DNS providers work around it with CNAME flattening, and Cloudflare supports this, which is the main reason the setup below uses Cloudflare.

If you would rather keep your DNS with a provider that does not flatten CNAMEs, put the shop on a subdomain instead. A subdomain takes a normal CNAME and works anywhere.

## Connect the domain

<Steps>
  <Step title="Start the connection in SellAuth">
    Open [**Domains**](https://dash.sellauth.com/domains), click **Connect a Domain** and enter the address you want, for example `yourstore.com` or `shop.yourstore.com`. SellAuth then shows the DNS records for it.
  </Step>

  <Step title="Add the domain to Cloudflare">
    In [Cloudflare](https://dash.cloudflare.com/), click **Add a Site**, enter your domain and choose the **Free** plan.
  </Step>

  <Step title="Point your registrar at Cloudflare">
    Cloudflare gives you two nameservers. Replace your domain's nameservers with those at your registrar.

    If you bought the domain at Cloudflare, it is already on their nameservers and there is nothing to do here.
  </Step>

  <Step title="Add the DNS records">
    In Cloudflare's **DNS** section, add each record exactly as shown in your SellAuth dashboard. There is normally one **CNAME** and two **TXT** records, and occasionally a single TXT record.

    Copy the values rather than typing them. The **Name** for an apex record is shown as `@`.
  </Step>

  <Step title="Set the CNAME to DNS only">
    The CNAME's proxy status must be **DNS only**, the grey cloud. An orange cloud puts Cloudflare's proxy in front of your shop and the domain will not verify.
  </Step>

  <Step title="Wait, then refresh">
    The dashboard shows the domain as **Pending: waiting for DNS** until the records are visible. Use **Refresh** to check again. It usually takes minutes, and DNS changes can take up to 24 hours.
  </Step>
</Steps>

Once it verifies, the domain shows as **Connected & active** and your shop is live on it.

<Warning>
  When Cloudflare imports your domain it copies whatever DNS records already exist. Delete any A, CNAME or NS records left over from a previous site on that address, since they conflict with the records SellAuth gives you.
</Warning>

## Redirecting www to your domain

Buyers type `www.` out of habit. Sending it to your shop takes two pieces in Cloudflare.

**A DNS record** so the hostname resolves:

| Field | Value |
| - | - |
| Type | A |
| Name | `www` |
| IPv4 address | `192.0.2.0` (a reserved placeholder) |
| Proxy status | **Proxied**, the orange cloud |

**A redirect rule** under **Rules**, forwarding `www.yourstore.com/*` to `https://yourstore.com/$1` with a **301 Permanent Redirect**.

The placeholder IP never receives traffic. It exists so the hostname resolves and Cloudflare's proxy can answer with the redirect.

## Troubleshooting

**Stuck on Pending.** The dashboard lists what is still missing under **Not verified yet**. Check those records first, then press **Refresh**.

**The CNAME is proxied.** An orange cloud on the CNAME stops verification. Switch it to DNS only.

**Records do not match.** Values must match the dashboard exactly. A trailing dot, a missing prefix or a partly copied TXT value will all fail.

**Nameservers not changed.** Cloudflare cannot serve DNS until your registrar points at its nameservers. Cloudflare emails you when they are active.

**SSL errors in the browser.** Usually means DNS has not finished, or the domain is not on Cloudflare's nameservers yet. The certificate is issued once the domain verifies.

**Old site still loading.** Leftover A or CNAME records from a previous host. Remove them.

## Next steps

<CardGroup cols={2}>
  <Card title="Storefront basics" icon="palette" href="/guides/storefront-basics">
    Themes, shop identity and the meta image on shared links.
  </Card>

  <Card title="How to accept card payments" icon="credit-card" href="/guides/accept-cards">
    Some processors verify your domain before Apple Pay works.
  </Card>
</CardGroup>

Still stuck after all of that? Ask on the [Discord](https://discord.sellauth.com).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.