Few things make your pulse race like opening your website and finding a WordPress 500 error en lugar de tu página. El mensaje “Internal Server Error” (o “Error interno del servidor”, o directamente una pantalla en blanco con el código 500) es de los más desconcertantes porque no da ninguna pista: el servidor solo admite que algo ha fallado al procesar la petición, sin decir qué. La buena noticia es doble. Primero, tu contenido está intacto: el error 500 es un fallo de ejecución, no una pérdida de datos. Segundo, sus causas reales se concentran en un puñado de sospechosos habituales (un plugin conflictivo, un archivo .htaccess corrupt, the PHP memory limit, a half-finished update, or an incompatible PHP version), and all have solutions within reach of any user with hosting access, without needing to be a programmer. In this guide, we diagnose and resolve the error step by step, in order of probability, and conclude with measures to prevent it from happening again.
What is the 500 error in WordPress and why does it appear
Los códigos de estado HTTP que empiezan por 5 indican fallos del servidor. El 500 es el genérico: la petición llegó bien, pero algo reventó al procesarla. En WordPress, “algo” es casi siempre PHP: un código que lanza un error fatal, un archivo de configuración del servidor con una instrucción inválida o un proceso que agota los recursos asignados.
The causes, ordered from most to least frequent:
- A plugin or theme with a fatal error, usually after an update or a new installation.
- A file
.htaccesscorrupt or with incompatible rules, often written by a security or cache plugin. - PHP memory limit exhausted: the website needs more memory than the hosting allocates to each process.
- Incompatible PHP version with some plugin or theme (too new for old code, or too old for modern code).
- Interrupted update core, which leaves the installation in maintenance mode or with incomplete files.
- Corrupted core files or incorrect permissions, less common but possible after migrations or hacks.
Before touching anything: if the error appeared right after doing something specific (installing a plugin, updating the theme, pasting code into functions.php), you already have suspect number one. Undo that change and you'll probably end up here.
Step 0: Check the error log
The quick path to diagnosis is to read the error log, where PHP writes exactly what failed and in which file. You have two ways:
The hosting log
Casi todos los paneles (cPanel, Plesk y propios) tienen una sección de registros o “Errores”. Busca las líneas con la fecha del fallo: un mensaje del tipo PHP Fatal error: ... in /wp-content/plugins/nombre-del-plugin/archivo.php points you directly to the culprit.
WordPress debug mode
If you can edit files via SFTP, enable WordPress's own logging by adding this to wp-config.php (antes de la línea que dice “That’s all, stop editing”):
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Reload the failing page and check the file wp-content/debug.log. With the error message in hand, the next steps stop being trial and error and become surgery. When you're done, remember to return WP_DEBUG a false.
Solution 1: Deactivate plugins (the usual suspect)
If the log points to a plugin, or if you don't have a log and want to start with the most likely cause, deactivate the plugins. Can't access the dashboard because it also gives a 500 error? It's just as easy to do via SFTP:
- Connect via SFTP and navigate to
wp-content. - Rename the folder
pluginsaplugins-off. This deactivates all plugins at once without deleting anything. - Reload the website. If it works again, a plugin is the culprit.
- Restore the original name to the folder
plugins. Plugins will remain deactivated. - Go to the dashboard and reactivate them one by one, reloading the website after each activation, until the error reapp
With the culprit identified, delete it or look for an update that fixes the bug. If it's an essential plugin for your website, contact its support, attaching the log line; this is the information they need to fix it. The same procedure applies to the theme: rename its folder inside wp-content/themes and WordPress will revert to the default theme.
Solution 2: regenerate the .htaccess file
The .htaccess is an Apache configuration file that lives in the root of the installation. Security, cache, and redirection plugins write to it, and a single invalid line causes an immediate 500 error across the entire website.
- Via SFTP, locate the file
.htaccessin the root (activate hidden files view if you don't see it). - Rename it to
.htaccess-viejoand reload the website. - If the website revives, the problem was there. Go to Settings → Permalinks and click Save Changes: WordPress will generate a
.htaccessclean.
The standard content that WordPress writes is this; anything outside this block has been added by a plugin or a person:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Solution 3: increase the PHP memory limit
Each PHP process has an assigned memory cap. If your website (or a greedy plugin) exceeds it, the process dies and the server returns a 500. The log reveals it with messages like Allowed memory size of X bytes exhausted. The quick solution is to extend the limit from wp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
Keep in mind that the hosting imposes its own ceiling: if its global limit is 128M, declaring 256M will not work and you will have to raise it from the hosting panel or its php.ini. The complete process, with the three possible ways, is explained in detail in how to increase the PHP memory limit in WordPress.
Solution 4: check the PHP version
A PHP version jump (for example, when the hosting automatically updates) can break old plugins or themes that use removed functions; and conversely, a modern plugin may require a higher version than the one installed. The log will show fatal errors of non-existent functions or syntax incompatibilities.
From the hosting panel, you can change the PHP version in a dropdown. As a diagnosis, try the version immediately preceding the current one: if the error disappears, you know there's incompatible code with the new one. The correct medium-term strategy is not to stick with an old version (you lose security and speed), but to update or replace the incompatible code and return to a modern version, which also has a performance bonus as we saw when talking about speed up WordPress with PHP settings.
Other causes: half-finished updates and corrupted files
Interrupted update
If the error appeared during a core, theme, or plugin update, the installation might have gotten stuck in maintenance mode. Look for a file named .maintenance and delete it. If the problem persists, repeat the update by uploading the files manually.
Corrupted core
After a hack or an incomplete file transfer, the core may be corrupted. The solution is to reinstall it without touching your content: download WordPress from es.wordpress.org and upload the folders via SFTP wp-admin y wp-includes and the root files, never overwriting wp-content nor wp-config.php. If you suspect a hack, don't just patch it: follow our guide to detect and clean your WordPress after an attack.
Incorrect permissions
Standard permissions are 755 for folders and 644 for files. Exotic values (like 777, or files without read permission) can cause 500 errors on some servers. Almost all SFTP clients allow correcting them recursively.
How to prevent the next 500 error in WordPress
- Automatic and external backup. With a recent backup, any 500 error becomes a minor annoyance instead of a crisis.
- Update in batches and wisely. Don't update ten plugins at once: do it in small groups and check the website after each batch, to be able to pinpoint the culprit if something goes wrong.
- Use a staging environment. Many hostings offer one-click staging: test major updates there before moving them to production.
- Keep few and quality plugins. Every plugin is third-party code running on your server; fewer parts, fewer chances of problems. The essential plugins for beginners well-chosen ones cover almost everything.
- Monitor resources. If memory errors repeat even if you raise the limit, your website has outgrown your hosting: it's time for a higher plan or a better provider.
Frequently Asked Questions
Does the WordPress 500 error delete my content?
No. It's a server execution failure: the database with your posts, pages, and settings remains intact. As soon as the cause is corrected (plugin, .htaccess, memory…), the website returns exactly as it was.
Why do I have a 500 error only on the dashboard (wp-admin) and the website looks fine?
It's usually a plugin that only runs in the administration, or the memory limit: the dashboard consumes more resources than the public part. Apply the same steps (deactivate plugins via SFTP and increase memory) and check the log to confirm.
How much does a 500 error affect SEO?
A temporary error of minutes or hours has no appreciable impact: Google retries later. If the error persists for days, results may start to disappear from the index. That's why it's important to diagnose early and, if you can't solve it yourself, escalate to hosting support without letting it fester.
What if none of this works?
Contact your hosting support with specific data: exact time of the failure, what you did before, and what you have already tried. They see server logs that you cannot consult (killed processes, global limits, infrastructure failures). And if you have a recent backup, restoring it is always a dignified way out while the cause is investigated.
Conclusion
The WordPress 500 error is intimidating due to its ambiguity, but it surrenders to an organized method: read the log to find out what failed, deactivate plugins via SFTP, regenerate the .htaccess, increase PHP memory, and check the PHP version. With these five steps, the vast majority of cases are resolved, almost always in less than half an hour and without touching a line of code. The difference between those who suffer these errors and those who routinely dispatch them is not the technical level, but having a clear procedure and a recent backup that removes all the drama from the matter. Save this guide for the next scare: the next time the server greets you with a 500, you'll know exactly where to start.