Aumentar el límite de PHP max_input_vars en WordPress

En resumen: Añade php_value max_input_vars 3000 a .htaccess, establece max_input_vars = 3000 en php.ini o añade @ini_set('max_input_vars', 3000); a wp-config.php. Elige el método que coincida con tu entorno de alojamiento — consulta la tabla de abajo.

La directiva max_input_vars se introdujo en PHP como medida de seguridad que limita el número máximo de variables POST que el servidor procesa por solicitud. Cuando una página de WordPress envía más variables de las que permite el límite, el servidor descarta el exceso de forma silenciosa — provocando que los menús pierdan elementos, que los ajustes del tema desaparezcan y que las páginas de configuración de plugins no se guarden.

En los tickets de soporte de WP STAGING, el desencadenante más común es un sitio con WooCommerce o WPML con una página de ajustes grande que descarta campos silenciosamente al guardar.

Subir max_input_vars a 3000 o más resuelve estos síntomas en la mayoría de los casos. El método adecuado depende de tu entorno de alojamiento. Si no estás seguro de cuál aplica, contacta con tu proveedor de alojamiento antes de editar archivos de configuración del servidor — no todos los alojamientos compartidos conceden permiso para todos los métodos de abajo.

¿Qué método deberías usar?

Tipo de alojamiento Método recomendado Notas
cPanel compartido (Apache) Editar .htaccess No requiere reiniciar el servidor
Alojamiento compartido (nginx) php.ini o panel del host El método varía según el proveedor
WordPress gestionado (WP Engine, Kinsta, etc.) Panel de control del host o soporte La edición directa de archivos puede estar restringida
VPS o servidor dedicado con SSH Editar el php.ini global Reinicia PHP-FPM tras guardar
Gestionado en la nube (Cloudways, SpinupWP, etc.) Panel de control del host Cada proveedor expone su propia interfaz de ajustes

Si tu host no admite ninguno de los métodos basados en archivos de abajo, abre un ticket de soporte — subir max_input_vars es una solicitud rutinaria.

Cómo aumentar el límite de PHP Max Input Vars

Los tres métodos más comunes son editar .htaccess, php.ini o wp-config.php. Pruébalos en el orden que coincida con tu entorno de alojamiento; pasa al siguiente solo si el primero no surte efecto.

Método 1: Editar el archivo .htaccess

El archivo .htaccess está en el directorio raíz de tu instalación de WordPress. Ábrelo con tu administrador de archivos o cliente FTP.

Aumentar Max Input Vars en .htaccess

Si no puedes localizar el archivo, la mayoría de los administradores de archivos de alojamiento ocultan los dotfiles de forma predeterminada. Busca una opción Mostrar archivos ocultos y actívala.

Abre .htaccess en un editor de texto y añade la siguiente línea:

php_value max_input_vars 3000
añadir código en htaccess

Si tu servidor usa la extensión de seguridad Suhosin, usa estas líneas en su lugar:

php_value suhosin.request.max_vars 3000
php_value suhosin.post.max_vars 3000

Un valor de 3000 cubre la mayoría de las instalaciones de WordPress con menús grandes o páginas de ajustes de plugins complejas. Auméntalo más solo si los síntomas persisten tras guardar.

Método 2: Editar el archivo php.ini

El archivo php.ini también está en el directorio raíz de tu instalación de WordPress. Si no existe ninguno ahí, crea uno vacío.

Archivo php.ini

Abre el archivo en un editor de texto y añade o actualiza esta línea:

max_input_vars = 3000
añadir código en el archivo php.ini

Guarda el archivo. Si tienes acceso por shell, reinicia PHP-FPM o Apache para que el valor surta efecto de inmediato. En alojamientos compartidos, la siguiente solicitud PHP recoge el nuevo ajuste automáticamente.

Método 3: Editar el archivo wp-config.php

Inicia sesión en tu panel de alojamiento o cliente FTP y navega al Administrador de Archivos. Abre wp-config.php en la raíz de tu instalación de WordPress.

ver el archivo wp-config

Añade la siguiente línea antes de la línea que dice /* That's all, stop editing! */:

@ini_set( 'max_input_vars', 3000 );
añadir código en el archivo wp-config.php

Guarda el archivo. Este método establece el límite en tiempo de ejecución de PHP y funciona en entornos de alojamiento compartido donde no puedes modificar .htaccess o php.ini directamente. Puedes reemplazar 3000 por cualquier valor que requiera tu sitio — recomendamos 3000 o más para cubrir las páginas de administración complejas.

Nota sobre sistemas heredados: alojamiento con PHP 5

PHP 5 llegó al final de su vida útil en diciembre de 2018. Si tu host aún ejecuta PHP 5, el enfoque de php.ini anterior aplica, pero también puede que necesites crear archivos php5.ini y user.ini en el mismo directorio con la misma directiva:

max_input_vars = 3000

Contacta de inmediato con tu host para actualizar — los servidores con PHP 5 ya no reciben parches de seguridad. Las directivas de la extensión Suhosin (suhosin.get.max_vars, suhosin.post.max_vars, suhosin.request.max_vars) solo son relevantes en servidores con Suhosin instalado; los servidores modernos con PHP 8.x no las requieren.

Qué hacer si la solución no funciona

Si los métodos anteriores no resolvieron el problema, repasa estas comprobaciones antes de contactar con tu host.

El cambio no persistió tras guardar. El panel de control de tu host puede incluir un php.ini maestro que anula cualquier archivo local que crees. Abre el panel de configuración de PHP de tu host (en cPanel: Software → Seleccionar versión de PHP → Opciones) y establece max_input_vars ahí directamente.

El valor está establecido pero los síntomas permanecen. Otra directiva de PHP puede ser el verdadero cuello de botella. Crea un archivo temporal en la raíz de tu web con <?php phpinfo(); ?>, ábrelo en un navegador y busca max_input_vars para confirmar que el nuevo valor está activo. Comprueba también post_max_size — si es menor que los datos que envía tu página de ajustes, subir solo max_input_vars no resolverá el problema.

phpinfo() no muestra el nuevo valor. PHP puede cargar varios archivos de configuración. La salida de phpinfo() muestra Configuration File (php.ini) Path — confirma que editaste el archivo listado ahí. En servidores cPanel, el php.ini activo suele estar en el directorio home del usuario, no en la raíz web de WordPress.

El enfoque de wp-config.php no surte efecto. Algunas configuraciones de servidor deshabilitan ini_set() mediante la directiva disable_functions. En ese caso, usa el método de .htaccess o php.ini en su lugar.

Para obtener ayuda con un límite de configuración de PHP relacionado, consulta límite de memoria de PHP en WordPress.

La especificación oficial de esta directiva está en el manual de PHP: max_input_vars.

Conclusión

Subir max_input_vars es un cambio de configuración de una sola línea, pero elegir el archivo correcto importa: .htaccess para hosts Apache compartidos, php.ini para entornos VPS, wp-config.php cuando no puedes modificar los archivos de configuración del servidor. Si el cambio no se mantiene, lo más probable es que la configuración maestra de tu host lo esté anulando — los pasos de resolución de problemas de arriba cubren las causas más comunes.

Haz siempre una copia de seguridad de tu sitio antes de editar archivos de configuración del servidor. Si necesitas ayuda adicional, nuestro equipo de soporte puede asistirte.

Artículos relacionados:

Rene Hermenau

Autor: Rene Hermenau

Sobre el autor: René Hermenau es el fundador de WP STAGING. Trabaja en copias de seguridad de WordPress, entornos de staging, migraciones, gestión de bases de datos y flujos de despliegue seguros.