Evaluación inicial sin contraseñas Presupuesto antes de intervenir Especialista responsable de principio a fin

Visible Symptoms Initial Triage

Aparece JavaScript desconocido en todas las páginas de WordPress

Rastrea JavaScript global desconocido mediante hooks del tema, plugins, opciones de base, caché, Tag Manager y configuración del hosting.

Un script desconocido aparece en portada, artículos, formularios y checkout. Al ser global, probablemente procede de una plantilla compartida, hook, plugin, opción de base, caché o sistema externo de etiquetas.

Desconocido no significa necesariamente malicioso: Analytics, consentimiento y accesibilidad también cargan globalmente. Determina propiedad y comportamiento antes de retirarlo.

Conserva el marcado público exacto

Guarda el HTML desconectado de una página afectada, con hora y cabeceras. Registra URL, contenido inline, atributos y posición del script.

Compara dos plantillas y la vista conectada. Si desaparece para administradores, aumenta la sospecha. No abras directamente la URL ni pegues el código en decodificadores online.

Anota el hash del contenido servido y si cambia entre visitas. Una URL estable puede entregar payloads distintos por país, hora o referrer. Conserva solo muestras controladas y metadatos necesarios, sin enviar formularios reales ni abrir destinos descargables.

Rastrea el iniciador

Si la etiqueta está en el HTML inicial, busca una URL o cadena distintiva en código y base. Si se crea después, usa la cadena de iniciadores de la red para localizar el script padre.

Comprueba si lo inserta un service worker o extensión del navegador repitiendo en un perfil limpio. Verifica los dominios contra integraciones documentadas, no solo por su nombre.

Inspecciona puntos de inserción global

Revisa header.php, footer.php, functions.php, tema hijo, mu-plugins y plugins de snippets. Busca callbacks en wp_head y wp_footer.

Consulta plugins que añaden scripts, analítica o anuncios y sus cambios recientes.

No edites un tema padre o plugin para borrar una línea. Preserva evidencia y corrige la capa de origen para que una actualización no la restaure o esconda.

Busca marcado controlado por la base

Los scripts pueden residir en widgets, bloques reutilizables, modificaciones del tema, plantillas de constructor o wp_options. Usa búsquedas de solo lectura que respeten datos serializados.

Busca el hostname exacto o un fragmento distintivo, no el término genérico script.

Antes de cambiar una opción, expórtala e identifica su propietario. Borrar un array completo puede romper mucho más que el campo inyectado.

Revisa Tag Manager y CDN

Un contenedor puede añadir JavaScript sin cambiar WordPress. Revisa versiones publicadas, HTML personalizado, usuarios y disparadores de consentimiento.

Algunas CDN añaden aplicaciones u optimizan scripts. Confirma apps, Workers y reglas de transformación.

Si se comprometió una cuenta externa, vuelve a una versión conocida, revoca sesiones y refuerza el acceso. Limpiar WordPress no evita la reinyección.

Determina qué hace el script

Analízalo en aislamiento. Registra dominios contactados, almacenamiento creado, cambios DOM, redirecciones y acceso a formularios o checkout.

Si lee campos de pago, descarga ejecutables, crea iframes ocultos o redirige, contiene inmediatamente. Una analítica legítima pero antigua puede retirarse de forma planificada.

No envíes datos reales de checkout mientras pueda observarlos.

Relaciona cada comportamiento con una finalidad aprobada. Una integración legítima debe tener propietario, documentación, dominio esperado, datos que recibe y mecanismo para retirarla. Si nadie puede asumirla, mantén cerrado el recorrido sensible mientras se investiga.

Una política CSP en modo informe puede aportar evidencia de dominios y bloqueos, pero no sustituye localizar la inserción. No publiques una lista permisiva amplia para hacer desaparecer errores de consola.

Limpia y verifica globalmente

Preserva evidencia, elimina el código malicioso en su origen, cierra la vía y rota credenciales. Purga cachés después de limpiar.

Prueba plantillas, idiomas y WooCommerce desde perfiles nuevos. Busca el hostname antiguo en HTML y red y monitoriza recurrencia.

Revisa también plantillas de correo si el mismo pie o integración puede insertarse allí.

Tras limpiar, captura una referencia de scripts por plantilla y alerta ante hostnames nuevos o cambios de hash en recursos propios. Los terceros pueden cambiar legítimamente, por lo que la revisión debe combinar comportamiento, propietario e historial de publicación.

Cuándo pedir ayuda

Solicita evaluación cuando no se conoce el propietario, el script solo aparece a visitantes o toca checkout. Envía URL pública y hostname como texto, sin credenciales ni payload ejecutable.

La reparación debe establecer autoría, eliminar todos los puntos de inserción, proteger recorridos sensibles y demostrar que el código desapareció de cada plantilla compartida.

ANTES DE ENVIAR LA SOLICITUD

Preguntas frecuentes.

¿Pedís contraseñas en el formulario?+

No. El formulario público nunca solicita accesos. Los datos seguros se piden únicamente después de aprobar el alcance y el presupuesto.

¿Quién revisa la incidencia?+

La solicitud llega a Jordi Ensenyat, fundador de Code Barcelona y especialista WordPress con más de 15 años de experiencia.

¿Se cambia algo antes del presupuesto?+

No. Primero se revisan los síntomas visibles y se define el alcance. La intervención empieza tras la aprobación y con una vía de vuelta preparada.

¿Trabajáis con webs en inglés y fuera de España?+

Sí. WP Repair atiende incidencias WordPress y WooCommerce en inglés y español, con servicio remoto.

Evaluar mi incidencia