Encontrarse con un WordPress hackeado es una de las experiencias más estresantes para cualquier dueño de sitio. Anuncios fraudulentos, redirecciones a casinos, robo de datos de clientes, advertencias rojas de Google, IPs bloqueadas: el daño puede crecer hora a hora si no actúas rápido.
Esta guía te lleva paso a paso por el proceso completo: detectar la infección, contener el daño, limpiar el sitio, restaurar la operación y prevenir que vuelva a pasar.
Señales de que tu WordPress fue hackeado
Algunas son evidentes, otras pasan desapercibidas semanas:
Señales obvias
- Tu sitio redirige a otro dominio (casino, farmacia, porno).
- Aparecen banners o popups que tú no instalaste.
- El contenido de páginas fue modificado (textos extraños en otro idioma, enlaces salientes raros).
- Google muestra “Este sitio puede dañar tu equipo” en los resultados.
- Tu hosting te avisó por correo y/o suspendió la cuenta.
Señales sutiles (más graves a largo plazo)
- Páginas inexistentes en
/wp-content/uploads/con nombres extraños. - Usuarios admin nuevos que tú no creaste.
- Archivos
.phpen/wp-content/uploads/(NUNCA deberían existir ahí). - Procesos PHP consumiendo CPU del servidor.
- Aparece tu sitio en blacklists (Spamhaus, McAfee).
- Tráfico repentino de bots desde IPs raras.
Primer paso: NO cierres tu sitio sin antes proteger evidencia
Si pones el sitio en “mantenimiento”, pierdes acceso a logs del momento del ataque. Antes de cerrarlo: descarga logs, snapshot de la BD, snapshot del filesystem. Estos artefactos son críticos para diagnóstico.
Paso 1: Contener el daño (primeros 15 minutos)
A. Cambia todas las contraseñas críticas
- Tu correo de admin de WordPress.
- Cuenta de hosting (cPanel/Plesk/SSH).
- Cuenta FTP/SFTP.
- Base de datos MySQL.
- Cuentas asociadas (Google Workspace, dominio registrar, Cloudflare, etc.).
Usa contraseñas únicas y de 20+ caracteres. Activa 2FA donde sea posible.
B. Pon el sitio en modo mantenimiento
Crea un archivo .maintenance en la raíz con:
<?php $upgrading = time(); ?>
WordPress mostrará “Programado para mantenimiento” en vez de la versión hackeada. Reduce daño a visitantes y SEO.
Alternativa más visible: usa el plugin WP Maintenance Mode.
C. Bloquea el acceso wp-admin
Edita .htaccess en /wp-admin/:
order deny,allow
deny from all
allow from TU.IP.PUBLICA.AQUI
Reemplaza con tu IP pública (búscala en https://whatismyip.com). Así solo tú puedes entrar al panel mientras limpias.
D. Si el hosting bloqueó la cuenta
Contacta soporte y pide:
- Que te dejen acceso por FTP/SSH (aunque el sitio público esté bloqueado).
- Logs de acceso del último mes.
- Snapshot completo de la BD y archivos antes de cualquier acción.
Paso 2: Backup forense del sitio infectado
Antes de tocar nada, guarda una copia exacta del estado actual. Es tu evidencia y tu seguro si limpiando rompes algo.
Backup de archivos (vía SSH o FTP)
tar -czf hackeado-$(date +%Y%m%d).tar.gz /var/www/tusitio
Backup de la base de datos
mysqldump -u USUARIO -p NOMBREBD > hackeado-bd-$(date +%Y%m%d).sql
Descárgalos a tu equipo y a un drive externo. No los borres aunque limpies el sitio.
Paso 3: Diagnosticar la infección
Herramienta 1: Wordfence (gratis)
- Instala Wordfence desde wp-admin → Plugins.
- Ve a Wordfence → Scan → Start New Scan.
- Espera 5-30 minutos según tamaño del sitio.
Wordfence identifica:
- Archivos core de WordPress modificados.
- Archivos sospechosos en /wp-content/uploads/.
- Backdoors comunes.
- Plugins/temas con vulnerabilidades conocidas.
Herramienta 2: Sucuri SiteCheck (web)
https://sitecheck.sucuri.net → ingresa tu dominio.
Te dice:
- Si tu sitio está en blacklists.
- Si hay malware visible desde fuera.
- Versión de WordPress detectada (que NO debería ser pública).
Herramienta 3: Búsqueda manual por SSH
# Busca archivos PHP en uploads (no deberían existir)
find /var/www/tusitio/wp-content/uploads -name "*.php"
# Busca backdoors comunes
grep -rl "eval(base64_decode" /var/www/tusitio
grep -rl "system(\$_GET" /var/www/tusitio
grep -rl "preg_replace.*\/e" /var/www/tusitio
# Archivos modificados en los últimos 14 días
find /var/www/tusitio -name "*.php" -mtime -14 -ls
Cualquier match es sospechoso. Si encuentras código ofuscado tipo:
<?php eval(gzinflate(base64_decode('H4sIAAAA...'))); ?>
Es malware casi seguro.
Indicador de malware: archivos PHP que terminan en números o letras random
Como wp-content/uploads/2024/03/abc123.php o wp-content/yhk6gd9.php. WordPress legítimo nunca tiene archivos PHP en estas ubicaciones.
Paso 4: Limpiar la infección
Opción A: Restaurar desde backup limpio (lo más rápido)
Si tienes un backup de antes de la infección:
- Verifica la fecha del backup limpio.
- Restaura archivos y BD desde ese backup.
- Aplica actualizaciones de WordPress, plugins y temas.
- Cambia contraseñas (otra vez).
- Salta al Paso 6.
Pero ojo: si la infección lleva más tiempo que tu backup más viejo, esta opción no sirve.
Opción B: Limpieza manual archivo por archivo
Sin backup limpio, toca limpieza profunda:
B.1. Reemplaza WordPress core
- Descarga la versión actual de WordPress desde https://wordpress.org/download/.
- Por FTP, elimina las carpetas
/wp-admin/y/wp-includes/del servidor. - Sube las nuevas desde el ZIP que descargaste.
- NO toques
/wp-content/aún (ahí están tus uploads y plugins).
B.2. Reemplaza plugins y temas
- Lista los plugins instalados (
/wp-content/plugins/). - Elimina cada plugin del servidor.
- Reinstala desde WordPress.org o del autor oficial. Nunca uses fuentes piratas (nulled themes/plugins) — son fuente común de hackeos.
- Mismo proceso para temas.
B.3. Limpia /wp-content/uploads/
# Encuentra todos los archivos PHP en uploads y revísalos uno por uno
find /var/www/tusitio/wp-content/uploads -name "*.php"
# Si confirmas que son malware, bórralos
find /var/www/tusitio/wp-content/uploads -name "*.php" -delete
B.4. Limpia la base de datos
Conéctate a phpMyAdmin o MySQL CLI.
Busca usuarios admin sospechosos:
SELECT ID, user_login, user_email, user_registered
FROM wp_users
WHERE ID IN (SELECT user_id FROM wp_usermeta WHERE meta_key = 'wp_capabilities' AND meta_value LIKE '%administrator%');
Elimina cualquier admin que no reconozcas.
Busca opciones modificadas:
SELECT * FROM wp_options
WHERE option_value LIKE '%<script%'
OR option_value LIKE '%eval(%'
OR option_value LIKE '%base64_decode%';
Limpia posts y páginas con JS inyectado:
SELECT ID, post_title FROM wp_posts
WHERE post_content LIKE '%<script src=http%'
OR post_content LIKE '%eval(base64%';
Edita esos posts y elimina el código inyectado.
B.5. Revisa archivos .htaccess
Los atacantes suelen añadir reglas al .htaccess raíz para redireccionar tráfico:
# REDIRECCIÓN MALICIOSA TÍPICA
RewriteCond %{HTTP_USER_AGENT} (google|bing|yahoo) [NC]
RewriteRule .* http://sitio-malicioso.com [R=302,L]
Restaura .htaccess a sus valores estándar de WordPress (ver guía de error 500).
B.6. Revisa wp-config.php
Verifica que no haya código extra antes de <?php o después del cierre. Cualquier código fuera del bloque legítimo es malicioso.
Cambia los AUTH_KEYs:
curl https://api.wordpress.org/secret-key/1.1/salt/
Pega los nuevos valores en wp-config.php. Esto invalida sesiones de cookies robadas.
Paso 5: Verificación post-limpieza
Escaneo final
- Wordfence: ejecuta Scan completo otra vez. No deberían quedar amenazas.
- Sucuri SiteCheck: tu sitio debería salir “Clean”.
- VirusTotal: ingresa tu dominio en https://www.virustotal.com → debería pasar todos los motores.
Pide revisión a Google
Si Google marcó tu sitio como “no seguro”:
- Entra a https://search.google.com/search-console.
- Problemas de seguridad → “Solicitar revisión”.
- Describe qué hiciste (limpieza, actualización, hardening).
- Google revisa en 24-72 horas.
Pide salida de blacklists
Si tu IP/dominio entró en blacklists:
- Spamhaus: https://www.spamhaus.org/lookup/
- Surbl: https://www.surbl.org/surbl-analysis
- McAfee SiteAdvisor: https://siteadvisor.com
Cada uno tiene formularios de delisting.
Paso 6: Hardening (que no vuelva a pasar)
Tu sitio limpio dura limpio si endureces la configuración:
Seguridad básica obligatoria
- Actualiza todo: WordPress, plugins, temas, PHP del servidor. Mensualmente.
- Activa 2FA en wp-admin (Wordfence Premium o Two Factor Authentication).
- Limita intentos de login: Wordfence Limit Login Attempts.
- Cambia la URL de login: WPS Hide Login →
/mi-acceso-secretoen vez de/wp-admin. - Backups automáticos diarios (UpdraftPlus o el del hosting).
- SSL activo (ver guía SSL Let’s Encrypt).
Seguridad avanzada
- Firewall a nivel servidor (ModSecurity, Cloudflare WAF).
- Bloquea XML-RPC si no usas Jetpack/apps móviles (en .htaccess):
<Files xmlrpc.php> Order allow,deny Deny from all </Files> - Restringir wp-config.php:
<Files wp-config.php> Order allow,deny Deny from all </Files> - Deshabilitar edición de archivos desde admin: en
wp-config.php:define('DISALLOW_FILE_EDIT', true); - Cambia el prefijo de tablas: WordPress por defecto usa
wp_. Cámbialo a algo random (ej:xy7_). Muchos exploits asumenwp_.
Plugin de seguridad recomendado
- Wordfence (gratis + Premium $99/año): el más completo. Firewall, escaneo, 2FA.
- Sucuri Security (gratis + Pro $199/año): excelente firewall externo.
- iThemes Security (gratis + Pro $80/año): hardening masivo en pocos clicks.
Combina uno solo (no varios juntos: pelean entre sí).
Por qué fuiste hackeado
Las 5 causas más comunes:
- Plugin/tema desactualizado con vulnerabilidad conocida.
- Contraseña débil de admin crackeada por brute force.
- Plugin/tema nulled (pirata) con backdoor incrustado.
- PHP/WordPress core viejo sin parchear.
- Hosting compartido vulnerado por otro sitio del mismo servidor (cross-contamination).
El #5 es especialmente común en hostings baratos. Si tu vecino del hosting compartido es vulnerado, los atacantes saltan a tu cuenta. La solución: hosting con isolation real (Cloud WordPress, VPS).
Preguntas frecuentes
¿Cuánto cuesta que una empresa especializada limpie mi WordPress?
Entre $200 y $1500 USD según complejidad. Empresas como Sucuri cobran $199/año por limpieza + monitoreo. Si haces autoservicio con esta guía, el costo es solo tu tiempo (4-12 horas según experiencia).
¿Mis clientes perdieron datos?
Depende del tipo de hack. Si los atacantes accedieron a la base de datos, sí, posiblemente robaron emails, hashes de contraseñas o (si era e-commerce) datos de pago. Aviso obligatorio: notifica a tus usuarios. En Colombia rige la Ley 1581 sobre habeas data.
¿Cuánto tarda Google en quitar la advertencia de mi sitio?
24-72 horas después de solicitar revisión en Search Console, si la limpieza es efectiva. Si Google detecta que aún hay malware, la advertencia se mantiene y debes volver a limpiar.
¿Puedo limpiar yo o necesito experto?
Si tienes conocimiento básico de FTP/SSH y SQL, sí puedes con esta guía. Si tu sitio mueve >$1000/mes o tiene info sensible de clientes, vale la pena pagar a un experto para asegurar la limpieza al 100%.
¿Sigue siendo necesario WordPress si fui hackeado?
Sí, WordPress no es inseguro per se. El 95% de los hackeos vienen de plugins/temas viejos, contraseñas débiles o hosting compartido inseguro. Mantenido bien, WordPress es seguro. La alternativa (hacer todo desde cero en otro CMS) no soluciona la causa real.
¿Cuánto debo esperar para reabrir el sitio al público?
Después de: (1) escaneo final limpio en Wordfence y Sucuri, (2) cambio de TODAS las contraseñas, (3) hardening básico activo. Si dudas, espera 24 horas adicionales para verificar que nada vuelve. Es preferible un día más cerrado que reabrir con la infección viva.
¿Qué pasa si me vuelven a hackear?
Significa que el vector de entrada original sigue abierto. Causas frecuentes: plugin nulled sigue instalado, backdoor que no detectaste, credenciales que no cambiaste, o vulnerabilidad del hosting. Considera migrar a hosting administrado (Cloud WordPress) con isolation real y monitoreo activo.
Conclusión
Recuperar un WordPress hackeado no es divertido, pero es completamente posible siguiendo el orden correcto: contener → backup forense → diagnosticar → limpiar → verificar → endurecer. El tiempo total: 4 a 12 horas para un sitio normal.
Lo más importante es prevenir que vuelva: hosting decente con isolation, actualizaciones automáticas, 2FA en admin, backups diarios y un firewall serio. Sale más barato que limpiar dos veces.
En Moshipp, nuestros planes Cloud WordPress incluyen Wordfence, monitoreo de malware, backups diarios y soporte técnico en español. Si tu sitio actual fue hackeado y prefieres migrar a un entorno blindado, hacemos la migración gratis.
Sigue aprendiendo

Cómo acelerar WordPress: guía completa 2026 (Core Web Vitals)
Tutorial para acelerar WordPress y mejorar Core Web Vitals. Caché, imágenes, CDN, base de datos y hosting. 12 técnicas probadas paso a paso.
Leer más
Cómo migrar WordPress a otro hosting: guía 2026
Aprende a migrar tu sitio WordPress a otro hosting paso a paso sin perder datos ni SEO. Métodos con plugin, manual y migración asistida.
Leer más
Cómo crear un blog con WordPress paso a paso (desde cero)
Guía completa para crear tu primer blog en WordPress: dominio, hosting, instalación, tema, plugins y primer post. Sin experiencia técnica.
Leer más
