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.
- Check the CPU resources in cPanel (o2switch)
- Increase the PHP memory (memory_limit)
- Deactivate all plugins (via SFTP if necessary)
- 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.
The immediate solution: Check your PHP limits. The value to set depends on your setup:
| Setup |
Recommended (PHP memory_limit) |
|---|---|
| WordPress + lightweight theme | 256M |
| WordPress + WooCommerce | 512M |
| WordPress + Elementor (or other builder) | 512M to 1024M |
| WooCommerce + Elementor (or other builder) | 1024M minimum |
| WooCommerce + Elementor + heavy third-party plugins | 1024M 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.
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.
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
- cd www
(or your site's folder)Run the command - top
orhtopIf a PHP process consumes 100% of the CPU persistently, you have identified the source of the problem - To leave the display, press the
- 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:
- Connect via SFTP (FileZilla).
- Go to the wp-content/plugins folder.
- Rename the suspect plugin’s folder or the whole plugins folder to deactivate them in bulk.
- 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:
- Download the latest version of WordPress from wordpress.org.
- Connect via SFTP.
- Replace only the wp-admin and wp-includes folders.
- 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:
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.
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 symptom | Probable cause | Solution |
|---|---|---|
| Message “Resource Limit Reached” | CPU saturation o2switch | cPanel > Resources > Current Usage, increase memory_limit |
| The Average line touches the red line | Overloaded WordPress server | SSH > htop, identify the faulty PHP process |
| WordPress admin inaccessible | WordPress plugin bug or faulty update | Deactivate via SFTP, reinstall WP core if necessary |
| 503 spikes on /wp-login.php | Brute-force attack / bots | TigerProtect: Rate Limit 5r/min + reputation blocking |
| 403 errors in the logs after TigerProtect | Normal, protection active | No action required, TigerProtect blocks suspicious requests |
| Persistent volumetric attack | Large-scale bots | Cloudflare Bot Fight Mode, “I’m under attack” mode from o2switch cPanel |
| 503 at OVH, SiteGround, Infomaniak | Same causes, different tools | Check the host’s resource monitoring + adjust the PHP limits |
Frequently asked questions
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.