Hablamos

Seguridad · WordPress

Me han hackeado la web: guía para limpiarla paso a paso

Redirecciones raras, avisos de Google y páginas que tú no publicaste. Se arregla, casi siempre sin perder contenido, pero hay que hacerlo en un orden concreto.

Lo primero que hay que entender

Casi nunca es algo personal

0 %

El porcentaje de ataques dirigidos contra tu negocio en concreto es, en la práctica, cero. Son robots recorriendo internet y probando fallos conocidos en extensiones sin actualizar. Eso es una buena noticia: si el ataque es automático, la defensa también puede serlo.

Si has llegado aquí porque tu web está redirigiendo a sitios raros, Google la ha marcado como peligrosa o han aparecido páginas que tú no publicaste: respira. Se soluciona, y en la mayoría de los casos sin perder el contenido. Pero hay que hacerlo en un orden concreto, porque limpiar mal es la forma más rápida de volver a estar infectado la semana siguiente.

WordPress mueve una parte enorme de la web mundial, y eso lo convierte en el objetivo favorito de los ataques automatizados. Casi nunca es algo personal: son robots que recorren internet probando vulnerabilidades conocidas en plugins desactualizados.

Antes de tocar nada: confirma que es un hackeo

Hay fallos que parecen ataques y no lo son. Estas son las señales que sí lo indican:

  • Redirecciones a sitios que no conoces, sobre todo cuando ocurren solo desde el móvil o solo entrando desde Google. Es el patrón más típico.
  • Aviso de Google en los resultados o en el navegador («Sitio engañoso»). Si aparece, la prioridad cambia: hay que limpiar y pedir revisión cuanto antes.
  • Usuarios administradores que no creaste. Míralo en Usuarios: si hay alguno que no reconoces, el acceso está comprometido.
  • Archivos o carpetas extrañas en la raíz del hosting, con nombres aleatorios o fechas de modificación recientes que no cuadran.
  • Consumo de recursos disparado sin que hayas ganado visitas: normalmente el servidor se está usando para enviar spam.
  • Contenido en otro idioma en páginas que no existían, casi siempre sobre farmacia, apuestas o réplicas.

Un contraste rápido y gratuito: mete tu dominio en Google Search Console y mira el apartado de problemas de seguridad. Si Google ha detectado algo, te lo dice ahí con detalle.

Paso 1. Copia de seguridad antes de tocar nada

Parece contradictorio hacer copia de una web infectada, y es justo lo primero que hay que hacer. Si algo sale mal durante la limpieza, la copia sucia es mejor que nada. Guarda los archivos y también la base de datos, y márcala claramente como infectada para no restaurarla por error.

Si tu hosting hace copias automáticas, comprueba de qué fecha son. Restaurar una copia anterior al ataque es a veces la vía más rápida — pero solo si sabes cuándo empezó, porque restaurar una copia ya infectada no arregla nada y te hace perder el contenido de las últimas semanas.

Paso 2. Cierra la puerta antes de fregar el suelo

Este paso se salta mucha gente y por eso reinfectan. Antes de limpiar hay que cortar el acceso del atacante:

  • Cambia todas las contraseñas: administradores de WordPress, panel del hosting, FTP y base de datos. Todas, no solo la tuya.
  • Elimina los usuarios administradores que no reconozcas.
  • Cambia las claves de seguridad de wp-config.php (las salts). Eso invalida todas las sesiones abiertas y expulsa al intruso aunque tenga una sesión activa.
  • Actualiza WordPress, plugins y tema a la última versión. El agujero por el que entraron suele ser un plugin desactualizado.

Paso 3. Limpieza de archivos

La estrategia es reemplazar todo lo que sea código estándar y revisar solo lo que es tuyo. Desde el gestor de archivos del hosting o por FTP:

  • Borra por completo wp-admin y wp-includes y súbelas de nuevo desde una descarga limpia de WordPress. Ahí no debe haber nada tuyo, así que se sustituyen enteras sin miedo.
  • Reemplaza los archivos sueltos de la raíz (index.php, wp-login.php, wp-settings.php…) por los originales — excepto wp-config.php, que contiene tus credenciales de base de datos.
  • Revisa wp-config.php a mano buscando código añadido al principio o al final del archivo.
  • Reinstala todos los plugins desde cero en lugar de actualizarlos. Borrar y volver a instalar garantiza que no queda ningún archivo modificado.
  • Revisa wp-content/uploads: ahí no debería haber ningún archivo .php. Si lo hay, casi seguro es una puerta trasera.
  • Comprueba el archivo .htaccess, donde suelen esconderse las redirecciones maliciosas.

Y una advertencia importante: un ataque bien hecho deja varias puertas traseras repartidas. Por eso no basta con borrar el archivo que provocaba la redirección — si queda una sola, en unos días vuelve todo.

Paso 4. Limpieza de la base de datos

Es la parte más delicada y donde conviene ir con cuidado, porque un error aquí sí destruye contenido. Lo habitual es encontrar inyecciones en la tabla de opciones o código insertado en las entradas.

Busca patrones como <script, eval( o base64_decode dentro del contenido. Si no te sientes cómodo tocando la base de datos directamente, este es el punto en el que merece la pena pedir ayuda: cuesta menos que perder el histórico entero.

Paso 5. Recuperar la reputación en Google

Limpiar la web no basta: si Google la marcó, el aviso sigue apareciendo hasta que le pidas revisión. Y ese aviso espanta a más clientes que el propio hackeo.

  • Entra en Search Console → Problemas de seguridad.
  • Comprueba que aparecen resueltos los problemas detectados.
  • Solicita una revisión explicando brevemente qué encontraste y qué hiciste.
  • La revisión suele tardar entre unas horas y unos días.

Aprovecha también para revisar en Search Console si el atacante creó páginas indexadas. Si las hay, elimínalas y pide su retirada del índice.

Cómo evitar que vuelva a pasar

El hackeo casi nunca es mala suerte: es mantenimiento pendiente. Lo que de verdad reduce el riesgo:

  • Menos plugins. Cada plugin es una puerta más, con su propio ciclo de actualizaciones y su propio mantenedor. Es la razón por la que nuestras webs se construyen con desarrollo a medida en lugar de encadenar extensiones de terceros.
  • Actualizaciones al día, incluidas las de PHP en el hosting.
  • Copias de seguridad automáticas guardadas fuera del propio servidor.
  • Contraseñas fuertes y verificación en dos pasos para los administradores.
  • Eliminar lo que no se usa. Un plugin o tema desactivado sigue siendo código accesible: si no se usa, se borra.
  • Un hosting decente. El alojamiento más barato suele salir caro justamente aquí.

Preguntas frecuentes sobre webs hackeadas

¿Voy a perder el contenido de mi web?

En la mayoría de los casos no. Las entradas, páginas e imágenes viven en la base de datos y en la carpeta de subidas, y ninguna de las dos se borra durante una limpieza bien hecha. Lo que se reemplaza es el código de WordPress y los plugins.

¿Cuánto se tarda en limpiar una web hackeada?

Una infección sencilla puede resolverse en unas horas. Si el ataque lleva tiempo, ha dejado varias puertas traseras o ha tocado la base de datos, puede llevar un par de días incluyendo la revisión de Google.

¿Sirve instalar un plugin de seguridad y ya está?

Ayuda a detectar y a prevenir, pero no sustituye a la limpieza. Un plugin de seguridad instalado sobre una web ya infectada puede incluso quedar comprometido él mismo. Primero se limpia, después se protege.

¿Y si mi web no es WordPress?

El principio es el mismo —cortar el acceso, limpiar, restaurar reputación— pero el procedimiento cambia por completo según la tecnología. Ahí conviene que lo vea alguien que conozca esa plataforma en concreto.

¿Podéis encargaros vosotros?

Sí. Hacemos la limpieza completa, la solicitud de revisión a Google y el refuerzo posterior para que no se repita. Escríbenos y te decimos qué nos encontramos antes de tocar nada.

¿Tu web está infectada ahora mismo?

Escríbenos y le echamos un vistazo. Te decimos qué ha pasado, qué alcance tiene y qué haría falta para dejarla limpia — antes de que decidas nada.

Necesito ayuda

¿Aplicamos esto a tu negocio?

Cuéntanos tu caso y te diremos por dónde empezar — sin compromiso y sin jerga.

Hablamos