Cómo incrustar videos de Facebook en publicaciones y páginas de WordPress
Incrustar un video de Facebook en una publicación o página de WordPress significa insertar un reproductor de video en vivo y reproducible directamente en tu contenido usando ya sea un protocolo oEmbed basado en URL o un fragmento iframe — sin necesidad de subir archivos. WordPress maneja esto de forma nativa a través de su lista integrada de proveedores oEmbed, que incluye Facebook, lo que significa que pegar una URL de video sin formato en el editor es suficiente para renderizar un reproductor completamente funcional en el front end.
Esta guía cubre todos los métodos disponibles en profundidad técnica: el editor de bloques Gutenberg, el Editor Clásico, el código de incrustación nativo de Facebook y plugins de terceros. También aborda los cambios de autenticación que Facebook introdujo en 2018 y 2023 que rompen el simple pegado de URL para muchos usuarios — un detalle crítico que la mayoría de los tutoriales omiten por completo.
Por Qué Incrustar Videos de Facebook Es Más Complejo de lo que Parece
Facebook deprecó su endpoint oEmbed anónimo en octubre de 2020. Desde entonces, cualquier solicitud oEmbed a graph.facebook.com/oembed_video requiere un Facebook App ID válido y un dominio registrado. WordPress core todavía lista a Facebook como proveedor oEmbed compatible, pero sin un App ID configurado, la incrustación falla silenciosamente y renderiza solo un marcador de posición o una URL sin formato.
Esta es la razón más común por la que los desarrolladores de WordPress descubren que pegar una URL de video de Facebook "simplemente no funciona" en sitios de producción, aunque parezca funcionar en algunos entornos locales o en caché.
Comprender esta restricción determina qué método debes usar.
Método 1: Editor de Bloques Gutenberg con el Bloque de Incrustación de Facebook
El editor de bloques Gutenberg proporciona un bloque Embed dedicado con una variante de Facebook. Este es el camino recomendado para la mayoría de las instalaciones de WordPress que ejecutan la versión 5.0 o posterior.
Paso 1: Copia la URL Correcta del Video de Facebook
No todas las URL de videos de Facebook son equivalentes. Usa la URL de compartir canónica, no la URL de la barra de direcciones de tu navegador mientras ves un video en modo de pantalla completa.
- Navega al video de Facebook en tu navegador.
- Haz clic en el menú de tres puntos (
...) en la esquina superior derecha de la publicación. - Selecciona Copiar enlace.
La URL resultante debe seguir uno de estos formatos:
https://www.facebook.com/username/videos/1234567890/https://www.facebook.com/watch/?v=1234567890https://fb.watch/xxxxxxxxxx/
Evita usar URLs que contengan /reel/ si pretendes incrustar un video estándar — los Reels usan un endpoint diferente y pueden no resolverse correctamente a través de la ruta oEmbed estándar.
Paso 2: Abre tu Publicación o Página en el Editor de Bloques
En tu panel de WordPress, navega a Publicaciones o Páginas y abre el elemento de contenido que deseas editar. Haz clic en el ícono + para agregar un nuevo bloque en la posición deseada.
Paso 3: Inserta el Bloque de Incrustación de Facebook
Escribe Facebook en el campo de búsqueda de bloques o navega a Incrustaciones en el panel de bloques. Selecciona el bloque de Facebook. Aparece un campo de entrada de URL.
Paso 4: Pega la URL del Video e Incrusta
Pega la URL copiada en el campo de entrada y presiona Enter o haz clic en Incrustar. WordPress envía una solicitud oEmbed a la API de Facebook. Si hay un App ID válido configurado (consulta la sección de App ID a continuación), el reproductor de video se renderiza inmediatamente en la vista previa del editor.
Si ves el mensaje *"Lo sentimos, este contenido no se pudo incrustar"*, el problema es casi con certeza el App ID faltante — no el formato de la URL.
Paso 5: Publicar o Actualizar
Haz clic en Publicar o Actualizar. El reproductor incrustado ahora está activo en el front end.
Método 2: Editor Clásico (URL en su Propia Línea)
Para sitios que aún ejecutan el plugin del Editor Clásico o versiones de WordPress anteriores a 5.0, el mecanismo oEmbed funciona a través de una ruta de código diferente pero depende de la misma API subyacente.
Pasos
- Copia la URL del video de Facebook usando el mismo proceso descrito anteriormente.
- Abre tu publicación o página en el Editor Clásico.
- Cambia a la pestaña Visual (no Texto/HTML).
- Pega la URL en su propia línea, sin texto circundante, sin marcado de hipervínculo y sin caracteres finales.
- Haz clic en Publicar o Vista previa.
La clase WP_oEmbed de WordPress intercepta la URL durante el procesamiento del filtro the_content y la reemplaza con el marcado iframe devuelto por el endpoint oEmbed de Facebook.
Error crítico: Si pegas la URL dentro de un párrafo con otro texto, WordPress no activará la resolución oEmbed. La URL debe ocupar un nodo de párrafo independiente en el contenido de la publicación.
Método 3: Código de Incrustación Nativo de Facebook (iframe)
Este método omite completamente el sistema oEmbed de WordPress y funciona independientemente de la configuración del App ID. Es la opción más confiable para videos públicos.
Cómo Obtener el Código de Incrustación
- Navega al video de Facebook.
- Haz clic en el menú de tres puntos (
...) y selecciona Incrustar. - Facebook genera un fragmento
<iframe>. Copia el fragmento completo.
Un fragmento típico de incrustación de video de Facebook se ve así:
<iframe
src="https://www.facebook.com/plugins/video.php?height=314&href=https%3A%2F%2Fwww.facebook.com%2Fusername%2Fvideos%2F1234567890%2F&show_text=false&width=560&t=0"
width="560"
height="314"
scrolling="no"
frameborder="0"
allowfullscreen="true"
allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share">
</iframe>Insertar el iframe en WordPress
En Gutenberg: Agrega un bloque de HTML Personalizado y pega el código iframe directamente.
En el Editor Clásico: Cambia a la pestaña Texto (vista HTML) y pega el iframe en la posición deseada. No lo pegues en la pestaña Visual — WordPress eliminará o escapará el HTML.
Hacer el iframe Responsivo
El iframe predeterminado de Facebook usa dimensiones de píxeles fijas, lo que se rompe en viewports móviles. Envuélvelo en un contenedor responsivo:
<div>
<iframe
src="https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2Fusername%2Fvideos%2F1234567890%2F&show_text=false&width=560"
scrolling="no"
frameborder="0"
allowfullscreen="true"
allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share">
</iframe>
</div>El valor padding-bottom: 56.25% mantiene una relación de aspecto 16:9. Ajusta a 75% para contenido 4:3.
Solucionar el Requisito del Facebook App ID
Si deseas que el método oEmbed nativo de WordPress (Métodos 1 y 2) funcione de manera confiable, debes registrar una aplicación de Facebook y proporcionar su ID a WordPress.
Paso 1: Crear una Aplicación de Facebook
- Ve a developers.facebook.com e inicia sesión.
- Haz clic en Mis aplicaciones > Crear aplicación.
- Selecciona el tipo de aplicación Consumidor.
- Completa el asistente de configuración. No necesitas enviar la aplicación para revisión para el uso básico de oEmbed.
- Desde el panel de la aplicación, copia tu App ID.
Paso 2: Agregar el App ID a WordPress
El enfoque más limpio es agregar el App ID a través del functions.php de tu tema o un plugin específico del sitio:
add_filter( 'oembed_fetch_url', function( $provider, $url, $args ) {
if ( strpos( $provider, 'facebook.com' ) !== false ) {
$provider = add_query_arg( 'access_token', 'YOUR_APP_ID|YOUR_CLIENT_TOKEN', $provider );
}
return $provider;
}, 10, 3 );Reemplaza YOUR_APP_ID y YOUR_CLIENT_TOKEN con los valores del panel de tu aplicación de Facebook en Configuración > Avanzado > Token de cliente.
Alternativamente, varios plugins manejan esto automáticamente — en particular Embed Plus for Facebook y WP Facebook oEmbed Fix.
Método 4: Plugins de Terceros para Control Avanzado
Los plugins son la opción correcta cuando necesitas funciones más allá de la reproducción básica: dimensiones de reproductor personalizadas, carga diferida, puertas de consentimiento GDPR o incrustación basada en feeds.
Smash Balloon Social Post Feed es la opción más ampliamente implementada. Después de la instalación y la autorización de la cuenta de Facebook, proporciona un shortcode y un bloque de Gutenberg con controles detallados sobre el ancho del reproductor, el comportamiento de reproducción automática y la visualización de subtítulos.
Embed Plus for Facebook se enfoca específicamente en la autenticación oEmbed y es una solución ligera si tu único objetivo es solucionar el problema del App ID sin agregar un plugin completo de feed social.
WP YouTube Lyte / Embed Optimizer (del equipo de rendimiento de WordPress) puede cargar de forma diferida las incrustaciones de Facebook para evitar que el iframe bloquee el renderizado de la página — una mejora significativa de Core Web Vitals en páginas con mucho contenido.
Comparación de Métodos
| Método | Requiere App ID | Responsivo por Defecto | Funciona con Videos Privados | Nivel de Personalización | Ideal Para |
|---|---|---|---|---|---|
| Bloque Embed de Gutenberg | Sí (post-2020) | Sí | No | Bajo | Videos públicos estándar, configuración simple |
| Pegado de URL en Editor Clásico | Sí (post-2020) | Sí | No | Bajo | Instalaciones de WordPress heredadas |
| iframe nativo de Facebook | No | No (corrección manual necesaria) | No | Medio | Incrustación confiable sin configuración de API |
| Plugin de terceros | Varía | Sí | Parcialmente | Alto | Diseños avanzados, cumplimiento GDPR, feeds |
Consideraciones de Rendimiento y Core Web Vitals
El iframe de incrustación de Facebook carga múltiples scripts de terceros desde connect.facebook.net, lo que puede agregar 200–600ms de latencia de bloqueo de renderizado y afectar negativamente las puntuaciones de Largest Contentful Paint (LCP) y Total Blocking Time (TBT).
Mitigaciones prácticas:
- Patrón de fachada: Reemplaza el iframe con una miniatura estática y carga el reproductor real solo al hacer clic el usuario. El enfoque de Lite YouTube Embed puede adaptarse para Facebook usando una fachada personalizada.
- Atributo
loading="lazy": Agregaloading="lazy"a la etiqueta iframe para diferir la carga hasta que el elemento entre en el viewport. - Alternativa de video alojado propio: Si el video es tu propio contenido, considera subirlo directamente a los medios de WordPress o alojarlo en un VPS con una configuración de transmisión de video. Esto elimina completamente la dependencia de scripts de terceros.
Para sitios de WordPress con mucho tráfico donde la velocidad de página afecta directamente la conversión, ejecutar tu propia infraestructura de servidor en un Servidor Dedicado te da control total sobre los encabezados de caché, la integración CDN y el orden de carga de scripts — ninguno de los cuales está disponible en entornos compartidos.
Privacidad, GDPR y Consentimiento de Cookies
Cuando un visitante carga una página que contiene una incrustación de Facebook, los scripts de Facebook establecen cookies de terceros y pueden recopilar datos de comportamiento — incluso si el visitante no tiene una cuenta de Facebook. Bajo el GDPR (UE), LGPD (Brasil) y CCPA (California), esto constituye procesamiento de datos de terceros que requiere el consentimiento explícito del usuario antes de que se cargue el iframe.
Implementa una puerta de consentimiento usando un plugin como Complianz o Cookiebot, que reemplaza el iframe con un marcador de posición hasta que el usuario acepte la categoría de cookies relevante. Esto no es opcional para sitios con tráfico de la UE — es un requisito legal.
Solución de Problemas Comunes de Incrustación
El video muestra un marcador de posición o una incrustación rota en el editor pero funciona en el front end: Este es un problema conocido de renderizado de Gutenberg. La vista previa del editor usa la sesión del usuario administrador, que puede no tener la caché oEmbed correcta. Limpia la caché oEmbed eliminando las entradas de metadatos de publicación _oembed_* para la publicación afectada, o usa el comando WP-CLI:
wp post meta delete <post_id> --match-prefix=_oembed_"Lo sentimos, este contenido no se pudo incrustar" en el front end: Casi siempre causado por el App ID faltante. Sigue los pasos de configuración del App ID anteriores.
El video se incrusta correctamente pero desaparece después de una actualización de WordPress: WordPress actualiza periódicamente su lista de proveedores oEmbed. Un cambio en el endpoint de la API de Facebook puede romper las incrustaciones existentes. Verifica la lista de proveedores wp-includes/class-oembed.php y compárala con el endpoint documentado actual de Facebook.
La incrustación funciona en staging pero no en producción: La API oEmbed de Facebook valida el dominio solicitante contra la lista de dominios permitidos de la aplicación. Agrega tu dominio de producción al campo Dominios de la aplicación de la aplicación de Facebook en Configuración > Básico.
Los videos privados o de grupos no se pueden incrustar: La API oEmbed de Facebook solo sirve videos de acceso público. No existe ninguna solución alternativa compatible para contenido privado — la única opción es descargar el video y alojarlo de forma independiente, por ejemplo en un VPS con cPanel con un directorio de medios configurado para transmisión directa.
Consideraciones de Alojamiento para Sitios WordPress que Incrustan Medios Enriquecidos
Las páginas con iframes de video incrustados son significativamente más pesadas que las páginas de contenido estándar. Cada incrustación de Facebook activa búsquedas DNS, handshakes TCP y descargas de scripts desde el CDN de Facebook en cada carga de página sin caché.
Si tu sitio de WordPress se ejecuta en Alojamiento Web Compartido, el tiempo de procesamiento del lado del servidor no es el cuello de botella — las solicitudes de terceros del lado del cliente lo son. Sin embargo, si también alojas archivos de video propios o ejecutas un sitio con mucho contenido multimedia, los límites de ancho de banda e I/O del alojamiento compartido se convierten en restricciones relevantes.
Para sitios que combinan video social incrustado con contenido multimedia original, un entorno de VPS Hosting con caché de objetos (Redis o Memcached), una caché de página completa (Nginx FastCGI cache o Varnish) y un CDN correctamente configurado ofrecerá puntuaciones de Core Web Vitals mediblemente mejores que cualquier entorno compartido.
Asegurar tu administrador de WordPress y los endpoints de incrustación con un certificado SSL válido también es innegociable — la API de Facebook se negará a servir respuestas oEmbed a orígenes que no sean HTTPS. Si tu sitio aún no está en HTTPS, comienza con un Certificado SSL antes de solucionar cualquier problema de incrustación.
Conclusiones Técnicas Clave
- El endpoint oEmbed de Facebook ha requerido un App ID desde octubre de 2020. Cualquier tutorial que no mencione esto está desactualizado.
- El bloque Embed de Gutenberg y el método de URL del Editor Clásico dependen de la misma clase
WP_oEmbedy del mismo requisito de App ID. - El método de iframe nativo de Facebook es la alternativa más confiable para videos públicos y no requiere credenciales de API.
- Los iframes de dimensiones fijas deben envolverse en un contenedor CSS responsivo para una correcta renderización en móviles.
- Las incrustaciones de Facebook cargan scripts de terceros que afectan Core Web Vitals. Implementa carga diferida o un patrón de fachada en páginas sensibles al rendimiento.
- El cumplimiento del GDPR requiere una puerta de consentimiento antes de que se cargue el iframe — no solo un banner de cookies.
- Los videos privados de Facebook no pueden incrustarse en sitios externos a través de ningún método compatible.
- Siempre verifica que tu dominio de producción esté listado en los dominios permitidos de la aplicación de Facebook para evitar problemas al pasar de staging a producción.
Preguntas Frecuentes
¿Por qué mi incrustación de video de Facebook muestra un marcador de posición roto en lugar del video?
La causa más probable es un Facebook App ID faltante o mal configurado. Desde octubre de 2020, la API oEmbed de Facebook requiere un App ID registrado con tu dominio listado en los dominios permitidos. Configura el App ID en WordPress usando el filtro oembed_fetch_url o instala un plugin que lo maneje automáticamente.
¿Puedo incrustar un video privado de Facebook en WordPress?
No. La API oEmbed de Facebook solo resuelve URL de videos de acceso público. Los videos restringidos a amigos, grupos o audiencias específicas no pueden incrustarse en sitios web externos a través de ningún método compatible. La única alternativa es descargar el video y alojarlo en tu propio servidor.
¿Incrustar videos de Facebook ralentiza mi sitio de WordPress?
Sí, de manera medible. Cada incrustación de Facebook carga scripts desde connect.facebook.net que agregan latencia de bloqueo de renderizado. Mitiga esto agregando loading="lazy" al iframe, implementando una fachada de clic para cargar, o usando un plugin como Embed Optimizer para diferir la ejecución de scripts.
¿Necesito un plugin para incrustar videos de Facebook en WordPress?
No necesariamente. WordPress admite oEmbed de Facebook de forma nativa, pero debes tener un App ID válido configurado para que funcione después de 2020. Si usas el código de incrustación iframe nativo de Facebook directamente, no se requiere ningún plugin en absoluto.
¿Es legal incrustar videos de Facebook en mi sitio web?
Incrustar videos de Facebook compartidos públicamente usando el mecanismo de incrustación oficial de Facebook generalmente está permitido bajo los Términos de Servicio de Facebook, siempre que el video original no infrinja derechos de autor. Sin embargo, la incrustación activa los scripts de seguimiento de Facebook, lo que crea obligaciones GDPR para sitios con visitantes de la UE. Siempre implementa una puerta de consentimiento de cookies antes de cargar el iframe.
