wp2shell: more than a month later. Confirm 6.8.6, 6.9.5, 7.0.2. Patched is not clean.

Read the advisory

Server issues that can break a WordPress site

Common host and server problems on WordPress: slow loads, memory limits, mail delivery, DNS, 500 errors, stale caches, and max execution time, with practical fixes.

Topics Hardening & checklists

Lars Koudal

Lars Koudal

Updated Published

Not every WordPress failure is a bad plugin. Hosts run out of memory, DNS expires, mail queues stall, and PHP hits limits. Knowing which layer is broken saves hours of random deactivations.

Below are common server-side problems, what they usually mean, and what to try first. For security-specific symptoms, use the WordPress security issues guide and the security checklist.

Slow loading

Slow website speed

Slow pages have many parents. Isolate them:

  1. Confirm it is not only your local network
  2. Check the host status page and resource graphs (CPU, RAM, I/O)
  3. Note whether slowness tracks traffic spikes or a noisy neighbor on shared hosting
  4. Profile WordPress (Query Monitor, host APM) before blaming “too many images” alone

Fixes that often help: upgrade PHP workers/plan, enable object cache when appropriate, cut heavy plugins, and put a CDN in front of static assets. Persistent neighbor noise is a reason to move plans or hosts, not another minify plugin. Caching notes: WordPress caching tips.

Insufficient PHP memory

After a new plugin or theme, you may see errors mentioning memory exhausted. WordPress and many hosts let you raise the limit carefully.

In wp-config.php (above the “stop editing” line):

define( 'WP_MEMORY_LIMIT', '256M' );

Some hosts ignore that and require a change in the panel, .user.ini, or a support ticket. Raising memory is fine for a real need; it is not a cure for a leaking plugin. If a single extension demands absurd RAM, replace it.

Email not arriving

Receiving email

WordPress “sends” mail through the server by default. Shared hosts often block or throttle PHP mail.

  1. Send a test to yourself and a second provider (Gmail, etc.)
  2. Check spam and the host’s mail logs or webmail
  3. Verify forwarding rules if you use them
  4. Prefer SMTP or an transactional API (provider or plugin) with SPF, DKIM, and DMARC on the domain

Order and reset emails failing is a store-killing “server” issue that looks like a WooCommerce bug.

DNS and “server does not exist”

Server does not exist

Browsers that cannot resolve your domain usually point to DNS or domain registration, not WordPress:

  • Domain expired or registrar lock / unpaid invoice
  • DNS records pointed at the wrong host after a migration
  • Host outage or IP change without DNS update
  • Local DNS cache still holding an old answer

Check the registrar, DNS TTL, and host documentation. Keep registrar and DNS accounts on unique passwords with MFA; hijacks look like “the server vanished.”

Internal server error (HTTP 500)

Internal server error

A 500 is a generic failure. Common WordPress causes:

  • Faulty plugin or theme (disable via SFTP by renaming plugins or the active theme folder)
  • Corrupt or overly strict .htaccess (backup, then restore a default WordPress set of rules)
  • PHP fatal errors from incompatible versions
  • Hit memory or execution limits during a heavy admin action

Check the host error log before rewriting everything. Security plugins and WAF rules can also block admin paths after a misconfiguration; know how to bypass or disable them from the host side.

Updates or changes not showing

Often cache, not core:

  1. Clear site cache (plugin, host, CDN)
  2. Hard-refresh or try a private window
  3. Confirm you edited the right site/environment (staging vs production)
  4. If opcache or a host-level cache is sticky, restart PHP or ask support

Do not “fix” missing updates by installing random cache plugins on top of three existing layers.

Maximum execution time exceeded

Long imports, backups, or migrations hit max_execution_time. Hosts differ on how you raise it.

Some Apache setups allow .htaccess:

php_value max_execution_time 120

Others need php.ini, .user.ini, or a panel setting:

max_execution_time = 120

If the host forbids changes, run heavy jobs via WP-CLI or a higher plan. Endless timeouts can also mean a stuck plugin loop, not a limit that is merely “too low.”

When the server is the wrong suspect

Malware, redirected sites, and spam injections are not fixed by raising PHP limits. Use signs your site is hacked and malware removal when the symptoms are security, not capacity.

Practical order of operations

  1. Reproduce and note exact error text and HTTP status
  2. Check host status, disk quota, and error logs
  3. Rule out DNS and domain expiry
  4. Bisect plugins/themes if the failure is in WordPress
  5. Adjust memory/time limits only with a clear reason
  6. Escalate to host support with timestamps and log lines

Server issues are normal. Systematic checks beat random settings changes. For a fuller hardening path once the site is stable again, use the WordPress security guide.

Found this useful? Share it.

Larger screenshot