NexaTech Studio

Guía técnica · NexaTech

Error 500 en WordPress (y error 503): qué significan y cómo resolverlos

El 500 dice que algo ha fallado en el servidor; el 503, que el servidor no puede atenderte ahora. Te explicamos cómo distinguirlos, dónde mirar y cómo arreglar las causas más comunes en WordPress.

admin

·

29 de octubre de 2026

Respuesta corta: un error 500 en WordPress (Internal Server Error) significa que algo ha fallado al generar la página: casi siempre un error de PHP, un .htaccess roto o permisos incorrectos. Un 503 (Service Unavailable) significa que el servidor no puede atender ahora: WordPress en modo mantenimiento, PHP saturado o el hosting limitando recursos. En los dos casos la respuesta está en el log de errores del servidor.

Qué significan el error 500 y el error 503

Los dos son códigos HTTP de la familia 5xx (los define el RFC 9110): el fallo está en el servidor, no en el navegador del visitante. Pero dicen cosas distintas.

  • 500 Internal Server Error: «he intentado generar la página y algo ha salido mal». Es un error genérico. El servidor sabe que ha fallado, pero no le cuenta al visitante por qué.
  • 503 Service Unavailable: «ahora no puedo atenderte, vuelve luego». Es un estado temporal, a propósito o por saturación. A menudo viene con una cabecera Retry-After.

Sus primos cercanos, por si aparecen:

  • 502 Bad Gateway: el servidor web (Nginx, por ejemplo) no recibe una respuesta válida de PHP-FPM o del servidor que tiene detrás.
  • 504 Gateway Timeout: el servidor de detrás tardó demasiado en responder.
  • 508 Resource Limit Is Reached: en algunos hostings compartidos, la cuenta ha superado sus límites de CPU o procesos.

Por qué pasa un error 500 en WordPress

Las causas que más vemos:

  1. Error fatal de PHP con la visualización de errores desactivada. WordPress suele enseñar «Ha habido un error crítico en esta web», pero según dónde ocurra solo llega un 500 en blanco. Tienes una guía para el error crítico.
  2. .htaccess corrupto o con reglas inválidas en servidores Apache o LiteSpeed. Un plugin de seguridad, de caché o de redirecciones escribió algo que el servidor no entiende.
  3. Permisos o propietario incorrectos: ficheros con permisos 777 o carpetas que el usuario de PHP no puede leer. Algunos servidores devuelven 500 a propósito si un fichero PHP es escribible por todos.
  4. Memoria o tiempo agotados en PHP.
  5. Versión de PHP incompatible tras un cambio del hosting.

Por qué pasa un error 503 en WordPress

  1. Modo mantenimiento: durante una actualización WordPress devuelve 503. Si se queda, mira nuestra guía del modo mantenimiento atascado.
  2. PHP-FPM sin procesos libres: todas las conexiones están ocupadas (tráfico, bots o peticiones lentas) y las nuevas se rechazan. Según el servidor puede salir como 503 o como 502/504.
  3. Límites del hosting: la cuenta ha superado CPU, procesos o memoria asignados.
  4. Un cortafuegos o servicio antibots que limita peticiones.
  5. Un plugin de mantenimiento o un wp-content/maintenance.php que devuelve 503.

Cómo saber qué te pasa

Confirma el código

curl -sI https://tuweb.com/ | head -n 5
curl -sI https://tuweb.com/wp-login.php | head -n 1
curl -sI https://tuweb.com/wp-content/themes/ | head -n 1

Si falla todo, incluso rutas que no pasan por PHP, el problema es del servidor o del .htaccess. Si solo fallan las páginas de WordPress, es PHP.

Lee el log de errores

Es el paso que más ahorra. En el panel busca «Registros», «Logs» o «Error log». Por SSH:

tail -n 50 /var/log/apache2/error.log
tail -n 50 /var/log/nginx/error.log
tail -n 50 /var/log/php*-fpm.log

Las rutas cambian según la distribución y el panel. Lo que buscas:

  • PHP Fatal error: es PHP. Lee el fichero y la línea; nuestra guía de «Fatal error» y «Parse error» te ayuda a interpretarlo.
  • Invalid command o RewriteRule: bad flag: es el .htaccess.
  • Permission denied o is writable by group: permisos.
  • server reached pm.max_children setting: PHP-FPM saturado.

Si no tienes acceso a los logs, activa el log de WordPress en wp-config.php con WP_DEBUG_LOG (te lo explicamos en las guías anteriores).

Cómo resolver el error 500 en WordPress paso a paso

1. Regenera el .htaccess

Renombra .htaccess (en la raíz de WordPress, oculto) a .htaccess.bak por FTP o SSH. Si la web vuelve, crea uno nuevo con las reglas estándar de WordPress:

# 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

Después ve a Ajustes > Enlaces permanentes y pulsa Guardar, o ejecuta wp rewrite flush --hard. Recupera del fichero antiguo solo las reglas que sepas que necesitas (redirecciones, cabeceras), de una en una.

2. Revisa los permisos

Los valores habituales son 644 para ficheros y 755 para carpetas, y el propietario debe ser el usuario con el que corre PHP. Por SSH, desde la raíz de WordPress:

find . -type d -exec chmod 755 {} +
find . -type f -exec chmod 644 {} +
chmod 640 wp-config.php

En hostings compartidos, el propietario lo gestiona el panel; si después de esto sigue fallando, pide al proveedor que corrija el propietario.

3. Descarta plugins y tema

wp plugin deactivate --all --skip-plugins --skip-themes
wp theme activate twentytwentyfour --skip-plugins --skip-themes

O renombra wp-content/plugins por FTP. Si vuelve, reactiva uno a uno.

4. Sube memoria o vuelve a la versión de PHP anterior

Si el log habla de memoria, añade define( 'WP_MEMORY_LIMIT', '256M' ); a wp-config.php. Si el error empezó al cambiar de versión de PHP, vuelve temporalmente a la anterior desde el panel.

Cómo resolver el error 503 paso a paso

  1. Mira si existe .maintenance en la raíz. Si está ahí desde hace rato, bórralo con wp maintenance-mode deactivate o por FTP.
  2. Mira el log de PHP-FPM. Si aparece pm.max_children, tienes más peticiones simultáneas que procesos de PHP. Antes de subir el número, busca de dónde viene la carga: con el log de accesos puedes ver si son bots golpeando wp-login.php o xmlrpc.php.
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head
grep -c "xmlrpc.php" /var/log/nginx/access.log
  1. Activa o revisa la caché de página. Si cada visita ejecuta PHP y consulta la base de datos, un pico de tráfico normal satura un servidor pequeño.
  2. Revisa los límites de la cuenta en el panel (uso de CPU, procesos de entrada). Si estás siempre al límite, el plan se ha quedado pequeño o un plugin está haciendo trabajo de más (por ejemplo, tareas programadas de WP-Cron que se ejecutan en cada visita).
  3. Comprueba el cortafuegos o la CDN. Si el 503 lo da Cloudflare u otro servicio, su página de error lo indica.

Errores habituales

  • Borrar el .htaccess sin copia. Renómbralo: contiene redirecciones y reglas de seguridad que querrás recuperar.
  • Poner permisos 777 «para que funcione». Es un riesgo de seguridad y en muchos servidores provoca, precisamente, un 500.
  • Subir pm.max_children sin mirar la memoria. Cada proceso de PHP consume RAM; si te pasas, el servidor empieza a matar procesos.
  • Pensar que un 503 de un minuto no importa. Si se repite cada día a la misma hora, hay una tarea (copias, cron, bots) que satura el servidor.

Para agencias: medir las caídas como las mide el cliente

Jeffrey comprueba la portada de cada web cada uno o dos minutos. Un error de red o cualquier respuesta 500 o superior cuenta como fallo, y con tres muestras fallidas seguidas abre un aviso urgente: «La web da error», con el código que devuelve, o «La web no responde» si no contesta. Se cierra solo con la primera respuesta correcta. Un 403 o un 404 en la portada no cuentan como caída, para no confundir un cortafuegos con una web caída. Además, la prueba diaria con navegador real, en móvil y escritorio, revisa hasta cinco páginas y avisa si alguna devuelve un error, aunque la portada funcione.

Si es urgente y no sabes por dónde empezar, escríbenos y lo miramos.

Tienes el resto de errores en la guía de errores de WordPress que tumban tu web.

Preguntas frecuentes

¿El error 500 afecta al SEO?

Si dura poco, no. Si Google encuentra errores 5xx de forma continuada durante días, reduce el rastreo y puede acabar retirando páginas del índice. Por eso importa enterarse pronto.

¿Por qué el error 500 solo sale en el escritorio de WordPress?

Porque el escritorio carga código que la parte pública no usa y suele tener más memoria asignada. Lo más probable es un plugin. Revisa el log en el momento en que entras a /wp-admin/.

¿Un 503 siempre es culpa del hosting?

No. Puede ser WordPress (modo mantenimiento), un plugin de mantenimiento, bots que saturan PHP o un cortafuegos. El hosting solo es el culpable cuando la cuenta se queda sin los recursos que tiene contratados.

¿Es mejor que la web devuelva 503 cuando está en mantenimiento?

Sí. El 503 le dice a Google que es temporal y que vuelva más tarde. Devolver 200 con una página de «estamos en obras» hace que Google pueda indexar esa página en lugar de tu contenido.

Para agencias

¿Llevas varias webs? Entérate antes que tu cliente

Jeffrey vigila las webs de tus clientes (caídas, SSL, dominios, DNS y correo) y te avisa antes de que llamen. Cuando hace falta una persona, entramos nosotros, en marca blanca.

¿Hablamos de tu proyecto?

Cuéntanos qué necesitas y te respondemos en menos de 24h.