El autoload inflado, en corto
Los datos en autoload son todas las filas de wp_options marcadas para cargarse automáticamente: 'yes' en instalaciones antiguas, y también 'on', 'auto' o 'auto-on' desde WordPress 6.6. WordPress lo mete todo en memoria en absolutamente cada petición —frontend, admin, REST, cron— antes de que se ejecute la mayor parte de tu código. Los plugins van añadiendo a ese montón y rara vez recogen lo suyo, así que en cuanto pasa de unos 800 KB, cada petición de tu sitio paga por el desperdicio. Y no, esto no es el autoloader de clases de PHP: Composer y spl_autoload_register() viven en tu código, no en tu base de datos.
Esta página documenta el módulo Autoloader Optimizer de WP Multitool: cómo clasifica cada opción en autoload, la asocia a su plugin y quita el autoload solo donde es demostrablemente seguro. Si venías por el tratamiento completo hazlo-tú-mismo —terminología, umbrales sanos, las consultas de auditoría, el aviso de WP Engine y qué opciones son seguras de desactivar a mano—, todo eso lo tengo en una guía: Autoload inflado en WordPress: audita y arregla los datos en autoload.
Todo lo que hay debajo es el módulo en sí: las seis categorías de la revisión de salud, la detección de plugins, el Modo Aprendizaje, las barreras de seguridad y qué resultados esperar.
Cómo funciona el Autoloader Optimizer
El Autoloader Optimizer analiza las opciones en autoload de tu sitio y recomienda optimizaciones seguras. Clasifica cada opción en categorías, identifica candidatas a optimizar y ofrece un mecanismo de restauración por si algo sale mal.
- Revisión de salud — Escanea cada opción en autoload y la clasifica en una de seis categorías
- Detección de plugins — Usa los metadatos de WordPress (TextDomain + nombre de carpeta) para asociar opciones a plugins con gran precisión
- Modo Aprendizaje — Un periodo de observación opcional registra a qué opciones se accede de verdad antes de hacer cambios
- Optimización — Crea una copia de seguridad y luego quita el autoload de las candidatas marcadas. Nunca se borran datos.
Paso 1: revisión de salud — las seis categorías
La revisión de salud escanea cada opción en autoload de tu tabla wp_options y coloca cada una en una de seis categorías.
1. Opciones seguras
Son opciones del núcleo de WordPress que no se deben tocar nunca. Se comparan con una lista curada de opciones seguras que incluye metadatos del sitio (siteurl, home, blogname), ajustes de lectura, registros de plugins y temas (active_plugins, template, stylesheet) y cachés del núcleo (alloptions, notoptions). Estas nunca se marcan para optimizar.
2. Opciones de plugins activos
Cualquier opción cuyo prefijo coincida con un plugin activo se considera esencial y se mantiene en autoload. El módulo usa get_option('active_plugins') de WordPress para saber qué plugins están en marcha y luego asocia los prefijos de las opciones a esos plugins.
Ejemplo: el plugin wordpress-seo está activo. Cualquier opción que empiece por wordpress_seo_ o wpseo_ se marca como perteneciente a un plugin activo y queda protegida.
3. Opciones de plugins inactivos (candidatas a optimizar)
Son opciones cuyo prefijo coincide con un plugin instalado pero desactivado. Como el plugin no está en marcha, esas opciones no sirven para nada y se les puede quitar el flag de autoload sin riesgo.
Ejemplo: instalaste Elementor, lo usaste una temporada y luego lo desactivaste. Las opciones con prefijo elementor_ siguen en tu base de datos y se siguen cargando en autoload en cada petición. El Autoloader Optimizer las identifica y recomienda quitarles el autoload.
4. Opciones demasiado grandes
Los valores de opción individuales de más de 10 KB se marcan, sea cual sea su origen o su estado de actividad. Los arrays serializados grandes o los datos cacheados que se cargan en autoload en cada petición son un lastre evidente para el rendimiento. Los culpables habituales son programaciones de tareas cron, configuraciones de widgets de maquetadores visuales, transients guardados como opciones y respuestas de API cacheadas.
5. Patrones de exceso
Ciertos prefijos de opción son indicadores conocidos de datos que nunca deberían ir en autoload. El módulo mantiene una lista curada de estos patrones. Se aplican esté o no activo el plugin asociado — el análisis busca primero el exceso, antes de mirar si el plugin está activo.
| Patrón | Origen | Por qué no debería ir en autoload |
|---|---|---|
action_scheduler_* |
WooCommerce Action Scheduler | Datos de la cola de trabajos, no hacen falta en cada petición |
wc_tracks_* |
WooCommerce | Datos de telemetría y analítica |
elementor_* |
Elementor | Cachés del maquetador y datos temporales |
_jetpack_* |
Jetpack | Datos de sincronización y de módulos cacheados |
wpseo_* / aioseo_* |
Yoast SEO / AIOSEO | Datos temporales y cacheados de plugins de SEO |
rank_math_* |
Rank Math | Cachés de módulos y analítica |
6. Opciones no reconocidas
Cualquier opción que no coincida con un prefijo del núcleo de WordPress, con el prefijo de un plugin activo, con el de uno inactivo ni con un patrón de exceso conocido cae en la categoría "no reconocidas". Pueden venir de tu tema activo, de plugins must-use, de código a medida o de plugins borrados que no siguieron las convenciones de nombres.
El Autoloader Optimizer nunca optimiza automáticamente opciones no reconocidas. Las mostramos a título informativo, pero no tocamos lo que no podemos verificar. Puedes investigarlas y optimizarlas a mano si tienes claro que es seguro.
Paso 2: detección de plugins — cómo funcionan los prefijos
La parte más difícil del análisis de opciones es identificar correctamente qué plugin creó qué opción. El módulo usa la API get_plugins() de WordPress para obtener todos los plugins instalados con sus metadatos completos, incluido el TextDomain.
Generar prefijos
Para cada plugin generamos varios prefijos posibles:
- Prefijo basado en la carpeta — El nombre de la carpeta del plugin con guiones bajos (p. ej.,
advanced-cachingpasa a seradvanced_caching_) - Prefijo del TextDomain — El TextDomain declarado por el plugin, si es distinto del nombre de la carpeta
Este enfoque de doble prefijo cubre los patrones habituales de nombres en WordPress, donde la carpeta usa guiones y el TextDomain guiones bajos, o al revés.
Antes de la v1.1.18: el problema de los prefijos
Las versiones anteriores generaban prefijos solo a partir del nombre de la carpeta y creaban abreviaturas cortas por convención. Por ejemplo, Fluent Forms (carpeta: fluentform) podía quedar abreviado como ff_ — una abreviatura común en muchos otros plugins. Era una fuente importante de falsos positivos que podía romper la funcionalidad de un plugin si el módulo confundía opciones de plugins activos con huérfanas.
Desde la v1.1.18: detección basada en TextDomain
La implementación actual lo resuelve así:
- Leyendo los metadatos completos del plugin, incluido el TextDomain declarado en su cabecera
- Usando tanto el nombre de la carpeta como el TextDomain para generar prefijos
- Verificando el estado activo del plugin contra la lista oficial
active_pluginsde WordPress - Clasificando una opción como "de plugin inactivo" solo si tenemos mucha confianza en que el plugin está realmente inactivo
Esto reduce muchísimo los falsos positivos. Ahora identificamos correctamente que Yoast SEO (carpeta: wordpress-seo, TextDomain: wordpress-seo) corresponde a las variantes wordpress_seo_, wordpress-seo_ y wpseo_ comprobando las cabeceras del plugin. El resultado: casi nunca marcamos por error opciones de plugins activos como huérfanas.
Paso 3: Modo Aprendizaje (análisis opcional más profundo)
Para usuarios avanzados que quieren recomendaciones de optimización basadas en datos, el módulo ofrece un Modo Aprendizaje opcional:
- Periodo de seguimiento — Ejecuta el módulo en modo observación durante un periodo configurable (por defecto: 7 días)
- Patrones de acceso — El módulo registra a qué opciones se accede realmente en peticiones del admin frente a las del frontend
- Análisis de frecuencia — Registra con qué frecuencia se accede a cada opción
- Puntuación ponderada por tamaño — Combina frecuencia y tamaño de la opción para calcular la prioridad de optimización
- Recomendaciones — Las opciones grandes a las que nunca se accede son la máxima prioridad
Esto resulta especialmente útil en sitios con montajes complejos y a medida donde quieres estar muy seguro antes de tocar nada.
Paso 4: optimización
Cuando has revisado el análisis e identificado las candidatas, el módulo aplica la optimización:
- Creación de la copia — Se crea una copia completa de la tabla de opciones y se guarda como una opción en la base de datos
- Actualización del flag de autoload — Para cada candidata seleccionada, la columna
autoloadpasa de'yes'a'no' - Verificación — El módulo muestra un resumen de lo que ha cambiado
- Monitorización — Tras la optimización puedes comprobar si el sitio sigue funcionando bien
Las opciones siguen en tu base de datos. Simplemente ya no se cargan en memoria en cada petición. Cuando un plugin las pide, WordPress las carga bajo demanda con una consulta aparte. Esa petición concreta tiene un pequeño coste, pero queda ampliamente compensado por el ahorro de no cargarlas en todas las demás.
Referencia de categorías
Referencia rápida de las principales categorías de optimización:
| Categoría | Qué significa | Acción | Nivel de riesgo |
|---|---|---|---|
| Plugin inactivo | El plugin está instalado pero desactivado. Las opciones existen pero no se usan. | Quitar el autoload | Muy bajo — el plugin no está en marcha |
| Demasiado grande | Un valor de opción individual de >10 KB que se carga en cada petición | Quitar el autoload | Bajo — la opción sigue accesible bajo demanda |
| Patrones de exceso | Prefijos conocidos de caché o seguimiento que no deberían ir en autoload | Quitar el autoload | Muy bajo — son patrones bien conocidos |
| No reconocida | Origen desconocido — puede ser el tema, un plugin borrado o código a medida | Ninguna (solo informativo) | N/D — no tocamos lo que no podemos identificar |
Medidas de seguridad
El Autoloader Optimizer está construido con varias capas de seguridad:
Lista de opciones seguras
Una lista curada de opciones del núcleo de WordPress que nunca se marcan para optimizar. Protege la funcionalidad esencial de WordPress, sea cual sea su tamaño u origen.
Asociación de plugins por prefijo
Usa los metadatos oficiales de plugin de WordPress (TextDomain, nombre de carpeta) para identificar qué plugin es dueño de qué opción. Se contrasta con la lista oficial active_plugins para evitar falsos positivos.
Clasificación conservadora
Si hay cualquier duda sobre el origen o la seguridad de una opción, va a la categoría "no reconocidas" en vez de marcarse para optimización automática.
Copia de seguridad antes de optimizar
Se crea una instantánea completa de todas las opciones en autoload y se guarda en la base de datos antes de hacer ningún cambio.
Restauración con un clic
Si algo sale mal, puedes restaurar la copia con un solo clic. Todos los ajustes de autoload vuelven a su estado anterior.
Hook de filtro para desarrolladores
Los desarrolladores pueden registrar opciones propias a las que nunca se debe quitar el autoload. Usa el filtro wpmultitool_autoload_candidates para modificar la lista de candidatas antes de aplicar la optimización:
add_filter('wpmultitool_autoload_candidates', function($analysis) {
// Protect specific options from being optimized
$analysis['candidates'] = array_diff($analysis['candidates'], [
'my_critical_option',
'another_important_one',
]);
return $analysis;
});
Aunque una opción coincida con un patrón de exceso o venga de un plugin inactivo, el filtro te permite dejarla fuera de la optimización.
Conservación de los datos
Las opciones nunca se borran. Solo se modifica el flag de autoload. Los datos siguen totalmente accesibles para los plugins y el código que los pidan.
Hooks para desarrolladores
wpmultitool_autoload_candidates
El filtro wpmultitool_autoload_candidates se llama antes de aplicar la optimización. Recibe el array completo del análisis y debe devolver el análisis modificado:
add_filter('wpmultitool_autoload_candidates', function($analysis) {
// Structure of $analysis:
// 'candidates' => array of option names flagged for optimization
// 'safe' => array of protected core options
// 'active_plugins' => array of active plugin prefixes
// 'inactive_plugins'=> array of inactive plugin prefixes
// 'oversized' => array of large options
// 'bloat_patterns' => array of matched bloat options
// Example: Protect a specific option
if (in_array('my_custom_option', $analysis['candidates'])) {
$analysis['candidates'] = array_diff(
$analysis['candidates'],
['my_custom_option']
);
}
return $analysis;
});
Monitorización y resolución de problemas
Después de optimizar: qué vigilar
- Tiempos de carga — Usa Google PageSpeed o WebPageTest para medir antes y después
- Consultas a la base de datos — Revisa tu registro de consultas lentas por si aparecen nuevas
- Funcionalidad — Prueba los flujos críticos (checkout, formularios, operaciones del admin)
- Registros de errores — Vigila
wp-content/debug.logpor si salen avisos o errores nuevos
Si algo se rompe
- Ve a WP Multitool → Autoloader Optimizer → Estado
- Haz clic en "Restaurar copia"
- Todos los flags de autoload vuelven a su estado anterior
- Investiga qué optimización causó el problema
- Usa el hook de filtro para desarrolladores para proteger esa opción concreta
- Vuelve a aplicar las optimizaciones sin la opción problemática
Medir tu tamaño de autoload
-- Before optimization (check current autoloaded size)
SELECT SUM(CHAR_LENGTH(option_value)) AS autoload_bytes
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto', 'auto-on');
-- After optimization (verify the reduction)
SELECT SUM(CHAR_LENGTH(option_value)) AS autoload_bytes
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto', 'auto-on');
Impacto en el rendimiento
Qué cambia
- Mejor — La mayoría de peticiones cargan y parsean menos datos al arrancar
- Mejor — Menos consumo de memoria durante el procesado de la petición
- Algo más lento (peticiones concretas) — Las peticiones que acceden a opciones sin autoload lanzan una consulta adicional a la base de datos para esa opción
Qué no cambia
- La funcionalidad del sitio — las opciones siguen accesibles
- La estructura de la base de datos — no se borra nada
- La compatibilidad de plugins — los plugins funcionan con normalidad
Resultados habituales
Los resultados varían según lo inflada que estuviera tu tabla de opciones al principio. Los sitios con años de historial de plugins y plugins desactivados suelen ver las mayores mejoras.
Ahorro realista por tipo de sitio
| Tipo de sitio | Reducción esperada | Impacto diario (1.000 pet./día) |
|---|---|---|
| Habitual (8-12 plugins) | 100–300 KB por petición | 100–300 MB de carga a la base de datos |
| WooCommerce (15-20 plugins) | 500 KB–2 MB por petición | 500 MB–2 GB de carga a la base de datos |
| Muy inflado (más de 30 plugins) | Más de 2–5 MB por petición | Más de 2–5 GB de carga a la base de datos |
Preguntas frecuentes
- ¿Qué son los datos en autoload en WordPress?
-
Los datos en autoload son todas las filas de la tabla
wp_optionsmarcadas para cargarse automáticamente:'yes'en instalaciones antiguas, y también'on','auto'o'auto-on'desde WordPress 6.6. WordPress lo carga todo en memoria en cada petición —frontend, admin, REST, cron—, use o no la página actual esos datos. Un total sano está por debajo de unos 800 KB–1 MB; los plugins que no recogen lo suyo son el motivo habitual de que crezca por encima. No es el autoloader de clases de PHP (Composer / SPL). - ¿Es seguro poner autoload en 'no'?
-
Para las opciones adecuadas, sí, y es mucho más seguro que borrarlas. Poner autoload en
'no'mantiene los datos en la base de datos; WordPress simplemente los carga bajo demanda en vez de en cada petición, y el cambio es totalmente reversible. El riesgo está en tocar opciones que un plugin activo lee al principio de la petición (configuración del cortafuegos,rewrite_rules,cron), así que audita a quién pertenece cada opción antes de tocarla: las opciones huérfanas de plugins eliminados son las victorias seguras. - ¿Qué significa el aviso de datos en autoload de WP Engine?
-
El portal de usuario de WP Engine marca tu sitio cuando el tamaño total de las opciones en autoload de
wp_optionscrece demasiado; recomiendan mantenerlo por debajo de aproximadamente 1 MB, porque todo lo que pase de ahí se carga en cada petición. El aviso es solo diagnóstico: WP Engine te da el número, pero auditar y arreglar las opciones culpables es cosa tuya. El mismo coste existe en cualquier hosting; WP Engine solo es uno de los pocos que lo enseña en un panel. - ¿Esto va a romper mi sitio?
- No. El Autoloader Optimizer solo cambia el flag de autoload, nunca borra datos. Cuando un plugin o el núcleo de WordPress pide una opción que ya no está en autoload, WordPress la sigue cargando desde la base de datos — simplemente no se carga en absolutamente todas las peticiones. Además, se crea una copia completa antes de optimizar y puedes restaurarla con un clic si pasa algo inesperado.
- ¿Por qué no se optimizan automáticamente las opciones no reconocidas?
-
Porque no podemos verificar su origen. Pueden ser opciones de tu tema activo (que usa prefijos no estándar), de un plugin must-use en
/wp-content/mu-plugins/, opciones propias de tu código, o de un plugin con nombres no estándar. Optimizar automáticamente opciones no reconocidas arriesgaría romper funcionalidad que no entendemos del todo. En su lugar te las mostramos para que las revises. - ¿Y los plugins con prefijos no estándar?
- Desde la v1.1.18 usamos el TextDomain de la cabecera del plugin para generar prefijos adicionales, lo que cubre la mayoría de nombres no estándar. Aun así, algunos plugins usan prefijos sin relación alguna con su nombre (por ejemplo, abreviaturas propias en código heredado). Para esos casos puedes usar el hook de filtro para desarrolladores para proteger las opciones, o inspeccionar la opción a mano y decidir tú.
- ¿Por qué el plugin sigue creando opciones para funciones que no uso?
- La mayoría de plugins de WordPress crean todas sus claves de opción durante la instalación, actives las funciones que actives. Es más sencillo que comprobar dinámicamente qué está activado. El Autoloader Optimizer ayuda a mitigarlo no cargando en autoload las opciones de plugins desactivados o de funciones que ahora mismo no usas.
- ¿Cuánto puedo ahorrar de forma realista?
- Depende del ecosistema de plugins de tu sitio. Un sitio normal con 8–12 plugins puede esperar una reducción de 100–300 KB por petición. Un sitio WooCommerce con 15–20 plugins puede ver 500 KB–2 MB. Un sitio muy inflado con más de 30 plugins y años de historial puede ver más de 2–5 MB por petición.
- ¿Qué pasa si reactivo un plugin después de haber quitado el autoload a sus opciones?
- Las opciones seguirán funcionando con normalidad. WordPress las cargará bajo demanda cuando el plugin las pida. Si quieres volver a ponerlas en autoload, puedes usar la función de restaurar copia para revertir todos los cambios, o volver a activar el autoload a mano en la base de datos para opciones concretas.
- ¿Esto afecta a los transients o a los eventos de cron?
-
Los transients y las programaciones de cron guardadas en
wp_optionsson candidatas a optimizar, pero normalmente solo se accede a ellas cuando hacen falta. El módulo marca las grandes para que las revises. Puedes protegerlas con el hook de filtro para desarrolladores si prefieres dejarlas intactas.
Empieza a optimizar tus opciones en autoload
El Autoloader Optimizer de WP Multitool vigila tu tabla wp_options, identifica los datos en autoload inflados y huérfanos, y te muestra exactamente qué es seguro limpiar — con copia de seguridad completa y restauración de un clic.