Mantenimiento WordPress · Seguridad WordPress

WordPress hackeado: qué hacer paso a paso para recuperarlo

Tu sitio WordPress muestra contenido extraño, Google lo marca como peligroso, o tu hosting te suspendió la cuenta. Estas son señales claras de que algo anda mal. El pánico es normal, pero hay pasos concretos que puedes seguir para recuperar el control. En esta guía te explico, en orden, qué hacer cuando tu WordPress fue hackeado, cómo limpiarlo y —lo más importante— cómo evitar que vuelva a pasar.

Limpieza y recuperación de un sitio hackeado
Recuperar un sitio implica limpiarlo y blindarlo.

Cómo saber si tu WordPress fue hackeado

A veces el ataque es evidente; otras veces tu sitio sigue “funcionando” mientras envía spam o redirige a tus visitantes sin que lo notes. Estas son las señales más comunes:

  • Tu sitio muestra anuncios, enlaces o contenido que no pusiste tú
  • Google Search Console te envía una alerta de contenido malicioso
  • Los visitantes ven una advertencia de “sitio peligroso” en el navegador
  • Tu hosting te suspende la cuenta por actividad sospechosa
  • Ves usuarios administradores que no creaste tú
  • Tu sitio redirige a otras páginas automáticamente, sobre todo desde Google o en móvil
  • Recibes avisos de que se envían miles de correos desde tu dominio

Importante: que tu sitio se vea normal no significa que esté limpio. Muchos ataques se esconden para durar lo más posible —mostrando el contenido malicioso solo a Google o a visitantes de ciertos países—. Si tienes una sola de estas señales, asume que hay un problema y actúa.

Paso 1: No entres en pánico, pero actúa rápido

Cada hora que pasa, el daño puede crecer: más archivos infectados, más páginas indexadas por Google con contenido malicioso, más correos de spam enviados desde tu servidor (lo que mancha la reputación de tu dominio y hace que tus correos legítimos terminen en spam). La rapidez importa, pero la prisa sin método empeora las cosas. Trabaja en orden.

Paso 2: Pon el sitio en mantenimiento y respáldalo “sucio”

Antes de tocar nada, haz una copia del estado actual —archivos y base de datos— aunque esté infectado. Suena contradictorio, pero esa copia es tu evidencia: te permite analizar el punto de entrada y volver atrás si algo sale mal durante la limpieza. Si puedes, activa un modo de mantenimiento para que los visitantes no vean el sitio comprometido mientras lo recuperas.

Paso 3: Cambia todas las contraseñas de inmediato

Usuario administrador de WordPress, panel de hosting (cPanel), base de datos, FTP/SFTP y correo asociado. Usa contraseñas largas y únicas para cada uno. Revisa también la lista de usuarios de WordPress y elimina cualquier administrador que no reconozcas —es una de las primeras cosas que crea un atacante para mantener el acceso—.

Paso 4: Restaura desde un backup limpio (si tienes uno)

Esta es la razón #1 por la que los backups son no negociables. Si tienes un backup reciente anterior al hackeo, restaurarlo es la opción más rápida y confiable. El reto es identificar cuándo empezó la infección: restaurar un backup que ya estaba comprometido no resuelve nada. Si no tienes backup… toma nota de la lección y nunca vuelvas a estar sin uno: te habría ahorrado todo lo que sigue.

Paso 5: Identifica el punto de entrada

Limpiar sin encontrar la puerta por donde entraron garantiza que volverán. Los hackeos de WordPress generalmente entran por:

  • Plugin o tema desactualizado con una vulnerabilidad pública conocida
  • Contraseña débil o reutilizada en varios servicios
  • Credenciales de FTP o hosting comprometidas
  • Tema o plugin pirata (“nulled”) con código malicioso incluido de fábrica
  • Hosting compartido donde otro sitio infectado contaminó el tuyo

Paso 6: Limpia los archivos y la base de datos

Esto requiere acceso por FTP o al administrador de archivos del hosting, y saber qué buscar. Busca archivos PHP modificados recientemente en carpetas donde no debería haber código personalizado (wp-includes, wp-admin, raíz). Lo más común son inyecciones de código ofuscado en functions.php, en archivos index.php o archivos sueltos con nombres aleatorios. La base de datos también puede tener inyecciones —en opciones, en el contenido de entradas o en usuarios ocultos—, así que revísala, no solo los archivos.

Paso 7: Actualiza absolutamente todo

WordPress core, todos los plugins y el tema. Si hay plugins o temas sin actualización disponible y sin soporte, elimínalos: un componente abandonado es una puerta abierta esperando. Reemplaza cualquier tema o plugin pirata por su versión oficial.

Cómo evitar que vuelva a pasar

Limpiar el sitio sin blindarlo es como cambiar la cerradura y dejar la ventana abierta. Una vez recuperado, instala estas protecciones:

  • Activa un firewall de aplicación (WAF) como el de Cloudflare, que filtra ataques antes de que lleguen a tu sitio
  • Oculta o cambia la URL de acceso al administrador (wp-login.php)
  • Activa la autenticación de dos factores (2FA) para todos los administradores
  • Configura backups automáticos, externos y verificados
  • Activa monitoreo de integridad de archivos para detectar cambios sospechosos a tiempo
  • Mantén un proceso de actualizaciones constante —la causa #1 de reinfección es volver a abandonar el sitio—

La lección de fondo: casi todos los sitios que limpio se infectaron por algo prevenible —un plugin viejo, una contraseña reutilizada, la falta de backups—. El rescate resuelve la emergencia; el mantenimiento mensual es lo que evita la siguiente.

¿Necesitas ayuda urgente?

Si tu sitio está infectado y no sabes por dónde empezar, puedo ayudarte. Ofrezco servicio de rescate WordPress para sitios comprometidos: diagnóstico, limpieza, recuperación y blindaje, con comunicación directa en español.

Solicitar ayuda urgente →

Para que no vuelva a pasar, aprende a proteger tu WordPress de forma preventiva, y compara los plugins de seguridad en Wordfence vs Sucuri.

Preguntas frecuentes sobre sitios WordPress hackeados

¿Cuánto tarda limpiar un sitio hackeado?

Depende del alcance de la infección. Un caso sencillo con backup limpio disponible puede resolverse en pocas horas; una infección extendida sin backups, que obliga a revisar archivo por archivo y la base de datos, puede tomar uno o dos días. El diagnóstico inicial define el tiempo real.

¿Puedo limpiar el malware yo mismo?

Si tienes experiencia técnica y un backup limpio, sí. El riesgo es dejar archivos infectados ocultos o no cerrar el punto de entrada, lo que hace que el sitio se reinfecte a los días. Si el sitio es clave para tu negocio, conviene que lo revise alguien que sepa qué buscar.

¿Google quitará la advertencia de “sitio peligroso”?

Sí, pero no es automático. Una vez el sitio está limpio, hay que solicitar una revisión desde Google Search Console. Google vuelve a rastrear el sitio y, si confirma que está limpio, retira la advertencia, normalmente en uno a tres días.

¿Vale la pena limpiar o es mejor reinstalar desde cero?

Depende. Si hay un backup limpio reciente, restaurar suele ser lo más rápido. Si la infección es profunda y antigua, a veces es más seguro reconstruir sobre una instalación limpia y reintegrar solo el contenido verificado. Se decide tras el diagnóstico.

¿El hosting no debería protegerme de esto?

El hosting protege la infraestructura del servidor, no la seguridad interna de tu WordPress. Un plugin desactualizado o una contraseña débil son responsabilidad del sitio, no del hosting. Por eso la protección real combina hosting, firewall y mantenimiento.

¿Cómo evito que vuelva a pasar?

Con actualizaciones constantes, contraseñas fuertes y únicas, 2FA, un firewall como Cloudflare, backups externos verificados y monitoreo de integridad de archivos. La causa #1 de reinfección es volver a abandonar el sitio tras limpiarlo.

Lecturas relacionadas

¿Tu sitio WordPress fue hackeado?

Ofrezco rescate WordPress urgente: limpieza, recuperación y blindaje.

Ver rescate WordPress urgente →

¿Tu sitio WordPress necesita atención?

Agenda un diagnóstico gratuito de 20 minutos por Zoom. Revisamos velocidad, seguridad, backups y errores en vivo. Sin compromiso, en español.

Solicitar diagnóstico gratuito