Cómo eliminar malware de WordPress usando el panel de hosting
¿Por qué tu WordPress está infectado y qué puedes hacer desde el hosting?
Cuando tu sitio web empieza a mostrar anuncios extraños, redirige a páginas desconocidas o aparece en listas negras de Google, lo más probable es que tengas un problema de malware. La buena noticia es que, en la mayoría de los casos, puedes eliminar malware WordPress sin necesidad de ser un experto en programación, siempre que tengas acceso al panel de control de tu hosting. Este artículo te guiará paso a paso, con un lenguaje claro y sencillo, para que puedas limpiar WordPress infectado desde la raíz. No necesitas ser un hacker, solo seguir una metodología ordenada y tener paciencia. Vamos a ello.
Antes de empezar: Precauciones y herramientas necesarias
Antes de lanzarte a borrar archivos, es fundamental que tomes ciertas precauciones. Un error aquí puede empeorar las cosas o hacer que pierdas datos importantes.
Haz una copia de seguridad completa (Sí o Sí)
Esta es la regla de oro. Nunca intentes limpiar un sitio infectado sin una copia de seguridad reciente. La copia te permite restaurar el sitio si algo sale mal durante el proceso. Desde tu panel de hosting, busca la sección de "Copias de seguridad" o "Backups". Si tu hosting no ofrece una opción automática, puedes usar un plugin como UpdraftPlus para descargar una copia de tus archivos y tu base de datos a tu ordenador. Asegúrate de que la copia esté guardada en un lugar seguro, fuera de tu servidor.
[WARNING]: Una copia de seguridad de un sitio infectado puede contener el malware. No la subas a otro servidor ni la compartas. Guárdala solo como último recurso de emergencia.
Accede a tu panel de hosting y al Administrador de Archivos
Vamos a trabajar directamente con los archivos de tu WordPress. Para ello, necesitas entrar a tu panel de control de hosting. Dependiendo de tu proveedor, puede ser cPanel, Plesk, o incluso un panel personalizado como Syspanel (recuerda, si usas Syspanel, el puerto de acceso es el 2106). Una vez dentro, busca la herramienta llamada "Administrador de Archivos" o "File Manager". También puedes usar un cliente FTP como FileZilla, pero el Administrador de Archivos del hosting es más visual y fácil para principiantes.
Identifica el tipo de infección (síntomas comunes)
No todo el malware es igual. Antes de empezar a limpiar, observa los síntomas:
- Redirecciones a sitios raros: El malware suele inyectar código JavaScript en tu
header.phpo en tu base de datos. - Anuncios pop-up invasivos: A menudo son inyectados por scripts maliciosos en archivos de temas o plugins.
- Páginas de spam indexadas por Google: Si buscas "site:tudominio.com" en Google y ves páginas que no creaste, tienes un problema de SEO hackeado.
- Rendimiento lento: El malware puede estar usando tu servidor para enviar correos spam o minar criptomonedas.
- Usuarios administradores desconocidos: Revisa tu lista de usuarios en el panel de WordPress. Si ves uno que no reconoces, estás infectado.
Paso 1: Aísla tu sitio y cambia todas las contraseñas
Lo primero es cortar el grifo. Mientras el atacante tenga acceso, cualquier limpieza será en vano.
Poner el sitio en modo mantenimiento
Desde el Administrador de Archivos, localiza el archivo .htaccess en la raíz de tu WordPress. Puedes descargarlo y editarlo con un bloc de notas, o editarlo directamente en el hosting. Añade las siguientes líneas al principio para mostrar una página de mantenimiento a los visitantes:
# BEGIN Maintenance
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000$ # Reemplaza con tu IP
RewriteRule $ /maintenance.html [R=307,L]
</IfModule>
# END Maintenance
Crea un archivo maintenance.html en la raíz con un mensaje simple. Esto evita que los visitantes vean el malware y que Google lo rastree mientras limpias.
Cambia las contraseñas de todo
- Panel de hosting: Cambia la contraseña principal de tu cuenta de hosting.
- Base de datos: Cambia la contraseña del usuario de la base de datos MySQL.
- WordPress: Cambia la contraseña de todos los usuarios administradores. Hazlo desde la base de datos o mediante un script PHP temporal, ya que el panel de WordPress puede estar comprometido.
- FTP: Si usas FTP, cambia esa contraseña también.
Paso 2: Localiza y elimina archivos maliciosos
Esta es la parte más técnica, pero la haremos paso a paso. El malware suele esconderse en lugares concretos.
Revisa los archivos principales de WordPress
En el Administrador de Archivos, navega a la carpeta wp-includes y wp-admin. Busca archivos con nombres extraños, como wp-load.php.bak, tmp.php, shell.php o archivos con códigos aleatorios (ej. a1b2c3d4.php). Si no reconoces un archivo, es sospechoso. Descárgalo y ábrelo con un editor de texto. Si ves código ofuscado (una línea muy larga de caracteres sin sentido), es malware.
[TIP]: No borres archivos del núcleo de WordPress sin estar seguro. Si tienes dudas, compara los archivos con una instalación limpia de WordPress de la misma versión. Puedes descargar una desde wordpress.org y comparar carpetas.
Revisa la carpeta de tu tema activo
El malware a menudo se esconde en los archivos del tema, especialmente en functions.php. Ve a wp-content/themes/[tu-tema]/functions.php y ábrelo. Busca código extraño al final del archivo, como eval(base64_decode(...)) o funciones que no reconoces. Si encuentras algo así, elimina esas líneas. También revisa header.php y footer.php en busca de scripts inyectados.
Revisa los plugins
Los plugins son otro vector de ataque común. Revisa cada carpeta dentro de wp-content/plugins/. Busca archivos PHP que no pertenezcan a la estructura normal del plugin. Si un plugin tiene archivos sueltos con nombres raros, es sospechoso. La forma más segura es desactivar todos los plugins desde la base de datos (más adelante te explico cómo) y luego ir activándolos uno a uno para ver cuál está infectado.
Cuidado con la carpeta de subidas (wp-content/uploads)
A veces, el malware sube archivos PHP a la carpeta de imágenes. Revisa si hay archivos .php dentro de wp-content/uploads/. Si los hay, borrarlos de inmediato. Esta carpeta solo debe contener imágenes, PDFs y otros archivos multimedia.
Paso 3: Limpia la base de datos de WordPress
El malware no solo vive en los archivos; también se inyecta en la base de datos. Aquí es donde los atacantes suelen esconder sus redirecciones y enlaces de spam.
Accede a phpMyAdmin
Desde tu panel de hosting, busca el icono de "phpMyAdmin" o "Gestor de Bases de Datos". Selecciona la base de datos de tu WordPress.
Busca y elimina código malicioso
Una vez dentro, haz clic en la pestaña "Buscar" (Search). Busca términos comunes como eval(base64_decode, gzinflate, document.write, o http://spam-link. Esto puede tardar un poco, pero te mostrará en qué tablas y campos se encuentra el código malicioso. Si encuentras resultados, edita el campo correspondiente y elimina el código extraño. Ten mucho cuidado de no borrar contenido legítimo.
Revisa las tablas de opciones y usuarios
En la tabla wp_options, busca la opción siteurl y home. Asegúrate de que apuntan a tu dominio correcto (ej. https://tudominio.com). Los atacantes a veces cambian esto para redirigir tu sitio. También revisa la tabla wp_users y wp_usermeta para asegurarte de que no hay usuarios administradores extraños. Si encuentras uno, bórralo.
[INFO]: Si no te sientes cómodo editando la base de datos, puedes usar un plugin de seguridad como Wordfence, que tiene un escáner que limpia la base de datos automáticamente. Pero como estamos trabajando desde el hosting, esta opción manual es más directa.
Paso 4: Reinstala el núcleo de WordPress y actualiza todo
Una vez que has limpiado los archivos y la base de datos, es hora de asegurar el sitio.
Reinstala WordPress
Desde el panel de administración de WordPress (si puedes acceder), ve a "Actualizaciones" y haz clic en "Reinstalar la versión X". Esto reemplaza todos los archivos del núcleo con versiones limpias. Si no puedes acceder al panel, descarga la última versión de WordPress desde wordpress.org, descomprímela y sube las carpetas wp-admin y wp-includes a tu servidor, sobrescribiendo las existentes (no subas wp-content para no sobrescribir tus cosas).
Actualiza todos los temas y plugins
Un sitio desactualizado es un imán para el malware. Ve a "Escritorio -> Actualizaciones" y actualiza todos los plugins y temas que tengan una versión nueva. Si algún plugin o tema no tiene actualización y no lo usas, bórralo. Es un punto de entrada potencial.
Cambia las claves de seguridad de WordPress
En tu archivo wp-config.php, hay unas constantes llamadas AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, etc. Puedes generar nuevas claves desde el generador oficial de WordPress y reemplazar las que tienes. Esto invalida cualquier sesión de usuario comprometida.
Paso 5: Refuerza la seguridad del hosting y del sitio
Una vez limpio, es crucial que no vuelva a pasar. Aquí tienes una lista de acciones preventivas.
Activa un firewall de aplicación web (WAF)
Muchos paneles de hosting, como Syspanel (puerto 2106), ofrecen un firewall integrado. Actívalo. Si no, puedes usar un plugin de seguridad como Wordfence o Sucuri, que tienen WAF incluido.
Cambia la tabla de prefijos de WordPress (opcional pero recomendado)
El prefijo por defecto de las tablas es wp_. Cambiarlo a algo personalizado (ej. miwordpress_) hace más difícil que los atacantes adivinen los nombres de las tablas. Esto se hace editando el archivo wp-config.php y cambiando $table_prefix = 'wp_'; por $table_prefix = 'miwordpress_';. Ojo: si ya tienes contenido, necesitas un plugin para hacer este cambio de forma segura, ya que también debes renombrar las tablas en la base de datos.
Desactiva la edición de archivos desde el panel
Añade esta línea a tu wp-config.php para evitar que un atacante que acceda al panel pueda modificar archivos de temas y plugins:
define('DISALLOW_FILE_EDIT', true);
Configura la autenticación de dos factores (2FA)
Instala un plugin como "Google Authenticator" o "Wordfence Login Security" para exigir un código adicional al iniciar sesión. Esto añade una capa extra de seguridad incluso si alguien roba tu contraseña.
Preguntas frecuentes (FAQ) sobre la limpieza de malware en WordPress
Aquí respondemos las dudas más comunes que surgen durante este proceso.
¿Cuánto tiempo se tarda en limpiar un WordPress infectado?
Depende del nivel de infección. Una limpieza básica de archivos puede llevar 1-2 horas. Si el malware está muy incrustado en la base de datos o hay múltiples sitios afectados, puede llevar un día completo. La paciencia es clave.
¿Qué hago si no encuentro el malware en los archivos o la base de datos?
Si has seguido todos los pasos y no encuentras nada, es posible que el malware esté en el servidor a nivel de red o en un plugin muy bien oculto. En ese caso, te recomiendo usar un escáner especializado como Sucuri SiteCheck (gratuito) o contratar el servicio de limpieza de Sucuri o Wordfence. Ellos tienen herramientas más avanzadas.
¿Puedo usar un plugin para limpiar el malware en lugar de hacerlo manualmente?
Sí, plugins como Wordfence, MalCare o Sucuri Scanner pueden automatizar el proceso. Sin embargo, un plugin no siempre elimina el malware del núcleo o de archivos .htaccess. La limpieza manual desde el hosting es más exhaustiva y te da control total.
¿Mi hosting me puede ayudar a limpiar el malware?
Algunos hosts ofrecen servicios de limpieza de malware como parte de sus planes, o por un costo adicional. Si no te sientes seguro, contacta a tu proveedor de hosting. Ellos pueden restaurar una copia limpia de tu sitio si tienen una anterior a la infección.
¿Por qué mi sitio fue hackeado si tenía contraseñas seguras?
Las contraseñas seguras son importantes, pero no son la única vía de ataque. Los plugins y temas desactualizados con vulnerabilidades conocidas son la causa más común. También lo son las instalaciones de plugins nulos (piratas) que contienen malware de origen.
¿Qué hago si Google sigue mostrando mi sitio como inseguro después de limpiarlo?
Una vez que el sitio esté limpio, 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". También debes asegurarte de que las páginas eliminadas ya no devuelvan un código 404 o 410.
Conclusión: La limpieza es el primer paso, la prevención es el objetivo
Eliminar malware WordPress desde el panel de hosting es un proceso que, aunque puede parecer abrumador, es totalmente manejable si sigues estos pasos con calma. La clave está en limpiar WordPress infectado de forma metódica: aislar, limpiar archivos, limpiar base de datos, actualizar y asegurar. No se trata solo de quitar la infección, sino de entender cómo entró para que no vuelva a suceder. Recuerda que la seguridad es un proceso continuo, no un destino. Mantén tu WordPress, tus temas y tus plugins siempre actualizados, utiliza contraseñas robustas y considera activar un firewall. Si en algún momento te sientes abrumado, no dudes en pedir ayuda a tu proveedor de hosting o a un profesional de seguridad. Tu sitio es tu activo digital, y merece la pena invertir tiempo y esfuerzo en mantenerlo a salvo.
