Cómo eliminar malware de un sitio WordPress paso a paso
¿Tu web WordPress va lenta, muestra anuncios raros o redirige a páginas extrañas? Respira hondo. No estás solo y, sobre todo, tiene solución.
Detectar que tu sitio ha sido hackeado da un vuelco al estómago, pero antes de que cunda el pánico, debes saber que la limpieza de un WordPress infectado es un proceso metódico y, con la guía adecuada, puedes hacerlo tú mismo sin ser un experto en programación.
En esta guía extensa y paso a paso, vamos a desgranar cómo eliminar el malware WordPress de tu sitio, cómo limpiar una web infectada y, lo más importante, cómo blindarla para que no vuelva a ocurrir. Vamos a ensuciarnos las manos (virtualmente) y a recuperar el control.
Fase 1: Preparación y Diagnóstico (Antes de Tocar Nada)
Actuar con prisas es el mayor error que puedes cometer. Si empiezas a borrar archivos al azar, podrías romper tu web para siempre. La clave está en la preparación.
1.1. Respaldar Todo (Sí, Incluso lo Infectado)
Parece contraproducente, pero necesitas una copia de seguridad del sitio infectado. ¿Por qué? Porque los expertos en seguridad necesitan analizar el código malicioso para entender cómo entró y qué alcance tiene. Además, si algo sale mal durante la limpieza, tendrás un punto de retorno (aunque esté enfermo).
Para hacer el backup necesitas dos cosas: los archivos y la base de datos.
- Archivos: Accede a tu panel de control de hosting (cPanel, Syspanel, Plesk, etc.) y busca la opción "Administrador de archivos" o usa un cliente FTP como FileZilla. Descarga la carpeta
public_html(o el nombre que tenga tu directorio raíz) completa a tu ordenador. - Base de Datos: En el mismo panel de control, busca "phpMyAdmin". Selecciona tu base de datos y en la pestaña "Exportar", elige el método "Rápido" y formato SQL. Descarga el archivo resultante.
[WARNING] Guarda estos archivos en un lugar seguro fuera de tu servidor. Son tu red de seguridad.
1.2. Identificar el Tipo de Infección
No todo el malware es igual. Antes de limpiar, intenta identificar con qué estás lidiando. Los síntomas más comunes son:
- Redirecciones maliciosas: Al visitar tu web, te lleva a páginas de farmacias, casinos o pornografía.
- Anuncios intrusivos (Malvertising): Pop-ups y banners que no has puesto tú.
- Contenido oculto (SEO Spam): Páginas con texto sobre "viagra", "réplicas de relojes" o enlaces a sitios de apuestas que Google ha indexado pero que tú no ves en tu menú.
- Ransomware: Un mensaje que te pide un rescate para devolverte el acceso a tus archivos (menos común en WordPress, pero posible).
- Vulnerabilidades en el servidor: El malware no toca tu web, pero usa tu hosting para enviar correos basura o atacar a otros sitios.
[INFO] Si tu web está en Google y al buscar "site:tudominio.com" aparecen páginas extrañas, es un claro síntoma de SEO Spam, una de las infecciones más típicas.
Fase 2: La Limpieza Manual del Malware (Modo Experto)
Una vez que tienes tu backup, es hora de ponerse el traje de detective. Este proceso es el más fiable porque te aseguras de eliminar el código malicioso de raíz, no solo de "esconderlo".
2.1. Accede a tus Archivos por FTP o Administrador de Archivos
Conecta tu cliente FTP (FileZilla es gratuito y muy popular) a tu servidor. Necesitarás las credenciales FTP que te proporcionó tu proveedor de hosting.
2.2. Inspecciona los Archivos Clave de WordPress
El malware suele esconderse en lugares predecibles. Revisa estos archivos uno por uno. No los abras con el bloc de notas de tu ordenador, sino con un editor de código como Notepad++ o Sublime Text para ver el formato correctamente.
wp-config.php: El archivo de configuración principal. Busca código extraño al principio o al final, especialmente funciones de PHP que no reconozcas. Debe empezar con<?phpy terminar con?>(aunque a veces no tiene el cierre, es normal).index.php(en la raíz): A menudo, el malware añade una línea de código ofuscado (una cadena larga de caracteres sin sentido) al principio del archivo..htaccess: Este archivo oculto es un imán para los hackers. Pueden redirigir tu tráfico a sitios externos. Busca líneas conRewriteRuleque apunten a dominios raros que no sean el tuyo.functions.php(dentro de la carpeta de tu tema activo): Es el archivo más atacado. Añaden código para inyectar malware en todas las páginas. Busca al final del archivo, antes del cierre de PHP (?>), una línea de código codificada coneval(base64_decode(...))o similar.
2.3. Busca Archivos Sospechosos por su Nombre
Los hackers suelen usar nombres que imitan a los de WordPress para pasar desapercibidos.
- Archivos con doble extensión:
malware.jpg.php,wp-config.php.bak,index.php.bak. - Archivos con nombres extraños:
wp-load.php(el original no existe en la raíz),wp-admin~,0day.php,shell.php. - Carpetas ocultas: Busca carpetas que no reconoces o que no forman parte de una instalación estándar de WordPress.
2.4. Revisa la Base de Datos (phpMyAdmin)
El malware no solo vive en los archivos. Puede estar inyectado en tu base de datos, especialmente en la tabla wp_options o en el contenido de tus entradas.
- Accede a phpMyAdmin y selecciona tu base de datos.
- Haz clic en la tabla
wp_postsy luego en "Buscar". - Busca términos como
<script>,eval(oiframe. Si aparecen resultados, revisa si son parte de tu contenido legítimo o código inyectado. - También revisa la tabla
wp_options. Busca la opciónsiteurlyhome. Si apuntan a un dominio que no es el tuyo, es un hackeo grave. Cámbialas de vuelta a tu dominio real.
[WARNING] NUNCA elimines filas enteras de tu base de datos sin saber exactamente qué son. Podrías perder todo tu contenido. Si ves algo sospechoso, anota el ID de la entrada y edítala desde el propio phpMyAdmin para quitar solo el código malicioso.
Fase 3: La Limpieza Automática (Alternativa Rápida)
Si el manual te parece demasiado arriesgado o el malware es muy complejo, los plugins de seguridad son tu mejor aliado. Son como un antivirus para WordPress.
3.1. Instala un Plugin de Seguridad de Confianza
Los más recomendados y con versión gratuita funcional son Wordfence y Sucuri Scanner.
- Ve a Plugins > Añadir nuevo en tu escritorio de WordPress.
- Busca "Wordfence Security" e instálalo y actívalo.
3.2. Ejecuta un Escaneo Completo
Una vez activado, Wordfence comenzará a escanear tu sitio automáticamente. Puedes lanzar un escaneo manual desde su panel de control.
- El escaneo revisará el código de todos tus archivos, comparándolos con el repositorio oficial de WordPress.
- Identificará archivos modificados, nuevos y sospechosos.
- Te mostrará una lista de "Problemas".
3.3. Repara y Elimina lo que el Plugin Encuentre
- Archivos del Core de WordPress modificados: El plugin te ofrecerá la opción de "Reparar" automáticamente, restaurando el archivo original desde los servidores de WordPress.org.
- Archivos sospechosos no pertenecientes al Core: Si son archivos que no reconoces, puedes "Eliminar" desde el propio plugin.
- Código malicioso en temas y plugins: Wordfence te dirá el archivo exacto y la línea. Puedes usar el editor de archivos de WordPress (Apariencia > Editor de temas) para eliminar el código malicioso manualmente.
[TIP] Wordfence también tiene un cortafuegos (WAF) que puedes activar para bloquear futuros intentos de ataque. Es una capa extra de protección muy valiosa.
Fase 4: La Limpieza Definitiva (Núcleo, Temas y Plugins)
Una vez que has limpiado lo más visible, es hora de asegurarse de que no quede nada escondido. La mejor manera es restaurar los archivos a su estado original.
4.1. Reinstala el Núcleo de WordPress
Esta es la forma más segura de eliminar cualquier archivo del sistema que haya sido modificado.
- Ve a Escritorio > Actualizaciones.
- Haz clic en el botón "Reinstalar ahora" (versión X.X.X).
- WordPress descargará una copia nueva y limpia de todos los archivos del núcleo, sobrescribiendo los infectados.
4.2. Reinstala y Actualiza tus Temas y Plugins
El malware a menudo se esconde en temas y plugins que han sido modificados o que están desactualizados.
- Temas: Ve a Apariencia > Temas. Si tienes un tema que no usas, elimínalo. Para el tema activo, la mejor opción es descargar una copia nueva desde el desarrollador y reemplazarla. Si usas un tema del repositorio de WordPress, puedes "Eliminar" el tema actual y volver a "Añadir nuevo" e instalarlo de nuevo. Ten en cuenta que perderás las personalizaciones hechas desde el editor de archivos, pero las opciones del personalizador (colores, menús) se guardan en la base de datos.
- Plugins: Ve a Plugins > Plugins instalados. Desactiva todos los plugins. Actívalos uno a uno y ve comprobando si tu web funciona correctamente. Si uno da error, es que está infectado o es incompatible. Elimínalo y descarga una versión nueva desde el repositorio o desde la página del desarrollador.
Fase 5: Refuerza la Seguridad (Prevenir es Mejor que Curar)
Ya has limpiado tu web. Ahora es el momento de ponerle un candado de seguridad para que esto no vuelva a pasar.
5.1. Cambia Todas tus Contraseñas
- Panel de WordPress: Cambia la contraseña de todos los usuarios, especialmente de los administradores.
- Base de Datos: Cambia la contraseña de tu base de datos en phpMyAdmin y actualiza el archivo
wp-config.phpcon la nueva contraseña. - Hosting (cPanel/Syspanel): Cambia la contraseña de acceso a tu panel de control. Si tu hosting tiene acceso por SSH, también es recomendable cambiarla.
- FTP: Cambia la contraseña de tu cuenta FTP.
5.2. Actualiza Todo a la Última Versión
- WordPress Core.
- Todos tus plugins.
- Todos tus temas.
- La versión de PHP de tu servidor (si tu hosting lo permite, usa PHP 8.0 o superior).
5.3. Elimina Usuarios y Archivos Innecesarios
- Usuarios: Revisa la lista de usuarios en tu panel de WordPress. Elimina cualquier usuario que no reconozcas o que tenga el rol de "Administrador" sin serlo.
- Archivos: Elimina temas y plugins que no estés usando. No solo son un riesgo de seguridad, sino que ralentizan tu web.
5.4. Protege tu Acceso al Escritorio
- Cambia la URL de acceso: Puedes usar un plugin como "WPS Hide Login" para cambiar
wp-adminpor una URL personalizada (ej:tuweb.com/mi-acceso-secreto). Esto dificulta los ataques de fuerza bruta. - Activa la autenticación de dos factores (2FA): Plugins como Wordfence o Google Authenticator añaden una capa extra de seguridad. Aunque alguien robe tu contraseña, no podrá entrar sin el código de tu móvil.
5.5. Considera un Servicio de Seguridad Gestionado
Si todo esto te parece abrumador o tu web es crítica para tu negocio, piensa en contratar un servicio como Sucuri o el plan premium de Wordfence. Ellos se encargan de la monitorización, limpieza y protección de tu sitio por una tarifa anual, y suelen incluir un CDN (Red de Distribución de Contenidos) que también mejora la velocidad.
Preguntas Frecuentes (FAQ) sobre Malware en WordPress
¿Cuánto cuesta eliminar el malware de WordPress?
Depende. Si lo haces tú mismo con esta guía, el coste es cero (solo tu tiempo). Si contratas un servicio profesional de limpieza, puede costar entre 50 € y 500 € dependiendo de la complejidad de la infección y la agencia. La mayoría de los plugins de seguridad premium ofrecen limpieza incluida en su suscripción anual (desde unos 100 € al año).
¿Mi web volverá a ser hackeada?
Si no corriges la vulnerabilidad que permitió el ataque, es muy probable que sí. Por eso los pasos de la Fase 5 (actualizar, cambiar contraseñas, eliminar archivos innecesarios) son tan importantes como la limpieza en sí.
¿Qué hago si mi web está en la lista negra de Google?
Una vez que hayas limpiado tu sitio, debes solicitar una revisión a Google a través de Google Search Console. Ve a "Problemas de seguridad" y haz clic en "Solicitar revisión". Google tardará unos días (o semanas) en revisar tu sitio y, si está limpio, lo eliminará de la lista negra.
¿Puedo limpiar el malware sin acceso al panel de administrador?
Sí. Si el ataque es tan grave que te ha bloqueado el acceso, puedes hacerlo todo por FTP y phpMyAdmin. De hecho, es el método que hemos descrito en la Fase 2. Si no tienes acceso a FTP, contacta con tu proveedor de hosting; ellos pueden restablecer tus credenciales o ayudarte a acceder.
¿Qué es el "código ofuscado"?
Es código que ha sido programado para ser ilegible para los humanos. Se ve como una línea larga de letras y números sin sentido, a menudo codificada en base64. Es una señal de alerta infalible de malware. Si lo ves en tus archivos, es una infección.
[INFO] Si tu hosting te da acceso a Syspanel (antes conocido como HestiaCP), recuerda que su puerto de acceso es el 2106 (ej: https://tudominio.com:2106). Ahí podrás gestionar tus archivos, bases de datos y cuentas de correo de forma sencilla para llevar a cabo los pasos de esta guía.
Limpiar un sitio WordPress infectado es un proceso que requiere paciencia y método. No te saltes ningún paso y, sobre todo, no te confíes después de limpiarlo. La seguridad es un proceso continuo. Con esta guía, has dado el primer paso para recuperar tu web y, lo más importante, para mantenerla a salvo en el futuro. ¡Mucho ánimo y a por ello!
