La carpeta /wp-content/uploads/ es una de las más vulnerables de cualquier instalación de WordPress. Todo lo que subes desde el editor, los plugins o incluso algunos formularios personalizados acaba ahí: imágenes, documentos, vídeos… y si no se controla, también scripts maliciosos.
Por defecto, WordPress no impide que se suban archivos como .php, .js o .exe, sobre todo si usas formularios personalizados o plugins mal configurados. Un atacante podría aprovechar esa puerta abierta para ejecutar código desde esa carpeta, comprometiendo todo tu sitio.
¿Qué puede pasar si no la proteges?
- Un usuario malicioso podría subir un archivo
.phpy ejecutarlo accediendo por URL. - Pueden esconder código malicioso dentro de un
.jpgfalso (muy común en ataques automatizados). - Si usas plugins para que los usuarios suban archivos (por ejemplo, en anuncios clasificados), estás aún más expuesto.
¿Qué solución existe sin plugins?
Con una simple configuración en el archivo .htaccess que vive dentro de la carpeta uploads, puedes limitar el tipo de archivos que se pueden mostrar desde ahí. Por ejemplo, permitir solo:
.jpg.jpeg.png.gif.webp
Y bloquear cualquier intento de ejecutar código desde esa ruta. Esto no impide que se suban archivos, pero bloquea su ejecución, que es lo más importante.
Ventajas de esta protección
- Evita la ejecución de código malicioso que comprometa el servidor.
- Reduce el riesgo de ser penalizado por Google si tu web es usada para distribuir malware.
- Te protege aunque otros plugins no hagan bien su trabajo.
- Es invisible para los usuarios y no rompe nada visualmente.
¿Y si necesitas subir PDFs u otros tipos de archivo?
Puedes adaptar la configuración para permitir también .pdf, .zip, o lo que necesites, siempre que no impliquen ejecución directa en el servidor. La clave es permitir solo extensiones que no puedan ejecutar código.
Conclusión
La carpeta /uploads/ es uno de los puntos más olvidados en la seguridad de WordPress. Una configuración correcta del .htaccess dentro de esa carpeta puede marcar la diferencia entre una web segura y una expuesta a cualquier bot automatizado.
Aunque parezca algo técnico, es una de las medidas más efectivas que puedes aplicar para blindar tu instalación con un esfuerzo mínimo.

El siguiente fragmento de código debe colocarse dentro de un archivo llamado .htaccess ubicado en la carpeta uploads, que se encuentra dentro de wp-content en tu instalación de WordPress. Si esta carpeta no tiene ya un archivo .htaccess, puedes crearlo fácilmente desde el Administrador de Archivos de tu hosting, accediendo al panel de control (como cPanel), navegando hasta public_html/wp-content/uploads/, y usando la opción +File o Crear archivo. Asegúrate de que el nombre del archivo sea exactamente .htaccess (con punto delante y sin extensión) y luego edítalo para pegar el código.

<FilesMatch "\.(php|php5|php7|phtml|pl|py|jsp|asp|aspx|cgi|sh|exe|js)$">
Order Deny,Allow
Deny from all
</FilesMatch>
# Opcional: solo permitir acceso a imágenes y PDFs
<FilesMatch "\.(jpg|jpeg|png|gif|webp|svg|pdf)$">
Order Allow,Deny
Allow from all
</FilesMatch>Lenguaje del código: PHP (php)




Deja tus dudas en los comentarios.