WooCommerce : Optimizar

Fecha Publicación:       29 de Abril de 2026
Fecha Modificación:       29 de Abril de 2026

 

Fatal error: Maximum execution time of 360 seconds exceeded

la tabla wp_actionscheduler_actions

Esta es la tabla de "tareas programadas" de WordPress/WooCommerce. El error de timeout de 360 segundos ocurre porque estás intentando importar esta tabla a través de phpMyAdmin y es un pozo sin fondo.

Mira los datos que me pasaste:

  1. Está llena de tareas woocommerce_custom_orders_table_background_sync programadas cada hora hasta el año 2026.
  2. Contiene objetos serializados de PHP (esa cosa rara que empieza con O:32:"ActionScheduler...) que son extremadamente pesados de insertar en la base de datos.
  3. Hay muchísimas tareas "failed" (fallidas) de wp_mail_smtp y action_scheduler/migration_hook que solo están ocupando espacio inútil.

phpMyAdmin se vuelve loco intentando insertar miles de filas con datos serializados tan largos y por eso supera los 360 segundos.

¿Qué pasa cuando elimines esa tabla?

No pasa absolutamente nada negativo. En cuanto entres al panel de administración (wp-admin) de tu nuevo WordPress, WooCommerce notará que falta esa tabla y la creará vacía automáticamente con la estructura correcta, empezando de cero y sin basura.

Consejo para el futuro

Cuando vayas a exportar tu WordPress la próxima vez, desde phpMyAdmin selecciona "Personalizado - mostrar todas las opciones posibles" y desmarca las tablas que empiezan por actionscheduler_ (suele haber 3 o 4). Tu archivo SQL pesará mucho menos y nunca dará este error.

Resumen de las tablas que debes borrar del archivo SQL:

  • wp_actionscheduler_actions (La que te está causando el error por su tamaño enorme).
  • wp_actionscheduler_claims
  • wp_actionscheduler_groups
  • wp_actionscheduler_logs
  • wp_actionscheduler_metadata (si existe en tu caso)

¿Por qué es 100% seguro borrarlas?

Estas tablas NO son información de tu negocio. No contienen:

  • ❌ Productos
  • ❌ Pedidos de clientes
  • ❌ Datos de contacto
  • ❌ Configuraciones de tu web

Son simplemente la "lista de tareas pendientes" de WordPress y WooCommerce (ej: "enviar correo a las 3pm", "borrar pedidos borradores", "sincronizar datos").

Toda esa basura que vimos en tu archivo (tareas fallidas de 2024, tareas programadas para 2026) es inútil. Al borrarlas te ahorras migrar megabytes de basura serializada que lo único que hacen es colapsar phpMyAdmin.

Tabla wp_actionscheduler_actions

Esa tabla es conocida en la comunidad de WordPress como "el monstruo devorador de bases de datos". Se llena porque los plugins (sobre todo WooCommerce) programan tareas en segundo plano, y si algo falla o se queda en un bucle, las tareas fallidas nunca se borran solas por defecto.

Basándome en los datos que me pasaste antes, aquí tienes los pasos exactos para evitar que vuelva a crecer de esa manera:

1. Arregla el bucle de WooCommerce (El principal culpable)

En tus datos había miles de tareas llamadas woocommerce_custom_orders_table_background_sync programadas cada hora hasta el año 2026. Esto significa que WooCommerce intentaba sincronizar sus pedidos y se quedó atascado en un bucle infinito.

  • La solución: Ve a tu panel de WordPress > WooCommerce > Configuración > Avanzado > Almacén de datos personalizados (HPOS).
  • Asegúrate de que la sincronización esté completada y desactivada. Si la característica HPOS ya está activa y tus pedidos se ven bien, no necesitas que WooCommerce siga creando tareas de sincronización cada hora. Deja de mantener la compatibilidad si ya no la necesitas.

2. Limpia las tareas fallidas automáticamente (El truco definitivo)

WordPress, por defecto, guarda las tareas "fallidas" (failed) para siempre. Tienes que decirle que las borre. Añade este código en el archivo functions.php de tu tema hijo (o usa un plugin como Code Snippets):

// Borrar tareas fallidas de Action Scheduler cada semana
add_action( 'admin_init', 'borrar_tareas_fallidas_action_scheduler' );

function borrar_tareas_fallidas_action_scheduler() {
    if ( ! class_exists( 'ActionScheduler_Store' ) ) {
        return;
    }
    
    // Ejecutar solo una vez por semana usando un transient
    if ( get_transient( 'as_cleanup_weekly' ) ) {
        return;
    }
    
    $store = ActionScheduler_Store::instance();
    // Eliminar acciones fallidas de hace más de 7 días
    $store->delete_actions_by_status( 'failed', 7 * DAY_IN_SECONDS, 100 ); // Limita a 100 por vez para no sobrecargar
    
    set_transient( 'as_cleanup_weekly', true, WEEK_IN_SECONDS );
}

 

Esto hará que las tareas que fallen (como las de WP Mail SMTP que vimos en tu lista) se borren automáticamente a la semana de haber fallado, evitando que la basura se acumule.

3. Desactiva estadísticas y rastros que no uses

En tus datos vi tareas fallidas de rank_math/analytics/data_fetch y varias de wp_mail_smtp (reportes y envío de datos de uso).

  • Rank Math: Si no usas las analíticas de Rank Math (que consumen muchos recursos), ve a Rank Math SEO > General Settings > Analytics y desactívalas.

  • WP Mail SMTP: Ve a los ajustes del plugin y busca la opción "Usage Tracking" (Seguimiento de uso) o "Anonymous Data" y desactívala. A nadie le gusta que un plugin de emails esté programando tareas cada día solo para enviar estadísticas a sus servidores.

4. Acelera el limpiador nativo de WooCommerce

WooCommerce tiene un sistema para limpiar tareas antiguas (las que ya se completaron), pero por defecto lo hace muy lento para no sobrecargar el servidor. Puedes acelerarlo añadiendo esta línea a tu archivo wp-config.php:

define( 'ACTION_SCHEDULER_CLEANUP_RANGES', true );

Esto le dice a WooCommerce que borre las tareas completadas en lotes grandes en lugar de una por una, manteniendo la tabla pequeña.

Resumen

Con esto que has hecho (borrar la tabla basura) y aplicando estos 4 pasos, tu base de datos quedará ligera, las importaciones serán rapidísimas y tu tienda irá mucho más rápida porque el servidor ya no tendrá que leer una tabla gigante cada vez que WordPress ejecute una tarea en segundo plano.

Paso 1: Asegurar que HPOS sea el único jefe

  1. Ve a Wooocommerce > Ajustes > Avanzados > Características
  2. Asegúrate de que "Almacenamiento de pedidos de alto rendimiento (HPOS)" esté activado.
  3. Ve a la pestaña que aparece justo debajo llamada "Almacén de datos personalizados".
  4. Aquí debes seleccionar la opción que diga "Almacenamiento de pedidos de alto rendimiento" (o similar que indique que HPOS es el autoritativo).
  5. MUY IMPORTANTE: Desmarca la casilla que dice "Mantener la compatibilidad con las tablas de publicaciones personalizadas" (Keep compatibility with custom post tables). Al desmarcarla, le dices a WooCommerce: "Olvida el sistema viejo, ya no lo uso, no me sincronices más".
  6. Guarda los cambios. (WooCommerce te sugerirá hacer un respaldo antes, pero como ya tienes tu archivo SQL guardado, estás seguro).

 

Paso 2: Ejecutar la herramienta de limpieza (Solo si pudistes Activar Almacenamiento de pedidos de alto rendimiento)

Ahora que ya le dijiste a WooCommerce que no vuelva a sincronizar hacia atrás, ve a: WooCommerce > Estado > Herramientas (en la parte superior).

Ahí verás los textos que me copiaste. Debes hacer lo siguiente:

 

  • HAZ CLIC EN: "Limpiar datos de pedidos de tablas heredadas".

    • ¿Qué hace esto? Como ya le dijiste a WooCommerce que use solo HPOS, los pedidos que están duplicados en las tablas viejas (wp_posts ya no sirven para nada. Este botón los borrará, reduciendo el peso de tu base de datos drásticamente y de forma segura.
  • NO TOQUES: "Borrar tablas de pedidos personalizadas".

    • ¿Por qué? Como el texto dice, esto borra las tablas nuevas (HPOS). Si acabas de decirle a WooCommerce que use HPOS y luego borras esas tablas, ¡perderás el acceso a todos tus pedidos actuales! Esa opción solo se usa si decides volver al sistema antiguo, lo cual no recomendamos.

 

Imposible Activar Almacenamiento de pedidos de alto rendimiento

Plugins activos que son incompatibles con la característica 'Almacenamiento de pedidos de alto rendimiento'. Detectados 2 plugins incompatibles (CURCY - Multi Currency for WooCommerce y Premmerce Permalink Manager for WooCommerce (Premium)).

¡Excelente descubrimiento! WooCommerce te está mostrando este aviso por una razón de supervivencia: te está salvando de un error mayor.

Esto explica una de las razones por las que tu tabla wp_actionscheduler_actions se volvió loca.

¿Qué significa esto?

Cuando activas el HPOS (Alto Rendimiento), WooCommerce mueve los pedidos a unas tablas nuevas y más rápidas. Sin embargo, estos dos plugins que mencionas fueron programados hace tiempo y saben leer los pedidos solo en la tabla antigua (wp_posts).

Si tú fuerzas a WooCommerce a usar solo las tablas nuevas (desactivando el modo compatibilidad como te recomendé antes) y estos plugins no están preparados, se romperán los pedidos (por ejemplo, en un pedido en dólares podría no guardar el símbolo de la moneda, o los enlaces podrían fallar).

WooCommerce detectó esto y bloqueó el proceso para evitar un desastre.

¿Qué debes hacer ahora? (Tienes 2 caminos)

Opción 1: La ideal (Actualizar)

La mayoría de los desarrolladores de plugins ya han actualizado sus códigos para ser compatibles con HPOS.

  1. Ve a Plugins > Plugins instalados.
  2. Revisa si CURCY - Multi Currency o Premmerce Permalink Manager tienen un botón que diga "Actualizar ahora".
  3. Si los actualizas, vuelve a la página de Estado de WooCommerce a ver si el aviso rojo desaparece. Si desaparece, ya puedes proceder a desactivar el modo compatibilidad sin miedo.

Opción 2: Si ya están actualizados (Falso positivo)

A veces los plugins ya son compatibles, pero no han actualizado el "letrero" en su código para decírselo a WooCommerce.

  1. Haz una prueba: Pon tu tienda en modo mantenimiento (o créala con una cuenta de prueba).
  2. Ve a WooCommerce > Configuración > Avanzado > Almacén de datos personalizados y activa la opción "Almacenamiento de pedidos de alto rendimiento" (desactivando la compatibilidad).
  3. Haz un pedido de prueba con una moneda diferente (para probar CURCY).
  4. Revisa el pedido en el panel de administración. Si el pedido se ve bien, muestra la moneda correcta y no da errores, puedes ignorar el aviso de WooCommerce. Es un falso positivo.

Opción 3: Si NO se pueden actualizar y SÍ se rompen (Decisión crítica)

Si los plugins son viejos, el desarrollador los abandonó y al forzar el HPOS tu tienda se rompe, tienes que tomar una decisión de negocio:

  • ¿Qué es más importante? ¿Tener la moneda múltiple funcionando o tener una base de datos que no colapse?
  • Si decides mantener estos plugins, NO puedes desactivar el modo compatibilidad.
  • El problema: Si no lo desactivas, el proceso de sincronización en segundo plano (background_sync) seguirá existiendo, aunque no debería volverse loco como antes. Para evitar que la tabla de acciones se llene de nuevo, tendrías que usar un plugin gratuito llamado "WP Crontrol" para ir manualmente a la lista de tareas programadas y eliminar periódicamente las tareas que digan failed o pending del background_sync.

Mi recomendación: Empieza por la Opción 1. Revisa si hay actualizaciones. CURCY suele actualizarse con frecuencia. Si se actualizan, el problema se soluciona solo y podrás limpiar tu base de datos de forma definitiva.

 

Articulo : 103 - Veces Leidas
Compartir Articulo:

Artículos Relacionados

×

¡Apóyame suscribiéndote a mi canal!

Tutoriales sobre Diseño Web