Guía de solución

¿WordPress hackeado? Qué hacer en las primeras horas (checklist)

13 de noviembre de 2026

Muchas veces empieza con algo aparentemente sin importancia. Un cliente te escribe que, al entrar en tu web, ha acabado de repente en un casino online. Tu proveedor de hosting te manda un correo para decirte que ha bloqueado tu cuenta por envío de spam. O Google muestra debajo de tu resultado de búsqueda un aviso de que el sitio puede haber sido hackeado. En ese momento ya no hay duda: alguien ha entrado en tu WordPress. Es un fastidio, pero no es el fin del mundo. Ahora lo importante es hacer las cosas en el orden correcto. Si te entra el pánico, lo borras todo y restauras la primera copia de seguridad antigua que encuentras, lo más probable es que una semana después vuelvas a tener el mismo problema. Esta checklist de emergencia te acompaña en las primeras horas, durante la limpieza y en las semanas siguientes.

¿Cómo saber si tu WordPress ha sido hackeado?

No todos los hackeos se notan enseguida. De hecho, a muchos atacantes les interesa que no te des cuenta de nada. Prefieren usar tu servidor con toda tranquilidad para mandar spam, para redirigir visitas o para subir sus propias páginas en Google. Estas señales deberías tomártelas en serio:

  • Redirecciones a sitios ajenos: Los visitantes acaban en páginas de apuestas, de citas o en tiendas falsas. A menudo solo pasa en el móvil o solo cuando alguien llega desde Google.
  • Advertencias de Google o del navegador: Chrome muestra una página roja de advertencia en lugar de tu web, en los resultados de búsqueda aparece un aviso de que el sitio puede estar hackeado o Search Console informa de un problema de seguridad.
  • Páginas extrañas en el índice: Una búsqueda de site:tudominio.com saca a la luz páginas con caracteres japoneses, pastillas para la potencia o artículos de marca baratos que tú nunca has creado. Los expertos lo llaman Japanese Keyword Hack o Pharma Hack.
  • Usuarios desconocidos: En la lista de usuarios aparece un administrador que nadie conoce. A veces incluso está oculto en la lista y solo se ve en la base de datos.
  • Avisos de tu proveedor de hosting: Tu proveedor te informa de envío de spam o de una carga del servidor inusualmente alta, o directamente ya ha bloqueado tu cuenta.
  • Archivos y cambios raros: Archivos con nombres crípticos, código ajeno al principio de index.php, plugins que nunca has instalado o un inicio de sesión en el que tu contraseña de repente ya no funciona.

Hay algo que desconcierta a mucha gente: a menudo tú no ves absolutamente nada. Un malware bien hecho reconoce por su cookie a los administradores que tienen la sesión iniciada y les muestra la web de siempre. Por eso, para hacer la prueba, abre tu sitio en una ventana privada, a ser posible en el móvil, con datos y sin wifi. Entra una vez directamente y otra a través de una búsqueda en Google.

WordPress hackeado: ¿qué hacer en la primera hora?

En la primera hora todavía no tienes que encontrar el código malicioso. De lo que se trata es de limitar los daños sin borrar ninguna pista por el camino. Sigue estos pasos en orden:

  1. Respira hondo y no borres nada todavía. Es comprensible querer borrarlo todo enseguida o restaurar una copia de seguridad a ciegas. Pero así destruyes justo las pistas que más adelante te dirán cómo entraron los atacantes.
  2. Documenta lo que ves. Haz capturas de pantalla de las redirecciones y las advertencias, apunta las horas y guarda los correos de tu proveedor de hosting y de Google. Te servirá para buscar la causa y, más adelante, para una posible notificación a la autoridad de protección de datos.
  3. Guarda una copia del estado infectado. Descarga todos los archivos y una exportación de la base de datos y guarda ambas cosas por separado, bien etiquetadas como infectadas. Esta copia no la vas a restaurar nunca. Solo sirve como prueba y para comparar.
  4. Desconecta la web. Es imprescindible sobre todo si los visitantes acaban en páginas fraudulentas o si tu tienda procesa datos de pago. Un plugin de mantenimiento sirve de poco aquí, porque se ejecuta dentro del mismo WordPress hackeado. Es mejor bloquear el sitio a nivel de servidor y dejar pasar solo tu propia IP. Si tu web funciona con Apache, te bastan tres líneas al principio del todo de tu .htaccess:
    RewriteEngine On
    RewriteCond %{REMOTE_ADDR} !^203\.0\.113\.10$
    RewriteRule ^ - [R=503,L]
    Sustituye la dirección por tu propia IP. El código de estado 503 le indica a Google que la página solo está fuera de servicio de forma temporal. Durante poco tiempo, eso no perjudica a tu posicionamiento. Si tu servidor usa nginx o no lo tienes claro, tu proveedor de hosting te puede echar una mano.
  5. Cambia los accesos más importantes. Pon contraseñas nuevas a tu cuenta de cliente en el proveedor de hosting, a SFTP o SSH y a la base de datos. Hazlo desde un dispositivo de confianza. Si los datos de acceso se robaron desde tu propio ordenador, por ejemplo con un troyano que lee las contraseñas guardadas en FileZilla, las contraseñas nuevas no sirven de nada mientras el ordenador siga infectado. Cambia también tu propia contraseña de WordPress. Los demás usuarios y las claves de seguridad van después de la limpieza, porque mientras quede una puerta trasera abierta, el atacante puede leer las contraseñas nuevas sin más.
  6. Avisa a tu proveedor de hosting. Muchos proveedores tienen su propio equipo de seguridad, escáneres de malware y, sobre todo, los registros de acceso del servidor. Pregunta expresamente por los logs de las últimas semanas y por las copias de seguridad. Algunos proveedores las guardan más tiempo del que crees.
  7. Informa a quien tenga que saberlo. Si eres una agencia, avisa a tu cliente. Si hay más personas con acceso a la web, también tienen que enterarse. Y en cuanto puedan verse afectados datos personales, empieza a correr un plazo legal. Te lo explicamos más abajo.

¿Cómo entran los hackers en WordPress? Así encuentras el punto de entrada

Mucha gente se salta este paso, y precisamente por eso tantas webs acaban hackeadas dos veces. Si no encuentras la vulnerabilidad, lo limpias todo y a los pocos días el atacante vuelve a entrar por la misma puerta. A menudo ni siquiera va a por ti en concreto, sino que un bot rastrea internet de forma automática en busca de esa misma vulnerabilidad.

Los puntos de entrada más habituales son:

  • Plugins y temas desactualizados: Es, con diferencia, la vía más habitual. Según los informes anuales de Patchstack, la inmensa mayoría de las vulnerabilidades conocidas del ecosistema de WordPress están en plugins, una pequeña parte en temas y casi ninguna en el propio WordPress. Son especialmente delicados los plugins que ya nadie mantiene o que se han eliminado del directorio de plugins de WordPress.org.
  • Plugins y temas nulled: Copias piratas de plugins premium sacadas de portales de descarga dudosos. No cuestan nada, pero con una frecuencia sorprendente traen una puerta trasera de serie.
  • Contraseñas débiles o robadas: Hay bots que prueban combinaciones de nombres de usuario y contraseñas las 24 horas del día. Si usas la misma contraseña en otros servicios, la próxima filtración de datos te pilla de lleno.
  • Vecinos en el mismo plan de hosting: Si en el mismo plan hay también una instalación de pruebas antigua, una tienda olvidada o la web de 2016 en una subcarpeta, el atacante puede llegar desde ahí a todas las demás webs del plan.
  • Ordenadores infectados: El malware en el PC de un administrador puede leer los datos de acceso guardados y enviárselos a los atacantes.

Así das con la causa:

  • Compara tus plugins y temas con una base de datos de vulnerabilidades, como Wordfence Intelligence, Patchstack o WPScan. Lo que cuenta es si hay una vulnerabilidad conocida justo para la versión que tienes instalada.
  • Revisa los registros de acceso del servidor. Son sospechosas las peticiones POST a archivos que ni siquiera existen en WordPress o a archivos de la carpeta wp-content/uploads. Las horas de esas peticiones suelen revelar cuándo empezó todo.
  • Comprueba cuándo se crearon los archivos sospechosos. La fecha es una pista, pero no una prueba, porque a los atacantes les encanta falsificar las marcas de tiempo.

¿Cómo eliminar malware de WordPress?

Ahora toca limpiar. Hay dos maneras de hacerlo.

Restaurar una copia de seguridad limpia es lo más rápido. Pero solo funciona si sabes con certeza que la copia es anterior a la intrusión. Y eso es más difícil de lo que parece. Entre la intrusión en sí y los primeros síntomas visibles suelen pasar semanas, a veces meses, porque los atacantes primero colocan una puerta trasera y no la usan hasta más tarde. Además, pierdes todo el contenido, los pedidos y los comentarios desde la fecha de la copia, y la vulnerabilidad sigue abierta. Si eliges este camino, actualiza todos los plugins y temas justo después de restaurar y repasa igualmente los puntos de abajo.

Limpiar la web a mano lleva más tiempo, pero es más a fondo. Lo más seguro es trabajar sobre una copia y no en la web en producción. Así se hace:

  1. Sustituye WordPress por completo. Borra las carpetas wp-admin y wp-includes y sustitúyelas por copias nuevas de WordPress.org de la misma versión. Lo mismo vale para los archivos del directorio raíz, salvo wp-config.php. Para comprobar después que todo está en orden, usa la línea de comandos de WordPress:
    wp core verify-checksums
    El comando compara cada archivo con las sumas de verificación oficiales de WordPress.org y también avisa de archivos que no deberían estar ahí.
  2. Reinstala plugins y temas. Borra todos los plugins y temas e instálalos de nuevo desde una fuente de confianza. Lo que no uses, directamente no vuelve. Para los plugins del directorio oficial también hay una comprobación:
    wp plugin verify-checksums --all
    Los plugins premium no los puede comprobar, porque WordPress.org no tiene sumas de verificación para ellos. Esos los vuelves a descargar directamente del proveedor.
  3. Inspecciona la carpeta uploads. Ahí van imágenes, PDF y otros archivos multimedia, pero nada de PHP. Con este comando encuentras archivos que no pintan nada ahí:
    find wp-content/uploads -type f -name "*.php"
    Una excepción son los archivos vacíos llamados index.php, que algunos plugins crean para que nadie pueda listar el contenido de una carpeta. Todo lo demás, míralo con lupa.
  4. Revisa todo lo que no puedes reinstalar. Eso incluye wp-config.php, .htaccess (un escondite habitual para redirecciones que solo se aplican a quien llega desde Google o desde el móvil), tu propio tema con su functions.php y la carpeta wp-content/mu-plugins. WordPress carga automáticamente todo lo que haya ahí, y no se puede desactivar desde el panel. Lo típico del código malicioso son funciones como eval, base64_decode o gzinflate combinadas con cadenas de caracteres largas e ilegibles. Para una primera búsqueda basta con este comando:
    grep -rlE "eval\(|base64_decode\(|gzinflate\(|str_rot13\(" wp-content/
    Una coincidencia todavía no es una prueba, porque también hay plugins legítimos que usan algunas de estas funciones. Pero te indica dónde tienes que mirar con más atención.
  5. Limpia la base de datos. El código malicioso no solo se esconde en archivos. Empieza por listar todos los administradores:
    wp user list --role=administrator --skip-plugins --skip-themes
    Las dos opciones del final hacen que WordPress no cargue ni los plugins ni el tema, así que tampoco ejecuta código malicioso que pueda seguir escondido en ellos. Borra todas las cuentas que no sepas a quién pertenecen. Comprueba además en la tabla wp_options que siteurl y home siguen apuntando a tu dominio. Los scripts inyectados en entradas y páginas los encuentras así:
    SELECT ID, post_title, post_type FROM wp_posts WHERE post_content LIKE '%<script%';
    Si tu instalación usa un prefijo distinto de wp_, adapta los nombres de las tablas. Por cierto, los widgets también se guardan en wp_options y merecen un vistazo.
  6. Controla las tareas programadas. A los atacantes les gusta dejar tareas cron que vuelven a crear el código malicioso cada cierto tiempo. Revisa tanto las tareas cron de WordPress como las del panel de cliente de tu proveedor de hosting.

Escáneres como Wordfence o el gratuito Sucuri SiteCheck detectan mucho malware conocido y son un buen complemento. Pero no te fíes solo de ellos. Un escáner externo solo ve lo que llega al navegador, y un plugin también encuentra únicamente lo que ya conoce. Las puertas traseras nuevas o bien escondidas se les escapan.

¿Cómo proteger WordPress después de un hackeo?

¿La web ya está limpia? Pues ahora llega la parte que decide si va a seguir así.

  • Contraseñas nuevas para todo: para cada usuario de WordPress, para la base de datos (luego introduces el valor nuevo en wp-config.php), para SFTP y para la cuenta de cliente en el proveedor de hosting. Piensa también en las claves de acceso a servicios externos guardadas en plugins, por ejemplo para el envío de correos o para las pasarelas de pago.
  • Claves de seguridad nuevas: Sustituye los salts de wp-config.php por valores nuevos del generador oficial de WordPress.org. Así quedan invalidadas todas las sesiones abiertas, también las que un atacante pueda conservar todavía en forma de cookie.
  • Cierra la vulnerabilidad: Actualiza WordPress, todos los plugins y todos los temas. Sustituye los plugins que ya no se mantienen. Cómo tenerlo bajo control a largo plazo te lo contamos en nuestra guía Cómo mantener los plugins de WordPress actualizados y seguros.
  • Protege los inicios de sesión: Configura un segundo factor de inicio de sesión para todos los administradores (qué es la 2FA y cómo funciona) y reduce el número de administradores al mínimo imprescindible.
  • Desactiva el editor de archivos: Con esta línea en wp-config.php, nadie podrá modificar el código de plugins y temas desde el panel:
    define( 'DISALLOW_FILE_EDIT', true );
    Encontrarás más ajustes en nuestras guías Proteger wp-config.php en WordPress y Configurar correctamente los permisos de archivo en WordPress.
  • Un firewall por delante: Un Web Application Firewall frena muchos ataques a vulnerabilidades conocidas antes de que lleguen siquiera a WordPress.
  • Copias de seguridad que funcionen de verdad: automáticas, diarias, guardadas fuera del servidor y con al menos 30 días de historial. Y restauradas una vez a modo de prueba antes de que las necesites en una emergencia.

Después, vigila la web de cerca durante unas semanas. Si el código malicioso vuelve a aparecer a los pocos días, se te ha pasado alguna puerta trasera o la vulnerabilidad sigue abierta. Tienes un resumen de todas las medidas de protección en nuestra lista de comprobación de seguridad para WordPress.

¿Cómo quitar la advertencia de sitio hackeado en Google?

Google no retira la advertencia por su cuenta en cuanto has limpiado la web. Tienes que mover ficha tú:

  1. Inicia sesión en Google Search Console. Si todavía no has dado de alta tu web ahí, hazlo ahora.
  2. En «Seguridad y acciones manuales», abre el informe «Problemas de seguridad». Ahí ves lo que ha encontrado Google, a menudo con algunas URL afectadas a modo de ejemplo.
  3. Mira en los ajustes quién figura como usuario o propietario. A veces los atacantes se añaden ahí ellos mismos para que sus páginas de spam se indexen más rápido. Elimina las entradas que no conozcas y el archivo de verificación correspondiente del directorio raíz de tu web.
  4. Haz clic en «Solicitar revisión» y describe brevemente lo que has encontrado y corregido. Según Google, la revisión suele tardar unos días en el caso de malware, alrededor de un día en el de phishing y, a veces, varias semanas en el de páginas de spam hackeadas.

Después de la limpieza, las propias páginas de spam deberían devolver el código de estado 404 o 410. Así irán desapareciendo poco a poco del índice. Si te corre prisa, puedes usar la herramienta de Search Console para retirar URLs. A continuación, vuelve a enviar tu sitemap de verdad. Si tu servidor ha enviado spam, comprueba también si tu IP ha acabado en alguna lista negra de correo. Tu proveedor de hosting te ayudará a salir de ella.

¿Tienes que notificar un hackeo según el RGPD?

Depende de si pueden verse afectados datos personales. Con una tienda online, un área de miembros o consultas guardadas del formulario de contacto, es fácil que sea así. Hasta la tabla de usuarios de WordPress contiene nombres y direcciones de correo.

Según el artículo 33 del RGPD, tienes que notificar una brecha de datos así a la autoridad de control competente en un plazo de 72 horas. El plazo empieza a contar en cuanto tienes constancia de ella. Solo puedes ahorrarte la notificación si es improbable que suponga un riesgo para las personas afectadas. Si el riesgo es alto, por ejemplo porque pueden haberse filtrado datos de pago o contraseñas, el artículo 34 del RGPD te obliga además a informar directamente a los afectados.

Aunque al final no lo notifiques, tienes que documentar el incidente y tu decisión, tal como exige el artículo 33, apartado 5. La mayoría de las autoridades de control ofrecen un formulario online para la notificación. Si en tu caso hay un delegado de protección de datos, implícalo desde el primer momento. Esta sección no sustituye al asesoramiento jurídico.

¿Cuándo merece la pena contratar a un profesional para limpiar la web?

Gran parte de esta checklist la puedes hacer por tu cuenta si te manejas con archivos, bases de datos y servidores. Aun así, en algunos casos es mejor recurrir a ayuda profesional:

  • Tu tienda procesa datos de pago y se sospecha que han robado datos de tarjetas.
  • La web se vuelve a infectar después de cada limpieza.
  • No hay ninguna copia de seguridad que sirva y la línea de comandos no es lo tuyo.
  • Se trata de la web de un cliente y más adelante tendrás que poder demostrar con exactitud qué ha pasado.

Lo primero suele ser acudir a tu proveedor de hosting. Muchos ofrecen la limpieza como servicio de pago. También hay servicios especializados, por ejemplo de Wordfence o Sucuri. Pregunta antes si la búsqueda del punto de entrada está incluida en el precio. Limitarse a eliminar el código malicioso solo te sirve hasta el próximo ataque.

Cómo te ayuda InspectWP después de un hackeo

Vaya por delante: InspectWP no es un escáner de malware ni sustituye a una limpieza. Pero el informe te ayuda en dos puntos que, con las prisas, suelen pasarse por alto: encontrar la vulnerabilidad más probable y comprobarlo todo después.

Incluso el informe gratuito enumera los plugins y temas que detecta en tu web y marca los que se han eliminado del directorio de plugins de WordPress.org o llevan más de un año sin actualizarse. Te muestra si usas una versión desactualizada de WordPress y si desde fuera se puede acceder a archivos que no pintan nada ahí, por ejemplo un debug.log público, copias de seguridad de la base de datos o un archivo llamado .env. Además, comprueba si tu inicio de sesión está protegido contra los intentos masivos de adivinar contraseñas y si los nombres de usuario se pueden leer desde fuera.

En los planes Premium y Agency ves también las versiones instaladas de tus plugins y sus vulnerabilidades conocidas. Así, a menudo encuentras la causa más probable en pocos minutos. Con el InspectWP WordPress Connector sabrás además si se han modificado archivos del propio WordPress (el Connector los compara con las sumas de verificación de WordPress.org), cuántos administradores hay y si hay carpetas importantes con permisos de escritura.

Después de la limpieza, merece la pena activar los informes automáticos. InspectWP revisa entonces tu web con regularidad y, si quieres, te avisa por correo. Al comparar dos informes ves de un vistazo qué ha cambiado, por ejemplo un plugin nuevo que en teoría nadie ha instalado. Tu primer informe gratuito lo tienes en pocos minutos.

Analiza tu sitio de WordPress ahora

InspectWP analiza tu sitio de WordPress en busca de problemas de seguridad, SEO, cumplimiento del RGPD y rendimiento, gratis.

Analiza tu sitio gratis