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:

  1. Go to Addon Domains or Zone Editor
  2. Find your domain
  3. Look for an A record with the name *
  4. Verify it points to your server's correct IP

DirectAdmin:

  1. User Panel → DNS Management
  2. Look for a record where Name = *, Type = A, and Value = your server IP

Plesk:

  1. Domains → your domain → DNS Records
  2. Add or edit an A record: Name = *

GoDaddy / NameCheap (external registrar):

  1. Go to DNS settings
  2. 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:

  1. Go to Zone Editor or Addon Domains
  2. Find your domain
  3. Click Manage
  4. 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)
  5. Click Add Record

In Plesk:

  1. Domains → your domain → DNS Records
  2. Add Record
  3. Hostname: *
  4. Type: A
  5. IP: your server IP
  6. Save

In DirectAdmin:

  1. User Panel → DNS Management
  2. Add Record
  3. Name: *
  4. Type: A
  5. Value: your server IP
  6. 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):

  1. Find the wildcard entry (usually appears as *.yourdomain.com)
  2. Edit it
  3. Change Document Root to /public_html (not /public_html/subdomains or anything else)
  4. Save

In DirectAdmin (Subdomains):

  1. Edit Subdomain → *.yourdomain.com
  2. Set Path to /public_html
  3. 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.