Si has llegado aquí con la web ya comprometida, ve directo al paso a paso. Si has llegado por prevención, lee el final primero.
Lo importante ahora: no borres nada todavía, y no restaures una copia antigua como primera reacción. Las dos cosas parecen la solución y las dos destruyen la información que necesitas para que no vuelva a pasar.
Señales de que te han entrado
- Google marca tu web con un aviso, o tu navegador te avisa al abrirla.
- Aparecen páginas que tú no has publicado, normalmente en otro idioma.
- La web redirige a otro sitio, a veces solo desde el móvil o solo desde resultados de búsqueda.
- Hay usuarios administradores que no reconoces.
- El alojamiento te avisa de un consumo raro, o te suspende la cuenta.
- Tu correo empieza a rebotar porque el servidor se ha usado para enviar spam.
Ese detalle de "solo pasa desde el móvil" o "solo desde Google" es muy habitual: el atacante oculta el comportamiento a quien entra escribiendo la dirección directamente, que es justo lo que hace el dueño de la web.
Paso a paso
1. Aísla
Pon la web en mantenimiento o desactívala desde el panel del alojamiento. Cada minuto que sigue en pie es más spam saliendo con tu dominio detrás y más posibilidades de que el aviso llegue a Google.
2. Haz una copia del estado actual, infectado incluido
Parece contradictorio, y no lo es. Esa copia es la única prueba de por dónde entraron. Si limpias primero y aparece un problema después, no vas a tener nada que mirar. Guarda archivos y base de datos, y márcala claramente como infectada para no restaurarla por error.
3. Cambia todas las contraseñas
Todas, no solo la de WordPress:
- Panel del alojamiento.
- Acceso SFTP o SSH.
- Usuario de la base de datos.
- Todos los usuarios administradores de WordPress.
- La cuenta de correo asociada al usuario administrador.
Esa última se olvida siempre, y es la que permite recuperar la contraseña de todo lo demás.
4. Busca usuarios que no deberían estar
Revisa la lista de usuarios de WordPress y borra los administradores que no reconozcas. Comprueba también si alguien ha cambiado el correo de tu propia cuenta: es lo primero que hacen para conservar el acceso.
5. Mira qué archivos se han modificado hace poco
Ordena los archivos por fecha de modificación en el gestor de archivos o por SFTP. Los archivos tocados el día del incidente son tu pista principal.
Dos sitios donde mirar sí o sí:
wp-content/uploads, buscando archivos.php. Ahí solo debería haber imágenes y documentos. Un.phpen la carpeta de subidas es una puerta trasera hasta que se demuestre lo contrario.- La raíz de la instalación, buscando archivos con nombres parecidos a los de WordPress pero que no forman parte del núcleo.
6. Reinstala en lugar de limpiar
Esta es la parte que la gente hace al revés. No intentes desinfectar archivo por archivo:
- Borra el núcleo de WordPress y súbelo de nuevo desde una descarga limpia, conservando
wp-config.phpywp-content. - Borra cada plugin y reinstálalo desde su origen oficial. Los que ya no se mantengan, fuera.
- Haz lo mismo con el tema. Si es un tema pirateado, ahí tienes probablemente la puerta de entrada; cámbialo.
Lo único que hay que revisar a mano es tu contenido y tus personalizaciones.
7. Revisa los archivos de configuración
En wp-config.php, busca código añadido al principio o al final del archivo, y cambia las claves de seguridad para invalidar todas las sesiones abiertas.
En .htaccess, busca reglas de redirección que no hayas puesto. Es el sitio clásico para el redirigir-solo-desde-Google.
8. Limpia la base de datos
Comprueba que siteurl y home en la tabla de opciones apuntan a tu dominio y no a otro. Busca etiquetas de script inyectadas en el contenido de las entradas. Y revisa las tareas programadas: es habitual dejar una que reinstala la puerta trasera cada pocas horas, lo que explica que "la limpié y volvió sola".
9. Cierra por donde entraron
Si no sabes por dónde fue, asume lo más probable: un plugin o un tema desactualizado, una contraseña débil sin segundo factor, o un alojamiento compartido donde entraron por otra web del mismo servidor.
Actualiza todo, activa doble factor en los administradores y revisa los permisos de los archivos.
10. Pide revisión si te han marcado
Si Google ha marcado el sitio, entra en Search Console, mira el informe de problemas de seguridad y solicita la revisión cuando estés seguro de que está limpio. Pedirla antes de tiempo solo alarga el proceso.
Por qué restaurar una copia antigua no basta
Es la reacción natural: tengo una copia de la semana pasada, la restauro y listo.
El problema es doble. Primero, la copia probablemente ya estaba infectada —normalmente pasa tiempo entre que entran y que se nota. Segundo, aunque esté limpia, restauras exactamente la misma versión con exactamente el mismo agujero. Vuelven a entrar por donde entraron, y esta vez tú ya has perdido las pruebas.
Restaurar es una herramienta válida, pero después de saber por dónde fue y cerrarlo.
Cómo evitar la próxima
- Actualizaciones al día, revisadas antes de aplicarse y con copia justo antes.
- Copias automáticas guardadas fuera del propio servidor. Una copia que vive en la misma máquina que la web desaparece con la web.
- Restaurar una copia de vez en cuando para comprobar que sirve. Una copia que nunca se ha restaurado no es una copia, es una carpeta.
- Doble factor en todas las cuentas de administrador.
- Nada de temas ni plugins pirateados. El precio de un tema comprado es más barato que una limpieza.
- Menos plugins. Cada uno es código de otra persona con acceso a tu web.
Si esto te ha pillado en medio y prefieres no hacerlo solo, es justo lo que cubre servidores y soporte: aislar, encontrar la entrada, limpiar, cerrarla y dejar las copias funcionando.