Rendimiento y mantenimiento

Configuraciones PHP que frenan tu sitio web (y cómo Arreglarlas)

Descubre los errores de configuración PHP más frecuentes que ralentizan tu sitio y aprende cómo corregirlos sin tocar el código de tu aplicación.

Sleek laptop showcasing data analytics and graphs on the screen in a bright room.

Los errores de configuración PHP que afectan el rendimiento web rara vez aparecen en logs de errores — simplemente hacen que tu sitio cargue lento sin razón aparente. La buena noticia es que la mayoría se corrigen en minutos editando el archivo php.ini o desde el panel de control de tu hosting.

En este artículo repasamos los errores más comunes, por qué ralentizan tu sitio y qué valor debes usar en cada caso.

Por qué la configuración PHP importa tanto como el código

El intérprete de PHP ejecuta tu código según los parámetros definidos en php.ini. Un valor mal puesto puede duplicar el consumo de memoria, deshabilitar el caché de bytecode o generar cientos de conexiones innecesarias al servidor — todo sin que hayas tocado una sola línea de tu aplicación.

El problema es que los hostings compartidos suelen venir con valores conservadores pensados para el inquilino más exigente, no para tu sitio específico. Y un VPS recién instalado hereda los valores predeterminados de la distribución, que tampoco están optimizados para producción.

Error 1: OPcache desactivado o mal dimensionado

OPcache compila y guarda en memoria el bytecode de tus scripts PHP. Sin él, PHP recompila cada archivo en cada petición — un trabajo completamente redundante.

Verifica si está activo ejecutando phpinfo() o consultando tu panel de hosting. Si ves opcache.enable=0, cámbialo de inmediato.

Configuración recomendada para un sitio WordPress o Laravel mediano:

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
opcache.save_comments=1

El valor memory_consumption en 128 MB es adecuado para la mayoría de los sitios. Si tienes muchos plugins o un framework grande, sube a 256 MB.

Error 2: memory_limit demasiado bajo — o demasiado alto

Un límite de memoria muy bajo provoca errores fatales o que PHP mate procesos en mitad de una petición. Pero un límite absurdamente alto (como 2 GB) simplemente pospone el problema: un script mal escrito puede consumir toda la RAM del servidor.

Tipo de sitio Valor recomendado
Blog o sitio informativo 128 MB
WordPress con plugins 256 MB
WooCommerce / e-commerce 512 MB
Aplicación Laravel compleja 256–512 MB

Define el valor en php.ini:

memory_limit = 256M

Error 3: max_execution_time mal configurado

El valor predeterminado de 30 segundos es razonable para peticiones web normales. El problema ocurre en dos extremos:

  • Demasiado bajo (15 s o menos): tareas legítimas como importar productos o enviar correos masivos agotan el tiempo y fallan.
  • Demasiado alto (300 s o más): un script que entra en bucle infinito ocupa un proceso de PHP durante cinco minutos completos, bloqueando recursos del servidor.

El balance correcto es mantener 30–60 segundos en producción y aumentar el límite solo para scripts de CLI o tareas programadas, no para todo el sitio.

max_execution_time = 30
max_input_time = 60

Error 4: Configuración de sesiones que genera I/O excesivo

Por defecto, PHP guarda las sesiones como archivos individuales en disco. En un sitio con mucho tráfico, esto genera miles de operaciones de lectura/escritura por segundo — y el disco suele ser el cuello de botella más lento del servidor.

Soluciones ordenadas de menor a mayor impacto:

  1. Sesiones en Redis o Memcached: cambia el manejador de sesión a memoria en lugar de disco.
  2. Reducir el tiempo de vida de sesión: session.gc_maxlifetime = 1440 (24 min) basta para la mayoría de los sitios.
  3. Almacenamiento en RAM con tmpfs: monta el directorio de sesiones en una partición de memoria (solo en VPS/servidor dedicado).

Para sitios en cPanel compartido, la opción más práctica es usar un servicio de hosting con Redis preconfigurado, que elimina el I/O de disco para sesiones sin necesidad de acceso root.

Error 5: Extensiones innecesarias cargadas

Cada extensión PHP consume memoria al arrancar el proceso. Un servidor mal configurado puede cargar 40–50 extensiones cuando tu aplicación solo usa 10 o 12.

Revisa las extensiones activas con php -m en la terminal. Las que raramente necesitas en producción incluyen:

  • xdebug — solo para desarrollo local, nunca en producción
  • imagick / gd — carga solo una de las dos
  • sodium, intl, gettext — solo si tu aplicación las usa explícitamente

En cPanel puedes activar y desactivar extensiones desde MultiPHP Manager → PHP Extensions.

Cómo aplicar los cambios sin romper el sitio

  1. Haz una copia del php.ini actual antes de editar.
  2. Modifica un parámetro a la vez y prueba el sitio.
  3. Usa un archivo .user.ini en la raíz del sitio si no tienes acceso al php.ini global — las directivas son las mismas y se aplican a ese dominio específico.
  4. Reinicia PHP-FPM (si tienes acceso) o espera la propagación de .user.ini (hasta 5 minutos por la caché de PHP).
  5. Valida con phpinfo() que el nuevo valor esté activo.

Para un diagnóstico más profundo de todo tu stack de rendimiento, consulta los artículos de rendimiento web donde cubrimos desde caché de navegador hasta Core Web Vitals.

Conclusiones clave

  • OPcache desactivado es el error más costoso: actívalo siempre y dímensionalo según el tamaño de tu base de código.
  • El memory_limit debe ser realista — ni tan bajo que mate procesos, ni tan alto que camufle scripts derrochadores.
  • max_execution_time en 30–60 segundos es el rango seguro para peticiones web normales.
  • Las sesiones en disco generan I/O excesivo en sitios con tráfico; Redis es la solución más efectiva.
  • Desactiva extensiones PHP que no usa tu aplicación para reducir el footprint de memoria.
  • Aplica cambios de uno en uno y valida con phpinfo() antes de pasar al siguiente.

¿Quieres que alguien revise tu configuración PHP y la ajuste sin riesgo? En elenlace.com ofrecemos auditorías de rendimiento y configuración de servidor para sitios en México — contáctanos y te respondemos el mismo día.

Preguntas frecuentes

¿Puedo cambiar php.ini en un hosting compartido?

En la mayoría de los hostings compartidos con cPanel puedes usar un archivo .user.ini en la raíz de tu dominio o acceder a MultiPHP Manager para ajustar valores clave como memory_limit y activar OPcache.

¿Cómo sé si OPcache está realmente activo?

Crea un archivo temporal con <?php phpinfo(); ?> en la raíz de tu sitio, ábrelo en el navegador y busca la sección "Zend OPcache". Si la directiva opcache.enable aparece como On y el estado de la caché es activo, está funcionando correctamente.

¿Xdebug en producción ralentiza el sitio?

Sí, significativamente. Xdebug puede aumentar el tiempo de ejecución de PHP entre 2 y 5 veces porque intercepta cada llamada de función. Desactívala siempre en producción; úsala solo en tu entorno local de desarrollo.

¿Con qué frecuencia debo revisar la configuración PHP?

Al menos cada vez que actualices PHP a una versión mayor (ej. 8.1 → 8.2), después de instalar plugins pesados y cuando notes degradación de rendimiento sin cambios de código. Un checkup semestral es una buena práctica preventiva.

Recursos útiles

Otros proveedores y guías que vale la pena comparar:

← Todos