Does your WordPress site display a 503 error (Service Unavailable) and become inaccessible? This signal means your server is temporarily overloaded or under maintenance. On o2switch (Grow, Cloud, Pro plans), this often shows up as the message “Resource Limit Reached” and can even block your database.

In this guide, you will:

  • Identify the cause in under 5 minutes (plugin, overload or bot attack).
  • Fix the error even without access to the WordPress dashboard.
  • Secure your hosting with TigerProtect so it doesn’t happen again.
⚡ Fix a WordPress 503 error in 5 minutes

  1. Check the CPU resources in cPanel (o2switch)
  2. Increase the PHP memory (memory_limit)
  3. Deactivate all plugins (via SFTP if necessary)
  4. Activate a default WordPress theme

In 80% of cases, the error disappears after these steps. If it doesn’t, follow the detailed guide below.

What is a 503 error on WordPress?

The 503 error Service Unavailable is a standard HTTP code indicating that your web server is temporarily unable to handle requests. Unlike a 404 error (page not found) or a 500 error (internal error), the 503 doesn’t mean your site has been erased or broken, it is just suffocated.

Concretely, when your WordPress site is inaccessible with this code, three scenarios are possible: your server is overloaded by too many simultaneous requests, a WordPress plugin or theme bug is hogging the CPU resources, or your host is under scheduled maintenance.

What makes the 503 particularly treacherous is that it can block not only the front of your site, but also your WordPress dashboard and even the connection to the database. The server, out of breath, can no longer reach your SQL tables.

After more than 500 WordPress projects, here is what I observe

I regularly work on production WordPress sites facing this type of error, notably on high-traffic WooCommerce stores. What I observe in the field is quite consistent: in more than 80% of cases, an overloaded WordPress server originates from a poorly optimised (or buggy) plugin running in a loop, or from an uncontrolled CPU spike on shared hosting. The cause? It is often triggered by a wave of bots or a badly executed update.

The good news is that these two causes are quickly diagnosed and fixed without touching the code.

1. Diagnosis: is it a resource limit? (o2switch case)

If you are on an o2switch Grow, Cloud or Pro plan, the WordPress 503 error service unavailable often comes with the message “Resource Limit Reached”.

The symptom: In your cPanel, go to Resources > Resource Usage > Current Usage. In the CPU Usagegraph, watch the Average line: if it touches or exceeds the red Limitline, your server is saturated and the 503s are a direct consequence.

Graphique CPU Usage o2switch montrant les pics de consommation touchant la limite rouge

The immediate solution: Check your PHP limits. The value to set depends on your setup:

Setup Recommended
(PHP memory_limit)
WordPress + lightweight theme256M
WordPress + WooCommerce512M
WordPress + Elementor (or other builder)512M to 1024M
WooCommerce + Elementor (or other builder)1024M minimum
WooCommerce + Elementor + heavy third-party plugins1024M to 2048M

This recommendation is all the more important if you use WooCommerce with a page builder such as Elementor, Flatsome or Avada. These tools load their own rendering engine on top of the WooCommerce requests, and together they consume server resources very quickly.

⚠️ Warning: if you go up to 2048M and the spikes persist, the problem is no longer memory. A script running in a loop will never be solved by adding RAM — you have to identify and stop the faulty process (see section 2).

Note: on shared o2switch hosting, the configured value is capped by your plan. No point setting 2048M if your Grow plan is limited to 1024M on the server side. The Average line in the CPU Usage graph remains your best real indicator.

How to do it? In cPanel > Select PHP Version > Optionstab, set memory_limit according to the table above and max_execution_time to 360.

Interface cPanel o2switch pour modifier le memory_limit, max_input_vars et opcache pour WordPress

2. Live analysis: who is consuming your CPU?

If your resources saturate for no apparent reason, injected malicious code or a WordPress plugin bug may be running in a loop. Use your hosting’s SSH terminal Type

Menu Avancé du cPanel o2switch mettant en avant l'accès au Terminal SSH pour WordPress
  1. cd www (or your site's folder) Run the command
  2. top or htop If a PHP process consumes 100% of the CPU persistently, you have identified the source of the problem
  3. To leave the display, press the
  4. key q. It’s a silly detail, but you often get stuck in it the first time.

3. Taking back control if the admin is blocked

When your WordPress site is inaccessible to the point that you can no longer get into the admin, you need to go through FTP:

  1. Connect via SFTP (FileZilla).
  2. Go to the wp-content/plugins folder.
  3. Rename the suspect plugin’s folder or the whole plugins folder to deactivate them in bulk.
  4. Reload the site: if the 503 disappears, reactivate your plugins one by one from the admin to identify the culprit.

See my guide: activate or deactivate a plugin via FTP

If the problem comes from a failed WordPress or WooCommerce update that corrupted core files:

  1. Download the latest version of WordPress from wordpress.org.
  2. Connect via SFTP.
  3. Replace only the wp-admin and wp-includes folders.
  4. Do not touch wp-content or wp-config.php.

To understand exactly which file causes this blockage, see my guide: Where to find WordPress logs?

4. Security: block bot attacks (o2switch)

Often, an overloaded WordPress server is not the victim of an internal bug but of an external attack: French IPs via VPN or foreign ones hammering your pages with thousands of requests per hour:/my-account and /wp-login.php

Use the TigerProtect tool in cPanel to set up these barriers:

Interface de configuration TigerProtect sur o2switch montrant le réglage du Rate Limit pour protéger WordPress

o2switch default security : Enable. It corresponds to the security rules maintained by the o2switch technical team. It is basic protection.

Set up a rate limit on /wp-login.php : Limiting to 5 req/min limits the number of requests per IP address to the admin pages. This stops brute-force attacks dead.

Control requests from malicious or suspicious bots : Block everything: HTTP 403. This blocks requests from bots with a bad reputation that are considered malicious.

Block traffic from Tor network IP addresses : Block everything: HTTP 403. This blocks traffic coming from Tor exit nodes.

Block traffic from IP addresses with a bad reputation : Block everything: HTTP 403. No more traffic from IPs listed on blacklists.

ModSecurity : Enable. It is a complementary application firewall that analyses and filters incoming requests to your site. Be sure to leave it enabled but check that it doesn’t break features of your site.

“I’m under attack” mode: Can be enabled directly from o2switch’s cPanel, it is drastic against major crises.

⚠️ Warning: this mode can block Webhooks (Avis Garantis, Sendcloud…). Reserve it for absolute emergencies, and disable it as soon as the crisis is over.

If you see 403 errors appear in your logs after enabling it, that’s good news: it’s a sign that TigerProtect is doing its job and blocking suspicious requests before they reach WordPress.

5. Going further: protection before the server

If the attack persists, you need to filter the traffic before it reaches your server.

Cloudflare: By putting your site behind Cloudflare, you benefit from Bot Fight Mode which eliminates suspicious bots for free before they even touch o2switch.

Wordfence: Use the Live Traffic tab to spot intrusion attempts and backdoors (infected files) that could overload your RAM.

To optimise your site and prevent the server from saturating again, discover my full analysis: Why is my WordPress site slow? Causes and solutions

Does your site show another error? I also explain how to fix the 429 Too Many Requests error, the 413 Request Entity Too Large error and the 404 errors that appear after an update.

6. And at other hosts?

The 503 error service unavailable WordPress is not specific to o2switch (alas). The causes are universal, only the diagnostic tools change.

OVH / OVHcloud: Go to your customer area Hosting tab General information. OVH also sends an email alert in case of recurring saturation. Note: on OVH shared hosting, the memory limit is set by the host. The .ovhconfig file is only used to choose the PHP version and environment; a memory_limit line has no effect there.

SiteGround: From Site Tools, go to Statistics > Resources. SiteGround uses its own caching system (SG Optimizer) which can conflict with third-party cache plugins and cause 503s. Deactivate the other cache plugins first.

Infomaniak: The customer area offers a resource dashboard per site. The memory limit is changed from Web Hosting > PHP > Configuration.

Ionos (1&1): From Control Panel, see the Performancetab. PHP configuration is done via the
php.ini file accessible from the file manager.

In all cases, the logic remains the same: check resource consumption, identify the WordPress plugin bug or the faulty script via the logs, and adjust the PHP limits. If your host doesn’t offer an integrated monitoring tool, enable WordPress debug to read the errors directly in wp-content/debug.log.

Summary: which cause for which solution?

Observed symptomProbable causeSolution
Message “Resource Limit Reached”CPU saturation o2switchcPanel > Resources > Current Usage, increase memory_limit
The Average line touches the red lineOverloaded WordPress serverSSH > htop, identify the faulty PHP process
WordPress admin inaccessibleWordPress plugin bug or faulty updateDeactivate via SFTP, reinstall WP core if necessary
503 spikes on /wp-login.phpBrute-force attack / botsTigerProtect: Rate Limit 5r/min + reputation blocking
403 errors in the logs after TigerProtectNormal, protection activeNo action required, TigerProtect blocks suspicious requests
Persistent volumetric attackLarge-scale botsCloudflare Bot Fight Mode, “I’m under attack” mode from o2switch cPanel
503 at OVH, SiteGround, InfomaniakSame causes, different toolsCheck the host’s resource monitoring + adjust the PHP limits

Frequently asked questions

  • The 500 error (Internal Server Error): It’s a software “crash”. A file is badly coded or corrupted. The server tries to read the code but “breaks” along the way.

  • The 503 error (Service Unavailable): It’s suffocation. Your code may be perfect, but the server has no CPU or RAM left to run it. It literally puts you in a “waiting room”, but as the room is full, it ends up rejecting the connection.

Go to cPanel > Resources > Resource Usage > Current Usage. If the Average line of the CPU Usage graph touches the red Limit line, the saturation does come from your account. If everything is green, the problem is probably in WordPress itself (plugin, theme, corrupted file).

No. Increasing memory_limit solves the cases where WordPress simply lacks memory to run. If a script loops or if bots are hammering your site, increasing the RAM will change nothing. You will have to identify and stop the source of the problem.

Yes, TigerProtect is accessible from the cPanel of all o2switch plans (Grow, Cloud, Pro). It’s o2switch’s native security tool, there is nothing to install.

No, definitely not. This mode blocks a huge amount of legitimate traffic, notably Webhooks (Avis Garantis, Sendcloud, etc.). It is designed for absolute emergencies. Disable it as soon as the crisis is over and replace it with permanent TigerProtect rules.

If the 503 is recurring, there is an unresolved structural cause: a plugin that is too greedy, a WordPress cron that runs away, or bots that keep coming back. Enable the WordPress logs (WP_DEBUG_LOG), monitor the CPU Usage in cPanel over several days, and identify the recurring spike. If you can’t find it, contact me.

If despite these steps your WordPress site is still inaccessible, contact me. I regularly work on this kind of problem and can diagnose your site quickly. And if you are looking for regular WordPress maintenance to prevent it from happening again, we can talk about it.

Stuck on this step?

Contact me and I'll help you out. I've been supporting website owners for more than 10 years now:

About the Author: Jennifer
WordPress 503 error: the complete guide to fix it fast
I'm Jennifer, founder of Webooste and a freelance WordPress developer based in Marseille, France, since 2019. I hold a French state-certified diploma in web and mobile web development and have over 10 years' experience in digital. I look after the maintenance and security of WordPress websites and WooCommerce shops, 100% online, with clients worldwide. I hunt down bugs, chase away malware and take the technical worries off your mind! See my maintenance plans · Get in touch Find me on LinkedIn, Instagram, TikTok, YouTube or WhatsApp.