Una de las peores sensaciones cuando gestionas una web es darte cuenta de que algo no va bien: redirecciones extrañas, contenido que no has creado, usuarios desconocidos o incluso la web completamente caída. En muchos casos, estos síntomas indican que el sitio ha sido comprometido.
WordPress es un sistema muy extendido y dispone de un ecosistema enorme de temas y plugins. Precisamente por eso conviene reaccionar con método: recuperar el control, conservar pruebas suficientes para entender qué ha ocurrido y cerrar la vía de entrada antes de volver a dar la web por limpia.
Una web hackeada se puede recuperar, pero borrar únicamente el síntoma visible no garantiza que el acceso utilizado por el atacante haya quedado cerrado.
Detectar y contener el incidente
Cómo saber si tu web ha sido hackeada
Antes de actuar, conviene confirmar el alcance. Algunos síntomas habituales son:
- Redirecciones a páginas externas sospechosas.
- Aparición de contenido, enlaces o páginas que no has creado.
- Usuarios administradores desconocidos.
- Alertas del navegador, Google, Search Console o el proveedor de hosting.
- Archivos modificados sin una actualización conocida.
- Caídas repentinas, errores inesperados o un aumento extraño de consumo.
Un único error no demuestra por sí solo que exista malware. Revisa también los registros del servidor y los cambios recientes para diferenciar una intrusión de un fallo normal de la aplicación.
1. Aísla el problema sin destruir pruebas
Si la web está sirviendo contenido malicioso, puedes activar temporalmente mantenimiento o limitar el acceso mientras investigas. El objetivo es reducir el impacto sobre visitantes sin empezar a borrar archivos a ciegas.
Antes de limpiar, guarda una copia de los archivos y de la base de datos tal como están. Esa copia no debe utilizarse después como respaldo limpio, pero puede ser útil para comparar modificaciones, identificar la vía de entrada o recuperar información que se borre por error durante la reparación.
Si la web gestiona pedidos, formularios o cuentas, anota también la hora aproximada en la que detectaste el problema para saber qué datos recientes podrían necesitar una revisión especial.
Asegurar accesos y localizar la entrada
2. Cambia credenciales y cierra sesiones
No cambies únicamente la contraseña de WordPress. Si un atacante obtuvo acceso a otra capa, podría volver a entrar aunque el panel quede protegido.
- Usuarios administradores de WordPress.
- Panel de hosting.
- FTP o, preferiblemente, SFTP/SSH si lo utilizas.
- Base de datos.
- Correo asociado a recuperación de contraseñas.
- Claves de servicios externos vinculados a la web, cuando exista riesgo de exposición.
Revisa además los usuarios administradores y elimina o bloquea cualquier cuenta que no reconozcas. En WordPress también puedes renovar las claves y salts de autenticación de wp-config.php para invalidar sesiones existentes.
3. Localiza la posible vía de entrada
Una limpieza fiable necesita responder a una pregunta: ¿cómo pudo modificarse la web? Entre los orígenes frecuentes están plugins o temas vulnerables, software desactualizado, contraseñas comprometidas, cuentas antiguas o permisos incorrectos.
Revisa qué se instaló o actualizó recientemente, las fechas de modificación de archivos y los logs disponibles. Si identificas un plugin abandonado o una extensión que ya no necesitas, no la reinstales después de limpiar.
Limpiar la instalación
4. Sustituye archivos del núcleo por copias limpias
En lugar de intentar reconocer manualmente cada fichero del núcleo de WordPress, suele ser más seguro sustituirlo por una copia limpia de la misma versión o actualizar a una versión compatible una vez controlado el incidente.
No sobrescribas wp-content ni wp-config.php sin revisar, porque ahí viven contenido, configuración y extensiones. Comprueba especialmente:
wp-content/plugins/ywp-content/themes/.- Archivos PHP inesperados dentro de
uploads. - Modificaciones recientes en
.htaccess. - Código ofuscado o inclusiones hacia dominios desconocidos.
- Ficheros que reaparecen después de borrarlos.
Siempre que sea posible, reinstala plugins y temas desde su fuente legítima en lugar de conservar archivos dudosos.
5. Revisa también la base de datos
El malware no tiene por qué vivir únicamente en archivos. Puede haber usuarios creados, JavaScript insertado en entradas, opciones modificadas o redirecciones almacenadas en la base de datos.
Revisa usuarios, contenido reciente y opciones relacionadas con la URL del sitio, widgets o código añadido por plugins. No ejecutes reemplazos masivos sin una copia: una consulta incorrecta puede dañar contenido legítimo.
6. Busca mecanismos de persistencia
Uno de los motivos por los que una infección vuelve es que se elimina el archivo visible pero queda otra puerta preparada para regenerarlo. Comprueba usuarios, tareas programadas, archivos cargados automáticamente y extensiones que no reconozcas.
Si un archivo malicioso reaparece a los pocos minutos, deja de borrarlo repetidamente y busca qué proceso lo está creando.
Cerrar la entrada y revisar el impacto SEO
7. Actualiza y reduce superficie de ataque
Cuando tengas una instalación limpia, actualiza WordPress, plugins y tema a versiones compatibles y mantenidas. Elimina extensiones desactivadas que no vayas a utilizar y temas antiguos innecesarios.
Utiliza contraseñas únicas, activa autenticación en dos pasos cuando tu solución de acceso lo permita y limita los permisos de cada usuario a lo que realmente necesita.
8. Comprueba Search Console y el impacto SEO
Si Google ha detectado contenido engañoso, páginas inyectadas o descargas peligrosas, revisa los avisos de seguridad de Search Console después de limpiar. Comprueba también si se han creado URLs extrañas que todavía aparecen indexadas.
No solicites una revisión hasta estar razonablemente seguro de que la causa está solucionada. Si las páginas maliciosas ya no existen, devuelve el estado HTTP adecuado y corrige enlaces o redirecciones que el ataque pudiera haber añadido.
Verificar la recuperación
9. Verifica la recuperación antes de cerrar el incidente
No des por terminada la limpieza porque la portada vuelva a cargar. Durante los días siguientes revisa:
- Logs y nuevos errores.
- Usuarios y cambios inesperados.
- Formularios, correo, carrito o funciones críticas.
- Archivos que vuelvan a aparecer.
- Alertas del hosting o de Search Console.
- Copias de seguridad generadas después de confirmar que la instalación está limpia.
Haz una nueva copia cuando el sitio ya esté validado. Esa sí podrá servir como punto de recuperación conocido para futuras incidencias.
Cuándo restaurar una copia de seguridad
Restaurar puede ser la opción más segura si conoces una copia anterior al compromiso. Antes de hacerlo, valora cuánto contenido o cuántos pedidos se perderían y conserva aparte los datos recientes que necesites recuperar.
Una restauración por sí sola tampoco cierra la vulnerabilidad. Después tendrás que actualizar, cambiar credenciales y corregir la causa que permitió el acceso.
Cuándo pedir ayuda
Cuándo merece la pena pedir ayuda
Si la web gestiona ventas, datos de clientes o procesos importantes y no puedes determinar cómo entró el atacante, es mejor evitar experimentos sobre la única copia disponible. Un profesional puede ayudar a conservar datos, revisar logs y confirmar que la limpieza no se limita al síntoma visible.
Para prevenir problemas similares una vez recuperado el sitio, puedes continuar con Seguridad básica en WordPress y Mantenimiento web proactivo.
Resumen
En resumen: recuperar, cerrar la entrada y comprobar
Una recuperación completa tiene tres partes: devolver la web a un estado limpio, cerrar la vía que permitió el acceso y observar después que la infección no reaparece. Saltarse cualquiera de ellas aumenta el riesgo de volver al mismo punto pocos días después.
Actuar rápido es importante, pero actuar de forma ordenada lo es todavía más. Guarda una copia antes de tocar, cambia los accesos, reinstala desde fuentes limpias, revisa archivos y base de datos y valida la web durante los días siguientes.