Audita tus datos en autoload: dos consultas
Pégalas en phpMyAdmin, Adminer o wp db query: la primera te da el tamaño total de autoload en KB, la segunda lista las 25 opciones que realmente lo provocan. Ajusta el prefijo wp_ si el tuyo es distinto.
-- Total autoloaded data (KB) + row count
SELECT ROUND(SUM(LENGTH(option_value)) / 1024, 1) AS autoload_kb,
COUNT(*) AS autoload_count
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto', 'auto-on');
-- Top 25 offenders, biggest first
SELECT option_name,
ROUND(LENGTH(option_value) / 1024, 1) AS size_kb,
autoload
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto', 'auto-on')
ORDER BY LENGTH(option_value) DESC
LIMIT 25;
WordPress 6.6+ escribe 'auto' y 'auto-on' además de los clásicos 'yes' y 'on'. Cualquier consulta de auditoría que solo compruebe autoload = 'yes' subestima tu tamaño real de autoload, y por eso tantos sitios parecen correctos sobre el papel y siguen cargando un conjunto inflado en cada petición.
El autoloader de WordPress frente a los datos en autoload
"Autoloader" significa dos cosas sin relación en WordPress, y buscarlo devuelve las dos. Merece treinta segundos comprobar cuál tienes.
| Cómo lo llama la gente | Qué es en realidad | ¿Ralentiza tu sitio? |
|---|---|---|
| El autoloader de clases de PHP Composer, spl_autoload_register, PSR-4 |
Una función que carga el archivo de una clase de PHP la primera vez que se usa esa clase, para que no escribas require a mano. |
Casi nunca. Es una búsqueda en el sistema de archivos, normalmente cacheada por OPcache. |
| Opciones en autoload La columna autoload de wp_options |
Filas que WordPress trae a memoria en cada petición, antes de que se ejecute nada de tu código. | Sí. Esta es la que te cuesta dinero, y de esta va el resto de la página. |
Si has llegado aquí porque tu hosting marcó "autoloaded data", o tras ver alloptions en un profiler, quieres la segunda. Si estás depurando un fatal de Class not found, quieres la primera, y esta página no te va a ayudar: eso es un problema de Composer o PSR-4.
La expresión "plugin autoloader" es ambigua de la misma forma. Un plugin trae un autoloader de Composer para sus propias clases, y además escribe opciones en autoload. Solo lo segundo aparece en la consulta de abajo.
¿Qué son los datos en autoload?
WordPress tiene una única consulta que se ejecuta en cada carga de página, antes de que se ejecute el código de ningún tema o plugin:
SELECT option_name, option_value
FROM wp_options
WHERE autoload = 'yes'
Esto carga de golpe en memoria todas las opciones marcadas como "autoload". El núcleo de WordPress necesita unos 100 KB de estos datos. El problema es que los plugins abusan.
Desactivas un plugin. Sus datos se quedan en wp_options con autoload='yes'. Instalas 30 plugins en 2 años. Ahora cargas 5 MB de datos en cada petición—la mayoría de plugins que ya ni usas.
A diferencia de las consultas lentas, que disparan tu TTFB de forma intermitente, el autoload inflado es un impuesto constante. Añade latencia a absolutamente cada petición—cacheada o no, frontend o admin, AJAX o carga de página.
Tamaño de autoload sano: umbrales para wp_options
Trata el tamaño total de autoload como un presupuesto, no como una métrica de vanidad. Ejecuta la consulta de auditoría de arriba y luego lee tu número contra esta tabla.
| Tamaño de autoload | Veredicto | Qué hacer |
|---|---|---|
| Menos de 300 KB | Bien | Nada. Solo el núcleo de WordPress necesita unos 100 KB: estás en territorio normal. Vuelve a comprobarlo tras instalar muchos plugins o una migración. |
| 300–800 KB | Vigilar | Ejecuta la consulta del top 25. Apunta qué plugins son dueños de las filas más grandes y quita el autoload a los huérfanos y a las cachés rancias antes de que crezcan. |
| 800 KB–1 MB | Actuar | Has cruzado la línea que marca la mayoría de hostings gestionados. Programa una limpieza esta semana. Mejor autoload='no' que borrar filas. |
| Más de 1 MB | Urgente | WordPress cachea todo el conjunto de autoload como una única clave alloptions. Muchas configuraciones de Redis/Memcached limitan un valor a ~1 MB, así que un conjunto demasiado grande puede fallar al cachearse en silencio, o aparecer como 502 intermitentes bajo carga. |
Los sitios con más de 3 MB de datos en autoload son habituales. Hemos visto sitios con más de 10 MB—eso son 10 MB transferidos de MySQL a PHP en cada petición, antes incluso de que WordPress empiece a construir la página.
Aviso de "Autoloaded Data" de WP Engine: qué hacer
WP Engine marca los datos en autoload en cuanto pasan de 800 KB y considera normal cualquier cifra por debajo. Es uno de los pocos hostings que lo muestra como aviso en el panel, y por eso la mayoría de la gente conoce el problema a través de ellos. La física es la misma con cualquier proveedor: cada petición mete el conjunto entero en PHP, estés donde estés.
El aviso te da un número y nada más. Esto es lo que hacer con él.
-
Mídelo tú primero. Ejecuta la consulta de auditoría del principio de esta página. Los paneles de hosting muestrean cada cierto tiempo, así que el número que ves puede tener horas, y algunos paneles siguen comprobando
autoload = 'yes', lo que subestima en WordPress 6.6+ porque el núcleo ahora también escribe'on','auto'y'auto-on'. Que un panel diga "dentro de lo normal" no es una prueba. -
Busca a los culpables, no el total. El total es un síntoma. Lista las 25 filas más grandes por
LENGTH(option_value)y normalmente encontrarás tres o cuatro filas que cargan con casi todo el peso. - Comprueba cada una contra la lista de "no tocar" que hay más abajo en esta página antes de cambiar nada. Algunas opciones grandes en autoload tienen que ser grandes.
-
Quita el autoload, no borres.
wp option set-autoload OPTION_NAME offdeja los datos intactos y es reversible. Borrar filas es la forma de cargarte los ajustes de un plugin. - Vuelve a medir y dale tiempo al panel. El aviso desaparece en la siguiente comprobación de WP Engine, no al instante.
Una advertencia específica de los hostings gestionados con memcached: por encima de aproximadamente 1 MB el blob de autoload puede superar el límite por clave, así que falla al cachearse en silencio y cada petición vuelve a la base de datos. Eso es peor de lo que sugiere el aviso, y aparece como 502 aleatorios en wp-admin en lugar de como una página lenta.
Bajar de 800 KB a mano son un par de horas de trabajo cuidadoso. el Autoloader Optimizer de WP Multitool hace la misma auditoría, clasifica cada fila y desactiva las seguras con una restauración de un clic por detrás.
Qué provoca el autoload inflado en WordPress
1. Restos de plugins desactivados
La mayoría de plugins no recogen lo suyo. Añaden opciones al activarse y las dejan para siempre—incluso tras desactivarlos y borrarlos. Encuéntralas:
SELECT option_name, LENGTH(option_value) AS size
FROM wp_options
WHERE autoload = 'yes'
ORDER BY size DESC
LIMIT 20;
Busca nombres de opciones de plugins que ya no uses. Es seguro ponerlas en autoload='no' o borrarlas del todo.
2. Arrays serializados que crecen
Algunos plugins guardan datos que crecen en una sola opción: registros, instantáneas de analítica, programaciones de cron. Un único option_value puede ser 500 KB o más de PHP serializado.
3. Transients caducados
Los transients son valores temporales en caché guardados en wp_options. Sin una caché de objetos externa, los transients caducados se acumulan. WordPress solo los limpia de forma perezosa—cuando se accede a ellos la próxima vez. Estos transients rancios también pueden aparecer como consultas lentas cuando la tabla crece lo suficiente.
SELECT COUNT(*) FROM wp_options
WHERE option_name LIKE '_transient_%'
AND autoload = 'yes';
4. Plugins mal configurados
Plugins que guardan ajustes por usuario, configuraciones JSON grandes o respuestas de API cacheadas en opciones con autoload. Puede que esos datos hagan falta, pero no hace falta cargarlos en cada petición.
Cómo auditar los datos en autoload de wp_options
- Comprueba el tamaño total de autoload — Ejecuta la consulta SQL de arriba. Por encima de 1 MB hay que investigar de inmediato.
-
Encuentra a los mayores culpables — Ordena las opciones en autoload por
LENGTH(option_value). El top 10 suele explicar más del 80% del exceso. - Identifica los datos huérfanos — Cruza los nombres de las opciones con tus plugins activos. Las opciones de plugins desactivados se pueden tocar sin riesgo.
-
Prueba antes de cambiar — Pon
autoload='no'en una opción cada vez. Comprueba que el sitio sigue funcionando. Algunas opciones necesitan el autoload de verdad (ajustes del núcleo, configuración del tema y los plugins activos). - Limpia los transients caducados — Borra los transients que han pasado su tiempo de vida. Esto siempre es seguro.
Lo que NO hay que desactivar
Cambiar el autoload es reversible. Borrar filas no. Pero algunas opciones tienen que seguir en autoload mientras su dueño esté activo, o WordPress y tus plugins se rompen al principio del arranque, y no dará un error: simplemente se degradará en silencio. Usa esto como comprobación antes de cualquier cambio masivo.
| Mantener en autoload (mientras se usen) | Normalmente es seguro poner autoload='no' |
|---|---|
cron: el mapa completo de eventos de WP-Cron;active_plugins, template, stylesheet;siteurl, home, blogname, blogdescription;user_roles, permalink_structure, rewrite_rules;theme_mods_{active-theme} del tema en uso;ajustes en tiempo de ejecución de los plugins activos: configuración de la tienda de WooCommerce, wpseo_* de Yoast, reglas de cortafuegos
|
Filas huérfanas de plugins borrados (el prefijo no coincide con nada instalado);_transient_* y _site_transient_* rancios: cachés por definición;restos de comprobación de actualizaciones: _site_transient_update_plugins, _site_transient_update_themes, _site_transient_update_core;contabilidad de colas y telemetría: action_scheduler_*, wc_tracks_*;blobs enormes de CSS/recursos de maquetadores visuales ( _elementor_* y Divi son reincidentes en el top 25)
|
La regla: si el plugin está activo y la opción es configuración que lee en cada petición, deja el autoload puesto. Si el plugin ya no está, o el valor es una caché, un registro o un blob de cola, quita primero el autoload, y bórralo solo cuando hayas confirmado que nadie sigue leyendo esa fila.
Culpables habituales del autoload: ¿es seguro desactivarlo?
Veinte prefijos que veo una y otra vez, y qué hago con cada uno. "Cuidado" significa que la respuesta depende de si el plugin sigue activo: comprueba eso primero.
| Opción / prefijo | Origen | ¿Es seguro quitar el autoload? |
|---|---|---|
_transient_* / _site_transient_* | Núcleo de WordPress + cualquier plugin (transients) | Sí: los transients son cachés por definición; en sitios con caché de objetos no deberían estar en wp_options siquiera. |
action_scheduler_* | Action Scheduler (WooCommerce y otros) | Sí: contabilidad de la cola, se carga bajo demanda cuando el planificador se ejecuta. |
wc_tracks_* | WooCommerce (telemetría) | Sí: eventos de seguimiento de uso, nada de cara al usuario depende de ellos. |
woocommerce_* (settings) | Núcleo de WooCommerce | No: configuración de moneda, impuestos y checkout que Woo lee en cada petición. |
elementor_* | Elementor (ajustes) | Cuidado: los ajustes en tiempo de ejecución hacen falta mientras esté activo; solo es seguro una vez desactivado Elementor. |
_elementor_* | Elementor (datos internos / caché) | Cuidado: algunas entradas son caché de CSS/recursos (seguras), otras son estado en tiempo de ejecución; audita fila a fila. |
jetpack_* / _jetpack_* | Jetpack | Cuidado: tokens de conexión y estado de sincronización; tocar el que no toca puede romper la conexión con WordPress.com. |
wpseo_* / wordpress_seo_* | Yoast SEO | No mientras esté activo: títulos, metas y ajustes de indexables se cargan en cada petición del frontend. Sí si Yoast se eliminó. |
aioseo_* | All in One SEO | Cuidado: los ajustes principales se quedan mientras esté activo, pero AIOSEO es conocido por opciones enormes de caché/registro que sí se pueden cambiar. |
rank_math_* | Rank Math | Cuidado: los ajustes en tiempo de ejecución no, los blobs de analítica/caché sí; el mismo reparto que AIOSEO. |
wpforms_* | WPForms | Cuidado: los ajustes hacen falta mientras esté activo; las entradas de challenge, notificaciones y registro son seguras. |
wf* / wflogs | Wordfence | Cuidado: la configuración del cortafuegos se lee en cada petición mientras esté activo; las filas tipo registro y los huérfanos tras eliminarlo son un sí rotundo. |
redirection_* | Redirection | Cuidado: el plugin necesita sus ajustes pronto para ejecutar las redirecciones; cámbialo solo si el plugin ya no está. |
et_* | Divi (Elegant Themes) | Cuidado: los ajustes del tema activo no; si te has ido de Divi, todo lo et_* es lastre muerto: sí. |
edd_* | Easy Digital Downloads | Cuidado: los ajustes de la tienda hacen falta mientras esté activo; los restos de seguimiento y sesiones son seguros. |
learndash_* | LearnDash | Cuidado: los ajustes de cursos y de ejecución mientras esté activo; solo es seguro si LearnDash se eliminó. |
tribe_events_* | The Events Calendar | Cuidado: conocido por entradas de caché grandes en autoload (a menudo seguras), pero los ajustes principales son de ejecución. |
fs_accounts | SDK de Freemius (incluido en muchos plugins) | Cuidado: una fila compartida por todos los plugins basados en Freemius; el licenciamiento se rompe si la cambias mientras alguno esté activo. |
rewrite_rules | Núcleo de WordPress | Cuidado: a menudo es la opción más grande de todas, pero WordPress la necesita para enrutar URLs. No la borres nunca; si es enorme, busca el plugin que la está inflando. |
cron | Núcleo de WordPress | No: aquí vive toda la programación de WP-Cron; quitar el autoload rompe las tareas programadas. |
Cómo arreglar el autoload inflado en WordPress
Desactivar el autoload en opciones concretas
UPDATE wp_options SET autoload = 'no'
WHERE option_name = 'old_plugin_settings';
Limpiar los transients caducados
DELETE FROM wp_options
WHERE option_name LIKE '_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();
Borrar datos huérfanos de plugins
-- Only after confirming the plugin is gone:
DELETE FROM wp_options
WHERE option_name LIKE 'removed_plugin_%';
El problema de los arreglos manuales: no se quedan arreglados. Los plugins siguen añadiendo datos. Los transients se vuelven a acumular. Los plugins nuevos traen opciones nuevas en autoload. Tendrías que auditar cada mes para tenerlo bajo control.
Por qué el autoload inflado no deja de crecer
El autoload inflado es progresivo. Crece despacio, de 50 KB en 50 KB, invisible hasta que tu sitio va notablemente más lento y no sabes por qué.
- Plugin nuevo instalado → 200 KB de opciones de configuración en autoload
- Plugin desactivado → los datos se quedan, y siguen en autoload
- Fallo de caché de un transient → se guarda un transient nuevo con autoload
- Actualización de un plugin → la migración añade filas nuevas en autoload
Si además notas un escritorio de WordPress lento, el autoload inflado suele ser la causa oculta. Necesitas una herramienta que vigile tu tamaño de autoload de forma continua y te diga exactamente qué opciones están desperdiciando memoria—antes de que se convierta en un problema de rendimiento.
Automatiza la limpieza del 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.