Si has llegado hasta aquí, es porque tu web acaba de soltarte un fatal error: Maximum execution time exceeded y estás buscando una solución que funcione de verdad. No te voy a vender la moto: este error es uno de los más frustrantes porque puede tumbar tu sitio justo cuando más tráfico tienes.
Vamos al grano. El error significa que un script PHP ha estado ejecutándose más tiempo del permitido por el servidor. El límite por defecto suele ser de 30 segundos en la mayoría de hostings, aunque algunos lo suben a 60 o 120. Cuando se supera, PHP corta la ejecución y lanza ese mensaje fatal. Punto.
¿Por qué aparece el fatal error maximum execution time exceeded en tu WordPress?
Las causas son variadas, pero casi siempre se reducen a tres escenarios: un plugin mal programado que hace consultas eternas a la base de datos, un tema que carga recursos externos sin control, o un servidor tan lento que no da abasto con las peticiones normales.
También ocurre mucho en tareas de importación/exportación, backups automáticos, o al ejecutar cron jobs pesados. Si tu hosting es compartido y barato, prepárate porque lo verás más a menudo de lo que te gustaría.
He visto casos donde el culpable era un simple plugin de galería que regeneraba thumbnails de 2.000 imágenes en cada carga. Eso revienta cualquier límite.
Solución 1: Subir el max_execution_time en .htaccess (la más rápida)
Si tienes acceso al archivo .htaccess en la raíz de tu WordPress, añade esta línea al final:
php_value max_execution_time 600
Eso sube el límite a 10 minutos. Ojo, funciona solo si tu servidor usa PHP como módulo Apache (mod_php). En servidores con PHP-FPM o FastCGI, esta línea te dará un error 500. Si eso pasa, bórrala y prueba la siguiente solución.
Solución 2: Modificar php.ini o usar .user.ini
Si tienes acceso al php.ini del servidor (ruta típica: /etc/php/8.x/fpm/php.ini), cambia:
max_execution_time = 600
En hostings compartidos donde no tocas php.ini, crea un archivo .user.ini en la raíz con esa misma línea. Es la forma más limpia y compatible con PHP-FPM. Muchos administradores de sistemas recomiendan esta vía porque no rompe Apache.
Si no tienes ni idea de qué versión de PHP usas, míralo en tu panel de hosting. No improvises.
Solución 3: Optimizar el rendimiento real de tu web
Subir el límite es un parche. Si tu web tarda 45 segundos en generar una página, tienes un problema de rendimiento serio. El error maximum execution time exceeded volverá en cuanto tengas un pico de tráfico.
Revisa esto sí o sí:
- Comprime imágenes y sírvelas en WebP. Una imagen de 4 MB puede tardar más que toda la página.
- Limpia la base de datos de revisiones, transients y spam.
- Desinstala plugins que no uses. No los desactives, desinstálalos.
- Cambia a un hosting con servidores NVMe y PHP 8.3 o superior. La diferencia es brutal.
Te lo digo claro: un hosting de 2€/mes no está hecho para WooCommerce con 500 productos. No hay milagro.
Solución 4: Detectar el plugin o tema culpable
Desactiva todos los plugins y activa uno por uno hasta que el error reaparezca. Es tedioso, pero es el método definitivo. También puedes revisar los logs de errores del servidor: ahí verás la ruta exacta del archivo que está petando.
Si el problema está en el tema, cambia temporalmente a Twenty Twenty-Five. Si el error desaparece, ya sabes dónde está el fallo.
Muchos temas premium meten llamadas a APIs externas sin timeout. Eso es un suicidio para el max_execution_time.
Solución 5: Cache y CDN, tus mejores aliados
Un plugin de caché como WP Rocket, W3 Total Cache o LiteSpeed Cache reduce drásticamente el tiempo de ejecución porque sirve HTML estático. El servidor no tiene que generar la página en cada visita.
Combínalo con Cloudflare o BunnyCDN y notarás la mejora en horas. No es magia, es sentido común: cuanto menos trabaje PHP, menos posibilidades de superar el límite.
Eso sí, si usas caché y aún así ves el error maximum execution time exceeded, el problema está en el backend, no en la entrega.
Solución 6: Depurar código con Xdebug o Query Monitor
Si el error viene de código personalizado (un snippet, un child theme, una función en functions.php), necesitas herramientas. Xdebug te muestra qué función tarda más. Query Monitor te enseña las consultas SQL lentas.
He encontrado bucles infinitos en funciones recursivas mal planteadas que consumían 300 segundos. Eso no se arregla subiendo el límite, se arregla reescribiendo el código.
Si no sabes programar, no toques. Pide ayuda.
Solución 7: Habla con tu proveedor de hosting
Cuando ya has probado todo y el error maximum execution time exceeded sigue apareciendo, el problema puede estar en la configuración del servidor: límites de CPU, memoria agotada, o un firewall que bloquea peticiones largas.
Un buen soporte técnico te dirá exactamente qué script está fallando y por qué. Si te responden con respuestas genéricas, cambia de hosting. En 2026 hay opciones excelentes como Raiola Networks, SiteGround o Kinsta que resuelven esto en minutos.
Errores que debes evitar al solucionar este fatal error
- No pongas max_execution_time a 0 (ilimitado). Es una bomba de relojería: un script colgado puede tumbar todo el servidor y afectar a otros usuarios.
- No edites php.ini sin backup. Un solo carácter mal y tu web deja de funcionar.
- No ignores el problema pensando que es puntual. Si aparece una vez, aparecerá diez.
- Y por supuesto, no confíes en tutoriales que solo te dicen «sube el límite». Eso es como tapar una fuga de agua con cinta aislante.