TH SeedWebs

Your own domain

Connecting a domain like yourbrand.com to your SeedWebs site — the DNS records to add, what each SSL status means, and why a domain might not come up.

Last updated 2026-08-11

Every site gets a {slug}.seedwebs.app subdomain from the moment it is created, and connecting your own domain does not take that subdomain away. If you already own something like yourbrand.com, you can point it at your site: visitors see your domain, and the SSL certificate (https) is issued and renewed for you — nothing to buy or remember.

The page for this is not in the admin panel

Domains are connected from the Dashboard at seedwebs.com, not from a site’s own admin panel at /admin. There is no domain menu in the admin panel.

  1. Go to https://seedwebs.com/dashboard and sign in as the account that owns the site.
  2. Find the site’s card and press Settings.
  3. The page that opens (/dashboard/site?slug={slug}) has a Your own domain card.

Who can connect one

Three conditions, all of which must hold.

ConditionDetail
PlanA paid plan — Seed, Pro or Business. A site on the trial, or past it (expired_trial), cannot connect one
Who you areThe site owner, meaning the account that signed the site up. A super_admin, admin, editor or writer signed into /admin has no route to this page at all
Feature accessThe feature is still rolled out site by site, so it has to be enabled for your site by the SeedWebs team first

That third one causes some confusion. The Settings button on the Dashboard only appears for sites that have been enabled and are on Pro or Business. The Seed plan is fully supported behind the scenes — it is only the button that is not shown yet. If your site is enabled but on Seed, open https://seedwebs.com/dashboard/site?slug={slug} directly and the card is there. If it still does not work from the direct URL, ask us to enable it.

Opening the page and seeing “Your own domain is not available yet. Check back soon” means the site has not been enabled. “Upgrade to use your own domain” means the plan is the blocker — see Plans and billing.

One domain per site, and any given domain can be attached to only one site across the whole platform.

Connecting

  1. In the Your own domain card, type the domain — yourbrand.com — and press Connect.
  2. SeedWebs registers it with Cloudflare and shows a table of the DNS records you need to add.
  3. Go to your registrar or DNS provider and add every record in the table.
  4. Come back to this page and wait for the status to become Active.

The field accepts either form. Paste https://yourbrand.com/ and the https:// and trailing / are stripped, and the rest lowercased.

A failed connect shows a red box under the field. The message is a short code; this table explains them.

CodeCause
invalid_domainThe name is malformed (it needs at least one dot, at most 253 characters, and only letters, digits and hyphens) — or it is seedwebs.app / seedwebs.com or a subdomain of either, which are reserved
domain_takenAnother site on the platform already has this domain
rate_limitedMore than 10 connect attempts in an hour, counted per site. Wait out the hour
upgrade_requiredThe current plan does not include it. Seed, Pro or Business is required
feature_not_availableThe feature is not enabled for this site yet. Contact us
cf_rejectedCloudflare refused to register this domain
cf_unavailableSeedWebs could not reach Cloudflare just then. Try again

The DNS records to add

The table on the page tells you everything. Click a Name or Value cell to copy it — a green tick confirms.

Most rows carry a note underneath. Those notes are in English only.

The table appears while the status is Verifying… or Failed. Once the domain reads Active it disappears, because there is nothing left to do.

The value you point at is your site’s subdomain, not plain seedwebs.app. If your site is mystore.seedwebs.app, the value is mystore.seedwebs.app.

A root domain, like yourbrand.com

Two records:

TypeNameValue
CNAME@{slug}.seedwebs.app
CNAMEwww{slug}.seedwebs.app

@ means the bare domain (some DNS providers call it root or apex, or want the field left empty). The second row is what makes https://www.yourbrand.com/ work. It is not optional.

Some registrars do not allow a CNAME at the bare domain. On Route53 or DNSimple, use ALIAS or ANAME for the @ row instead. If your registrar offers neither, move your DNS to a provider that does.

A subdomain, like blog.yourbrand.com

One record, whose name is the part in front of the root domain:

TypeNameValue
CNAMEblog{slug}.seedwebs.app

A subdomain gets no automatic www twin.

SeedWebs knows about two-part Thai suffixes — .co.th, .ac.th, .go.th, .or.th, .in.th — so materdei.ac.th counts as a root domain and gets @ and www rows, not a row named materdei.

The TXT row for ownership

Cloudflare sometimes asks for an extra TXT record to prove you own the domain. When it does, the table shows it, with a note that it can be removed once the status is Active. No TXT row in the table means none is needed.

Copy the TXT name exactly as shown. Some DNS providers append your domain name themselves; if pasting the full value ends up with the domain twice, remove the domain part from the name field.

If your DNS is already on Cloudflare

The page checks your domain’s nameservers. If they are Cloudflare’s, the intro changes to “Your domain is on Cloudflare. Add these records, set each one to DNS only (grey cloud), and we will verify automatically”, and each CNAME row is tagged Proxy status: DNS only.

This is not optional. Every CNAME row must be DNS only, not Proxied (orange cloud).

www and the bare domain travel together

Connecting a root domain registers the other side for you:

  • enter yourbrand.comwww.yourbrand.com is added
  • enter www.yourbrand.comyourbrand.com is added

Whichever you typed is the canonical one, and once SSL is active the other side 301-redirects to it. However a visitor types it, they end up on the same address.

Registering it with Cloudflare is not the same as creating the DNS record, though. Add only one row and the other side will not resolve — so add both rows from the table.

Statuses, and how long to wait

There are four status badges.

BadgeMeaning
Verifying…Cloudflare is still working. This covers three stages: pending verification, issuing the certificate, and deploying it to the edge
ActiveThe certificate is live and the domain works. You get a “Verified at …” line and an Open site → button
FailedVerification did not pass, or the certificate is unusable. If Cloudflare gave reasons, they are itemised in a red box under the domain
SuspendedThe current plan does not include your own domain — see below

There is no guaranteed timeline; it depends on Cloudflare and on how fast your DNS propagates. What SeedWebs does do:

  • While Verifying…, the page re-checks every 10 seconds for up to 5 minutes.
  • After those 5 minutes, press Check now or refresh the page to check again.
  • You can close the page. A background job re-checks every unfinished domain every hour until it resolves, so there is no need to sit and watch. Domains that have gone to Failed are not re-checked automatically — press Retry yourself.

A badge reading “Could not reach Cloudflare — showing the last known status” means the connection to Cloudflare is temporarily down and what you are seeing is the last saved value, not the current one. Check again later. The DNS records table stays hidden until Cloudflare is reachable again.

Once the domain is active

  • Visitors arriving at {slug}.seedwebs.app are 301-redirected to your domain, keeping the path.
  • Every .seedwebs.app subdomain is noindex, so your site appears in Google under your own domain only — no duplicate content at two addresses.
  • The admin panel stays on the subdomain. Use https://{slug}.seedwebs.app/admin/. Opening https://yourbrand.com/admin/ takes you to the site’s home page, not the admin panel, because sign-in is tied to the subdomain.
  • Email your site sends does not switch to your domain as part of this. Verifying a sending domain is a separate matter.

When the domain will not come up

  1. Are both records there? A root domain needs the @ row and the www row. Missing one breaks that side.
  2. Is the value right? It must be your site’s {slug}.seedwebs.app — not plain seedwebs.app, and not an IP address.
  3. On Cloudflare, is it DNS only? The cloud must be grey.
  4. Any leftover records? If the domain used to point somewhere else via an A, AAAA or older CNAME record, delete those first. Two records on the same name give unpredictable results.
  5. Status says Failed — read the red box, fix what it says, then press Retry.
  6. Status says Active but the site returns error 522 or times out — that one is not your DNS. Contact us. There is an automatic repair job that runs hourly, and it usually clears within the hour.
  7. Records only just added — DNS takes time to propagate. Give it a while, then press Check now again.

Changing the domain

With a domain already connected, the card has no field for a new one. Press Remove on the current domain first, and the field comes back.

The new domain’s DNS records are a different set. What you added at your DNS provider for the old domain does not apply — add the new records.

Removing the domain

Press Remove in the card. You are asked to confirm: “Remove this custom domain? The site will go back to its .seedwebs.app subdomain.”

Removing deregisters both the bare domain and the www side from Cloudflare, and the site serves from {slug}.seedwebs.app again. No content is deleted. The DNS records you created are still at your DNS provider — remove those yourself.

The Suspended status

If the site’s paid period ends and it drops off a paid plan, your domain is set to Suspended immediately. What that means:

  • Your domain stops serving the site and answers with an upgrade message instead (HTTP 402).
  • {slug}.seedwebs.app keeps working normally. The site has not gone anywhere.
  • SeedWebs does not deregister the domain from Cloudflare. Your setup is intact.
  • The card says “Your own domain is suspended because the current plan does not include it. Upgrade to enable it”, with Upgrade → and Remove buttons.

Back on a paid plan (Seed, Pro or Business), the suspension lifts by itself and verification runs again — the status returns to Verifying… and then Active.

Limits

ThingLimit
Domains per site1 (that domain’s www side is included in it)
The same domain on several sitesNot possible. One domain, one site
Connect attempts10 per hour per site
SSL certificatesIssued and renewed automatically. There is no field to upload your own
The admin panel on your domainNot supported. Use {slug}.seedwebs.app/admin/

The admin panel is mapped out in Admin panel overview, and plans in Plans and billing.