Generador de código para incrustar redes sociales

Genera código para insertar desde una URL de X, Facebook o Instagram

Pega un enlace y detectaremos la plataforma y crearemos el código automáticamente.

Acerca de Generador de código para incrustar redes sociales

Pega la dirección de una publicación de X (Twitter), Facebook, Instagram o Threads y esta herramienta genera el código para incrustarla en un blog o una página web. Ofrece dos métodos. El modo script usa el script oficial de widgets de la plataforma (widgets.js, sdk.js o embed.js) para convertir un elemento de marcador en la publicación renderizada. El modo iframe carga directamente en un iframe la URL de inserción propia de la plataforma. Threads no tiene una URL pública para iframe, así que siempre se genera en modo script.

Los dos métodos se ven parecidos en pantalla, pero conceden cosas muy distintas a tu página. Aquí se explica esa diferencia, qué suponen las inserciones para la privacidad de tus visitantes y de dónde sale el código de inserción (oEmbed).

Modo script frente a modo iframe

En modo script, <script src="https://platform.twitter.com/widgets.js"> se ejecuta dentro de tu página con los mismos privilegios que tu propio código. En principio puede leer y modificar tu DOM. A cambio, ajusta la altura a la longitud real de la publicación y aplica opciones como el tema oscuro o el idioma tal como la plataforma lo prevé.

El modo iframe encierra la publicación en una ventana de otro origen. El código de la plataforma no puede tocar el DOM de tu página y no añades ningún script de terceros. El inconveniente es la altura: un iframe no sabe cuánto mide su contenido, así que la herramienta pone estimaciones, 600 px para X y 800 px para Instagram (640 px con el pie oculto). Las publicaciones largas se cortan y las cortas dejan espacio vacío, así que ajusta el campo de altura.

Si tu sitio usa una Content Security Policy estricta, el modo iframe es más fácil de mantener porque solo hay que permitir el origen del marco, sin ampliar script-src. Si vas a insertar muchas publicaciones en un artículo largo, el modo script con el cargador incluido una sola vez (activa «omitir script» en las demás) pesa menos que muchos marcos separados.

Inserciones y cookies de terceros

Con cualquiera de los dos métodos, la publicación se carga desde los servidores de la plataforma, así que el navegador de cada visitante hace peticiones a x.com, facebook.com o instagram.com en cuanto se abre la página, sin necesidad de hacer clic. Si el visitante tiene sesión iniciada en esa plataforma, pueden enviarse cookies de terceros, lo que permite a la plataforma asociar a esa persona con la visita a tu página.

Lo que ocurre después depende del navegador. La documentación de WebKit indica que la Prevención Inteligente de Rastreo de Safari bloquea por defecto todas las cookies de terceros, sin excepciones. Chrome, en cambio, anunció en 2025 que no seguiría adelante con la retirada prevista de las cookies de terceros y que mantendría la opción del usuario en la configuración. La misma inserción puede servir para rastrear a un visitante y no a otro.

La opción «no rastrear» de X añade data-dnt="true" en modo script o el parámetro dnt=true en modo iframe, para pedir a X que no use la visita con fines de personalización. Es una petición, no un bloqueo: las peticiones de red se siguen haciendo. En la Unión Europea, donde los sitios suelen mostrar un banner de consentimiento de cookies, conviene decidir si las inserciones deben esperar a ese consentimiento. La única opción que no envía nada a la plataforma es una captura de la publicación con un enlace normal al original.

De dónde sale el código de inserción: oEmbed

Cuando pegas la URL de una publicación en WordPress u otro CMS y se convierte sola en una inserción, está actuando oEmbed. El consumidor (tu CMS) envía la URL al endpoint oEmbed del proveedor y recibe un JSON con campos como type, version (siempre 1.0), html, width y height. Hay cuatro tipos: photo, video, link y rich. Una página puede anunciar su endpoint con <link rel="alternate" type="application/json+oembed">.

La especificación de oEmbed recomienda que los consumidores muestren el HTML de tipo rich o video dentro de un iframe alojado en otro dominio, porque insertar el HTML del proveedor directamente en tu página abre la puerta a ataques XSS y al robo de cookies. El modo iframe de esta herramienta sigue esa misma idea de aislamiento. Ten en cuenta que la herramienta no llama a ninguna API oEmbed: monta localmente el formato de inserción documentado de cada plataforma, así que no puede saber de antemano si una publicación se ha borrado o es privada. Compruébalo en la página real.

Motivos habituales de una inserción en blanco

  • La publicación es de una cuenta privada o se ha borrado. En modo script queda solo una cita vacía con un enlace.
  • La URL de Instagram lleva parámetros de seguimiento como ?utm_source=. La herramienta elimina la consulta y el fragmento y añade la barra final para obtener un permalink limpio.
  • Un bloqueador de anuncios o una extensión antirrastreo bloquea el script o el dominio del iframe.
  • Tu CSP no permite platform.twitter.com, connect.facebook.net o www.instagram.com.
  • La URL es de YouTube, TikTok, Vimeo u otra plataforma que la herramienta reconoce pero no admite, así que no genera código.

Ejemplos

Una publicación de X con «no rastrear», los dos métodos

Entrada
URL: https://x.com/jack/status/20 / no rastrear activado / (2) modo iframe con carga diferida
Resultado
(1) <blockquote class="twitter-tweet" data-dnt="true" data-width="550"> <a href="https://x.com/jack/status/20"></a> </blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> (2) <iframe src="https://platform.twitter.com/embed/Tweet.html?id=20&amp;dnt=true" width="550" height="600" loading="lazy" ... title="X post"></iframe>

En (1) un script externo se ejecuta en tu página y ajusta la altura. En (2) la herramienta extrae solo el ID y lo muestra en un marco sin script, con una estimación fija de 600 px, así que un hilo largo puede cortarse. loading="lazy" retrasa la petición hasta que el marco se acerca a la pantalla, lo que también retrasa el envío de cookies.

Una URL de Instagram con parámetro de seguimiento

Entrada
URL: https://www.instagram.com/p/ABC123/?utm_source=x / modo iframe
Resultado
<iframe src="https://www.instagram.com/p/ABC123/embed/captioned/" width="400" height="800" ... title="Instagram post"></iframe>

Se eliminó la cadena de consulta y se añadió embed/captioned/ al permalink limpio. Si ocultas el pie, la ruta pasa a embed/ y la altura por defecto baja a 640 px.

Cómo se usa

  1. Pega la URL de la publicación. La plataforma se detecta a partir de la dirección.
  2. Elige modo script o iframe y ajusta opciones como tema, ancho, alineación u ocultar el pie.
  3. Si la página tendrá varias inserciones, activa «omitir script» en todas menos la primera.
  4. Pega el código en la vista HTML de tu editor y compruébalo en la página publicada.

Preguntas frecuentes

¿Es más seguro el modo iframe?

En el sentido de que el código de la plataforma no alcanza el DOM de tu página, sí. Las peticiones siguen yendo a la plataforma, así que en cuanto a rastreo de visitantes la diferencia es pequeña.

¿«No rastrear» impide que se envíen cookies?

No. data-dnt es una señal que pide a X no personalizar a partir de la visita. Si se envían cookies lo deciden los ajustes del navegador del visitante.

¿Por qué no hay opción iframe para Threads?

Threads no publica una URL de inserción para iframe, así que la herramienta usa su script oficial embed.js.

Mi CMS elimina las etiquetas script. ¿Qué uso?

Usa el modo iframe, que no necesita script. Si también elimina los iframes, la alternativa es una captura con un enlace.

¿Puedo insertar vídeos de YouTube?

No. La herramienta reconoce YouTube, TikTok, Vimeo y otras, pero solo genera código para X, Facebook, Instagram y Threads.

Fuentes

Revisado el:

Privacidad y tratamiento de datos