Cómo detectar y eliminar malware en WordPress sin herramientas complejas
¿Tu WordPress va lento, muestra errores extraños o redirige a páginas raras? No entres en pánico. Es muy probable que tu sitio haya sido infectado con malware. La buena noticia es que, en la mayoría de los casos, puedes detectar y eliminar el malware sin necesidad de ser un hacker experto ni usar herramientas de pago complejas. En esta guía paso a paso, te voy a enseñar a limpiar WordPress de forma manual, usando solo el panel de administración, el administrador de archivos de tu hosting y un poco de lógica. Vamos a ello.
¿Cómo saber si mi WordPress está hackeado? (Síntomas comunes)
Antes de lanzarnos a limpiar, es fundamental confirmar que realmente hay un problema. A veces una actualización fallida o un plugin incompatible dan síntomas similares. Aquí tienes las señales más habituales de que tu sitio tiene malware:
- Avisos de Google: Al buscar tu web en Google, aparece un mensaje como "Este sitio puede estar pirateado" o "Sitio engañoso".
- Redirecciones sospechosas: Al entrar a tu web desde Google o redes sociales, te redirige a farmacias online, casinos o páginas de publicidad.
- Ventanas emergentes (pop-ups) extrañas: Aparecen anuncios que tú no has puesto, incluso para usuarios registrados.
- Rendimiento horrible: La web tarda muchísimo en cargar porque está enviando spam o ejecutando scripts en segundo plano.
- Usuarios o archivos nuevos: Detectas administradores que no has creado o archivos con nombres raros (como
c0d3.phposhell.php) en el servidor. - Contenido modificado: Tus publicaciones tienen enlaces ocultos (spam) o el pie de página (footer) muestra textos que no reconoces.
Si has visto al menos dos de estas señales, es hora de actuar. No te preocupes, vamos a eliminar malware WordPress paso a paso.
Fase 1: Preparación y copia de seguridad (El paso que no debes saltarte)
Este es el paso más aburrido pero el más importante. Antes de tocar nada, necesitas una copia de seguridad completa. Si cometemos un error al limpiar, podrás restaurar tu sitio sin perder contenido. No uses solo el backup del hosting (que a veces es de hace semanas), haz uno manual.
¿Cómo hacer una copia de seguridad manual?
- Archivos: Accede al administrador de archivos de tu hosting (cPanel, Plesk, o el que uses) o conéctate por FTP con FileZilla. Descarga la carpeta completa
public_html(owww) a tu ordenador. Esto puede tardar unos minutos. - Base de datos: Ve a phpMyAdmin (generalmente en cPanel). Selecciona tu base de datos de WordPress (la que empieza por
wp_). Haz clic en "Exportar" y elige el método "Rápido". Descarga el archivo.sql.
[WARNING] IMPORTANTE: Guarda esta copia en un lugar seguro fuera de tu servidor (en tu PC o en la nube). Si el hosting está muy infectado, a veces el malware se esconde en los backups del propio hosting.
Fase 2: Detectar malware en WordPress (El rastreo manual)
Ahora que tienes tu red de seguridad, vamos a buscar al intruso. No necesitas escáneres complejos; vamos a usar la lógica y el acceso a los archivos.
1. Revisa los archivos núcleo (Core) de WordPress
Los hackers suelen modificar los archivos base para inyectar código. Vamos a verificar su integridad.
- Ve a Escritorio > Actualizaciones.
- Haz clic en el botón "Volver a instalar WordPress" (te pedirá tus credenciales FTP o de administrador de archivos). Esto reinstala los archivos del núcleo sin tocar tu contenido ni tus plugins. Es la forma más rápida de limpiar WordPress de modificaciones en el núcleo.
[TIP] Si no puedes acceder al panel de administración, descarga la última versión de WordPress desde wordpress.org, descomprímela y sube las carpetas
wp-adminywp-includespor FTP, sobrescribiendo las existentes. No subaswp-contentporque ahí están tus cosas.
2. Busca archivos sospechosos en el administrador de archivos
Esta es la parte de "detective". Vamos a buscar archivos que no deberían estar ahí.
- Abre el Administrador de Archivos de tu hosting (o tu cliente FTP).
- Ve a la raíz de tu web (normalmente
public_html). - Ordena los archivos por "Última modificación". Busca archivos modificados en las últimas 24-48 horas que no reconozcas.
- Presta especial atención a los archivos con extensiones peligrosas:
.php,.phtml,.php5,.suspected,.ico(sí, a veces esconden código ahí).
¿Qué archivos son legítimos? En la raíz deberías tener: index.php, wp-config.php, .htaccess, wp-admin, wp-includes, wp-content y wp-settings.php. Cualquier otro .php en la raíz (como shell.php, admin.php, upload.php) es altamente sospechoso y debe ser eliminado.
3. Inspecciona el archivo .htaccess
Este archivo es un imán para el malware. Controla las redirecciones y el acceso a tu web.
- Localiza el archivo
.htaccessen la raíz. - Haz clic derecho y "Editar" o "Ver". Debería tener un aspecto similar a este (aunque puede variar):
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
- Si ves código raro (líneas con
RewriteRulehacia dominios extraños, código PHP base64, etc.), borra todo el contenido y pega solo el código de arriba (el bloque de WordPress). Luego guarda los cambios.
[WARNING] Si editas
.htaccessy tu web da error 500, no pasa nada. Solo tienes que subir el archivo original de nuevo desde tu copia de seguridad. Por eso es vital tenerla.
4. Revisa los plugins y temas (La puerta de entrada favorita)
El 90% de las infecciones entran por plugins o temas desactualizados o piratas.
- Ve a Escritorio > Plugins. Desactiva TODOS los plugins. No los borres, solo desactívalos.
- Ahora ve a Apariencia > Temas. Activa un tema por defecto (como Twenty Twenty-Four) si no lo tienes.
- Prueba tu web. Si la web vuelve a la normalidad, el malware estaba en un plugin o en tu tema activo.
¿Cómo saber cuál es?
- Reactiva los plugins uno a uno y revisa tu web después de cada activación. Cuando el problema vuelva a aparecer, habrás encontrado al culpable.
Para plugins y temas, la regla de oro es:
- Borra cualquier plugin o tema que no uses.
- Borra cualquier plugin o tema que hayas descargado de sitios piratas (llamados "nulled"). Están llenos de malware.
- Actualiza todos los plugins y temas a su última versión.
Fase 3: Eliminar el malware de WordPress (La limpieza profunda)
Ya hemos encontrado los archivos más evidentes. Ahora vamos a por los que se esconden bien.
1. Buscar código malicioso en wp-content
Dentro de wp-content hay una carpeta llamada uploads. Ahí se guardan las imágenes. A veces, los hackers suben archivos .php disfrazados de imágenes o en subcarpetas.
- Navega a
wp-content/uploadsen tu administrador de archivos. - Busca archivos
.phpdentro de esta carpeta. No debería haber ninguno. Si encuentras uno, bórralo. - Presta atención a carpetas con nombres extraños o con muchos archivos
.php.
2. Analizar el archivo functions.php de tu tema activo
Este archivo se ejecuta en cada página. Es un lugar común para esconder malware.
- Ve a
wp-content/themes/[nombre-de-tu-tema]/functions.php. - Ábrelo y busca código codificado (como
eval(base64_decode(...))) o líneas que hagan referencia a dominios externos. - Si ves algo que no entiendes o que parece sospechoso, bórralo. Si no estás seguro, puedes reemplazar el archivo por una versión limpia descargando el tema desde el repositorio oficial (si es un tema gratuito).
[TIP] Si usas un tema premium, la mejor opción es descargar la última versión desde la web del desarrollador y subirla por FTP, sobrescribiendo la carpeta del tema. Esto elimina cualquier modificación maliciosa.
3. Revisar la base de datos (phpMyAdmin)
El malware también se esconde en la base de datos, inyectando enlaces en tus publicaciones o creando tablas de spam.
- Accede a phpMyAdmin desde tu hosting.
- Selecciona tu base de datos y haz clic en "Buscar" (pestaña superior).
- Busca términos comunes de malware:
eval(,base64_decode,<script,http://spam.com,viagra, etc. - Si encuentras resultados en las tablas
wp_postsowp_options, tendrás que editar esos registros y eliminar el código malicioso. Esto es más técnico. - Solución fácil: Si el problema está en las publicaciones, puedes usar el plugin "Better Search Replace" para reemplazar el enlace malicioso por una cadena vacía. Pero como estamos evitando herramientas complejas, lo más fácil es restaurar la base de datos desde la copia de seguridad limpia que hiciste al principio (si la hiciste antes de la infección).
Fase 4: Seguridad post-limpieza (Cómo evitar que vuelva a pasar)
Limpiar es solo el 50% del trabajo. La otra mitad es blindar tu WordPress para que no vuelvan a entrar.
1. Actualiza TODO
- WordPress: Escritorio > Actualizaciones.
- Plugins y Temas: Actualiza todo lo que tenga una actualización disponible. Borra los que estén sin usar.
2. Cambia todas tus contraseñas
- Base de datos: En cPanel, cambia la contraseña del usuario de la base de datos y actualiza el archivo
wp-config.phpcon la nueva. - Panel de WordPress: Ve a Usuarios > Perfil y establece una nueva contraseña fuerte.
- FTP y cPanel: Cambia la contraseña de tu cuenta de hosting.
3. Instala un plugin de seguridad (Gratis y sencillo)
Aunque no queramos herramientas complejas, un buen plugin de seguridad es un seguro de vida. Te recomiendo Wordfence o All In One WP Security. Ambos tienen versiones gratuitas que te permiten:
- Escanear tu web en busca de malware periódicamente.
- Bloquear IPs maliciosas.
- Añadir un firewall básico.
[INFO] Configura el escaneo automático para que se ejecute una vez al día. Así, si algo vuelve a aparecer, te enterarás al instante.
4. Asegura tu acceso al hosting
Si usas un panel como Syspanel (antes conocido como HestiaCP), recuerda que el acceso a tu panel de control se realiza a través del puerto 2106 (por ejemplo: https://tudominio.com:2106). Asegúrate de que la contraseña de acceso a Syspanel sea única y muy robusta, ya que es la llave maestra de tu servidor.
Preguntas Frecuentes (FAQ) sobre WordPress hackeado
¿Qué hago si mi sitio sigue infectado después de seguir todos los pasos?
Si has seguido la guía y el problema persiste, el malware es muy profundo (en el servidor o en archivos fuera de public_html). En este punto, te recomiendo contactar a tu proveedor de hosting y explicarles la situación. Ellos tienen herramientas de escaneo a nivel de servidor. Si no pueden ayudarte, considera contratar un servicio profesional de limpieza de malware (hay empresas especializadas por unos 50-100€).
¿Puedo evitar el hackeo usando solo Syspanel?
Syspanel (o HestiaCP) es un excelente panel de control que te permite gestionar archivos, bases de datos y dominios. Pero no es un antivirus. Para la seguridad de tu WordPress, necesitas combinar las buenas prácticas de esta guía (actualizaciones, contraseñas fuertes y plugins de seguridad) con un hosting confiable. Syspanel te facilita la gestión, pero la seguridad de tu web es responsabilidad tuya.
¿Cuánto tiempo se tarda en limpiar un WordPress hackeado manualmente?
Para un principiante, la primera vez puede llevar entre 2 y 4 horas, dependiendo de lo escondido que esté el malware. Una vez que le coges el truco, puedes hacerlo en 30-45 minutos. La paciencia es tu mejor aliada.
¿Qué pasa si no tengo copia de seguridad y el malware es imposible de eliminar?
Es la peor situación, pero no es el fin del mundo. Si el malware está inyectado en tu base de datos y no puedes limpiarlo, la opción más segura es reinstalar WordPress desde cero (instalando una nueva copia) y luego ir importando tu contenido desde una exportación XML (Escritorio > Herramientas > Exportar) si pudiste hacerla. Perderás el diseño y la configuración de plugins, pero salvarás tus textos e imágenes.
¿Los plugins de seguridad gratuitos son suficientes?
Para la mayoría de sitios web pequeños y medianos, sí. Un plugin gratuito como Wordfence te da escaneo diario, firewall básico y bloqueo de IPs. Las versiones de pago añaden escaneo en tiempo real y firewalls más avanzados, pero para un blog o una web de negocio local, el gratuito es más que suficiente si además sigues las buenas prácticas.
¿Google me penalizará si he sido hackeado?
Sí, Google puede marcar tu sitio como "peligroso" en los resultados de búsqueda. Una vez que hayas limpiado tu web, debes solicitarlo en Google Search Console (Herramienta de inspección de URLs y luego "Solicitar revisión"). Google revisará tu web y, si está limpia, quitará la advertencia en unos días. Es un proceso gratuito y necesario para recuperar tu tráfico.
En resumen: Detectar y eliminar malware WordPress no es magia negra. Con una copia de seguridad, un rastreo manual de archivos clave (.htaccess, functions.php, uploads) y una buena higiene de actualizaciones, puedes limpiar WordPress y dejarlo más seguro que antes. No olvides que la prevención es siempre mejor que la cura: actualiza, usa contraseñas fuertes y desconfía de los temas y plugins piratas. ¡Tu web te lo agradecerá!
