WordPress 503 Service Unavailable: Causes and Fixes for WordPress and WooCommerce
A WordPress 503 error means the server can't answer right now: maintenance mode, resource limits, a plugin, bots or the host. Fixes in order.
On this page
- A WordPress 503 means the server can't answer right now, usually from a stuck .maintenance file, hosting resource limits, a heavy plugin, bots or a host outage.
- Check resource usage in the hosting panel first, then disable plugins, tame cron and Heartbeat, block abusive bots and add page caching.
- WooCommerce stores also hit 503s from sale traffic, Action Scheduler backlogs and feed or import jobs.
A WordPress 503 Service Unavailable error means the server is reachable but cannot handle the request right now, usually because the site is stuck in maintenance mode, the hosting account has hit its CPU or process limits, a plugin or cron job is overloading PHP, bots are flooding the site, or the host itself is down.
Unlike a 500 error, a 503 is often temporary. If it clears after a few minutes and comes back at busy times, the cause is almost always resources, not broken code.
First, two quick checks
- Is it the whole site or one page? Open the homepage, a blog post and
/wp-admin/. If only the admin or checkout fails, a plugin running there is the likely cause. - Is it the host? Check your host's status page and the hosting panel for an outage or a "resource limit reached" notice. If other sites on the same account are also down, contact the host before changing WordPress.
How to fix a WordPress 503 error
- Remove a stuck maintenance file. WordPress shows "Briefly unavailable for scheduled maintenance" with a 503 status during updates. If an update was interrupted, open File Manager and delete the
.maintenancefile in the site root (it is hidden, so turn on Show Hidden Files). - Check resource usage in the panel. In cPanel open Metrics > Resource Usage; on Hostinger check the website's resource usage page. If CPU, entry processes or memory hit the limit at the times of the errors, that is your cause.
- Turn off plugins to find the culprit. If the admin won't load, rename
/wp-content/pluginstoplugins-offover SFTP. If the site comes back, rename it back and disable plugins one at a time. Backup, security scan, broken-link checker and statistics plugins are frequent offenders because they run heavy jobs. - Switch to a default theme if plugins are not the cause. Rename the active theme's folder in
/wp-content/themes/, and WordPress falls back to a default theme if one is installed. - Calm the Heartbeat and cron. Several editors left open in browser tabs send Heartbeat requests every 15 to 60 seconds. Close unused editor tabs, and if WP-Cron runs on every visit, replace it with a server cron job: add
define( 'DISABLE_WP_CRON', true );towp-config.phpand set a cron job in cPanel > Advanced > Cron Jobs to callwp-cron.phpevery 15 minutes. - Block abusive bots. Look at the raw access log or cPanel > Metrics > Visitors. Hundreds of hits a minute to
wp-login.php,xmlrpc.phpor search URLs mean a bot flood. A firewall such as Cloudflare's free plan, or blockingxmlrpc.phpif you don't use it, usually ends the 503s. - Add page caching. Cached pages are served without starting PHP, so the same traffic uses far fewer processes. LiteSpeed Cache on LiteSpeed hosts, or your host's own cache, is the first thing to set up. See why a WordPress site is slow for the wider picture.
- Read the error logs. If none of this explains it, check the PHP and web server logs; our guide to finding the WordPress error log shows where they are.
- Upgrade or move hosting if the site is simply busier than the plan allows. A growing WooCommerce store on the cheapest shared plan will keep hitting limits however well it is tuned.
WooCommerce error 503
Stores hit 503s for a few extra reasons:
- Sale traffic. Cart, checkout and account pages can't be fully cached, so a sale or a viral post means many uncached PHP requests at once. Test with your host before a big launch.
- Action Scheduler backlog. Check WooCommerce > Status > Scheduled Actions. Thousands of pending or failed actions from a sync, email or feed plugin can keep the server busy around the clock.
- Product feeds and imports. Feed plugins rebuilding a catalogue every hour, or a large CSV import, can push a small plan over its limits. Schedule them for night-time in India.
- Payment webhooks. If the site returns 503 when Razorpay, PayU or another gateway sends a webhook, orders can stay "pending payment" even though money was taken. Check the gateway's webhook log after an outage.
Edge cases competitors skip
- A 503 from Cloudflare or a CDN may come from the CDN itself, not your server. The error page branding tells you which. If it is Cloudflare's own page, check their status and your origin separately.
- Maintenance mode plugins send a deliberate 503 so Google knows the downtime is temporary. If the site shows a "coming soon" page you didn't expect, check Settings for a maintenance or coming soon plugin that is switched on.
- Google and long 503s. A short 503 is harmless for SEO. If it lasts more than a day or two, Google may start dropping pages, so fix it quickly and check Search Console > Settings > Crawl stats afterwards.
If 503s keep returning at busy times, our WordPress speed optimisation service looks at caching, cron, bots and hosting together.
FAQs
What is the difference between a 500 and a 503 error in WordPress?
A 500 means something crashed while building the page, usually code. A 503 means the server was too busy or deliberately unavailable. A 500 is usually constant; a 503 often comes and goes.
Can a plugin cause a 503 error?
Yes. A plugin running heavy background jobs or many slow database queries can use up the processes your plan allows, and the server answers new visitors with 503.
How long does a 503 error last?
Seconds to minutes when it is a traffic spike, until fixed when it is a stuck maintenance file, a runaway plugin or a host outage.
Need help with your website?
I'm a freelance WordPress developer building fast, SEO-friendly websites since 2020. Tell me what you need and I'll reply with a plan and a fixed quote, usually within 24 hours.

