
🔧 Cómo solucionar el error de carga de imágenes en WordPress
Un error de carga de imágenes en WordPress aparece en el peor momento. Usted está preparando una publicación, selecciona una imagen, hace clic en «Subir» y WordPress muestra silenciosamente «HTTP Error» o se niega a guardar el archivo sin explicación. Si ocurriera solo una vez no habría problema, pero para algunos administradores las cargas fallan sistemáticamente cada pocos días.
La causa rara vez es obvia. El culpable puede ser cualquiera: permisos que se rompieron tras una migración, un conflicto con un plugin de seguridad, un límite de memoria restringido en un hosting compartido barato o ModSecurity tratando su imagen como un ataque. La buena noticia: casi todas las causas pueden solucionarse sin un desarrollador y sin llamar al soporte del hosting.
En esta guía encontrará la cadena completa de diagnóstico y reparación para errores de carga de imágenes. Desde lo simple (cambiar de navegador, renombrar archivos) hasta el nivel de servidor (editar php.ini, .htaccess y wp-config.php). Tómela y resuélvalo; la mayoría de los casos se arreglan en 5 a 10 minutos.
💡 Resumen rápido:
- Revise los permisos de la carpeta
/wp-content/uploads/mediante FTP o el Administrador de archivos de cPanel: 744 para carpetas y 644 para archivos. - Para errores HTTP, siga la cadena: limpiar caché del navegador → renombrar el archivo → comprimirlo → desactivar plugins → aumentar la memoria de PHP → cambiar la versión de PHP.
- Para errores de «Falta una carpeta temporal» y problemas de límite de tamaño de archivo, un par de líneas en
wp-config.phpy.htaccessayudarán. - Los usuarios de GoDaddy y DreamHost encontrarán soluciones específicas al final.
Por qué ocurren los errores de carga de imágenes en primer lugar
WordPress almacena todos los archivos multimedia en /wp-content/uploads/. Para escribir una imagen allí, el proceso de PHP necesita permisos de escritura. Si los permisos están rotos (esto sucede durante actualizaciones del servidor, migraciones, cambios de hosting o incluso tras parches automáticos de PHP), las cargas fallan silenciosamente.

El segundo grupo de causas involucra la configuración de PHP: el límite de memoria, los parámetros upload_max_filesize y post_max_size, y la ruta de la carpeta temporal. Si alguno de estos parámetros se queda corto, WordPress no aceptará el archivo. En planes compartidos baratos, los proveedores a menudo recortan los búferes de forma más agresiva de lo que muestra phpinfo(), y usted ve «HTTP Error» sin ninguna pista de la causa real.

Finalmente, existen conflictos. Un plugin de seguridad intercepta la solicitud POST, un tema anula el manejo de medios o ModSecurity a nivel de servidor web considera la carga una amenaza. Los diagnósticos se tratan en la siguiente sección.
1. Revise los permisos de la carpeta de cargas
La causa más común son los permisos incorrectos en /wp-content/uploads/. WordPress no puede escribir en la carpeta y rechaza silenciosamente la carga. La solución: establecer el CHMOD correcto mediante FTP.
Conéctese a su sitio mediante un cliente FTP como FileZilla. Navegue hasta /wp-content/, encuentre la carpeta uploads, haga clic derecho y seleccione «Permisos de archivo»:

En el cuadro de diálogo que se abre, ingrese 744 en el campo de valor numérico. Marque «Recursión en subdirectorios» y «Aplicar solo a directorios». Haga clic en Aceptar.

Si 744 no resuelve el problema, pruebe con 755: el propietario obtiene lectura, escritura y ejecución, mientras que el grupo y otros obtienen lectura y ejecución.
Ahora establezca los permisos para los archivos dentro de uploads. Haga clic derecho nuevamente en la carpeta uploads → «Permisos de archivo». Ingrese 644, marque «Recursión en subdirectorios» y «Aplicar solo a archivos». Haga clic en Aceptar.

Intente cargar una imagen de nuevo. En la mayoría de los casos, el error desaparece inmediatamente después de este procedimiento. Si no ayuda, continúe con el siguiente paso.
2. Siga la cadena de solución del error HTTP
Los errores HTTP durante la carga son los más frustrantes porque WordPress no deja rastros en los registros. Solo «HTTP Error» y nada más. Usted debe trabajar a través de posibles soluciones por eliminación. A continuación, una cadena de lo simple a lo complejo: siga los pasos en orden hasta que las cargas comiencen a funcionar.
2.1. Actualice la página o cambie de navegador
Suena obvio, pero funciona más a menudo de lo que se piensa. A veces la sesión de WordPress expira y, tras volver a iniciar sesión, el error desaparece. Actualice la página con un reinicio forzado de caché: Ctrl+F5 en Windows, Cmd+Shift+R en Mac. Si eso no ayuda, abra el sitio en un navegador diferente. Si hay un error en Chrome pero no en Firefox, el problema radica en extensiones o caché específicos de ese navegador.
2.2. Limpie la caché del navegador
La caché almacena scripts y estilos obsoletos que pueden entrar en conflicto con el cargador de medios de WordPress. Atajos de teclado para un reinicio completo:

- Windows (Chrome, Firefox, Edge):
Ctrl + Shift + Delete→ «Borrar datos de navegación» - Mac (Chrome, Firefox):
Cmd + Shift + Delete - Safari:
Shift + click the reload button
Alternativamente, vaya a la configuración del navegador y elimine la caché manualmente. La ruta varía según el navegador, pero siempre se encuentra en la sección «Historial» o «Privacidad».
2.3. Renombre el archivo de imagen
WordPress añade automáticamente números a los nombres duplicados (image-1.png, image-2.png), pero a veces este mecanismo falla. Renombre el archivo antes de cargarlo: evite caracteres especiales, espacios y caracteres no ASCII en el nombre. Un buen formato: product-banner-01.jpg.
2.4. Comprima la imagen
Es posible que el tamaño del archivo esté alcanzando el límite del servidor. Incluso si upload_max_filesize está configurado con un valor generoso, algunos servidores cortan los búferes en valores más bajos. Comprima la imagen: para JPEG, use Imagify o TinyPNG; para PNG, use Squoosh.

Revise también el formato: si está subiendo .png, intente convertir a .jpg, y viceversa. A veces el problema está vinculado a un formato específico y a la versión de la biblioteca PHP (GD o Imagick).
2.5. Desactive plugins y cambie de tema
Los plugins de seguridad (Wordfence, Solid Security, Sucuri) y los de optimización de imágenes pueden interceptar las subidas y causar conflictos. Desactive temporalmente TODOS los plugins y cambie a un tema predeterminado (Twenty Twenty-Five o cualquier otro tema por defecto). Pruebe la subida. Si funciona, active los plugins uno por uno para encontrar al culpable.
2.6. Aumente el límite de memoria de PHP
El proceso de procesamiento de imágenes de PHP consume memoria. Una captura de pantalla Full HD en formato JPEG podría no tener suficiente incluso con 64 MB. Añada lo siguiente a wp-config.php antes de la línea /* That's all, stop editing! */:
1 define( 'WP_MEMORY_LIMIT', '256M' );
2.7. Actualice la versión de PHP
A partir de 2026, WordPress recomienda PHP 8.3 como versión mínima, siendo PHP 8.4 u 8.5 las óptimas. En las versiones 7.4 e inferiores, la funcionalidad del cargador de medios no está garantizada. La ruta en cPanel: sección «Software» → «Select PHP Version» → cambie a 8.4 u 8.5.

2.8. Desactive ModSecurity
ModSecurity es un cortafuegos a nivel de servidor web que a veces trata las subidas de imágenes como ataques. Añada lo siguiente a .htaccess (en la raíz del sitio):
1 <IfModule mod_security.c> 2 SecFilterEngine Off 3 SecFilterScanPOST Off 4 </IfModule>
Si esto no ayuda, elimine estas líneas: el problema no es ModSecurity.
2.9. Cambie WordPress de Imagick a la biblioteca GD
WordPress usa Imagick (si el módulo está instalado en el servidor) o la biblioteca GD para el procesamiento de imágenes. Imagick ofrece mayor calidad pero consume más memoria. Si WP_MEMORY_LIMIT no ayudó, fuerce a WordPress a usar GD. Añada lo siguiente a functions.php de su tema activo:
1 function wpb_image_editor_default_to_gd( $editors ) { 2 $gd_editor = 'WP_Image_Editor_GD'; 3 $editors = array_diff( $editors, array( $gd_editor ) ); 4 array_unshift( $editors, $gd_editor ); 5 return $editors; 6 } 7 add_filter( 'wp_image_editors', 'wpb_image_editor_default_to_gd' );
Después de esto, WordPress coloca GD Library primero en la cadena y usa Imagick como alternativa de respaldo.
2.10. Instalar Add From Server como método de carga alternativo
Si el error HTTP persiste y necesita subir un archivo con urgencia, súbalo al servidor por FTP a cualquier carpeta e impórtelo a la biblioteca de medios usando Add From Server. El plugin toma los archivos directamente del sistema de archivos, evitando el cargador estándar de WordPress. Funciona con archivos de cualquier tamaño, limitado únicamente por el espacio en disco de su plan.
2.11. Contactar a su proveedor de hosting
Si ya ha intentado todo, escriba al soporte de hosting. Describa el error, adjunte una captura de pantalla y especifique sus versiones de PHP y WordPress. A menudo el problema se resuelve del lado del servidor: el soporte puede editar php.ini, eliminar un bloqueo de ModSecurity o reiniciar PHP-FPM.
3. Solucione el error «Falta una carpeta temporal»
El error «Falta una carpeta temporal» bloquea no solo la subida de imágenes, sino también la instalación de plugins y las actualizaciones de WordPress. La causa: PHP no puede encontrar o escribir en el directorio temporal.
La solución es indicarle explícitamente a WordPress la ruta de la carpeta temporal. Abra wp-config.php y añada antes de la línea final:
1 define( 'WP_TEMP_DIR', dirname( __FILE__ ) . '/wp-content/temp/' );
Guarde el archivo. Luego, mediante FTP o el Administrador de archivos de cPanel, cree una carpeta temp dentro de /wp-content/ (si no existe). Establezca los permisos de la carpeta en 755. Vuelva al panel de administración e intente subir de nuevo.
4. Aumente el límite de tamaño de archivo para subida
El error «El archivo subido excede la directiva upload_max_filesize» significa que el archivo es demasiado grande para la configuración actual de PHP. Tres formas de solucionarlo, de la más simple a nivel de servidor.
4.1. Vía.htaccess
Añada lo siguiente a .htaccess (raíz del sitio):
1 php_value upload_max_filesize 256M
Si el error se repite, añada las siguientes líneas:
1 php_value post_max_size 256M 2 php_value memory_limit 512M 3 php_value max_input_time 180 4 php_value max_execution_time 180
4.2. Vía wp-config.php
Añada lo siguiente a wp-config.php antes de la línea final:
1 @ini_set( 'upload_max_filesize', '256M' ); 2 @ini_set( 'post_max_size', '256M' );
4.3. Vía php.ini
Localice php.ini en el servidor. La ruta depende del hosting; típicamente /etc/php/8.4/cli/php.ini o configurable en cPanel («Seleccionar versión de PHP» → «Cambiar a opciones de PHP»). Ábralo, busque la directiva upload_max_filesize y cambie el valor:
1 upload_max_filesize = 256M 2 post_max_size = 256M
Guarde y reinicie PHP mediante cPanel o con un comando SSH. Si no tiene acceso a php.ini, contacte con el soporte de su hosting.
5. Soluciones específicas para GoDaddy y DreamHost
GoDaddy
En el hosting compartido de GoDaddy, los errores HTTP suelen estar relacionados con el orden de las librerías de procesamiento de imágenes. Añada lo siguiente a functions.php de su tema activo:
1 add_filter( 'wp_image_editors', 'change_graphic_lib' ); 2 function change_graphic_lib( $array ) { 3 return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' ); 4 }
Este código fuerza que la librería GD sea la primera, lo que resuelve la mayoría de los casos de error HTTP específicamente en GoDaddy.
DreamHost
En DreamHost, los errores suelen estar relacionados con conflictos de plugins o temas. Primero, desactive todos los plugins y cambie a un tema predeterminado. Elimine los temas y plugins no utilizados, ya que pueden dejar ganchos residuales que interfieran con el cargador. Si eso no ayuda, contacte con el soporte de DreamHost: ellos tienen configuraciones de servidor personalizadas y su equipo de soporte conoce las particularidades.
Qué hacer si el error sigue apareciendo
Si ha seguido toda la cadena y las subidas siguen fallando una vez por semana, el problema es más profundo que los permisos o los límites de PHP. Lo más probable es que el culpable sea un hosting con restricciones de servidor estrictas (plan compartido barato) o un plugin mal escrito que sobrescribe la configuración del cargador de medios con cada actualización.
Primero, descarte los plugins: desactívelos todos durante 24 horas y monitorice el comportamiento del cargador. Si no hay fallos en 24 horas, active los plugins uno a uno con un intervalo de un día hasta encontrar al culpable.
Si no lo encuentra, cambie de hosting. En serio. Los planes compartidos baratos ahorran en memoria PHP y recortan los búferes de forma tan agresiva que ninguna edición de .htaccess servirá. Para un manejo estable de archivos multimedia en WordPress, necesita un VPS o un hosting gestionado de calidad con memory_limit de al menos 256M y max_execution_time de al menos 120 segundos.
Una solución alternativa: suba las imágenes por FTP e impórtelas mediante el plugin Add From Server. Es más lento que el cargador nativo, pero funciona en cualquier hosting y no depende de los límites de PHP.
⁉️🤔 Preguntas frecuentes
¿Por qué ocurren errores de subida sin motivo aparente?
Los proveedores de hosting actualizan regularmente el software del servidor: parches menores de PHP, actualizaciones de Apache, cambios en la configuración de ModSecurity. Las rutas, versiones y configuraciones cambian, y los permisos en
/wp-content/uploads/se rompen. Usted no tocó nada, pero las subidas dejaron de funcionar. La solución: restablezca los permisos a 744/755 para la carpeta y 644 para los archivos dentro de/wp-content/uploads/, y verifique los límites de PHP.
¿Qué debo hacer si nada de este artículo ayudó?
Active
WP_DEBUGenwp-config.php:define( 'WP_DEBUG', true );y repita la subida. WordPress escribirá el error específico en/wp-content/debug.log. Verá el error fatal o advertencia exacta de PHP: lo más frecuente es agotamiento de memoria (allowed memory size exhausted), carpeta temporal inaccesible (failed to open dir) o un conflicto específico de plugin. Con esta información, el soporte de hosting puede resolver el problema mucho más rápido.
¿Cómo subo un archivo muy grande si mi hosting no me permite aumentar el límite?
Use FTP + el plugin Add From Server. Suba el archivo al servidor manualmente por FTP a
/wp-content/uploads/import/(o cualquier otra carpeta), luego impórtelo a la biblioteca de medios a través del plugin. Add From Server toma los archivos directamente del sistema de archivos del servidor, evitando el cargador HTTP y todos sus límites. Funciona para archivos de cualquier tamaño; la única limitación es el espacio en disco de su plan. Para subidas por lotes, cree una carpeta/wp-content/uploads/bulk-import/y suba todo allí por FTP de una vez.
¿Se pueden prevenir permanentemente los errores de subida de imágenes?
No se pueden eliminar por completo, pero el riesgo puede minimizarse. Mantenga PHP en la versión actual (8.4 o 8.5 en 2026), con
memory_limitno inferior a 256M. No instale plugins de seguridad con configuraciones predeterminadas agresivas. Verifique los permisos de/wp-content/uploads/cada seis meses. Después de cada actualización del núcleo de WordPress o de PHP, haga una subida de prueba de una imagen. Si tiene configuradas copias de seguridad automáticas, la reversión toma 5 minutos. Y tenga a mano el acceso FTP: sin él, la mitad de las soluciones de este artículo no están disponibles.
¿Se requiere FTP para corregir los permisos?
No. La alternativa es el Administrador de archivos en cPanel (o el equivalente de su hosting). Vaya a Administrador de archivos →
/wp-content/→ clic derecho en la carpetauploads→ Cambiar permisos → establezca 744. La lógica es la misma; la interfaz es ligeramente diferente. El Administrador de archivos de cPanel funciona con permisos exactamente como un cliente FTP: todo se hace en el navegador sin necesidad de software adicional. Para los usuarios que encuentran complicados los clientes FTP, esta es la forma más accesible de corregir permisos en dos minutos.
Error de subida solucionado, ¿y ahora qué?
Ha seguido la cadena y las subidas funcionan. Ahora es momento de la prevención, para no volver a este problema en un mes. Tres cosas que vale la pena hacer de inmediato:
- Registre su configuración funcional. Esos permisos (744/755), límites de PHP (256M), versión de PHP (8.4+): guárdelos en sus notas. Durante la próxima migración o actualización del servidor, los restaurará en un minuto en lugar de una hora de prueba y error.
- Configure la monitorización del espacio en disco. La mitad de los errores de subida «repentinos» son causados por quedarse sin espacio en disco. WordPress se niega a escribir silenciosamente y usted se queda adivinando. Plugins gratuitos como WP Health verifican el espacio disponible y envían una notificación a su correo electrónico antes de que el disco se llene.
- Revise los registros una vez al mes.
/wp-content/debug.log(si habilitóWP_DEBUG) mostrará un problema emergente mucho antes de que se vuelva crítico. Unos minutos al mes ahorran horas de reparaciones no planificadas.
¿Aún tiene preguntas o encontró un caso inusual? Describa la situación en los comentarios y lo resolveremos.



