WordPress Multisite Subdomain Not Working — DNS Issue: Full Diagnostic Guide
You activated Multisite, chose subdomains, created a new site—and got "Server Not Found." The WordPress admin shows a yellow warning: "Wildcard DNS may not be configured correctly!" You checked your DNS, it looks right, but subdomains still don't work. Here's what's actually wrong and how to fix it.
Why Multisite Subdomains Break: The DNS Reality
WordPress Multisite with subdomains requires a wildcard DNS record. Without it, every subdomain you create in WordPress simply won't resolve. Here's what happens:
1. Wildcard DNS Not Created at All
The most common issue: You set up Multisite, configured wp-config.php, updated .htaccess—but forgot to add the wildcard DNS record in your hosting control panel.
Result: WordPress admin works (because you're accessing domain.com). But when you try blog.domain.com, the server doesn't know where to send the request. DNS lookup fails. "Server Not Found" error.
2. Wildcard DNS Points to Wrong IP Address
You created the wildcard record (*.domain.com), but it points to the wrong server IP.
Example: Your server IP is 203.0.113.50. Your wildcard DNS points to 198.51.100.25 (an old IP, or a different server). Subdomains resolve to the wrong server.
3. Wildcard DNS Disabled After Initial Setup
You had it working, then it stopped. Possible reasons:
- Your host's control panel (cPanel, Plesk, DirectAdmin) auto-sorts DNS records alphabetically, and the wildcard got buried or deprioritized
- A DNS record for a specific subdomain (like www.domain.com) is now taking precedence over the wildcard (*.domain.com)
- Your hosting provider updated their DNS configuration and accidentally removed your wildcard
- DNS propagation expired (unlikely, but possible after a migration)
4. DNS Records Conflict (Wildcard vs. Specific Subdomains)
Real example from forums: A user had a custom subdomain (mail.domain.com) pointing to cPanel webmail. When they added wildcard DNS for Multisite, mail.domain.com stopped working—it got caught by the wildcard instead of the specific A record.
Result: Multisite subdomains work, but pre-existing subdomains break. Or vice versa.
5. Wrong Directory Path for Wildcard Subdomain
In hosting control panels (DirectAdmin, cPanel), when you create a wildcard subdomain, you specify its document root. If you point it to the wrong folder, the server serves wrong content.
Wrong: Wildcard *.domain.com points to /public_html/subdomains/ (or any non-root path)
Right: Wildcard *.domain.com points to /public_html/ (same root as main domain)
6. DNS Hasn't Propagated Yet
You just created the wildcard DNS record. DNS takes time to propagate globally.
Timeline: Usually 15 minutes to a few hours, but can take up to 24–72 hours in rare cases. During propagation, some users see the subdomain, others don't.
Diagnosis: Test Your Wildcard DNS
Step 1: Check What WordPress Says
When you first enable Multisite, WordPress tests your DNS automatically. It creates a random subdomain (like 33c958.domain.com) and tries to reach it. If it fails, you'll see:
Warning: "Wildcard DNS may not be configured correctly! The installer attempted to contact a random hostname (33c958.domain.com) on your domain. This resulted in an error message: Couldn't resolve host '33c958.domain.com'."
This warning means WordPress confirmed that your wildcard DNS isn't working. It's not a guess—WordPress tried to verify it and failed.
Step 2: Verify Wildcard DNS From Command Line
Test your DNS using terminal commands (nslookup or dig). This works whether you're on Linux, Mac, or Windows.
Test a random subdomain:
nslookup test123.yourdomain.com
Or with dig (more detailed):
dig test123.yourdomain.com +short
Expected result: Both commands return your server's IP address (e.g., 203.0.113.50)
Bad result:
- "NXDOMAIN" or "non-existent domain"
- No output (DNS not resolving)
- Wrong IP address (pointing to old server or different host)
Step 3: Check Your Hosting Control Panel
cPanel:
- Go to Addon Domains or Zone Editor
- Find your domain
- Look for an A record with the name
* - Verify it points to your server's correct IP
DirectAdmin:
- User Panel → DNS Management
- Look for a record where Name =
*, Type = A, and Value = your server IP
Plesk:
- Domains → your domain → DNS Records
- Add or edit an A record: Name =
*
GoDaddy / NameCheap (external registrar):
- Go to DNS settings
- Add an A record: Hostname =
*, Points to = your server IP
Step 4: Check Document Root (Hosting Control Panel)
In cPanel, Plesk, or DirectAdmin: When you view the wildcard subdomain settings, verify the document root.
Correct: Points to /public_html or the root of your WordPress install
Wrong: Points to /public_html/subdomains or any subfolder (this breaks WordPress file loading)
Quick Fixes: DNS Configuration
Fix #1: Create the Wildcard DNS Record (If Missing)
In cPanel:
- Go to Zone Editor or Addon Domains
- Find your domain
- Click Manage
- Add an A record:
- Name:
*(just the asterisk) - Type: A
- Address (IPv4): your server's IP (e.g., 203.0.113.50)
- TTL: 3600 (default is fine)
- Name:
- Click Add Record
In Plesk:
- Domains → your domain → DNS Records
- Add Record
- Hostname:
* - Type: A
- IP: your server IP
- Save
In DirectAdmin:
- User Panel → DNS Management
- Add Record
- Name:
* - Type: A
- Value: your server IP
- Submit
Fix #2: Verify the IP Address Is Correct
How to find your server IP:
- Check your hosting confirmation email (usually lists the server IP)
- In cPanel: Home page shows it
- In DirectAdmin: Admin Panel → License Information
- In Plesk: Tools & Settings → Server Components
- Contact your hosting provider
Check what your DNS currently points to:
nslookup yourdomain.com
The IP in the result should match your server IP. If it doesn't, update the wildcard A record.
Fix #3: Check for DNS Record Conflicts
If you have both a specific subdomain record AND a wildcard record, they can conflict.
Example conflict:
- A record for www.domain.com → IP 203.0.113.50
- A record for *.domain.com → IP 203.0.113.50 (same IP)
Usually this works fine (the specific record takes priority). But if the IPs are different, or if one record is misconfigured, subdomains break.
Solution: Make sure all A records point to the same IP. If you need a specific subdomain to work differently, use a CNAME record instead of an A record.
Fix #4: Fix the Document Root (Hosting Control Panel)
If your wildcard subdomain is set to point to a subfolder, change it to the WordPress root.
In cPanel (Addon Domains):
- Find the wildcard entry (usually appears as *.yourdomain.com)
- Edit it
- Change Document Root to /public_html (not /public_html/subdomains or anything else)
- Save
In DirectAdmin (Subdomains):
- Edit Subdomain → *.yourdomain.com
- Set Path to /public_html
- Save
Fix #5: Wait for DNS Propagation (24–72 Hours)
You just added the wildcard DNS record. Wait a bit.
How long? Typically 15 minutes to 4 hours, but DNS TTL (time-to-live) can delay it. Maximum is 72 hours in extreme cases.
Check propagation status: Use https://www.whatsmydns.net → enter *.yourdomain.com and watch as DNS resolvers worldwide update. When all show green and your server IP, propagation is complete.
Speed up local testing: Flush your computer's DNS cache:
On Windows (PowerShell as Admin):
ipconfig /flushdns
On Mac:
sudo dscacheutil -flushcache
On Linux:
sudo systemctl restart systemd-resolved
WordPress Configuration (wp-config.php and .htaccess)
DNS is only half the battle. WordPress also needs proper configuration.
wp-config.php Settings for Subdomain Multisite
Add these lines to wp-config.php before the "stop editing" comment:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'yourdomain.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
Important: Replace 'yourdomain.com' with your actual domain (without http://).
.htaccess Settings for Subdomain Multisite
WordPress provides a special .htaccess for Multisite. It should look like this:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-(.*)$ $1wp-$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $1$2 [L]
RewriteRule . index.php [L]
# END WordPress
If this isn't in your .htaccess, add it. If you don't have an .htaccess file, create one at your WordPress root (/public_html/.htaccess).
Complete Troubleshooting Checklist
| Check | How to Verify | Fix If Missing |
|---|---|---|
| Wildcard DNS exists | Check control panel for A record with Name = * | Create it, pointing to server IP |
| IP is correct | nslookup test123.domain.com returns your server IP | Update wildcard A record to correct IP |
| Document root correct | Control panel shows wildcard points to /public_html | Edit wildcard, change path to /public_html |
| MULTISITE enabled | wp-config.php has MULTISITE, true | Add to wp-config.php |
| SUBDOMAIN_INSTALL enabled | wp-config.php has SUBDOMAIN_INSTALL, true | Add to wp-config.php |
| .htaccess correct | Check WordPress section in .htaccess | Replace with Multisite .htaccess |
Prevention: Keep Multisite Working
1. Test wildcard DNS BEFORE enabling Multisite — Create a random test subdomain (test.domain.com) and verify it resolves to your server IP before you enable Multisite in WordPress.
2. Document your setup — Save a note of your server IP, wildcard DNS settings, and wp-config.php values. You'll need them if anything breaks.
3. Don't change your server IP without updating DNS — If you migrate to a new server, update all DNS A records immediately (including the wildcard) to the new IP.
4. Keep wp-config.php and .htaccess in sync — If you update one, make sure the other matches. Mismatched settings break subdomains.
5. Use a managed WordPress host if possible — Managed hosts (Kinsta, WP Engine, SiteGround Multisite plan) handle all this for you. On shared hosting, DNS issues are common.
6. Monitor DNS after creating new sites — When you create a new site in Multisite, test it from command line to confirm it resolves.
The Real Talk
WordPress Multisite with subdomains is powerful, but it's held hostage by DNS. Nine times out of ten, "subdomains not working" means DNS is missing or misconfigured—not WordPress.
The fix almost always comes down to: add the wildcard A record, point it to your server IP, verify it resolves, wait for propagation. That's it.
If you're on shared hosting and DNS changes aren't sticking, it's worth asking your hosting provider if they support wildcard subdomains. Some cheap hosts don't allow it by default.
Last updated: October 2026. Real data: WordPress.org support forums (2010–2026), DirectAdmin community forums, cPanel documentation, DNS propagation testing via whatsmydns.net, nslookup/dig DNS verification.
