¿Sitio WordPress comprometido? Aquí tienes el plan seguro de recuperación en 3 fases (Contener → Limpiar → Fortalecer)

wordpress site compromised

Si estás leyendo esto porque tu situación de sitio WordPress comprometido está empezando a sentirse real—redirecciones extrañas, páginas de spam en Google, un nuevo administrador que no creaste o una advertencia del navegador que destruye la confianza en segundos—respira. La mayoría de los incidentes se pueden recuperar, pero el orden en que haces las cosas importa más que cualquier “plugin mágico” de seguridad.

Aquí está la trampa: cuando ocurre un evento de sitio WordPress comprometido, el sitio puede verse totalmente normal para ti mientras, en silencio, perjudica a los visitantes y al posicionamiento en segundo plano. Los atacantes suelen añadir puertas traseras ocultas, inyectar contenido basura en la base de datos o configurar redirecciones condicionales que solo se activan en móviles, en ciertos países o para visitas por primera vez. Si saltas directo a borrar archivos al azar o a restaurar un respaldo viejo sin contención, puedes borrar pistas sin querer y dejar el punto de entrada completamente abierto.

Esta guía usa una secuencia simple de respuesta a incidentes que funciona tanto si eres técnico como si no:

  • Contener: detener el daño y bloquear el acceso para que el atacante no pueda seguir cambiando cosas.
  • Limpiar: eliminar el malware de forma segura (núcleo, plugins/temas, base de datos y reglas a nivel servidor) sin romper el sitio.
  • Fortalecer: cerrar la puerta de forma permanente con actualizaciones, mínimo privilegio, capas de seguridad, copias de seguridad y monitoreo.

Si los síntomas de sitio WordPress comprometido involucran comercio electrónico, datos de clientes, páginas de pago o reinfecciones repetidas, trátalo como una emergencia de negocio. Incluso en casos “leves”, la velocidad ayuda: cuanto más tiempo siga activo el compromiso, más spam se indexa, más visitantes son redirigidos y más difícil se vuelve la limpieza.

El objetivo no es solo “recuperar la página de inicio”. Es eliminar el acceso del atacante, reparar el daño que causó y demostrarte a ti mismo (y a Google) que el sitio está limpio otra vez.

Empecemos con las comprobaciones rápidas que confirman qué está pasando—sin empeorar nada.

Sitio WordPress comprometido: señales, síntomas y verificación rápida

Cuando ocurre un incidente de sitio WordPress comprometido, rara vez se anuncia con una caída total. En su lugar, aparece como un comportamiento “raro” que es fácil de ignorar—hasta que bajan los rankings o los clientes empiezan a reportar advertencias. Antes de cambiar algo importante, usa estas comprobaciones rápidas para confirmar qué está pasando (y evita borrar pistas).

Las señales más comunes

  • Redirecciones extrañas (a menudo solo en móvil, o solo para visitantes por primera vez)
  • Páginas de spam indexadas en Google (casino/farmacia/préstamos que nunca creaste)
  • Un nuevo usuario administrador o contraseñas cambiadas que tú no iniciaste
  • Advertencias del navegador/seguridad (“Sitio engañoso”, “Este sitio puede haber sido hackeado”, etc.)
  • Caída repentina de SEO, nuevas palabras clave que no apuntas, o un aumento de páginas que no publicaste
  • Problemas de rendimiento inusuales (picos de CPU, lentitud aleatoria o alertas del hosting)

Un síntoma por sí solo no garantiza una situación de sitio WordPress comprometido, pero los patrones sí—especialmente redirecciones + spam indexado + usuarios desconocidos.

Comprobaciones rápidas que puedes hacer de forma segura

  • Comprobación de Google “site:”: Busca site:tudominio.com y revisa páginas/títulos que no reconozcas.
  • Usuarios de WordPress: Ve a Usuarios y ordena por rol. Busca administradores desconocidos y correos sospechosos.
  • Plugins/Temas: Busca cualquier cosa que no hayas instalado, cualquier cosa “nulled”, o algo desactivado que no reconozcas.
  • Archivos modificados recientemente: En tu administrador de archivos/FTP, revisa fechas de modificación dentro de /wp-content/ (especialmente uploads, mu-plugins y archivos .php raros).
  • Tareas programadas (wp-cron): Si puedes ver eventos de cron, busca tareas recurrentes que no reconozcas.

Importante: todavía no empieces a borrar archivos. Si esto es realmente sitio WordPress comprometido, primero quieres confirmar el alcance para no perder el punto de entrada ni dejar una puerta trasera activa.

Confirma con registros + escáneres (y evita falsos positivos)

Para validar lo que estás viendo, usa una combinación de registros y escaneos confiables. Los registros de acceso del hosting pueden revelar intentos repetidos de inicio de sesión, solicitudes a scripts sospechosos o picos de tráfico hacia URLs aleatorias. Un escaneo de malware a nivel servidor o un escaneo con un plugin de seguridad confiable puede ayudar a detectar archivos del núcleo modificados y firmas conocidas—pero trata los resultados como señales, no como verdad absoluta. Algunos escáneres sobre-reportan archivos de caché inofensivos o scripts minificados.

Si varias comprobaciones apuntan en la misma dirección, asume sitio WordPress comprometido y pasa a la contención. El objetivo es detener el daño activo primero—y luego limpiar de forma segura para evitar reinfecciones.

Si me dices “bloques de WP” o “texto plano” en adelante, me quedo con ese formato.

Contén el ataque primero (haz esto en los primeros 30 minutos)

Una vez que estés seguro de que esto es una situación de sitio WordPress comprometido, tu primer trabajo es la contención—no la limpieza. La contención se trata de detener el daño en curso (redirecciones, inyecciones de spam, nuevas puertas traseras) y evitar que el atacante siga haciendo cambios mientras trabajas. Piensa: “congela la escena”, y luego podrás limpiar con seguridad.

Detén el sangrado (acciones rápidas y de bajo riesgo)

  • Pon el sitio en modo mantenimiento (o restringe el acceso temporalmente) para que los visitantes no sean redirigidos ni expuestos a contenido malicioso.
  • Pausa la captura de leads si hace falta: si están abusando de los formularios (spam o envíos sospechosos), desactívalos por un rato.
  • Bloquea tráfico obviamente malo:
    • Si tienes un firewall/CDN (Cloudflare, etc.), activa temporalmente “I’m Under Attack” (modo “Estoy bajo ataque”) o una sensibilidad alta.
    • Aplica limitación de tasa (rate limiting) a endpoints de inicio de sesión y a XML-RPC si no lo usas.
  • Desactiva la ejecución pública de archivos en uploads (si sabes cómo / con ayuda del hosting): es un lugar común donde los atacantes esconden puertas traseras PHP.

Objetivo: reducir el daño sin tocar archivos al azar todavía.

Asegura el acceso (corta el control del atacante)

Si esto es sitio WordPress comprometido, asume que las credenciales pueden estar expuestas.

  • Restablece todas las contraseñas de WordPress (primero administradores) y fuerza el cambio para cualquier usuario con roles elevados.
  • Elimina usuarios administradores desconocidos de inmediato (o como mínimo bájalos a Suscriptor mientras investigas).
  • Rota credenciales del hosting:
    • Acceso al panel de control del hosting
    • Usuarios SFTP/FTP
    • Contraseña del usuario de base de datos
  • Regenera las claves de seguridad/salts de WordPress (cierra sesiones e invalida cookies robadas).
  • Activa 2FA para administradores si está disponible (aunque sea temporalmente, es mejor que nada).

Tip: si varias personas tienen acceso, haz una auditoría rápida: “¿Quién debería tener admin?” A todos los demás asígnales Editor o menos.

Preserva evidencia (para arreglar la causa raíz de verdad)

Antes de limpiar, toma un respaldo instantáneo (snapshot) al que puedas volver. Esto importa porque un sitio con sitio WordPress comprometido suele tener un punto de entrada oculto que puedes pasar por alto si solo “limpias lo que ves”.

  • Crea un respaldo/snapshot completo de archivos + base de datos tal cual (guárdalo fuera del servidor).
  • Exporta registros clave si están disponibles: registros de acceso, registros de error, registros del plugin de seguridad, registros del WAF.
  • Anota fechas y horas: cuándo viste los síntomas por primera vez, cuándo ocurren las redirecciones, cuándo aparecieron usuarios nuevos.

Esto no significa que estés “guardando malware”—es tu “foto de la escena” por si hay reinfección y necesitas rastrear cómo entró.

Control de daños del hosting + correo (a menudo se pasa por alto)

Un compromiso puede ir más allá del sitio web.

  • Revisa abuso de correo saliente: picos repentinos de envío, problemas de entregabilidad o inclusión en listas negras.
  • Busca subdominios inesperados o archivos no autorizados creados fuera de las rutas de WordPress.
  • Contacta a tu hosting si sospechas compromiso a nivel de cuenta (especialmente si varios sitios del mismo hosting se comportan raro).

Una vez completada la contención, ya estás listo para limpiar de forma repetible—sin romper el sitio ni dejar puertas traseras.

Limpieza de sitio WordPress comprometido: un flujo repetible para eliminar malware

sitio WordPress comprometido

Después de la contención, el objetivo es simple: eliminar el acceso malicioso sin romper tu sitio—y sin dejar “ese archivito” que hace que el atacante regrese. La limpieza de sitio WordPress comprometido funciona mejor cuando sigues un orden repetible: núcleo → plugins/temas → base de datos → reglas a nivel servidor → verificación final.

Restaurar vs. limpiar manualmente — cómo elegir con seguridad

Si tienes un respaldo reciente y verificado, restaurar puede ser más rápido—pero solo si estás seguro de que el respaldo es anterior al compromiso.

  • Restaurar desde un respaldo (mejor cuando):
    • Tienes un respaldo de antes de la primera actividad sospechosa.
    • Puedes verificar que el respaldo no contiene páginas de spam, usuarios desconocidos o redirecciones inyectadas.
    • Aun así vas a fortalecer después de restaurar (si no, la reinfección es común).
  • Limpieza manual (mejor cuando):
    • No estás seguro de cuándo empezó el compromiso.
    • El sitio estuvo comprometido en silencio por semanas/meses (spam indexado en SEO, redirecciones intermitentes).
    • Sospechas que el punto de entrada sigue abierto (plugin desactualizado, credenciales del hosting robadas).

En muchos casos de sitio WordPress comprometido, el enfoque más seguro es: restaurar un respaldo verificado y aun así hacer las comprobaciones manuales de abajo para que el atacante no regrese.

Reemplaza el núcleo de WordPress de forma segura (integridad primero)

A veces los atacantes modifican archivos del núcleo, pero no necesitas “cazarlos” uno por uno.

  • Reinstala el núcleo de WordPress desde una fuente confiable (misma versión y luego actualiza a la última estable).
  • No sobrescribas wp-config.php a menos que sepas exactamente lo que estás haciendo.
  • Verifica la integridad del núcleo (compara con archivos limpios o usa un escáner confiable).
  • Busca señales claras de alerta:
    • Archivos PHP aleatorios en la raíz que tú no pusiste
    • Archivos index.php, wp-settings.php o wp-includes modificados
    • Código raro que parece “codificado” (cadenas largas, patrones base64, gzinflate, eval)

Reemplazar el núcleo es una victoria rápida en un incidente de sitio WordPress comprometido porque reduce una enorme superficie de ataque de una sola vez.

Limpia temas + plugins (el punto de entrada más común)

Aquí es donde empiezan la mayoría de los compromisos: software desactualizado, abandonado o “nulled”.

  • Elimina cualquier plugin/tema que no reconozcas (no solo lo desactives).
  • Elimina plugins/temas nulled/piratas de inmediato (son una causa principal de reinfección).
  • Reinstala copias limpias de tu tema activo y tus plugins desde fuentes oficiales.
  • Actualiza todo una vez confirmes estabilidad.
  • Reduce el exceso: si tienes 30 plugins pero solo necesitas 12, reduce el impacto.

Consejo pro: En una limpieza de sitio WordPress comprometido, asume que al menos un plugin/tema es (a) el punto de entrada o (b) el que lleva la puerta trasera. Reinstalar desde fuentes confiables gana a adivinar.

Checklist de limpieza de base de datos (aquí vive el spam SEO oculto)

Una base de datos comprometida puede seguir reinfectando un sistema de archivos “limpio”.

Revisa lo siguiente:

  • Entradas/páginas de spam (borradores, privadas o slugs raros)
  • Contenido inyectado en entradas legítimas (enlaces ocultos, palabras clave camufladas)
  • Usuarios administradores desconocidos (y correos sospechosos)
  • Opciones sospechosas (especialmente redirecciones, scripts inyectados o URLs raras del sitio)
  • Inyecciones en widgets/código (lugar clásico para scripts ocultos)

Si el sitio está en sitio WordPress comprometido y estás viendo spam indexado, limpiar la base de datos suele ser la diferencia entre “parece arreglado” y “está realmente arreglado”.

Elementos a nivel servidor que causan reinfección (los más engañosos)

Incluso después de limpiar WordPress, esto puede traer al atacante de vuelta:

  • Redirecciones en .htaccess (reglas de reescritura inesperadas, redirecciones móviles, redirecciones por geolocalización)
  • Puertas traseras en wp-content/uploads (archivos .php aleatorios donde solo deberían existir imágenes)
  • Plugins MU (/wp-content/mu-plugins/) ejecutando código oculto en cada solicitud
  • Tareas programadas / trabajos cron que vuelven a descargar malware
  • Archivos desconocidos en /wp-content/ con nombres que imitan archivos del sistema

Si te saltas este paso, un incidente de sitio WordPress comprometido suele “volver misteriosamente” una semana después.

Verificación final (prueba que está limpio)

Antes de darlo por terminado:

  • Vuelve a escanear el sitio con una herramienta confiable y confirma que no haya detecciones críticas.
  • Confirma que no existan usuarios administradores desconocidos.
  • Vuelve a probar redirecciones (móvil + escritorio, incógnito, en redes distintas si es posible).
  • Revisa de nuevo los resultados “site:” en Google por spam obvio (no desaparece al instante, pero sí deberías detener la aparición de nuevo spam).
  • Verifica que tu página de inicio y tus principales páginas de aterrizaje carguen limpias, sin scripts inyectados.

Una vez que limpiaste con éxito, el siguiente paso es fortalecer—porque la verdadera victoria no es arreglarlo una vez, es asegurarte de que un incidente de sitio WordPress comprometido no vuelva a ocurrir.

Fortalecimiento después de la limpieza (haz que la reinfección sea difícil)

Limpiar arregla los síntomas. Fortalecer arregla la causa. Si te saltas este paso, un incidente de sitio WordPress comprometido suele volver—a veces por el mismo plugin vulnerable, a veces por credenciales robadas que todavía siguen válidas en algún lugar. El objetivo ahora es reducir la superficie de ataque, añadir capas defensivas y hacer que la recuperación sea fácil si algo vuelve a pasar.

Actualizaciones + mínimo privilegio (roles, contraseñas fuertes, 2FA)

  • Actualiza el núcleo de WordPress, plugins y temas y mantén un calendario (semanal para la mayoría de sitios).
  • Elimina lo que no usas (temas/plugins inactivos siguen siendo riesgo).
  • Reduce las cuentas administradoras al mínimo:
    • Solo los dueños/desarrolladores reales deberían ser Administradores.
    • Todos los demás deben ser Editor/Autor (o roles personalizados) según lo que necesiten.
  • Exige contraseñas fuertes y cámbialas después de un incidente.
  • Activa 2FA para todos los administradores (no negociable después de un evento de sitio WordPress comprometido).
  • Asegura lo básico del inicio de sesión:
    • Limita intentos de inicio de sesión / aplica limitación de tasa
    • Cambia el nombre de usuario admin por defecto si existe
    • Desactiva XML-RPC si no lo necesitas

Solo con esto se previene un gran porcentaje de reinfecciones.

Capas de seguridad (WAF/CDN, limitación de tasa, protección de inicio de sesión)

Piénsalo como capas de armadura. Un solo plugin no debería ser tu única defensa.

  • Usa un WAF/CDN (Cloudflare o similar):
    • Bloquea IPs malas conocidas y patrones de bots
    • Añade limitación de tasa y páginas de verificación durante ataques
  • Activa limitación de tasa en endpoints sensibles:
    • /wp-login.php, /xmlrpc.php y cualquier endpoint de formularios
  • Añade monitoreo de malware + verificación de integridad de archivos:
    • Te alerta cuando los archivos cambian de forma inesperada
  • Oculta objetivos de alto valor cuando sea práctico:
    • Bloquea la ejecución de PHP en /uploads/ (ubicación común de puertas traseras)
    • Restringe wp-admin por IP si tienes una IP estática del equipo (opcional)

Un perímetro fortalecido hace que el próximo intento de sitio WordPress comprometido tenga muchas menos probabilidades de éxito.

Copias de seguridad que de verdad sirven (frecuencia, fuera del servidor, prueba de restauración)

Las copias de seguridad solo son útiles si puedes restaurarlas rápido—y si no están guardadas en el mismo lugar que el sitio comprometido.

  • Frecuencia de backups:
    • Sitios de contenido: diario suele ser suficiente
    • Comercio electrónico / sitios con muchos cambios: varias veces al día
  • Guarda backups fuera del servidor (almacenamiento en la nube, cuenta separada, credenciales separadas).
  • Mantén varios puntos de restauración (no solo el más reciente).
  • Prueba restauraciones en un entorno de pruebas al menos trimestralmente.

Después de un incidente de sitio WordPress comprometido, “teníamos copias de seguridad” es común. “Las probamos” es raro. Sé de los raros.

Plan de monitoreo (alertas, cambios de archivos, seguimiento de vulnerabilidades)

Fortalecer no es “configurar y olvidarte”. Es “configurar y vigilar”.

  • Activa monitoreo de disponibilidad (para saber si el sitio cae o empieza a redirigir).
  • Configura alertas por cambios de archivos en directorios del núcleo de WordPress.
  • Monitorea spam SEO y estado de listas negras:
    • Problemas de seguridad en Google Search Console
    • Picos repentinos de indexación o impresiones de búsquedas raras
  • Haz seguimiento de vulnerabilidades manteniendo plugins al mínimo y actualizados.

Si construyes una rutina ligera de monitoreo, detectas la siguiente señal de sitio WordPress comprometido temprano—cuando es más barato y más fácil de arreglar.

A continuación: mantenimiento continuo y los momentos exactos en los que es más inteligente contratar a un profesional (especialmente si manejas pagos, datos de clientes o reinfecciones).

Mantenimiento continuo + cuándo contratar a un profesional

sitio WordPress comprometido

Incluso después de una limpieza, trata un incidente de sitio WordPress comprometido como un “sistema en recuperación”, no como un evento único. Las siguientes 2–4 semanas son cuando las reinfecciones suelen aparecer—porque la causa raíz (un plugin vulnerable, credenciales débiles o una puerta trasera a nivel servidor) nunca se eliminó por completo. Una rutina simple de mantenimiento te ayuda a mantenerte limpio y detectar problemas temprano.

Lista de mantenimiento semanal/mensual

  • Semanal (10–20 minutos):
    • Aplica actualizaciones (núcleo/plugins/temas) y elimina lo que no uses.
    • Revisa usuarios administradores + roles (sin administradores sorpresa).
    • Escanea por malware/cambios de archivos (o revisa tus alertas de seguridad).
    • Haz una revisión rápida en modo incógnito + móvil para confirmar que no haya redirecciones.
  • Mensual (30–60 minutos):
    • Revisa tu lista de plugins y elimina lo que no sea esencial.
    • Revisa copias de seguridad: confirma que existan copias recientes fuera del servidor y que no estén fallando en silencio.
    • Revisa Google Search Console por problemas de seguridad, picos de indexación o búsquedas raras.
    • Revisa registros del WAF/firewall por ataques repetidos y ajusta límites de tasa si hace falta.

Esta rutina es lo que evita que una situación de sitio WordPress comprometido se convierta en un dolor de cabeza recurrente.

Cuándo escalar + qué pedirá un profesional (y cómo se ve el “listo”)

Contrata ayuda rápido si:

  • Tienes comercio electrónico, aceptas pagos o almacenas datos de clientes (PII).
  • Te han reinfectado más de una vez.
  • No puedes identificar el punto de entrada (plugin/tema desconocido, compromiso del servidor, credenciales del hosting robadas).
  • Google está marcando tu sitio como hackeado o estás viendo spam SEO indexado de forma masiva.

Lo que un profesional suele pedir:

  • Acceso al panel del hosting (o acceso temporal)
  • Acceso administrador de WordPress
  • Acceso SFTP/SSH (si está disponible)
  • Acceso a la base de datos (o una exportación de la base de datos)
  • Registros de cualquier plugin de seguridad/WAF + fechas y horas de cuándo empezaron los síntomas
  • Una lista de cambios recientes (plugins nuevos, ediciones del tema, trabajo de desarrollo, migraciones)

Cómo se ve el “listo” después de una limpieza de sitio WordPress comprometido:

  • Sin usuarios administradores desconocidos, sin trabajos cron maliciosos, sin cambios de archivos sospechosos
  • Sin redirecciones (escritorio + móvil + incógnito), sin scripts inyectados
  • Escaneos limpios y verificación de integridad del núcleo
  • Fortalecimiento implementado (2FA, mínimo privilegio, WAF/límites de tasa, copias de seguridad probadas)
  • Un plan de monitoreo activo para detectar problemas temprano

Siguiente: un FAQ rápido que responde las preguntas de pánico que todo el mundo tiene en medio de esto.

Preguntas frecuentes

1) ¿Cómo sé si mi sitio WordPress está comprometido o si solo es un plugin roto?

La mayoría de los problemas de “plugin roto” no crean páginas de spam, usuarios administradores nuevos ni redirecciones raras que solo afectan a algunos visitantes. Si estás viendo usuarios desconocidos, URLs basura indexadas, advertencias de seguridad o redirecciones condicionales, trátalo como un compromiso y sigue: contener → limpiar → fortalecer.

2) ¿Cuáles son las primeras 3 cosas que debo hacer si veo redirecciones?

  1. Contén: pon el sitio en modo mantenimiento o restringe el acceso; 2) asegura el acceso (restablece credenciales de administrador + hosting); 3) crea un respaldo/snapshot como evidencia. No empieces borrando archivos al azar.

3) ¿Debo restaurar un respaldo de inmediato?

Solo si estás seguro de que el respaldo es de antes del compromiso. Restaurar el respaldo equivocado puede traer el malware de vuelta. Incluso si restauras, igual debes fortalecer y revisar el punto de entrada original (a menudo un plugin vulnerable o credenciales robadas).

4) ¿Por qué el sitio se ve bien para mí pero no para los visitantes?

Los atacantes suelen usar reglas condicionales (dispositivo, país, referente, primera visita) para ocultar el comportamiento del dueño del sitio. La caché también puede ocultar síntomas. Prueba siempre en modo incógnito, en móvil y, si puedes, desde otra red.

5) ¿Un plugin de seguridad puede eliminar todo por sí solo?

A veces ayuda, pero no está garantizado. Muchas infecciones incluyen cambios a nivel servidor, inyecciones en la base de datos o puertas traseras en uploads/MU-plugins que un escaneo básico no eliminará por completo. Usa los plugins como señales de detección, no como tu único método de limpieza.

6) ¿Cuál es la forma más común en que entran los atacantes?

Plugins/temas desactualizados, contraseñas débiles, credenciales reutilizadas y software nulled/pirata son las causas más comunes. Menos frecuente pero más serio: cuentas del hosting comprometidas o claves API expuestas.

7) ¿Esto perjudica el SEO y cuánto tarda la recuperación?

Sí, puede afectar. Las páginas de spam se pueden indexar rápido y las redirecciones destruyen confianza y rankings. La limpieza puede ser el mismo día en casos simples, pero la recuperación SEO (desindexar spam, recuperar confianza) puede tardar días o semanas según la severidad y cuánto tiempo estuvo activo el hack.

8) ¿Qué información necesita un profesional para arreglarlo rápido?

Acceso al hosting, acceso administrador de WordPress, SFTP/SSH (si está disponible), una exportación de la base de datos, registros de seguridad/WAF y la línea de tiempo de los síntomas. Mientras más clara sea la cronología, más rápido se encuentra el punto de entrada y se evita la reinfección.

Conclusión

Si sospechas un compromiso, no adivines—sigue la secuencia segura: primero contener, luego limpiar de forma metódica y después fortalecer para que no vuelva. La diferencia entre una recuperación rápida y una reinfección suele ser el orden de operaciones y si se eliminó la causa raíz. Si quieres una solución más rápida y segura, usa la lista de verificación y considera una limpieza profesional más monitoreo continuo.