Cómo detectar y eliminar malware en WordPress sin perder tu tienda
Cómo detectar y eliminar malware en tu tienda WordPress
¿Por qué tu tienda WordPress es un blanco frecuente?
Una tienda en línea comprometida no solo pierde ventas durante las horas que está caída. Pierde datos de clientes, historial de pedidos, configuraciones críticas y, en muchos casos, la confianza que tardaste meses en construir. El malware en WordPress no siempre es visible: puede estar operando silenciosamente, redirigiendo tráfico, robando credenciales o inyectando código en tus páginas de producto sin que lo notes.
WordPress concentra más del 40% de los sitios web del mundo, lo que lo convierte en el objetivo más atacado por scripts automatizados que buscan versiones desactualizadas, plugins con vulnerabilidades conocidas o contraseñas débiles. Si tu tienda también opera en canales como Mercado Libre mediante integraciones, un compromiso de seguridad puede afectar la sincronización de stock, la gestión de pedidos y la reputación de tu cuenta vendedora al mismo tiempo.
No es alarmismo. Es el escenario que enfrentan decenas de tiendas cada semana.
Qué necesitas preparar antes de empezar
Limpiar malware sin preparación previa puede dejarte sin acceso al sitio o borrar archivos que necesitas. Antes de tocar cualquier archivo, asegúrate de tener estos elementos listos:
- Respaldo completo del sitio y la base de datos: usa herramientas como UpdraftPlus, Jetpack Backup o el panel de tu hosting para guardar una copia íntegra antes de cualquier intervención.
- Acceso FTP o al gestor de archivos del servidor: necesitarás navegar por los directorios de WordPress directamente, no solo desde el panel de administración.
- Credenciales de la base de datos: disponibles en tu archivo
wp-config.php; las necesitarás si debes restaurar tablas específicas. - Plugins y temas actualizados: las versiones desactualizadas son la puerta de entrada más común. Actualiza antes de escanear para no confundir vulnerabilidades conocidas con infecciones activas.
- Acceso al panel de hosting: algunos procesos de limpieza requieren reiniciar servicios o revisar logs del servidor.
Con esto listo, el proceso es más controlado y reversible si algo sale mal.
Cómo detectar malware en tu sitio WordPress
Paso 1: Realiza un escaneo completo con una herramienta especializada
El primer paso es dejar que una herramienta analice tu instalación de forma sistemática. Wordfence y Sucuri Security son las opciones más usadas en el ecosistema WordPress: ambas comparan tus archivos contra versiones limpias conocidas, detectan patrones de código malicioso y marcan archivos modificados sin autorización.
Instala el plugin desde el repositorio oficial, actívalo y ejecuta un escaneo completo. El proceso puede tardar varios minutos dependiendo del tamaño de tu instalación. No lo interrumpas.
Paso 2: Interpreta el reporte y prioriza los hallazgos
El reporte post-escaneo puede ser extenso. No todos los avisos son igual de críticos. Aprende a leerlo:
- Archivos modificados en el núcleo de WordPress: alta prioridad. Ningún archivo del core debería estar alterado.
- Código desconocido en plugins o temas: revisa si el plugin tiene actualizaciones pendientes o si fue instalado desde una fuente no oficial.
- Archivos PHP en directorios de uploads: señal de alerta seria. Los archivos de subida no deberían contener código ejecutable.
- IPs o URLs sospechosas en los logs: indican intentos de acceso o comunicación con servidores externos.
Anota cada hallazgo antes de actuar. Borrar sin entender puede romper funcionalidades legítimas.
Paso 3: Verifica la integridad de plugins y temas
Los plugins y temas son el vector de ataque más frecuente, especialmente los que llevan semanas sin actualizarse o los que fueron descargados de fuentes no oficiales. Para cada plugin o tema sospechoso:
- Descarga la versión oficial desde el repositorio de WordPress.org.
- Compara los archivos usando una herramienta de diferencias (diff) o el propio comparador de Wordfence.
- Si detectas líneas de código que no existen en la versión limpia, ese archivo está comprometido.
Los temas nulled o plugins pirateados casi siempre traen backdoors. Si tienes alguno instalado, elimínalo ahora, sin importar si el escaneo no lo marcó explícitamente.
Cómo eliminar el malware detectado de forma segura
Aquí es donde muchos cometen el error de actuar rápido y borrar archivos sin verificar su función. La eliminación segura sigue un orden específico:
- Elimina primero los archivos claramente maliciosos: los que el escáner identificó con certeza y que no corresponden a ningún plugin o tema legítimo.
- Reemplaza archivos del núcleo alterados: descarga una copia limpia de la misma versión de WordPress desde wordpress.org y sustituye los archivos modificados. No reemplaces
wp-config.phpni la carpetawp-contentcompleta. - Reinstala plugins y temas comprometidos: desactívalos, elimínalos completamente y reinstálalos desde el repositorio oficial.
- Revisa la base de datos: el malware a veces inyecta código en opciones de WordPress o en el contenido de páginas. Usa herramientas como WP-DBManager o accede directamente via phpMyAdmin para buscar cadenas sospechosas como
eval(base64_decodeo<script src="httpen tablas comowp_optionsywp_posts. - Cambia todas las contraseñas: administrador de WordPress, FTP, base de datos, panel de hosting y cualquier servicio conectado. Hazlo después de limpiar, no antes, o el atacante puede recuperar acceso.
Si el nivel de compromiso es profundo y no tienes certeza de haber limpiado todo, la opción más segura es restaurar desde un respaldo previo a la infección y aplicar las actualizaciones pendientes inmediatamente después.
Checklist de verificación post-eliminación
Antes de dar el sitio por limpio, recorre esta lista punto por punto:
- ✅ Se realizó un segundo escaneo completo y no aparecen nuevas alertas.
- ✅ Todos los plugins y temas funcionan sin errores en el frontend y el backend.
- ✅ Los registros de pedidos, usuarios y configuraciones de WooCommerce están intactos.
- ✅ El sitio carga correctamente desde distintos navegadores y dispositivos.
- ✅ No hay redirecciones inesperadas al navegar por las páginas de producto o checkout.
- ✅ Google Search Console no muestra alertas de seguridad activas para tu dominio.
- ✅ Las contraseñas de todos los accesos críticos fueron actualizadas.
- ✅ El archivo
wp-config.phptiene las claves de seguridad (secret keys) regeneradas.
Si algún punto falla, no declares el sitio limpio todavía. Un solo archivo comprometido que quedó activo puede reinfectar todo en horas.
Qué revisar si algo falla durante la limpieza
El proceso no siempre es lineal. Estos son los problemas más frecuentes y cómo resolverlos:
- Perdiste acceso al panel de administración: intenta acceder via FTP y revisa si el archivo
wp-login.phpfue alterado. Si es así, reemplázalo con la versión limpia. Si el problema persiste, restaura el respaldo previo para recuperar acceso temporal. - El sitio muestra pantalla en blanco después de eliminar archivos: activaste el modo debug en
wp-config.php(define('WP_DEBUG', true);) para ver el error exacto. Probablemente eliminaste un archivo que sí era legítimo. - El escaneo sigue encontrando los mismos archivos después de eliminarlos: hay un backdoor activo que los regenera. Busca en
wp-content/uploadsarchivos PHP que no deberían estar ahí y revisa si alguna tarea programada (cron job) está ejecutando código externo. - Perdiste configuraciones de WooCommerce: si tienes respaldo de la base de datos, puedes restaurar solo las tablas
wp_optionsywp_woocommerce_*sin necesidad de restaurar el sitio completo. - Google marcó tu sitio como peligroso: una vez limpio, solicita una revisión manual desde Google Search Console en la sección «Problemas de seguridad». El proceso puede tardar entre 24 y 72 horas.
Cómo mantener tu tienda protegida a largo plazo
Limpiar una infección es resolver el síntoma. La seguridad real es un proceso continuo que reduce la probabilidad de que vuelva a ocurrir.
- Actualiza WordPress, plugins y temas de forma regular: la mayoría de las infecciones explotan vulnerabilidades ya documentadas y parcheadas. Si no actualizas, eres un blanco fácil.
- Usa contraseñas únicas y activa la autenticación de dos factores: especialmente en cuentas con rol de administrador. Un gestor de contraseñas elimina la excusa de «es difícil recordarlas».
- Limita los intentos de inicio de sesión: plugins como Limit Login Attempts Reloaded bloquean IPs que intentan acceso por fuerza bruta.
- Implementa un firewall de aplicación web (WAF): Wordfence Premium y Sucuri ofrecen esta capa que filtra tráfico malicioso antes de que llegue a tu servidor.
- Programa respaldos automáticos con retención de al menos 30 días: si una infección pasa desapercibida por semanas, necesitas poder retroceder lo suficiente.
- Monitorea la actividad de usuarios y archivos: cualquier cambio inesperado en archivos del núcleo o creación de nuevos usuarios administradores debe disparar una alerta inmediata.
¿Tienes un plan de respuesta documentado si tu tienda vuelve a ser comprometida? Si la respuesta es no, ese es el primer hueco que debes cerrar.
La seguridad también protege tus canales de venta conectados
Si vendes en Mercado Libre desde WooCommerce, un sitio comprometido no solo afecta tu tienda: puede interrumpir la sincronización de inventario, generar inconsistencias en los precios publicados y dejar pedidos sin procesar mientras resuelves el problema. Cada hora de inactividad tiene un costo directo en ventas y un costo indirecto en reputación dentro de la plataforma.
Mantener tu instalación de WordPress sana es la base sobre la que funciona todo lo demás. Si además quieres que la sincronización entre WooCommerce y Mercado Libre sea automática y confiable, el plugin para sincronizar WooCommerce con Mercado Libre de WooSync mantiene el stock, los precios y los pedidos alineados entre ambos canales sin que tengas que intervenir manualmente cada vez que hay un cambio.
Una tienda segura y bien integrada no es un lujo. Es el piso mínimo para operar con tranquilidad en e-commerce multicanal.
Y si ya tienes la seguridad resuelta pero todavía gestionas tu inventario de forma separada en cada canal, ese es el siguiente problema que vale la pena atacar. El plugin para conectar Mercado Libre con WooCommerce de WooSync elimina esa fricción operativa desde la configuración inicial.