Custom Domain Setup
After deploying your Weaverse Hydrogen storefront to Shopify Oxygen, you’ll want to connect your own domain (e.g., yourstore.com) so customers visit your brand URL instead of the default Oxygen subdomain.
This guide covers the full process — from adding the domain in Shopify to configuring DNS records at your registrar — with provider-specific instructions for the most common setups.
Overview
Connecting a custom domain involves three steps:
- Add the domain in Shopify Admin
- Point it to Hydrogen (not the default Online Store)
- Configure DNS records at your domain registrar / DNS provider
Shopify handles SSL certificate provisioning automatically once DNS is correctly pointed.
Prerequisites
- A deployed Hydrogen storefront on Shopify Oxygen (deployment guide)
- Access to your domain’s DNS settings (Cloudflare, Namecheap, GoDaddy, etc.)
- The domain must not be actively serving another site on the root (or you’ll need to plan the cutover)
Step 1 — Add Domain in Shopify Admin
- Go to Shopify Admin → Settings → Domains
- Click Connect existing domain
- Enter your domain (e.g.,
yourstore.com) and click Next
- Shopify will show you the required DNS records — keep this page open for reference
If you’re on a Shopify Plus plan, you can connect multiple custom domains. Other plans support one primary domain.
Step 2 — Point Domain to Hydrogen
By default, Shopify connects new domains to the Online Store sales channel. Since you’re running a Hydrogen storefront, you need to change the target:
- In Settings → Domains, find the domain you just added
- Click on the domain name to open its settings
- Change the target from Online Store to your Hydrogen storefront
- Save the changes
This step is critical. If you skip it, your domain will serve the default Shopify Online Store theme instead of your Hydrogen app.
The DNS configuration depends on your provider. The core requirement is the same everywhere:
| Record | Type | Name | Target |
|---|
| Root domain | CNAME | @ | shops.myshopify.com |
| www subdomain | CNAME | www | shops.myshopify.com |
Some DNS providers don’t support CNAME records on the root domain (@). In that case, use an A record pointing to 23.227.38.65 (Shopify’s IP). See provider-specific instructions below.
Cloudflare
Cloudflare is a popular choice for DNS management. Follow these steps carefully:
DNS Records
- Log in to Cloudflare Dashboard
- Select your domain zone
- Go to DNS → Records
- Add the following records:
Root domain:
| Field | Value |
|---|
| Type | CNAME |
| Name | @ |
| Target | shops.myshopify.com |
| Proxy status | DNS only (grey cloud ☁️) |
www subdomain:
| Field | Value |
|---|
| Type | CNAME |
| Name | www |
| Target | shops.myshopify.com |
| Proxy status | DNS only (grey cloud ☁️) |
Proxy must be OFF (grey cloud). Shopify needs direct DNS access to provision and renew the SSL certificate for your domain. If the orange cloud (proxy) is enabled, SSL provisioning will fail.
Cloudflare-Specific Settings
After adding DNS records, verify these settings:
- SSL/TLS → Set encryption mode to Full (not Full Strict, not Flexible)
- SSL/TLS → Edge Certificates → Turn OFF “Always Use HTTPS” — let Shopify handle the HTTPS redirect
- Speed → Optimization → Turn OFF Auto Minify (Shopify/Hydrogen already optimizes assets)
- Rules → Remove any page rules that might interfere with Shopify’s routing
If you previously had Cloudflare proxy enabled (orange cloud) for this domain, make sure to also clear any cached SSL certificates in Cloudflare before switching to DNS-only mode.
Namecheap
- Log in to Namecheap
- Go to Domain List → click Manage next to your domain
- Go to the Advanced DNS tab
- Add the following records:
Root domain:
| Type | Host | Value | TTL |
|---|
CNAME | @ | shops.myshopify.com | Automatic |
www subdomain:
| Type | Host | Value | TTL |
|---|
CNAME | www | shops.myshopify.com | Automatic |
Namecheap supports CNAME flattening on the root domain, so CNAME @ works directly. Remove any existing A or AAAA records for @ that might conflict.
GoDaddy
- Log in to GoDaddy
- Go to My Products → DNS next to your domain
- Add or edit records:
Root domain:
| Type | Name | Value | TTL |
|---|
A | @ | 23.227.38.65 | 600 |
www subdomain:
| Type | Name | Value | TTL |
|---|
CNAME | www | shops.myshopify.com | 1 Hour |
GoDaddy does not support CNAME on the root domain. Use an A record pointing to Shopify’s IP address (23.227.38.65) instead.
Google Domains / Squarespace Domains
Google Domains was migrated to Squarespace Domains in 2024. The DNS management interface is the same.
- Log in to Squarespace Domains
- Select your domain → DNS → DNS Settings
- Click Custom Records → Manage
- Add the following records:
Root domain:
| Type | Host | Data | TTL |
|---|
A | @ | 23.227.38.65 | 600 |
www subdomain:
| Type | Host | Data | TTL |
|---|
CNAME | www | shops.myshopify.com | 1 Hour |
Squarespace Domains does not support CNAME on the root domain. Use an A record for @.
Amazon Route 53
- Open the Route 53 Console
- Go to Hosted zones → select your domain
- Click Create record for each:
Root domain:
| Record name | Type | Value | TTL |
|---|
| (leave blank) | A | 23.227.38.65 | 300 |
www subdomain:
| Record name | Type | Value | TTL |
|---|
www | CNAME | shops.myshopify.com | 300 |
Route 53 supports ALIAS records on the root domain as an alternative to A records — but Shopify does not provide a compatible alias target, so use the A record with IP 23.227.38.65.
HostGator / cPanel
- Log in to cPanel
- Go to Zone Editor (under Domains)
- Select your domain → Manage
- Add or edit records:
Root domain:
| Type | Name | Record | TTL |
|---|
A | yourdomain.com | 23.227.38.65 | 14400 |
www subdomain:
| Type | Name | Record | TTL |
|---|
CNAME | www.yourdomain.com | shops.myshopify.com | 14400 |
Remove any existing A records for @ or www before adding new ones. cPanel does not support CNAME on the root domain.
Netlify DNS
- Log in to Netlify
- Go to Domains → select your domain → DNS Settings
- Add records:
Root domain:
| Type | Name | Value |
|---|
A | (blank) | 23.227.38.65 |
www subdomain:
| Type | Name | Value |
|---|
CNAME | www | shops.myshopify.com |
If you previously had a Netlify site on this domain, remove the Netlify DNS records first or disable the linked site. Having both will cause routing conflicts.
Vercel DNS
- Log in to Vercel
- Go to Settings → Domains → select your domain
- Go to the DNS records tab and add:
Root domain:
| Type | Name | Value |
|---|
A | @ | 23.227.38.65 |
www subdomain:
| Type | Name | Value |
|---|
CNAME | www | shops.myshopify.com |
Remove any existing Vercel project assignments for this domain before pointing it to Shopify.
Other DNS Providers
For any DNS provider not listed above, apply these rules:
- If your provider supports CNAME on root (
@): Use CNAME @ → shops.myshopify.com
- If your provider does NOT support CNAME on root: Use
A @ → 23.227.38.65
- For www: Always use
CNAME www → shops.myshopify.com
- Proxy/CDN: Turn off any proxy or CDN layer so Shopify can provision SSL directly
- TTL: Set to the lowest available value for faster propagation
Step 4 — Verify & SSL Provisioning
- Wait for DNS propagation (typically 5–30 minutes, can take up to 48 hours in rare cases)
- Go back to Shopify Admin → Settings → Domains
- Click Verify next to your domain
- Shopify will automatically provision an SSL certificate once DNS is verified
You can check propagation status using:
- whatsmydns.net — enter your domain and check
CNAME or A records
- Terminal:
dig yourstore.com CNAME +short (should return shops.myshopify.com)
SSL provisioning may take a few minutes after DNS verification. During this time, your site may show a security warning — this is normal and resolves automatically.
Troubleshooting
Domain shows Online Store instead of Hydrogen
You missed Step 2. Go to Settings → Domains, click your domain, and change the target to the Hydrogen storefront.
SSL certificate not provisioning
- Ensure no proxy/CDN is between the domain and Shopify (Cloudflare orange cloud must be OFF)
- Verify DNS records are correct:
dig yourstore.com CNAME +short
- Check that “Always Use HTTPS” is disabled in Cloudflare (if applicable)
- Wait up to 24 hours — Shopify retries SSL provisioning periodically
ERR_TOO_MANY_REDIRECTS
This usually means Cloudflare’s SSL mode is set to Flexible instead of Full. Change it to Full in Cloudflare → SSL/TLS settings.
Domain not resolving
- Confirm DNS records are saved and published
- Check for conflicting records (e.g., old
A records pointing elsewhere)
- Verify with
dig yourstore.com +short or whatsmydns.net
www not redirecting to root (or vice versa)
Shopify handles www ↔ non-www redirects automatically once both records are configured. Ensure both @ and www records exist and point to Shopify.
Primary Domain
After verification, set your preferred domain as the primary domain in Shopify:
- Go to Settings → Domains
- Click on your verified domain
- Click Set as primary
Shopify will automatically redirect all other connected domains (including the default .myshopify.com URL) to your primary domain.
Summary
| Step | Action | Where |
|---|
| 1 | Add domain | Shopify Admin → Settings → Domains |
| 2 | Set target to Hydrogen | Shopify Admin → Settings → Domains → click domain |
| 3 | Configure DNS records | Your DNS provider (Cloudflare, Namecheap, etc.) |
| 4 | Verify & wait for SSL | Shopify Admin → Settings → Domains → Verify |
Additional Resources