🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo eliminar malware de WordPress: guía paso a paso para principiantes

Actualizado el 9 de septiembre de 2025

¿Tu WordPress ha sido hackeado? Respira, esto tiene solución

Que aparezca una página extraña en tu web, que tus visitantes vean anuncios raros o que directamente no puedas acceder a tu panel de administración es una de las peores sensaciones para cualquier dueño de un sitio. Pero aquí tienes una buena noticia: la gran mayoría de sitios hackeados se pueden limpiar, incluso si no eres un experto en programación.

Esta guía está pensada para principiantes absolutos. No necesitas saber PHP, ni usar la terminal como un hacker de película. Solo necesitas paciencia, seguir los pasos en orden y, sobre todo, no entrar en pánico.

Vamos a ver cómo eliminar malware WordPress de forma segura, incluso si el sitio está completamente bloqueado. Al final, también te daré consejos para que esto no vuelva a ocurrir.


Paso 0: Prepara tu arsenal (antes de tocar nada)

Antes de empezar a borrar archivos o cambiar contraseñas, es fundamental que prepares el terreno. Actuar con calma es la clave del éxito.

1. Haz una copia de seguridad (aunque esté infectada)

Parece contradictorio, pero es el paso más importante. Necesitas una copia de tu sitio tal y como está ahora porque:

  • Te servirá para analizar el malware en un entorno seguro (tu ordenador).
  • Es tu red de seguridad: si algo sale mal durante la limpieza, puedes restaurar al estado "hackeado" y empezar de nuevo.

Accede a tu panel de control de hosting (cPanel, Syspanel, Plesk, etc.) y busca la sección de Gestor de Archivos o Backups. Descarga una copia completa de la carpeta public_html (o www) y exporta tu base de datos desde phpMyAdmin. Guárdalo todo en una carpeta local.

[WARNING] No uses esa copia para restaurar el sitio todavía. Solo es para análisis y emergencias. Si restauras un sitio infectado, volverás a estar en el punto de partida.

2. Cambia tus contraseñas (¡ya!)

Hazlo desde otro dispositivo (tu móvil, por ejemplo) y usando una red segura. Cambia:

  • La contraseña de tu cuenta de hosting (cPanel, Syspanel o similar).
  • La contraseña de tu base de datos.
  • La contraseña de tu correo electrónico asociado al dominio.

Esto corta el acceso a los atacantes que estén usando tus credenciales actuales.

3. Identifica el tipo de ataque

No es lo mismo tener un enlace oculto en el pie de página que un redireccionamiento total a una web de farmacia. Para saber a qué te enfrentas, visita tu web desde varios dispositivos y navegadores. ¿Qué ves?

  • ¿Anuncios emergentes que no pusiste tú?
  • ¿Redirección a sitios de apuestas, pornografía o farmacias?
  • ¿Página de error del servidor?
  • ¿Mensaje de "cuenta suspendida" de tu hosting?

Anota todo lo que veas. Te servirá para saber si el problema está en el núcleo de WordPress, en un plugin o en el servidor.


Paso 1: Accede a tu servidor por FTP o Gestor de Archivos

Para limpiar WordPress virus, necesitas acceso a los archivos del servidor. Tienes dos opciones:

  • Gestor de Archivos del hosting: Es la vía más fácil. Entra en tu panel de control (por ejemplo, Syspanel) y busca el icono de "Gestor de Archivos". Ahí podrás navegar por las carpetas de tu web.
  • Cliente FTP (FileZilla): Es una herramienta que te permite conectar tu ordenador al servidor. Necesitarás los datos FTP que te proporcionó tu hosting (servidor, usuario, contraseña y puerto, normalmente el 21).

[TIP] Si tu hosting usa Syspanel, el acceso al panel principal es a través del puerto 2106. El Gestor de Archivos estará dentro de esa interfaz.

Una vez dentro, verás la estructura de archivos de WordPress: wp-admin, wp-content, wp-includes y los archivos como wp-config.php o .htaccess.


Paso 2: El diagnóstico. Detecta el malware antes de borrar

No empieces a borrar archivos al azar. Necesitas un plan. La mayoría del malware se esconde en lugares comunes. Revisa estas zonas en orden:

2.1. Archivos principales del núcleo

  • wp-config.php: Ábrelo con un editor de texto. Busca líneas extrañas como eval(base64_decode(...)), gzinflate(...) o código que no reconozcas al final del archivo. Un wp-config.php legítimo solo tiene definiciones de constantes de base de datos, claves de seguridad y el prefijo de tablas.
  • .htaccess: Este archivo es un imán para el malware. Si ves líneas que empiezan con RewriteRule que redirigen a dominios raros (como http://spam-site.com), estás infectado. También busca SetHandler o AddHandler con archivos .php en lugares extraños.

2.2. La carpeta wp-content

  • uploads: Es el lugar favorito para esconder archivos PHP maliciosos. Busca archivos con nombres como wp-load.php, shell.php, c99.php, r57.php o cualquier .php que no hayas subido tú. Ordena los archivos por "última modificación" y revisa los que se hayan modificado en fechas recientes (el día del hackeo).
  • themes y plugins: Revisa si hay archivos extra en las carpetas de tus temas y plugins activos. Un código malicioso puede inyectarse en el functions.php de tu tema. Ábrelo y busca funciones como eval, base64_decode, str_rot13 o shell_exec.

2.3. Archivos sueltos y ocultos

En la raíz de tu web (donde están wp-admin, wp-content, etc.) suele haber archivos con nombres raros como 0x.php, 1.php, x.php o archivos que son una mezcla de letras y números. Si ves un archivo .php que no es index.php, wp-config.php o xmlrpc.php, desconfía.

[INFO] Muchos ataques crean archivos con permisos 666 o 777 para que el servidor los ejecute. Si ves archivos con esos permisos, es una señal de alarma.


Paso 3: La limpieza manual paso a paso

Una vez que has detectado los archivos sospechosos, es hora de pasar a la acción. Sigue este orden:

3.1. Elimina los archivos maliciosos

Selecciona los archivos que has identificado como malware y bórralos. No los muevas a la papelera, elimínalos definitivamente.

3.2. Limpia el wp-config.php y .htaccess

Si estaban modificados, tienes dos opciones:

  • Restaurar desde una copia limpia: Si tienes una copia de seguridad de antes del hackeo, sube esos archivos limpios.
  • Editar manualmente: Abre el archivo y elimina las líneas de código malicioso. Para .htaccess, si no estás seguro de qué está bien, puedes borrar todo el contenido y poner el código básico de WordPress:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

3.3. Reinstala el núcleo de WordPress

Esta es la forma más rápida de asegurar que los archivos del núcleo están limpios.

  1. Ve a Escritorio -> Actualizaciones en tu panel de administración (si puedes acceder).
  2. Haz clic en "Reinstalar la versión X.X.X".

Si no puedes acceder al panel, descarga WordPress desde wordpress.org, descomprímelo en tu ordenador y sube las carpetas wp-admin y wp-includes por FTP, sobrescribiendo las existentes. No subas la carpeta wp-content porque ahí están tus temas y plugins (y podría contener el malware).

3.4. Limpia y actualiza tus temas y plugins

  • Elimina los que no uses: Si tienes temas o plugins que no estás utilizando, bórralos. Son puertas de entrada fáciles.
  • Actualiza los que uses: Ve a Escritorio -> Actualizaciones y actualiza todo lo que puedas.
  • Reinstala los que estén modificados: Si tu tema activo tenía malware en functions.php, la mejor opción es descargar una copia nueva del tema desde el repositorio oficial o desde la web del desarrollador y reemplazar los archivos.

3.5. Cambia las claves de seguridad de WordPress

Edita tu wp-config.php y busca estas líneas:

define('AUTH_KEY', '...');
define('SECURE_AUTH_KEY', '...');
define('LOGGED_IN_KEY', '...');
define('NONCE_KEY', '...');
define('AUTH_SALT', '...');
define('SECURE_AUTH_SALT', '...');
define('LOGGED_IN_SALT', '...');
define('NONCE_SALT', '...');

Reemplaza los valores por otros nuevos. Puedes generarlos automáticamente en la página oficial de WordPress: https://api.wordpress.org/secret-key/1.1/salt/. Esto invalida las sesiones de los atacantes.


Paso 4: Limpia la base de datos

El malware no solo vive en archivos, también puede estar en tu base de datos. Los ataques de inyección SQL son comunes.

4.1. Accede a phpMyAdmin

Entra en tu panel de control del hosting (Syspanel, cPanel, etc.) y busca el acceso a phpMyAdmin. Selecciona la base de datos de tu WordPress.

4.2. Busca contenido inyectado

Haz clic en la pestaña "Buscar" (en la parte superior de phpMyAdmin) y busca estos patrones:

  • <script (para encontrar scripts inyectados).
  • eval( (para funciones maliciosas).
  • base64_decode (para código ofuscado).
  • Nombres de dominio sospechosos (como hackers.com o spam.org).

Selecciona la opción "Reemplazar" y deja el campo de reemplazo vacío para eliminar las coincidencias. Ten mucho cuidado con esto: asegúrate de que estás borrando solo el malware y no contenido legítimo de tus entradas.

[WARNING] Antes de hacer cualquier cambio en la base de datos, exporta una copia de seguridad de la misma. Un error aquí puede romper tu sitio por completo.

4.3. Revisa los usuarios

Ve a la tabla wp_users (el prefijo puede ser diferente). ¿Hay usuarios que no reconoces? Bórralos. También revisa la tabla wp_usermeta y busca la capacidad administrator. Asegúrate de que solo tus usuarios de confianza tienen ese rol.


Paso 5: Refuerza la seguridad y prevén futuros ataques

Ya has limpiado tu web. Ahora toca blindarla para que no vuelva a pasar. La seguridad WordPress es un proceso continuo, no un evento único.

5.1. Cambia todas las contraseñas (sí, otra vez)

  • Administradores de WordPress: Ve a Usuarios -> Perfil y cambia tu contraseña.
  • Base de datos: Cambia la contraseña de tu usuario MySQL desde el panel de hosting y actualízala en wp-config.php.
  • FTP y hosting: Cambia las contraseñas de acceso.

5.2. Instala un plugin de seguridad

Un buen plugin de seguridad es tu alarma antirrobo. Algunas opciones gratuitas y efectivas son:

  • Wordfence Security: Tiene firewall, escáner de malware y bloqueo de IPs.
  • Sucuri Scanner: Excelente para escaneos periódicos y monitoreo.
  • iThemes Security: Endurece WordPress con 30+ medidas de seguridad.

Configura al menos uno de ellos. Activa el escaneo automático diario y el bloqueo de intentos de acceso fallidos.

5.3. Mantén todo actualizado

  • WordPress: Activa las actualizaciones automáticas menores.
  • Temas y plugins: Actualízalos en cuanto salgan las nuevas versiones. Las vulnerabilidades conocidas son la puerta de entrada más común.

5.4. Haz copias de seguridad periódicas

No esperes al desastre. Configura copias de seguridad automáticas (diarias o semanales) de tus archivos y base de datos. Puedes usar un plugin como UpdraftPlus o las herramientas de tu hosting.


Preguntas frecuentes (FAQ) sobre cómo eliminar malware de WordPress

¿Cuánto tiempo se tarda en limpiar un WordPress hackeado?

Depende de la gravedad. Una limpieza básica de archivos puede llevar 1-2 horas. Si el malware está muy incrustado en la base de datos, puede llevar un día entero. La paciencia es clave.

¿Necesito ser un experto en programación para hacerlo?

No. Con esta guía, acceso a tu hosting y un poco de atención al detalle, puedes hacerlo tú mismo. Si te sientes abrumado, siempre puedes contratar un servicio profesional de limpieza.

¿Qué hago si mi hosting ha suspendido mi cuenta?

Contacta con tu proveedor de hosting inmediatamente. Explícales la situación y diles que estás limpiando el sitio. Ellos te darán acceso temporal o te guiarán. Algunos hostings ofrecen servicios de limpieza incluidos en el plan.

¿Por qué mi web sigue infectada después de limpiar los archivos?

Es posible que el atacante haya dejado una puerta trasera (backdoor) en un archivo que no has revisado, o que el malware esté en un lugar que no consideraste, como en un tema hijo o en un archivo de configuración del servidor. Revisa de nuevo los pasos 2 y 4.

¿Debo pagar por un servicio de limpieza profesional?

Si el hackeo es severo (redirecciones masivas, spam en la base de datos, o si no te sientes seguro), pagar por un servicio profesional (como Sucuri o el servicio de tu hosting) puede ahorrarte mucho tiempo y dolores de cabeza. El coste suele ser de 100 a 300 dólares.

¿Cómo sé si mi web está limpia después de la limpieza?

  • Escáneres online: Usa herramientas gratuitas como Sucuri SiteCheck o VirusTotal para escanear tu dominio.
  • Monitoreo continuo: El plugin de seguridad que instales te avisará de cualquier actividad sospechosa.
  • Comprueba tus páginas: Visita varias URLs de tu web y asegúrate de que no hay redirecciones ni contenido extraño.

Conclusión: tu web puede volver a estar sana

Eliminar malware de WordPress es un proceso metódico que requiere calma y atención. No es agradable descubrir que tu web ha sido hackeada, pero recuerda: no es un fracaso personal, le pasa hasta a los más grandes.

Sigue los pasos en orden, no te saltes las copias de seguridad y, sobre todo, aprende de la experiencia. La inversión en un buen plugin de seguridad y en mantener todo actualizado es infinitamente más barata que el coste de una limpieza de emergencia o, peor aún, la pérdida de la confianza de tus visitantes.

Ahora que ya sabes cómo detectar y limpiar un sitio hackeado, tómate un respiro. Has hecho el trabajo más difícil. El futuro de tu WordPress está en tus manos: mantenlo actualizado, haz copias de seguridad y duerme tranquilo sabiendo que estás preparado para lo que venga.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel