Short answer: a 503 Service Unavailable means the server received the request but cannot handle it right now. In WordPress it is usually PHP resource exhaustion, a maintenance state that never cleared, or a fatal error that only appears under load.
Constant or under load?
A 503 that appears only at busy times points at capacity — PHP-FPM workers exhausted or the server hitting memory limits. A constant 503 usually means a stuck maintenance file, a crashed service, or a fatal error on every request. Establish which before changing anything.
Check the maintenance file first
WordPress creates a .maintenance file at the site root during updates and deletes it when finished. If an update was interrupted, the file remains and forces a 503. Delete .maintenance over SFTP and reload — this clears the most common WordPress 503 in seconds.
The rest of the checklist
- Logs: enable
WP_DEBUG_LOGand read/wp-content/debug.logplus the server error log for a fatal error or exhausted memory. - Plugins/theme: rename
/wp-content/pluginstoplugins_off, or the active theme folder, to isolate an offending component. - Resources: if it is load-related, check PHP-FPM
max_childrenand memory with your host; a 503 at peak is a sizing problem. - External: a hosting maintenance window or a failing upstream service can return a legitimate temporary 503.
Verify
Re-request the URL, confirm the admin loads, and if the cause was capacity, test under realistic concurrency rather than a single quiet request. If the 503 only appeared during an update, confirm the update actually completed and re-run it cleanly with a backup in place.
WP REPAIR INCIDENT STANDARD
How to narrow the fault without guessing
A 503 means the service is intentionally or temporarily unavailable. A stuck WordPress maintenance file, exhausted PHP pool, upstream maintenance and application failures require different responses.
Determine whether the response is constant, intermittent or only under load.
Check for .maintenance only when an update was interrupted.
Read PHP-FPM pool, memory and web-server logs for capacity signals.
Confirm whether a proxy, host or upstream service generated the 503.
What must be verified
- The service remains available through the original peak or controlled load.
- Interrupted updates are completed or restored cleanly.
- PHP-FPM and upstream logs show no new saturation or fatal events.
Official technical sources
Continue the diagnosis
This guide explains the diagnosis. If the site is affected now, the intervention should preserve a rollback path and verify the real business journey.
See the emergency repair service →ABOUT THIS SYMPTOM
Frequently asked questions about this guide.
Does a 503 always mean my server is overloaded?+
Not necessarily. A 503 that only appears during busy periods usually points to capacity, exhausted PHP-FPM workers or memory limits, but a constant 503 that shows up every time you load the site is more likely a stuck maintenance file, a crashed service, or a fatal error occurring on every request.
What should I check first before digging into server resources?+
Check for a leftover .maintenance file at the site root, left behind by an interrupted update. Deleting it over SFTP resolves the most common WordPress 503 in seconds, before you need to investigate PHP-FPM sizing or plugin conflicts at all.
How do I isolate whether a plugin or the theme is causing the 503?+
Rename the /wp-content/plugins folder to something like plugins_off, or rename the active theme's folder, over SFTP. If the site recovers, reintroduce components individually to identify which one was causing the fatal error or resource exhaustion.
Could a 503 be coming from something outside my WordPress installation entirely?+
Yes. A hosting maintenance window or a failing upstream service the site depends on can return a legitimate temporary 503 that has nothing to do with your WordPress files, plugins, or theme. Confirm with your host whether a maintenance event was in progress before assuming the fault is local.