Skip to content
Back to Blog
Hosting Support8 min read

How to Add a Subdomain in cPanel (and Not Break DNS)

Learn how to create subdomains in cPanel, point them to the correct document root, and avoid the most common configuration mistakes that break websites.

Written by Abdul AbrorTechnical Hosting Support Engineer
How to Add a Subdomain in cPanel (and Not Break DNS)
On this page

Creating a subdomain in cPanel is one of those tasks that looks simple on the surface but trips up even experienced users. The interface makes it easy to add blog.example.com or shop.example.com in seconds, but the real work starts when you need to point that subdomain to the right folder, configure DNS correctly, and avoid breaking your main site in the process.

This guide walks through the complete subdomain setup workflow, from initial creation to DNS propagation, and covers the most common pitfalls that cause subdomains to fail or behave unexpectedly.

Why Use Subdomains

Subdomains let you organize different sections of your web presence under separate prefixes while keeping everything under your main domain. Common use cases include:

  • Separating a blog from your main site (blog.example.com)
  • Running a staging environment (staging.example.com)
  • Hosting a web application separately (app.example.com)
  • Creating a store or shop (shop.example.com)
  • Setting up a customer portal or dashboard (portal.example.com)

Each subdomain gets its own document root directory, can run different software stacks, and can be managed independently while sharing the same hosting account and primary domain.

Creating a Subdomain in cPanel

The basic setup is straightforward. Log into cPanel and navigate to the Domains section, then click Subdomains.

Step-by-Step Creation

  1. Enter the subdomain prefix: Type only the prefix (like blog or shop), not the full domain
  2. Select the domain: If you have multiple domains in your account, choose which one this subdomain belongs to
  3. Set the document root: cPanel auto-fills this based on your subdomain name, typically as public_html/subdomain
  4. Click Create

The interface creates the subdomain instantly and adds the necessary DNS zone records. You'll see a success message confirming the subdomain was created.

What Happens Behind the Scenes

cPanel performs several actions automatically:

  • Creates the document root directory with appropriate ownership
  • Adds an A record pointing the subdomain to your server's IP address
  • Updates the Apache virtual host configuration
  • Reloads the web server to recognize the new subdomain

The DNS changes are immediate on the server side, but propagation to public DNS resolvers takes time.

Document Root Configuration

The document root is where your subdomain's files live. This is where most confusion and mistakes happen.

Default Behavior

When you create a subdomain called blog, cPanel defaults to:

/home/username/public_html/blog

This folder sits inside your main site's public_html directory. Any files you place here will be accessible at blog.example.com.

The Document Root Trap

Here's the most common mistake: users create a subdomain but forget that the document root is separate from their main site. They upload files to the main public_html folder expecting them to appear on the subdomain, or they upload to the wrong subdirectory.

What NOT to do: - Don't point the subdomain document root to public_html itself (this creates a duplicate of your main site) - Don't nest subdomain folders inside existing application directories unless you intend to serve files from there - Don't use spaces or special characters in the document root path

Choosing the Right Path

For a completely separate site or application, the default path works well:

public_html/blog

For a staging copy of your main site, create a parallel directory:

public_html/../staging

Or if your host allows it:

/home/username/staging

Keeping staging environments outside public_html prevents accidental public access if the subdomain configuration breaks.

Changing the Document Root

If you need to change where a subdomain points after creation:

  1. Go to cPanel → Domains → Subdomains
  2. Find your subdomain in the list
  3. Click the document root path (it's usually a link)
  4. Enter the new path
  5. Click Change

The web server reloads automatically. Changes take effect within seconds.

DNS Propagation and Testing

Once you create the subdomain, DNS propagation begins. This is the process of your subdomain's DNS records spreading across the internet's DNS infrastructure.

Propagation Timeline

DNS changes typically propagate within:

  • Local server: Immediate
  • Your ISP: Minutes to a few hours
  • Global DNS resolvers: Up to 24-48 hours (though usually much faster)

During propagation, some visitors may see the old configuration (or nothing at all) while others see the new subdomain.

Testing Before Propagation

You can test your subdomain immediately using the hosts file or by checking DNS directly.

Check DNS resolution:

dig blog.example.com

Look for an A record pointing to your server's IP address. If it's there, DNS is configured correctly on the server.

Test using hosts file:

Add this line to your local hosts file:

123.45.67.89  blog.example.com

Replace the IP with your server's actual IP address. This bypasses DNS and lets you test immediately. The hosts file location varies by operating system:

  • Linux/Mac: /etc/hosts
  • Windows: C:\Windows\System32\drivers\etc\hosts

Remember to remove this line after testing.

Common Pitfalls and How to Avoid Them

Subdomain Shows the Main Site

This happens when: - The document root is incorrectly set to public_html - There's a wildcard DNS record catching all subdomains - Apache's vhost configuration hasn't reloaded

Fix: Verify the document root in cPanel → Subdomains points to a separate folder, not public_html itself.

404 Errors or Directory Listing

The subdomain resolves but shows a directory listing or 404 error.

Cause: The document root is correct but there's no index file.

Fix: Upload an index.html, index.php, or appropriate index file to the subdomain's document root. Most web servers look for these files:

  • index.html
  • index.htm
  • index.php
  • default.html

Without one of these, the server either lists the directory contents (if Indexes is enabled) or returns a 403/404 error.

SSL Certificate Errors

Visitors see a certificate warning when accessing your subdomain via HTTPS.

Cause: Your SSL certificate doesn't cover the subdomain. Single-domain certificates only protect the main domain, not subdomains.

Fix: You need either: - A wildcard SSL certificate (covers *.example.com) - A multi-domain/SAN certificate that explicitly includes the subdomain - Separate SSL certificates for each subdomain

Many hosts offer free AutoSSL or Let's Encrypt certificates that automatically cover subdomains. Check cPanel → SSL/TLS Status to see if your subdomain is covered and request a certificate if needed.

Subdomain Not Resolving Externally

The subdomain works when you test it on the server or via hosts file, but doesn't resolve for external visitors.

Cause: Usually an external DNS issue. If your domain uses external nameservers (like Cloudflare), cPanel's DNS changes won't propagate.

Fix: Log into your external DNS provider and manually add an A record:

Type: A
Name: blog
Value: 123.45.67.89
TTL: 3600

Replace the IP with your server's IP address.

Email Routing Conflicts

After creating the subdomain, email sent to [email protected] fails or routes incorrectly.

Cause: MX records and email routing aren't automatically configured for subdomains.

Fix: If you need email at the subdomain: 1. Go to cPanel → Email Routing 2. Add the subdomain to the email routing configuration 3. Add appropriate MX records in the DNS zone

For most cases, you don't need email at the subdomain level and can safely ignore this.

Subdomain Redirects to Main Domain

Visitors are automatically redirected from the subdomain to the main domain.

Cause: A redirect rule in .htaccess or server configuration is catching the subdomain.

Fix: Check the main site's .htaccess file for redirect rules. Look for patterns like:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

These rules redirect everything to the main domain, including subdomains. Modify the condition to exclude your subdomain:

RewriteCond %{HTTP_HOST} !^blog\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Managing Multiple Subdomains

As you add more subdomains, organization becomes critical.

Naming Conventions

Use clear, purpose-driven names: - staging.example.com instead of test.example.com - api.example.com for API endpoints - cdn.example.com for static assets

Avoid generic names like sub1 or temp that become confusing later.

Directory Structure

Keep subdomain folders organized:

public_html/          # Main site
public_html/blog/     # Blog subdomain
public_html/shop/     # Shop subdomain
public_html/api/      # API subdomain

Or use a parallel structure outside public_html:

/home/username/public_html/  # Main site
/home/username/blog/         # Blog subdomain
/home/username/shop/         # Shop subdomain

The parallel structure keeps subdomains clearly separated from the main site.

Resource Limits

Each subdomain shares the same hosting account resources. Multiple resource-intensive subdomains can impact the main site's performance. Monitor:

  • CPU and memory usage per subdomain
  • Database connections
  • Disk space allocation
  • Bandwidth consumption

If resource usage becomes a problem, consider moving high-traffic subdomains to separate hosting accounts or upgrading your plan.

Conclusion

Adding a subdomain in cPanel is a simple process, but correct configuration requires attention to document root paths, DNS propagation, and SSL coverage. The most common mistakes stem from misunderstanding how document roots work and forgetting that subdomains need their own content and sometimes their own DNS records at external providers.

By following the steps in this guide and watching for the common pitfalls, you can create subdomains that work reliably from the start. Always verify the document root points to the correct folder, test DNS resolution before expecting visitors to access the subdomain, and ensure SSL coverage if you're using HTTPS. With those basics covered, subdomains become a powerful tool for organizing and scaling your web presence.

FAQ

How many subdomains can I create in cPanel?

Most hosting plans allow unlimited subdomains, but check your specific plan limits. The practical limit is usually server resources rather than a hard count.

Can I point a subdomain to a different server?

Yes, using DNS. Instead of letting cPanel manage the subdomain's A record, create a custom A record pointing to a different IP address. The subdomain will resolve to that server instead.

Do subdomains need separate SSL certificates?

It depends. Wildcard certificates cover all subdomains automatically. Standard single-domain certificates don't. Use cPanel's AutoSSL or Let's Encrypt to obtain free certificates that cover subdomains.

Can I delete a subdomain?

Yes, through cPanel → Subdomains. Deleting removes the DNS records and virtual host configuration but doesn't automatically delete the document root folder. You'll need to remove files manually through File Manager or FTP if you want to reclaim disk space.

Why does my subdomain show a cPanel default page?

This happens when the document root exists but contains no index file, and the server is configured to show a default page instead of a directory listing. Upload an index file to fix it.