Every week we get some version of the same ticket: "I want to host a second website on my account, should I add it as a subdomain or an addon domain?" Sometimes it comes in after the fact too — someone added shop.mysite.com as a subdomain when what they actually needed was a completely separate domain like myshopsite.com pointed at the same hosting account. Both are free, both live inside the same cPanel account, and cPanel's wording doesn't always make the difference obvious. Here's what each one actually does under the hood, and how to pick correctly the first time.
What an Addon Domain Actually Is
An addon domain lets you host a completely separate, registered domain name on the same cPanel account as your main domain — without buying separate hosting. Behind the scenes, cPanel treats it almost like its own account: it gets its own DocumentRoot folder, its own FTP username (usually), and it can have its own email addresses ending in that domain.
The catch: the domain has to actually be a domain you own and can point at your server, either by changing its nameservers to your host's, or by adding an A record to its own DNS zone. cPanel doesn't register the domain for you or make it "real" — it just prepares a slot to host it once DNS is pointed correctly.
What a Subdomain Actually Is
A subdomain is a prefix added in front of a domain you already have set up in that cPanel account — like blog.yourdomain.com or app.yourdomain.com. It shares the same root domain and, critically, it inherits that domain's DNS zone automatically. You don't need to touch nameservers or add an external A record; cPanel writes the zone entry for you the moment you create it (usually as an A record pointing to your server's IP, sometimes a CNAME).
Subdomains get their own folder under public_html by default (e.g. public_html/blog), and you can absolutely run a full WordPress install, a different CMS, or a static site there — it's a real, independently servable site. The only thing tying it to the parent domain is the DNS relationship.
Quick Comparison
| Aspect | Addon Domain | Subdomain |
|---|---|---|
| Is it a separate registered domain? | Yes, must be owned separately | No, it's part of an existing domain |
| DNS setup needed | Point nameservers or add A record externally | Handled automatically inside cPanel |
| Shows up as its own domain in browser | Yes — e.g. myshopsite.com | No — always ties back to root, e.g. shop.mysite.com |
| Own email addresses | Yes, @addondomain.com | Yes, but still under the parent domain's mail setup |
| Typical use case | Separate business/brand, client site, second project | Section of the same site — blog, app, staging, store |
Symptom: "Sorry, this domain is not registered" or SSL Never Issues
This is the most common addon domain complaint. You add myshopsite.com as an addon domain in cPanel, but visiting it either shows your host's default page, a DNS error, or AutoSSL keeps failing.
Cause: cPanel created the addon domain slot fine, but the domain itself is still pointing at its registrar's parking page or a previous host — nothing was changed at the domain's actual DNS/nameserver level. Addon domains only work once the domain's authoritative DNS resolves to your server's IP (or its nameservers point to your hosting provider's).
Fix:
- Log in to wherever the domain is registered (not cPanel) and either:
- change nameservers to your host's (e.g.
ns1.skyserver.in,ns2.skyserver.in), or - if you're keeping the existing nameservers, add an A record for
@andwwwpointing to your server's IP
- change nameservers to your host's (e.g.
- Wait for DNS to propagate (usually 15 minutes to a few hours, sometimes up to 24-48h for a full global refresh)
- Once
ping myshopsite.comresolves to your server IP, re-run AutoSSL from WHM/cPanel — it can't issue a certificate for a domain that doesn't point at the server yet
Symptom: Subdomain Shows the Wrong Content or a 404
Cause: Almost always a mismatched folder. When cPanel creates a subdomain, it also asks for (or auto-creates) a document root folder. If you later moved files, or if an app installer put files in public_html instead of public_html/subdomain, the subdomain is technically live — it's just pointing at an empty or wrong folder.
Fix: In cPanel, go to Domains, find the subdomain row, and check the Document Root column. Confirm your site files actually live in that exact path via File Manager, and adjust either the files or the document root to match.
How to Set Up an Addon Domain in cPanel
- Log in to cPanel → go to Domains
- Click Create A New Domain
- Enter the full domain (e.g.
myshopsite.com) — leave "Share document root" unchecked unless you specifically want it to reuse another folder - Note the document root cPanel proposes, or set a custom one
- Click Submit
- Point the domain's DNS at your server (nameservers or A record, as above)
- Upload your site files to the new document root via File Manager or FTP
- Once DNS resolves, request an AutoSSL/Let's Encrypt certificate for it
How to Set Up a Subdomain in cPanel
- cPanel → Domains → Create A New Domain
- Type just the prefix (e.g.
blog) — cPanel will show it combining with your existing domain automatically - Confirm or edit the document root (defaults to
public_html/blog) - Click Submit — DNS is created for you instantly, no external changes needed
- Upload files to that folder; the subdomain is usually live within a minute or two
Which One Should You Actually Use?
Use an addon domain when you're hosting a genuinely different business, brand, or client — something that needs its own domain name people will type or search for directly. Use a subdomain when it's a component of the same project: a blog, a staging copy, a customer portal, or an API endpoint that makes sense living under the main brand.
One practical note: addon domains and subdomains both count against your cPanel account's domain limits on shared hosting plans. If you're planning to add several separate businesses, check your plan's addon domain allowance before you commit — upgrading a VPS plan removes that ceiling entirely.
Prevention Checklist
- Before adding an addon domain, confirm you actually control DNS for it (registrar login handy)
- Write down the document root cPanel assigns — it's easy to upload files to the wrong folder on a multi-site account
- Don't request SSL immediately after creating an addon domain; wait until DNS actually resolves to the server, or AutoSSL will just keep failing silently until its next retry window
- Keep a simple spreadsheet of domain → folder → database mappings once you pass 3-4 sites on one account — it saves real time during troubleshooting later
Frequently Asked Questions
Can I turn a subdomain into an addon domain later?
Not directly by converting it, but you can remove the subdomain and add the same name as an addon domain if you actually own it as a separate registered domain. If it was only ever a subdomain of your main domain, it isn't a separate domain to begin with, so "addon domain" wouldn't apply.
Do addon domains cost extra?
Not on hosting plans that include an addon domain allowance — you're just using slots already included in your plan. You do still need to separately register/renew the domain name itself through a registrar, that cost is independent of hosting.
Will my addon domain automatically get its own email hosting?
Yes, once it resolves properly. cPanel lets you create email accounts like info@myshopsite.com the same way you would for your primary domain, as soon as MX records for it point to your server (or you configure them to use SkyServer's mail servers).
Why does my new subdomain show a certificate warning?
AutoSSL typically covers new subdomains automatically on its next scheduled run, but that can take a little time. You can manually trigger it from cPanel → SSL/TLS Status → select the subdomain → Run AutoSSL instead of waiting.
Can two addon domains on the same account share one database?
Technically yes if your application is configured to point at it, but it's not recommended. Keep each site's database separate so a problem, backup restore, or migration on one site never risks touching another site's data.
