Cómo eliminar malware y limpiar un sitio WordPress infectado
Detectar que tu sitio web ha sido hackeado es una de las experiencias más angustiosas para cualquier propietario de una página. Ver un aviso de "Sitio no seguro" en Google, redirecciones extrañas a páginas de farmacia o simplemente que tu web desaparezca de los resultados de búsqueda puede ser desesperante.
Pero respira. No estás solo y, sobre todo, tiene solución. Aunque el proceso pueda parecer técnico, hoy te voy a guiar paso a paso para limpiar malware WordPress y devolver la salud a tu proyecto. Vamos a hacerlo con calma, de forma metódica y sin necesidad de ser un hacker para lograrlo.
Este artículo es tu manual de emergencia. Vamos a identificar la infección, limpiar los archivos, asegurar el acceso y, lo más importante, blindar tu web para que no vuelva a ocurrir. Coge un café, abre tu panel de control y vamos a ello.
Primera Respuesta: Evalúa el Estado de tu Web Infectada
Antes de lanzarnos a borrar archivos a lo loco, necesitamos entender qué está pasando. Una web infectada puede manifestarse de muchas formas. No todas las infecciones son iguales, y la estrategia para eliminar virus WordPress depende del tipo de ataque.
Síntomas Comunes de una Web Hackeada
Si has llegado hasta aquí, seguramente ya has notado algo raro. Pero por si acaso, estos son los síntomas más habituales de una web infectada:
- Avisos del navegador: Chrome, Firefox o Safari te muestran una pantalla roja de advertencia antes de entrar a tu web.
- Redirecciones fantasma: Al visitar tu página desde el móvil, te lleva a webs de apuestas, citas o spam. Esto suele ser muy frustrante.
- Contenido basura: Aparecen páginas en tu WordPress que tú no has creado, llenas de enlaces a medicamentos o relojes de lujo.
- Rendimiento horrible: Tu web tarda una eternidad en cargar. Esto se debe a que está ejecutando scripts maliciosos en segundo plano.
- Usuarios desconocidos: En tu panel de administración de WordPress aparecen usuarios con rol de "Administrador" que tú no has dado de alta.
- Caídas repentinas: El servidor bloquea tu cuenta por consumo excesivo de recursos (CPU o memoria).
Si tienes uno o varios de estos síntomas, es casi seguro que tienes malware. Pero, ¿por dónde empiezo? Lo primero es tener un plan.
Prepara tu Kit de Emergencia (Antes de Tocar Nada)
Este paso es crucial. No empieces a borrar archivos sin antes tener un respaldo. Aunque el archivo esté infectado, a veces necesitamos mirarlo para entender el código malicioso. Además, si cometemos un error durante la limpieza, necesitamos poder restaurar.
- Accede a tu Panel de Control (cPanel, Syspanel o similar): Necesitas acceso a los archivos del servidor, no solo al escritorio de WordPress.
- Descarga una copia de seguridad completa: Ve a la sección "Archivos" o "Gestor de archivos" y comprime la carpeta
public_html(o el nombre que tenga tu web). Descarga ese ZIP a tu ordenador. - Exporta tu Base de Datos: Usa phpMyAdmin (o la herramienta que te ofrezca tu hosting) y exporta la base de datos de tu WordPress. Guárdala en un lugar seguro.
[INFO] Si tu hosting usa Syspanel (antes conocido como HestiaCP), recuerda que el acceso a este panel se realiza a través del puerto 2106 (ejemplo:
https://tudominio.com:2106). Ahí encontrarás el administrador de archivos y las bases de datos para hacer tu backup.
Fase 1: Diagnóstico y Detección del Código Malicioso
Ahora que tienes tu red de seguridad, toca ponerse el mono de trabajo. Vamos a localizar al intruso. No lo busques solo en el contenido visible; el malware suele esconderse en el código.
Revisar Archivos del Núcleo de WordPress
Los hackers suelen modificar archivos clave del sistema. Si modifican el archivo wp-config.php o los archivos de tema, pueden inyectar código que se ejecuta en cada visita.
- Archivos a vigilar:
index.php,wp-load.php,wp-config.php,functions.php(de tu tema activo). - Cómo detectarlos: Un archivo limpio de WordPress es pequeño y legible. Si ves código codificado (como
eval(gzinflate(base64_decode(...)))), eso es malware puro. Si el archivofunctions.phptiene una línea gigante al principio o al final que no reconoces, está infectado.
Escaneo con Plugins de Seguridad
Si no sabes por dónde empezar a mirar, los plugins son tus mejores aliados. Aunque estén desactivados, podemos activarlos en modo seguro o escanear los archivos directamente.
- Wordfence: Es el escáner más completo. Analiza el núcleo de WordPress, los temas y los plugins comparándolos con los repositorios oficiales.
- MalCare: Este es excelente para limpiar, pero también tiene un buen escáner.
- Sucuri Scanner: Muy bueno para detectar malware y monitorizar la integridad de los archivos.
[TIP] Si tu web está tan infectada que no puedes entrar al panel de administración de WordPress, no te preocupes. Descarga los archivos por FTP o desde el administrador de archivos de tu hosting (Syspanel o cPanel) y súbelos a un escáner online como VirusTotal, aunque esto es más tedioso. La mayoría de las veces, los plugins funcionan incluso en estado crítico si accedes por FTP y renombras la carpeta de un plugin conflictivo.
Revisar la Base de Datos
El malware no solo vive en los archivos. A veces se inyecta en la base de datos, especialmente en la tabla wp_options o en el contenido de las entradas.
- Busca enlaces extraños (como
http://spam.comohttp://viagra.com) en las tablaswp_postsywp_options. - Revisa la tabla
wp_users. ¿Hay algún usuario con email raro y rol de administrador? Si es así, es un backdoor.
Fase 2: Limpiar Malware WordPress Manualmente (Paso a Paso)
Una vez identificado el problema, pasamos a la acción. Este es el proceso para limpiar malware WordPress de forma manual y efectiva. Es el método más fiable porque no depende de que un plugin "adivine" qué es malicioso.
Paso 1: Localiza y Elimina los Backdoors
Un backdoor es un archivo que permite al hacker volver a entrar. Suelen tener nombres que imitan a archivos legítimos.
- Nombres típicos:
wp-load.phpen lugares extraños,cron.php,wp-rss.php,class-upload.php, o archivos con nombres aleatorios en la raíz. - Cómo encontrarlos: Ve al administrador de archivos de tu hosting (Syspanel o cPanel). Ordena los archivos por fecha de modificación. Busca archivos modificados en las últimas 24-48 horas que no sean tuyos. Si ves un
.phpen la carpetawp-content/uploads/, es sospechoso. Ahí nunca debe haber archivos PHP.
Paso 2: Reemplaza los Archivos del Núcleo
La forma más rápida de asegurar el núcleo es sobrescribirlo con una copia limpia.
- Descarga la última versión de WordPress desde
es.wordpress.org. - Descomprime el ZIP en tu ordenador.
- Sube por FTP o por el gestor de archivos de tu hosting todos los archivos de la carpeta raíz de WordPress excepto
wp-contentywp-config.php. - Cuando te pregunte si quieres sobrescribir, dile que sí a todos.
Esto restaurará los archivos del sistema a su estado original, eliminando cualquier modificación maliciosa en el núcleo.
Paso 3: Limpia tu Tema y tus Plugins
Los temas y plugins son el punto de entrada favorito de los hackers.
- Tema activo: Ve a
wp-content/themes/y busca la carpeta de tu tema. Revisa elfunctions.php. Si tiene código raro, la forma más fácil es reemplazar todo el tema. Descarga una copia original del tema (del autor) y sustitúyela. - Plugins: Haz lo mismo con los plugins. Si uno está infectado, lo mejor es borrarlo por completo y volver a instalarlo desde el repositorio de WordPress. Si es un plugin premium, descárgalo de la web del desarrollador.
[WARNING] No actualices un plugin infectado "por encima". Debes borrar la carpeta del plugin y luego instalar la versión limpia. Si solo lo actualizas, el código malicioso puede persistir en archivos que no se sobrescriben.
Paso 4: Sanea la Base de Datos
Este paso es delicado. Si eliminas algo importante, puedes romper la web.
- Entra a phpMyAdmin desde tu panel de hosting.
- Selecciona tu base de datos y haz clic en "Buscar" (o "Search").
- Busca términos como
<script>,eval(,base64_decodeohttp://spam. - Si encuentras resultados en
wp_posts, tendrás que editar esas entradas y eliminar el código malicioso. - También revisa la tabla
wp_options. Busca la opciónsiteurlyhome. Asegúrate de que apuntan a tu dominio correcto y no a una web rusa.
[INFO] Si la base de datos está muy infectada, a veces es más rápido restaurar una copia de seguridad limpia de antes de la infección. Si no tienes una, tendrás que limpiar manualmente, lo cual es un trabajo de paciencia.
Fase 3: Eliminar Virus WordPress y Cerrar Puertas Traseras
Una vez limpiado el contenido visible, debemos asegurarnos de que no haya "trampas" ocultas que permitan que vuelvan a entrar.
Actualiza Todo a la Última Versión
Esto es vital. Si tu WordPress, tema o plugins estaban desactualizados, esa era la puerta de entrada.
- Ve a
Escritorio > Actualizaciones. - Actualiza el núcleo de WordPress.
- Actualiza todos los plugins.
- Actualiza todos los temas.
Cambia Todas las Contraseñas y Claves de Seguridad
Asume que tus contraseñas están comprometidas.
- Base de datos: Cambia la contraseña del usuario de la base de datos en tu hosting y actualiza el
wp-config.php. - Usuarios de WordPress: Cambia la contraseña de todos los usuarios, especialmente los administradores.
- FTP y Hosting: Cambia la contraseña de acceso a cPanel/Syspanel y del FTP.
Regenera las Claves de Seguridad (Salts)
En tu archivo wp-config.php hay unas líneas llamadas "Authentication Unique Keys and Salts". Estas claves cifran las cookies de sesión. Si el hacker las conoce, puede secuestrar sesiones sin contraseña.
- Ve a
https://api.wordpress.org/secret-key/1.1/salt/(o busca "WordPress salt generator"). - Copia esas líneas.
- Reemplázalas en tu
wp-config.php(entre las comillas, donde pone "define('AUTH_KEY', 'ponlo-aqui')").
Esto cerrará la sesión de todos los usuarios, incluida la tuya, y tendrás que volver a iniciar sesión. Es una buena señal.
Fase 4: Medidas Preventivas y Blindaje Definitivo
Ya has limpiado el malware, pero la guerra no ha terminado. Ahora toca blindar la web para que no vuelva a pasar.
Instala un Firewall (WAF)
Un Firewall de Aplicaciones Web (WAF) filtra el tráfico antes de que llegue a tu servidor, bloqueando peticiones maliciosas.
- Cloudflare: Es gratuito y muy efectivo. Activa el firewall básico y la protección anti-DDoS.
- Sucuri / Wordfence: Ofrecen firewalls de pago que bloquean ataques a nivel de DNS, lo cual es aún más seguro.
Configura la Seguridad del Hosting
- Syspanel/cPanel: Activa la protección "Immunify" o "ModSecurity" si tu proveedor lo ofrece.
- Permisos de archivos: Asegúrate de que los archivos tengan permiso
644y las carpetas755. Nunca uses777.
Realiza Mantenimientos Regulares
La seguridad no es un evento único, es un hábito.
- Programa escaneos: Configura Wordfence para que escanee tu web a diario.
- Copia de seguridad: Asegúrate de que tu hosting hace copias de seguridad automáticas diarias. Si no, contrata un servicio como UpdraftPlus para que las envíe a Google Drive o Dropbox.
[TIP] Si tu web es gestionada por una agencia o un desarrollador, coméntales que quieres un informe de seguridad mensual. Una web limpia es responsabilidad de todos.
Preguntas Frecuentes (FAQ) sobre Webs Infectadas
Aquí te resuelvo las dudas más comunes que me suelen llegar al soporte.
¿Cuánto tiempo se tarda en limpiar una web infectada?
Depende del grado de infección. Si es un archivo infectado en el tema, puedes tardar 30 minutos. Si es una infección profunda en la base de datos y tienes que revisar miles de registros, puede llevarte un día entero. La paciencia es clave.
¿Qué hago si mi web sigue apareciendo como "Engañosa" en Google después de limpiarla?
Google tarda en rastrear de nuevo tu web. Después de limpiar, tienes que solicitar una revisión en Google Search Console.
- Ve a "Problemas de seguridad".
- Solicita la revisión.
- Explica brevemente qué malware tenías y cómo lo solucionaste.
El proceso puede tardar desde unas horas hasta varios días.
¿Debo pagar a un profesional para que la limpie?
Si no te sientes seguro haciendo esto manualmente, sí, vale la pena pagar. Servicios como Sucuri o MalCare ofrecen limpieza profesional por un precio razonable. Te garantizan que la web queda limpia y monitorizada durante un tiempo. Si tu web genera ingresos, el coste de la limpieza es mínimo comparado con la pérdida de ventas y reputación.
¿Perderé mi posicionamiento SEO si mi web ha sido hackeada?
Posiblemente sí, pero es recuperable. Google entiende que los sitios son hackeados. Si limpias a fondo y arreglas la vulnerabilidad, tu posicionamiento volverá a la normalidad en semanas. Lo importante es no dejar la web infectada mucho tiempo, ya que eso sí puede causar una penalización manual.
¿Puedo prevenir un ataque al 100%?
No, es imposible. Pero puedes reducir el riesgo al 99%. Manteniendo todo actualizado, usando contraseñas fuertes (usa un gestor de contraseñas) y teniendo un firewall, los hackers buscarán un objetivo más fácil. No eres un banco; solo necesitas ser más difícil de hackear que el vecino.
Limpiar un sitio web infectado es un proceso metódico, pero totalmente factible si sigues estos pasos. Recuerda la secuencia: Diagnosticar, Limpiar, Asegurar y Prevenir. No te saltes el paso del backup inicial, es tu red de seguridad.
Espero que esta guía te haya sido de gran ayuda. Si te surge cualquier duda durante el proceso, no dudes en consultar la documentación de tu hosting o abrir un ticket de soporte con ellos. Una web limpia y segura es el primer pilar para el éxito de tu negocio online. ¡Mucho ánimo y a por ello!
