Las imágenes no se generan
Si tu entrada se publicó con éxito pero la imagen destacada o las imágenes del cuerpo no aparecieron, recorre esta página en orden. La causa más común vive en el Paso 1 — es un problema de entorno más que algo malo en tu campaña.
Antes de empezar
Abre Tools → Site Health en WordPress. Structura añade ahí tres sondas que se encienden cuando los bloqueadores más comunes de generación de imagen están presentes:
- MySQL packet size is sufficient for background tasks
- WordPress cron is enabled
- WordPress uploads directory is writable
Si alguna está marcada en rojo o amarillo, arregla eso primero — los pasos abajo detallan cada arreglo.
Paso 1: ¿Es el max_allowed_packet de MySQL demasiado pequeño?
Esta es la causa única más común que vemos en hosting compartido.
Qué pasa. Structura encola tareas de generación de
imagen usando
Action Scheduler , que
guarda cada tarea encolada en la tabla
wp_actionscheduler_actions. Si los datos serializados de
la tarea son mayores que el ajuste max_allowed_packet de
MySQL, la base de datos rechaza la fila silenciosamente.
Sin error PHP, sin error en el admin. La tarea
simplemente nunca se crea — así que la imagen nunca se
genera.
Structura 1.17+ atrapa esto en el momento de encolar y muestra el fallo en el detalle de la ejecución de la campaña, bajo el paso Visuals. El mensaje se ve así:
Featured image task could not be enqueued. Action Scheduler refused the write — this is usually a MySQL packet-size limit (max_allowed_packet) or a database-write failure on wp_actionscheduler_actions.
Cómo arreglarlo. Necesitas subir
max_allowed_packet a al menos 4 MB (4194304). Cómo
lo haces depende de tu hosting:
- Hosting compartido (Hostinger, SiteGround, Bluehost,
etc.) — abre un ticket de soporte pidiéndoles subir
max_allowed_packeten tu base de datos a 4 MB o mayor. La mayoría de hostings lo harán en pocas horas; es una petición habitual. - WordPress gestionado (Kinsta, WP Engine, Pressable) — tu hosting ya ha puesto un valor razonable. Si Site Health lo sigue marcando, abre un ticket de soporte e incluye una captura de la tarjeta de Site Health.
- VPS / autogestionado — añade
max_allowed_packet = 16Mbajo[mysqld]en/etc/mysql/my.cnf(o el equivalente en tu instalación de MySQL / MariaDB) y reinicia el servicio de base de datos.
Tras que el cambio surta efecto, ejecuta una campaña otra vez o haz clic en Generar imagen en la pantalla de edición de cualquier entrada generada por Structura — la imagen debería ahora guardarse correctamente.
Paso 2: ¿Está deshabilitado el cron de WordPress?
Qué pasa. Si tu wp-config.php incluye
define('DISABLE_WP_CRON', true); y no hay un cron del
sistema golpeando wp-cron.php, las tareas de generación
de imagen en segundo plano se encolan pero nunca corren.
Cómo arreglarlo. O bien:
- Quita la constante
DISABLE_WP_CRONdewp-config.php, o - Añade un cron del lado del servidor que llame a
wp-cron.phpcada minuto:
* * * * * wget -q -O - https://your-site.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1La mayoría de hostings gestionados se ocupan de esto por ti. En hosting compartido puede que necesites configurar el cron job tú misma en tu panel de hosting.
Paso 3: ¿Es escribible el directorio de uploads?
Qué pasa. Las imágenes generadas se importan vía el
helper media_handle_sideload() de WordPress, que escribe
en wp-content/uploads/YYYY/MM/. Si ese directorio (o su
padre) no es escribible por PHP, el sideload falla. Site
Health saca a la luz el mensaje exacto de error de
WordPress.
Cómo arreglarlo. Haz que el directorio de uploads sea escribible por el servidor web. El arreglo típico en hostings Linux:
chown -R www-data:www-data wp-content/uploads
chmod -R 755 wp-content/uploadsAjusta el usuario (www-data, apache, nobody, etc.)
para que coincida con el usuario del servidor web de tu
hosting.
Paso 4: ¿Está el proveedor de imagen configurado correctamente?
Si ninguno de los chequeos de entorno arriba marcó un problema, el problema puede ser del lado del proveedor.
- Abre Structura → Ajustes → Motor de IA.
- Confirma que tu proveedor de imagen está conectado (visto verde).
- Si estás en el plan Free o BYOK (trae tu propia clave), confirma que el proveedor que seleccionaste es capaz de imagen. Claude produce solo texto — si seleccionaste Claude para imágenes, Structura saltará la generación de imagen silenciosamente en planes BYOK (en planes gestionados — Cloud y Cloud Pro — sustituimos un proveedor capaz de imagen automáticamente).
Mira Ajustes de IA para una visita completa.
Paso 5: ¿Sigues atascado?
Abre la ejecución más reciente de la campaña desde el panel y mira el paso Visuals en el detalle de la ejecución. El mensaje de error del paso normalmente nombra el fallo exacto — cópialo a un ticket de soporte junto con:
- Tu nivel de plan
- Tu proveedor de imagen configurado
- El nombre de la campaña
- El ID de la ejecución de la campaña (visible en la URL del detalle de la ejecución)
- Una captura de Tools → Site Health