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

Video Embeds Fonts

Un vídeo de YouTube carga demasiado JavaScript antes del clic

Sustituye un iframe pesado de YouTube por una vista previa accesible y compatible con consentimiento que solo cree el reproductor después del clic.

Un solo iframe de YouTube puede contactar varios dominios y cargar scripts, imágenes y recursos del reproductor antes de que alguien vea el vídeo. Si es contenido secundario, ese trabajo compite con la página y complica el consentimiento.

Una solución frecuente es mostrar una vista previa ligera y crear el reproductor solo después de un clic deliberado. Debe funcionar con teclado, explicar la conexión externa y no depender de un truco visual frágil.

Medir el coste dentro de la página

Haz una prueba fría con el iframe e identifica peticiones a YouTube y dominios relacionados. Registra bytes, trabajo del hilo principal y posición del vídeo.

En staging, retira temporalmente el bloque y repite bajo las mismas condiciones. La diferencia demuestra el coste mejor que una afirmación general.

Comprueba además duplicados: un bloque de escritorio, otro móvil, un modal oculto o un carrusel pueden inicializar varios reproductores.

Separar privacidad y rendimiento

youtube-nocookie.com reduce cierta actividad de almacenamiento previa, pero un iframe cargado inmediatamente sigue siendo pesado. Tampoco sustituye la política de consentimiento aplicable.

Decide por separado dominio de privacidad y carga tras clic. Verifica requisitos con quien gestione privacidad; una opción técnica no constituye por sí sola cumplimiento legal.

Crear un botón de vista previa real

Renderiza inicialmente imagen local, título y botón:

<button
  class="video-preview"
  type="button"
  data-video-id="dQw4w9WgXcQ"
  aria-label="Reproducir: cómo funciona la reparación"
>
  <img
    src="/wp-content/uploads/repair-video-preview.webp"
    width="1280"
    height="720"
    alt=""
  >
  <span aria-hidden="true">Reproducir vídeo</span>
</button>

La imagen lleva alt="" porque la etiqueta del botón ya aporta el nombre accesible. Aloja el preview localmente si solicitar la miniatura a YouTube antes del consentimiento no es apropiado.

Crear el iframe tras la interacción

Usa un único listener controlado:

document.querySelectorAll(".video-preview").forEach((button) => {
  button.addEventListener("click", () => {
    const videoId = button.dataset.videoId;
    const frame = document.createElement("iframe");

    frame.src =
      `https://www.youtube-nocookie.com/embed/${videoId}?autoplay=1`;
    frame.title = button.getAttribute("aria-label");
    frame.allow = "accelerometer; autoplay; encrypted-media; picture-in-picture";
    frame.allowFullscreen = true;

    button.replaceWith(frame);
  }, { once: true });
});

No aceptes URL arbitrarias desde el contenido. Limita el valor a un ID válido, escapa la salida del servidor y considera un bloque mantenido si varios editores publican vídeos.

Valida también el identificador antes de interpolarlo, por ejemplo permitiendo únicamente letras, números, guion y guion bajo con la longitud esperada. El atributo data-video-id no es una frontera de confianza: un editor, importación o script puede modificarlo. La lista de atributos allow debe limitarse a las funciones realmente utilizadas por el reproductor.

Preservar proporción y accesibilidad

Da al botón y al iframe la misma proporción, por ejemplo con aspect-ratio: 16 / 9, para que el contenido inferior no salte.

El control debe ser un <button> verdadero, activable con Enter y Espacio, con foco visible. Un <div> clicable sobre un icono suele fallar con teclado y tecnologías de asistencia.

Mover el foco al iframe después de sustituirlo puede ayudar o desorientar; decide mediante pruebas reales.

Integrar el consentimiento

Si el medio externo requiere permiso, explica que reproducir conecta con YouTube. El clic quizá deba abrir la categoría correspondiente antes de crear el iframe.

Coordina el preview con la plataforma de consentimiento. Un fallo común ocurre cuando el script de preview espera clic y el de cookies espera un iframe que todavía no existe.

Verificar antes y después del clic

Antes de interactuar no debe haber JavaScript del reproductor y la miniatura debe tener dimensiones apropiadas. Después debe cargarse el vídeo correcto, funcionar pantalla completa y existir un solo iframe.

Prueba teclado, orientación móvil, cookies externas bloqueadas y consentimiento rechazado. En páginas con varios vídeos, activar uno no debe inicializarlos todos.

Solicita implementación gestionada si el constructor recrea iframes, el consentimiento entra en conflicto o aparecen reproductores ocultos. Aporta URL y comportamiento deseado, sin contraseña inicialmente.

El resultado debe reducir el trabajo previo al clic manteniendo elección clara, accesibilidad y reproducción fiable; ocultar el iframe con CSS no basta.

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