21+ years in hosting · Jaipur, India · INR billing with 18% GST · 24/7 email support
Blog · WebJi® India

503 Service Unavailable: What It Means and How to Fix It

Quick answer

A 503 Service Unavailable means the server is running but temporarily refusing requests because it is overloaded, restarting or in maintenance. Check in this order: delete a stuck .maintenance file, read cPanel Resource Usage for Entry Process faults, disable plugins, then confirm the web server and PHP service are running.

For site owners and admins on cPanel, VPS or IIS hosting who need to match a 503 symptom to its cause and clear it.

✓ In business since 2005
✓ INR + GST billing
✓ 24/7 Email Support — avg reply < 60 min
GuideWebJi®
knowledge
Read time
5 min
Sections
7
Updated
14 Nov 2026
Written by
WebJi® team

What does a 503 Service Unavailable error mean?

A 503 Service Unavailable is an HTTP status the server sends when it is running but temporarily refuses to handle requests — because it is overloaded, restarting or deliberately in maintenance. The standard defines the condition as temporary, and a server may add a Retry-After header saying when to come back.

That makes 503 different from its neighbours in the 5xx family. Knowing which code you have narrows the search before you open a single log.

503 compared with the 5xx errors people confuse it with
StatusPlain meaningWhere to look first
503 Service UnavailableServer is up but will not serve right nowResource limits, maintenance file, stopped backend
500 Internal Server ErrorThe application crashed while building the page.htaccess, PHP fatal errors, plugin code
502 Bad GatewayA proxy got an invalid reply from the backendPHP-FPM or app server crashed
504 Gateway TimeoutThe backend replied too slowlySlow queries, long-running scripts

Which 503 pattern are you seeing?

Classify the 503 by when it appears — always, only under traffic, or only through a proxy — because each pattern points to a different cause. Spend two minutes on this before changing anything on the server.

503 symptom, likely cause and first action
What you seeLikely causeFirst action
"Briefly unavailable for scheduled maintenance"Stuck WordPress updateDelete .maintenance in the site root
503 at busy hours, fine at nightAccount hitting its Entry Processes or memory capRead cPanel → Resource Usage
Every URL fails, even images and CSSWeb server or PHP service stoppedRestart the service or ask the host
PHP pages fail, static files loadPlugin or theme fatal errorDisable plugins, read error_log
Fails via Cloudflare, origin answers directlyProxy cannot reach a healthy originTest the origin IP with curl
Windows/IIS site, "Service Unavailable" in plain textApplication pool stoppedStart the pool in IIS Manager

Confirm the exact status from a terminal; the response headers also show whether a Retry-After value was sent.

curl -sI https://example.com/ | head -n 5

How do you clear a stuck maintenance-mode 503?

Delete the hidden .maintenance file in the WordPress root and the site returns immediately. WordPress creates it at the start of a core, plugin or theme update and removes it at the end; if the update times out, the file stays and every visitor gets a 503.

  1. Open cPanel File Manager, go to public_html and enable "Show Hidden Files" in Settings.
  2. Delete .maintenance.
  3. Log in to wp-admin and re-run the update that was interrupted, so no half-updated plugin is left behind.

On ASP.NET sites the equivalent is a file named app_offline.htm in the application root; rename or remove it. Intentional downtime is better handled with a proper WordPress maintenance mode that sends 503 with a Retry-After header, so search engines treat the outage as temporary.

Are resource limits causing your 503 on shared hosting?

Intermittent 503s on shared hosting are most often the account reaching its CloudLinux limits — Entry Processes (simultaneous PHP requests), physical memory or CPU. The server is protecting other accounts, and the errors stop when the load drops.

  1. Open cPanel → Metrics → Resource Usage and look for faults on the Entry Processes or memory line at the same times as the errors.
  2. Check the access log for the driver: a crawler or bot burst, a backup or import job, or one URL hammered by a plugin's AJAX calls.
  3. Block abusive bots, enable page caching, and move backups and imports to quiet hours.
  4. If genuine visitors are the cause, the plan is too small; more Entry Processes, not tuning, is the fix.

These limits exist on every cPanel hosting plan. WebJi® support reads the resource graph with you on request by email at support@webji.services, 24/7 in Hindi and English, average first reply under 60 minutes.

How do you find a WordPress plugin or theme causing 503?

Switch off all plugins at once; if the site comes back, a plugin is responsible and you re-enable them one at a time to find it. When you cannot reach wp-admin, rename the folder instead of using the dashboard.

  • File Manager or FTP: rename wp-content/plugins to plugins_off, test, then rename it back and disable plugins individually.
  • Theme: rename the active theme's folder so WordPress falls back to a default theme.
  • Memory: "Allowed memory size exhausted" in the log means PHP needs more room; add define( 'WP_MEMORY_LIMIT', '256M' ); to wp-config.php or remove heavy plugins.

With SSH access, WP-CLI does the same work faster:

wp plugin deactivate --all
wp theme activate twentytwentyfive   # any installed default theme
tail -n 50 error_log

Where the log lives depends on the host; the WordPress error log guide lists the usual paths.

What if the web server or PHP service has stopped?

If static files return 503 too, the web server or PHP service is down — on shared hosting only the host can restart it, on a VPS you can. Restart the service, then find out why it stopped, usually an out-of-memory kill.

# LiteSpeed
sudo systemctl restart lsws
# Apache (Debian/Ubuntu: apache2, RHEL/AlmaLinux: httpd)
sudo systemctl restart apache2
# PHP-FPM (the unit name includes the version on Debian/Ubuntu)
sudo systemctl restart php8.3-fpm
# Was anything killed for memory?
sudo journalctl -k | grep -i -E "out of memory|killed process"

Repeated OOM kills mean the VPS needs more RAM or fewer PHP workers. On Windows Server, IIS Rapid-Fail Protection stops an application pool after five worker-process crashes within five minutes by default; start the pool in IIS Manager and read the WAS entries in the System event log to learn which module crashed.

Why does Cloudflare show 503 when the server seems fine?

A 503 through Cloudflare or another CDN means the edge did not get a healthy answer from your origin, or a rule on the path refused the request. Bypass the proxy and ask the origin directly to see which side fails.

curl -sI --resolve example.com:443:203.0.113.10 https://example.com/

Replace the IP with your server's address. If the origin returns 200, check firewall, rate-limit or bot rules on the CDN and on the server's own firewall, which may be blocking the CDN's IP ranges. Note the Ray ID printed on Cloudflare's error page; support can trace the exact request from it. Recurring short outages are easier to prove with uptime monitoring logs.

FAQ

Frequently asked questions

Does a 503 error hurt Google rankings?

Not if it is short. Google treats 503 as a temporary state and comes back later, which is why it is the correct status for planned maintenance. A 503 that lasts for days can lead to URLs dropping from the index, so fix long outages quickly.

Can a 503 be fixed without logging in to WordPress?

Yes. Everything that matters happens outside wp-admin: delete .maintenance, rename the plugins folder and read error_log through cPanel File Manager or FTP. Once the site loads again, log in and re-enable plugins one by one.

How long does a 503 error usually last?

A resource-limit 503 clears within minutes once the spike passes; a stuck maintenance file lasts until someone deletes it. A stopped backend lasts until it is restarted. If the error persists beyond a few minutes, treat it as a fault rather than load.

Is the 503 my fault or my hosting provider's?

Check two things. A PHP fatal in error_log or a stuck .maintenance file is on the site side. If static files also fail and the log is silent, the web server is down, which on shared hosting the host must fix.

Last editorial update: 14 November 2026.

WebJi® since 2005

Ready to get started with WebJi®?

Join 12,000+ businesses across India and overseas. INR pricing, 18% GST shown before payment and 24/7 email support in Hindi and English — average first reply under 60 minutes.