Cómo eliminar malware de WordPress con seguridad
¿Tu web en WordPress va lenta? ¿Aparecen ventanas extrañas? ¿Google te marca como sitio peligroso? Respira. No estás solo y, sobre todo, tiene solución. Eliminar malware de WordPress puede parecer una tarea de hackers, pero con esta guía paso a paso, pensada para principiantes, vas a poder limpiar tu sitio sin volverte loco. Vamos a hacerlo con calma, con seguridad y sin tocar nada que no debamos.
Lo primero que debes saber es que casi todos los ataques a WordPress son automatizados. Buscan vulnerabilidades en plugins antiguos o contraseñas débiles. No es nada personal contra ti. Así que, deja de culparte y vamos a ponernos el traje de limpieza.
Antes de Empezar: Prepara el Kit de Emergencia
Limpiar un sitio infectado es como operar a corazón abierto: necesitas un entorno controlado. No hagas nada a lo loco porque podrías perder datos importantes o hacer que el malware se esconda más.
Paso 1: Cambia Todas tus Contraseñas (¡YA!)
Este es el primer paso y el más crítico. El hacker tiene una puerta de entrada. Si no cambias las llaves, lo limpiemos lo que limpiemos, volverá a entrar.
Debes cambiar la contraseña de, al menos, estos sitios:
- Panel de control de hosting: (cPanel, Syspanel, Plesk, etc.)
- Cuenta de administrador de WordPress (wp-admin).
- Base de datos (phpMyAdmin).
- Cuentas de correo electrónico asociadas al dominio.
Usa contraseñas largas y únicas. Un gestor de contraseñas como Bitwarden o 1Password te hará la vida mucho más fácil.
Paso 2: Haz una Copia de Seguridad (Backup) Completa
Antes de tocar nada, necesitas una red de seguridad. Si algo sale mal, podrás restaurar tu web al estado actual (aunque esté infectado, es mejor que nada).
Tu copia debe incluir dos cosas:
- Todos los archivos del sitio: Usa el administrador de archivos de tu hosting o un cliente FTP (como FileZilla) para descargar la carpeta
public_html(o donde esté tu WordPress) a tu ordenador. - La base de datos: Entra a phpMyAdmin desde tu panel de hosting, selecciona tu base de datos y usa la opción "Exportar". Guarda el archivo
.sqlresultante.
[WARNING] No uses plugins de backup para esta tarea. Si el sitio está infectado, el plugin podría estar manipulado y la copia no serviría. Hazlo siempre desde el servidor.
Paso 3: Modo Mantenimiento o "Modo Reparación"
No quieres que los visitantes vean el desastre, ¿verdad? Ni que los buscadores te penalicen más.
Puedes hacer dos cosas:
- Activar el modo mantenimiento con un plugin (aunque si está infectado, mejor no instalar nada nuevo aún).
- Crear un archivo
.maintenanceen la raíz de WordPress. Esto mostrará un mensaje de "Mantenimiento programado" a los usuarios.
Yo recomiendo usar el archivo .maintenance. Solo tienes que crear un archivo vacío con ese nombre y subirlo a la carpeta raíz de WordPress (donde están las carpetas wp-admin, wp-content, etc.).
La Limpieza: Manos a la Obra para Eliminar Malware de WordPress
Ahora sí. Vamos a encontrar al bicho y echarlo. La clave está en ser metódico.
Paso 4: Identifica el Tipo de Malware
No todo es un virus. El malware puede ser:
- Redirecciones: Te llevan a sitios de apuestas o pornografía.
- Inyecciones de código: Scripts maliciosos en los archivos del tema o plugins.
- Backdoors: Archivos PHP ocultos que permiten al hacker volver a entrar.
- Spam SEO: Contenido oculto para posicionar webs externas.
- Mineros de criptomonedas: Usan tu servidor para minar sin que te des cuenta.
Los síntomas te darán pistas, pero la mejor forma de saberlo es mirando los archivos.
Paso 5: Análisis Manual del Código (La Parte de Ser Detective)
No necesitas ser un programador, solo tener paciencia y saber qué buscar.
- Revisa los archivos recientes: En tu gestor de archivos (o FTP), ordena los archivos por "Fecha de modificación". Busca archivos modificados en las últimas 24-48 horas. Si ves algo raro, ábrelo.
- Busca código sospechoso: Abre
index.php,functions.phpdel tema activo ywp-config.php. Busca cadenas de texto como:eval(obase64_decode((funciones que ejecutan código codificado).gzinflate,str_rot13.http://ohttps://que no sean de tu propio dominio.
[TIP] Si ves una línea de código larguísima y sin espacios que empieza con
eval(base64_decode(...)), es 99% seguro que es malware. No la toques, solo anota el archivo.
Paso 6: La Reina de la Batalla: Reinstalar WordPress, Plugins y Temas
Esta es la forma más segura de eliminar malware de WordPress. En lugar de intentar limpiar archivo por archivo (donde puedes dejar un trozo de código malicioso), los reemplazamos con versiones limpias y oficiales.
- Descarga la última versión de WordPress desde
wordpress.org. - Descomprime el archivo en tu ordenador.
- Elimina las carpetas
wp-adminywp-includesde tu servidor. - Sube las nuevas carpetas
wp-adminywp-includesdesde el archivo que descargaste. - Reemplaza los archivos de la raíz (
index.php,wp-blog-header.php,wp-settings.php, etc.) por los nuevos. PERO NO reemplaceswp-config.php(tiene tu configuración de base de datos).
- Temas y Plugins: Ve a tu panel de WordPress. Si puedes acceder, desinstala y elimina todos los temas y plugins que no uses. Para los que uses, la opción más segura es eliminarlos completamente y volver a instalarlos desde el repositorio oficial de WordPress.
[INFO] Si un plugin es premium (de pago), descárgalo de la página del desarrollador original. Nunca de webs piratas, suelen venir con sorpresas.
Paso 7: Limpiar la Base de Datos
A veces, el malware se esconde en la base de datos, especialmente en el spam SEO.
- Accede a phpMyAdmin desde tu panel de hosting.
- Selecciona tu base de datos (la que aparece en tu
wp-config.php). - Busca en las tablas
wp_options(o el prefijo que uses). Mira si hay opciones sospechosas con nombres extraños o URLs que no reconoces. - Revisa las tablas
wp_postsywp_postmeta. Busca contenido que no hayas escrito, especialmente enlaces ocultos. Puedes usar el buscador de phpMyAdmin para buscar palabras clave como "viagra", "casino", "poker" o "http://".
Si encuentras algo, bórralo. Si no estás seguro, no borres nada y pregunta a tu soporte.
Paso 8: Refuerza la Seguridad para el Futuro
Una vez que tu sitio está limpio, es momento de ponerle cerrojos a la puerta. No queremos repetir esta experiencia.
- Actualiza TODO: WordPress, temas y plugins. Las actualizaciones corrigen vulnerabilidades conocidas.
- Cambia tu prefijo de base de datos: Esto dificulta los ataques SQL. Puedes hacerlo con un plugin como "WP Security Audit Log" o manualmente, pero es avanzado.
- Instala un plugin de seguridad: Wordfence o Sucuri Security son excelentes. Te avisan de intentos de acceso y escanean tu web en busca de archivos modificados.
- Usa autenticación de dos factores (2FA): Añade una capa extra de seguridad a tu login.
- Desactiva la edición de archivos: Añade esta línea a tu
wp-config.php:
define('DISALLOW_FILE_EDIT', true); - Limita los intentos de acceso: Plugins como "Limit Login Attempts Reloaded" bloquean a los bots que intentan adivinar tu contraseña.
Paso 9: El Último Paso: Verifica y Notifica
- Verifica con Google: Entra en Google Search Console y solicita una revisión del sitio. Si Google te había marcado como peligroso, esto lo desmarcará una vez que vea que está limpio.
- Comprueba la integridad: Vuelve a escanear tu web con un escáner online como Sucuri SiteCheck o VirusTotal. No confíes solo en tu plugin.
- Notifica a tu proveedor de hosting: En muchos casos, el hosting bloquea tu cuenta por sospecha de malware. Avisarles de que ya está limpio agilizará el proceso de desbloqueo.
[WARNING] Si el hackeo fue grave y no te sientes seguro, o si tu hosting es de pago, considera contratar un servicio de limpieza profesional como el de Sucuri o Wordfence. Ellos tienen herramientas que van mucho más allá de lo que podemos hacer a mano.
Preguntas Frecuentes (FAQ) para Eliminar Malware de WordPress
Aquí van las dudas más comunes que nos llegan al soporte.
¿Cuánto tiempo se tarda en limpiar un WordPress infectado?
Depende de la gravedad. Si es un plugin con una vulnerabilidad conocida, en 1-2 horas puedes tenerlo listo. Si el malware está muy incrustado en el tema o la base de datos, puede llevarte un día completo.
¿Qué pasa si no tengo una copia de seguridad?
Es más complicado, pero no imposible. Tendrás que ser más meticuloso con la limpieza manual de archivos y base de datos. Si no te ves capaz, contacta con un profesional.
¿Puedo usar un plugin de seguridad para limpiar mi web?
Sí, pero no es la opción más fiable. Los plugins de seguridad son geniales para prevenir y detectar, pero para eliminar malware de WordPress, a veces dejan restos. La reinstalación de archivos es siempre la opción más segura.
¿Por qué mi web se infecta si tengo un buen hosting?
Ningún hosting es 100% seguro. La mayoría de las infecciones se deben a plugins desactualizados, temas nulos (piratas) o contraseñas débiles. El hosting solo es la casa, pero la puerta la dejas tú abierta.
¿Debo contactar con mi proveedor de hosting?
Sí, siempre. Ellos pueden ver los logs del servidor y ayudarte a identificar el punto de entrada. Además, si tu cuenta fue suspendida, necesitarás que la reactiven.
¿Qué es Syspanel y por qué hablas de él?
Menciono Syspanel porque es el panel de control que usamos en muchos de nuestros planes de hosting. Si tu hosting usa Syspanel, recuerda que el acceso se realiza por el puerto 2106 (por ejemplo, tudominio.com:2106). Es una herramienta muy intuitiva para gestionar archivos, bases de datos y dominios.
Conclusión: Respira, que ya sabes cómo limpiar WordPress virus
Eliminar malware de WordPress no es una misión imposible. Con paciencia, un buen plan y siguiendo estos pasos, tu web volverá a estar sana y salva. La clave está en:
- Preparar el entorno: Contraseñas nuevas y backup.
- Reinstalar el núcleo: Reemplazar archivos de WordPress, temas y plugins.
- Limpiar la base de datos: Buscar y eliminar el spam SEO.
- Blindar la puerta: Actualizar, usar plugins de seguridad y 2FA.
Recuerda que la prevención es el mejor remedio. Mantén todo actualizado y no instales cosas de dudosa procedencia. Si en algún punto te sientes abrumado, no dudes en buscar ayuda profesional. Es una inversión en la salud de tu negocio online.
Y si tu hosting es con nosotros y usas Syspanel (recuerda, por el puerto 2106), nuestro equipo de soporte está encantado de echarte una mano para revisar los logs de acceso o ayudarte a restaurar una copia de seguridad limpia si la tuvieras.
¡Mucho ánimo y a por ello! Tu web te lo agradecerá.
