Pulsa ESC para cerrar

Curso WordpressCurso Wordpress

Error 502 Bad Gateway en WordPress: qué significa y cómo solucionarlo

El error 502 Bad Gateway significa algo concreto: un servidor intermedio pidió la página a otro servidor y no recibió una respuesta válida. En WordPress, el servidor que no responde casi siempre es PHP.

Primero: ¿quién responde el 502?

Mira cómo se ve la página de error:

  • Página de Cloudflare (con el logo y un diagrama de «Navegador → Cloudflare → Host»): Cloudflare no logró hablar con tu servidor. El problema está en tu hosting, no en Cloudflare.
  • Página simple que dice nginx o LiteSpeed: el servidor web de tu hosting no recibió respuesta de PHP.
  • Página del hosting: igual que la anterior, con otra apariencia.

En todos los casos, hay que mirar el servidor de origen.

Causa 1: PHP se quedó sin procesos

Los servidores modernos ejecutan PHP con PHP-FPM, que mantiene un número máximo de procesos atendiendo visitas (pm.max_children). Si llegan más visitas de las que puede atender, o si cada proceso tarda mucho, las peticiones se acumulan y el servidor web termina respondiendo 502.

Cómo confirmarlo: el registro de errores de PHP-FPM muestra server reached pm.max_children setting. En un VPS con cPanel, cada versión de PHP tiene su registro, por ejemplo:

grep -i "max_children" /opt/cpanel/ea-php83/root/usr/var/log/php-fpm/error.log | tail -5

Qué hacer:

  • En WHM → MultiPHP Manager → PHP-FPM, sube Max Children para la cuenta o el dominio (con cuidado: cada proceso usa memoria; calcula unos 60 a 120 MB por proceso).
  • En hosting compartido, pide al soporte que revise el límite o considera un plan con más recursos.
  • Y, sobre todo, reduce el trabajo de PHP: una caché de página hace que la mayoría de las visitas ni siquiera lleguen a PHP.

Causa 2: un proceso que tarda demasiado

Una importación, un respaldo, un plugin que llama a un servicio externo lento o una consulta pesada pueden hacer que PHP tarde más que el tiempo de espera del servidor web. Pasado ese tiempo, el servidor se rinde y responde 502 (o 504).

Qué hacer:

  • Si el 502 aparece solo en una acción concreta (guardar, importar, pagar), el problema es esa acción. Activa el registro de depuración y revisa qué plugin trabaja en ese momento.
  • Las tareas largas deben ir en segundo plano (WP-Cron o un cron real), no en una visita.

Causa 3: PHP se cae

Un error grave de PHP (por ejemplo, una extensión con fallas o un plugin que agota la memoria del servidor completo) puede hacer que el proceso termine de golpe. El servidor web recibe una conexión cortada y responde 502.

Cómo confirmarlo: busca en el registro de PHP-FPM mensajes como exited on signal o SIGSEGV. Si aparecen tras actualizar una versión de PHP o una extensión, vuelve temporalmente a la versión anterior desde MultiPHP Manager.

Causa 4: un ataque o robots agresivos

Muchas peticiones de golpe a páginas que no se cachean (buscador, filtros de productos, login) agotan los procesos de PHP igual que en la causa 1.

Cómo confirmarlo: revisa qué URLs se piden más en el registro de acceso:

awk '{print $7}' ~/access-logs/tudominio.cl-ssl_log | sort | uniq -c | sort -rn | head -10

Si una URL de búsqueda o de filtros domina, toca frenar a esos robots con Cloudflare o con reglas en el servidor.

Causa 5: Cloudflare no llega al servidor

Si el error es de Cloudflare y el sitio funciona entrando directo a la IP del servidor, revisa que el cortafuegos del servidor (por ejemplo, CSF) no esté bloqueando las IPs de Cloudflare. Es un falso bloqueo bastante común cuando un cortafuegos ve muchas peticiones desde las mismas IPs.

Un 502 intermitente casi siempre es la causa 1 o 4 (falta de procesos en momentos de carga). Un 502 permanente suele ser la causa 3 (PHP caído) o un servicio detenido: en un VPS, prueba reiniciando PHP-FPM con /scripts/restartsrv_apache_php_fpm.

¿Tu sitio da 502 y no encuentras la causa? Cuéntanos en el foro si es intermitente o permanente, si usas Cloudflare y qué tipo de hosting tienes.