Mi web de WordPress fue hackeada: qué hacer paso a paso
Cómo confirmar que tu web está comprometida, limpiarla sin perder el contenido, sacarla de la lista negra de Google y cerrar la puerta por la que entraron.
Respuesta corta: antes de tocar nada, haz una copia del estado actual, aunque esté infectado. Después cambia todas las contraseñas, actualiza el núcleo y los plugins, reemplaza los archivos de WordPress por copias limpias y busca en la base de datos los usuarios administradores que tú no creaste. Y no restaures la última copia de seguridad sin más: casi siempre ya estaba infectada.
La mayoría de los sitios comprometidos que me llegan no fueron atacados por alguien que los tenía en la mira. Son ataques automáticos, a gran escala, que encontraron un plugin sin actualizar desde hace dos años. Eso también significa que la solución es metódica, no heroica.
¿Cómo sé si está hackeada de verdad?
Estas son las señales habituales, de la más evidente a la más silenciosa:
- Google muestra un aviso rojo antes de entrar, o tu hosting suspende la cuenta.
- La web redirige a otro sitio, pero solo desde el móvil o solo desde el buscador, no cuando entras escribiendo el dominio.
- En los resultados de Google aparecen páginas tuyas con texto de farmacia, apuestas o productos falsificados.
- Hay usuarios administradores que nadie de tu equipo creó.
- Aparecen archivos nuevos con nombres raros en la carpeta de subidas, donde solo debería haber imágenes.
- El correo del dominio empieza a rebotar porque tu servidor está enviando spam.
Una web lenta de repente no es, por sí sola, señal de ataque. Suele ser otra cosa, y de eso hablo en otro artículo.
Paso 1: no borres nada todavía
El primer impulso es limpiar a lo bruto. Es un error. Haz una copia completa del estado actual, archivos y base de datos, aunque esté infectada. La vas a necesitar por dos motivos: para saber qué cambió y por dónde entraron, y por si al limpiar te llevas algo por delante.
Si el hosting suspendió la cuenta, pídeles esa copia antes que nada.
Paso 2: cierra el acceso
Mientras la puerta siga abierta, cualquier limpieza es inútil. En este orden:
- Cambia la contraseña de todos los usuarios administradores, y la del panel del hosting.
- Cambia la contraseña de la base de datos y actualízala en el archivo de configuración.
- Cambia las claves de seguridad de WordPress, las que están en el mismo archivo de configuración. Eso cierra todas las sesiones abiertas, incluida la del atacante.
- Revisa la lista de usuarios y borra los que no reconozcas. Fíjate también en las fechas de registro.
- Revisa las claves SSH y FTP del hosting.
Paso 3: limpia los archivos
El núcleo de WordPress, los temas y los plugins son código público. Eso juega a tu favor: se pueden reemplazar por versiones limpias descargadas del sitio oficial, sin miedo, porque no contienen nada tuyo.
Lo que sí es tuyo y hay que revisar a mano son tres cosas: el archivo de configuración, la carpeta de subidas y cualquier personalización que te hayan hecho en el tema.
En la carpeta de subidas la regla es simple: ahí solo debería haber imágenes y documentos. Cualquier archivo con extensión de código no tiene por qué estar, y es el escondite favorito de las puertas traseras.
Paso 4: limpia la base de datos
Aquí es donde suele quedarse lo que no se ve. Busca contenido con enlaces o código que tú no pusiste, revisa los usuarios administradores otra vez y mira las tareas programadas: muchos ataques dejan una tarea que vuelve a infectar el sitio días después.
Ese detalle explica la frustración típica de «lo limpié y volvió a la semana». No volvieron a entrar: nunca se fueron del todo.
Paso 5: ¿restauro una copia de seguridad?
Solo si sabes con certeza de qué fecha es y que esa fecha es anterior a la infección. Y esa certeza casi nunca existe, porque entre que entran y se nota suelen pasar semanas.
Si restauras una copia infectada, vuelves al punto de partida creyendo que resolviste. Cuando tengas dudas, es más seguro limpiar el sitio actual que restaurar a ciegas.
Paso 6: sal de la lista negra de Google
Si Google marcó el sitio, entra a Search Console y busca la sección de seguridad y acciones manuales. Ahí verás qué detectó y las URLs de ejemplo. Cuando esté limpio, solicitas la revisión desde esa misma pantalla.
La revisión suele tardar unos días. Si la pides antes de haber limpiado del todo, te la rechazan y pierdes tiempo.
¿Cómo evito que vuelva a pasar?
Casi todo se reduce a cinco hábitos, y ninguno es caro:
- Actualizar. Núcleo, plugins y tema. Es el 90 por ciento del problema.
- Quitar lo que no usas. Un plugin desactivado sigue siendo código en tu servidor y se puede explotar igual.
- Autenticación en dos pasos para todos los administradores, y no repartir ese rol a quien solo necesita publicar.
- Copias automáticas y probadas. Una copia que nadie ha restaurado nunca no es una copia: es una suposición.
- Un hosting decente. En los planes compartidos más baratos, un vecino infectado puede alcanzarte.
¿Cuándo conviene pedir ayuda?
Si la web factura, si el hosting ya la suspendió, o si después de limpiarla vuelve a infectarse, no sigas por tu cuenta. Cada día que pasa con un aviso de Google delante es tráfico y confianza que no vuelven solos.
Trabajo la limpieza en tres fases: contención y copia forense, limpieza de archivos y base de datos, y endurecimiento con plan de mantenimiento para que no se repita. Si me escribes, lo primero que necesito es el acceso al panel del hosting y saber desde cuándo notas algo raro.
Sigue leyendo
- Cómo contratar un desarrollador WordPress sin equivocarte — Qué debe saber hacer y las señales de alarma.
- WordPress o desarrollo a medida — Por qué WordPress no es inseguro, pero el abandono sí.
- Migrar tu web a WordPress sin perder posicionamiento — Si decides rehacerla desde cero.
- Servicio: Desarrollo WordPress — Temas propios, migraciones y mantenimiento.