Cómo limpiar un sitio WordPress infectado: guía paso a paso
Detectar que tu sitio WordPress ha sido infectado con malware puede ser una experiencia angustiante. Ver tu web hackeada, con anuncios extraños, redirecciones a páginas desconocidas o incluso bloqueada por Google es frustrante.
Pero respira. No estás solo y esto tiene solución.
En esta guía paso a paso, muy visual y pensada para principiantes, te voy a enseñar a limpiar un sitio WordPress infectado desde cero. No necesitas ser un experto en programación, solo seguir el orden lógico de los pasos y tener un poco de paciencia.
Vamos a ello.
Fase 1: Preparación y Diagnóstico Inicial (Antes de Tocar Nada)
Lo primero es lo primero. Antes de borrar archivos a lo loco, necesitas saber qué tipo de infección tienes y asegurarte de no perder tu contenido.
1.1. Respaldar Todo (Sí, Todo)
[WARNING] No intentes limpiar el sitio sin un respaldo. Si cometes un error, podrías perder todo tu contenido (posts, páginas, imágenes). El respaldo es tu red de seguridad.
Necesitas dos copias de seguridad:
- Respaldo de Archivos: Conéctate a tu hosting mediante FTP (FileZilla es gratuito) o al administrador de archivos de tu panel de control (cPanel, Plesk o Syspanel). Descarga la carpeta pública (normalmente llamada
public_htmlowww) a tu ordenador. - Respaldo de Base de Datos: Entra en tu panel de hosting (si usas Syspanel, el acceso es por el puerto 2106), busca la sección de bases de datos MySQL o MariaDB y exporta la base de datos de tu WordPress (normalmente un archivo
.sql).
1.2. Identificar el Tipo de Infección
No todos los malware son iguales. Observa los síntomas:
- Redirecciones: ¿Tu web te lleva a páginas de farmacias, casinos o de "tu dispositivo está infectado"?
- Anuncios intrusivos: ¿Aparecen banners raros que tú no has puesto?
- Archivos nuevos: ¿Ves archivos con nombres extraños como
wp-login.php.bakosystem.phpen tu servidor? - Web lenta: ¿Tu sitio tarda muchísimo en cargar sin razón aparente?
- Aviso de Google: ¿Google te muestra un aviso de "Sitio engañoso" o "Este sitio puede estar pirateado"?
Tener una idea del síntoma te ayudará a buscar el archivo malicioso concreto, pero el proceso de limpieza general es el mismo.
Fase 2: Limpieza Manual del Sitio (El Método Paso a Paso)
Ahora que tienes tu respaldo seguro, vamos a ensuciarnos las manos. La idea es eliminar el código malicioso y restaurar la integridad de WordPress.
2.1. Acceso y Puesta en Modo Mantenimiento
Primero, desconecta tu sitio del público. Puedes activar el "Modo Mantenimiento" de WordPress desde Ajustes > Mantenimiento (si usas un plugin) o simplemente creando un archivo llamado .maintenance en la carpeta raíz de tu instalación. Esto evitará que los visitantes vean errores mientras trabajas.
Segundo, cambia todas tus contraseñas. Esto incluye:
- La contraseña de tu cuenta de WordPress (admin).
- La contraseña de tu base de datos.
- La contraseña de tu FTP.
- La contraseña de tu correo electrónico asociado al dominio.
Usa contraseñas seguras, con mayúsculas, minúsculas, números y símbolos.
2.2. Inspección de Archivos en Busca de Malware
Conecta por FTP o con el administrador de archivos de tu hosting. Ahora viene el trabajo de detective.
- Revisa la carpeta
wp-content: Esta es la carpeta favorita de los hackers. Busca enwp-content/uploadsarchivos.phpque no deberían estar ahí. Los archivos legítimos aquí son imágenes, PDFs, etc. Si ves un.phpcon un nombre aleatorio, es sospechoso. - Busca archivos con nombres de doble extensión: Por ejemplo,
foto.jpg.phpodocumento.pdf.php. Son señales claras de malware. - Inspecciona los archivos principales: Descarga a tu ordenador los archivos
wp-config.php,index.php,functions.php(de tu tema) yheader.php. Ábrelos con un editor de texto como Notepad++ o Sublime Text.
¿Qué buscar en el código?
- Código cifrado o "codificado" que no entiendas. A veces es una larga línea de texto sin espacios.
- Funciones extrañas como
eval(),base64_decode(),gzinflate(),str_rot13(). Estas funciones se usan para ocultar código malicioso. - Enlaces a dominios externos que no reconoces.
[TIP] Si no estás seguro de si un archivo es legítimo, compáralo con una copia limpia de WordPress. Puedes descargar la misma versión desde wordpress.org y comparar los archivos del núcleo (los que están en la raíz y en las carpetas wp-admin y wp-includes).
2.3. Limpiar el Código Malicioso
Una vez que encuentres el código malicioso, tienes dos opciones:
- Eliminar el archivo completo: Si es un archivo sospechoso en
wp-content/uploads, lo más seguro es borrarlo. - Limpiar el archivo: Si el código malicioso está dentro de un archivo legítimo como
functions.php, debes editar el archivo y eliminar solo las líneas maliciosas. Busca el bloque de código extraño y bórralo. Guarda el archivo y súbelo de nuevo al servidor.
[WARNING] Si tienes dudas sobre qué parte del código es mala, es mejor reemplazar el archivo completo con una versión limpia. Por ejemplo, si tu header.php está infectado, puedes copiar el header.php de tu tema original desde el desarrollador del tema.
2.4. Limpiar la Base de Datos
El malware también puede esconderse en tu base de datos. Esto es más común en forma de "inyección SQL" o código malicioso en las entradas o widgets.
Accede a tu base de datos (phpMyAdmin es la herramienta más común en cPanel, y en Syspanel también la tienes disponible en el puerto 2106).
- Busca en la tabla
wp_options: La opciónsiteurlyhomedeben apuntar a tu dominio correcto. Si ves una URL extraña, cámbiala. - Revisa los widgets activos: En la tabla
wp_options, busca la fila conoption_name=sidebars_widgets. A veces el malware inyecta widgets ocultos. - Busca en las entradas y páginas (
wp_posts): Usa el buscador de phpMyAdmin para buscar cadenas como<script,eval(oiframeen el contenido de tus posts. Si encuentras algo, edita la entrada y elimina el código malicioso.
[INFO] Si no te sientes cómodo editando la base de datos, puedes usar un plugin de seguridad que haga una limpieza automática, pero para esta guía estamos haciendo el proceso manual.
Fase 3: Reinstalar el Núcleo de WordPress y Actualizar Todo
Una vez que has limpiado lo más visible, es hora de reforzar el sistema y eliminar cualquier resto.
3.1. Reinstalar WordPress
Esta es una de las mejores formas de asegurar que los archivos del núcleo están limpios.
- Ve a tu escritorio de WordPress.
- Ve a Escritorio > Actualizaciones.
- Haz clic en el botón "Vuelve a instalar ahora" (o "Reinstalar versión X.X").
Esto descargará archivos limpios del núcleo de WordPress y reemplazará los que pudieran estar dañados o infectados.
3.2. Actualizar Todo lo Demás
Un sitio desactualizado es un imán para el malware.
- Temas: Actualiza todos tus temas a la última versión. Si un tema está desactualizado, es un punto débil.
- Plugins: Actualiza todos tus plugins. Si un plugin ya no tiene soporte del desarrollador, es mejor desinstalarlo y buscar una alternativa.
[TIP] Después de la limpieza, elimina los plugins y temas que no uses. Cada elemento extra es una puerta de entrada potencial.
Fase 4: Verificación y Refuerzo de la Seguridad
Tu sitio está limpio, pero no quieres que vuelva a pasar. Vamos a blindarlo.
4.1. Verificar que Google ha Levantado el Aviso
Si Google marcó tu sitio como engañoso, necesitas solicitar una revisión.
- Ve a Google Search Console.
- En "Problemas de seguridad", verás los detalles de la infección.
- Haz clic en "Solicitar revisión" y explica cómo has limpiado tu sitio.
La revisión puede tardar desde unas horas hasta unos días.
4.2. Instalar un Plugin de Seguridad
Un buen plugin de seguridad actúa como un escudo y un escáner. Algunas opciones populares y gratuitas son:
- Wordfence Security
- Sucuri Security
- iThemes Security
Estos plugins te ofrecen:
- Escaneos periódicos de archivos y base de datos.
- Firewall para bloquear tráfico malicioso.
- Protección de inicio de sesión (con dos factores o limitación de intentos).
4.3. Cambiar las Claves de Seguridad (Salts) de WordPress
Esto invalida cualquier sesión de usuario que el hacker pudiera tener abierta.
- Edita tu archivo
wp-config.php. - Busca la sección que define las constantes
AUTH_KEY,SECURE_AUTH_KEY,LOGGED_IN_KEY, etc. - Borra esas líneas y ve a la página https://api.wordpress.org/secret-key/1.1/salt/ para generar nuevas claves.
- Pega las nuevas claves en tu
wp-config.phpy guarda el archivo.
4.4. Buenas Prácticas de Mantenimiento
- Mantén todo actualizado (WordPress, temas y plugins).
- Usa contraseñas fuertes y únicas para todo.
- Haz respaldos frecuentes (al menos una vez al mes, o semanal si actualizas mucho).
- No uses temas o plugins piratas (nulled), ya que suelen tener puertas traseras.
[INFO] Si tu hosting usa Syspanel, recuerda que el puerto de acceso es el 2106. Dentro del panel, asegúrate de tener activadas las herramientas de seguridad que ofrezca, como la protección de directorios o el bloqueo de IPs.
Preguntas Frecuentes (FAQ) sobre Limpieza de WordPress
¿Cuánto tiempo tarda en limpiar un sitio WordPress infectado?
Depende de la gravedad. Para un usuario principiante, puede llevar entre 2 y 6 horas si sigues esta guía paso a paso. Si es una infección muy profunda, puede llevar un día entero.
¿Puedo limpiar mi sitio sin pagar a un profesional?
Sí, con esta guía puedes hacerlo tú mismo si eres meticuloso y sigues los pasos. Si no te sientes seguro, siempre puedes contratar un servicio de limpieza profesional como el de Sucuri o tu propia agencia de hosting.
¿Qué pasa si el malware vuelve a aparecer después de limpiarlo?
Esto suele significar que quedó una "puerta trasera" (backdoor) que no eliminaste. Es un archivo que permite al hacker volver a entrar. Repite la limpieza prestando especial atención a archivos nuevos en wp-content/uploads y a los archivos de tu tema y plugins. Considera reinstalar completamente el tema y los plugins desde cero.
¿Es necesario cambiar todas las contraseñas?
Sí, absolutamente. Es la única forma de asegurar que el atacante no pueda volver a entrar con las credenciales antiguas que pudo haber robado.
¿Qué es un backdoor o puerta trasera?
Es un archivo malicioso que se crea para permitir el acceso remoto al servidor sin pasar por el panel de administración de WordPress. Suelen tener nombres que imitan a archivos legítimos del sistema.
¿Un plugin de seguridad puede limpiar mi sitio automáticamente?
Algunos sí, como el de Sucuri o Wordfence, tienen funciones de limpieza automática en sus versiones premium. Sin embargo, te recomiendo hacer una limpieza manual primero para entender qué pasó y luego usar el plugin como medida de protección.
¿Qué hago si no tengo acceso al panel de administración de WordPress?
Si el hacker te bloqueó, deberás acceder por FTP y eliminar el plugin o tema que causa el bloqueo. Otra opción es usar phpMyAdmin para cambiar tu contraseña de administrador directamente en la base de datos.
¿Perderé mi contenido si limpio el sitio?
No, si sigues los pasos correctamente. El contenido (posts y páginas) está en la base de datos, y el malware se esconde en archivos o en código inyectado. Mientras no borres la base de datos ni elimines archivos de tu tema sin reemplazarlos, tu contenido estará a salvo.
Limpiar un sitio WordPress infectado es un proceso que requiere calma y método. No te saltes pasos y, sobre todo, refuerza la seguridad después. Con un poco de esfuerzo, tu web volverá a estar sana y fuerte.
