Back to all guides
Social Proof
October 13, 2026
7 min read

How to Embed Tweets and LinkedIn Posts on Your Website

How to embed tweets and LinkedIn posts on your website with each platform's own code, where to paste it in Webflow, Framer, WordPress, Shopify and Squarespace, and the problems that show up after it ships.

Somebody posted something nice about your product, and you want it on your homepage. Both X and LinkedIn will give you embed code for a single post, and it takes about two minutes to get working. This guide covers how to embed tweets and LinkedIn posts on your website with that native code, the exact place to paste it in the common site builders, and the things that go wrong a few months later.

If you only want one post on one page, the native embed is often all you need. If you want ten posts from three platforms, skip to the end.

Step 1: Get the embed code from X

On x.com, open the post, click the ··· menu on it and choose Embed post. X shows you a snippet to copy.

The snippet has two parts, and it is worth knowing what they are because site builders sometimes strip one of them:

  • A <blockquote> with the post’s text, author and a link back to it. On its own this is plain HTML.
  • A script tag that loads X’s widgets.js, which replaces the blockquote with the rendered card.

If you paste the code and see the post’s text but not a proper card, your editor almost certainly removed the script. X’s own documentation says the same thing: switch the editor to HTML or code mode and paste again.

Step 2: Get the embed code from LinkedIn

LinkedIn’s version works from the desktop site only:

  1. Open the post and click the More (···) icon at its top right.
  2. Click Embed this post.
  3. Pick Embed full post or Embed with less text (video posts also offer video only).
  4. Click Copy code.

What you get is an <iframe> with a fixed width and height. Change the width to 100% if you want it to fit your column, and adjust the height by eye.

LinkedIn’s help page lists the limits: only posts shared as Public can be embedded, and multi-photo posts and reposts with commentary cannot be embedded at all. If the menu item is missing, one of those is usually why.

Step 3: Paste it into your site builder

Every builder has a “raw HTML” block. The names differ, and on some builders it depends on your plan, so check yours if the option is missing.

  • Webflow: drag a Code Embed element from the Add panel onto the page and paste the snippet. Embeds that use scripts usually do not render in the Designer canvas, so check the published or preview site rather than assuming it is broken.
  • Framer: insert an Embed component and paste the code into its HTML field. Give the component a fixed height or fit-content sizing, otherwise the card can be clipped.
  • WordPress: for X, the block editor’s embed block accepts a post URL and does the rest. For LinkedIn, use a Custom HTML block and paste the iframe. Some hosted WordPress plans restrict scripts and iframes, which is the first thing to check if nothing appears.
  • Shopify: in the theme editor, add a Custom Liquid section (or a Custom HTML block, depending on your theme) where you want the post and paste the code there.
  • Squarespace: add a Code block and paste the snippet. The preview inside the editor may show a placeholder; the live page is what counts.

That is the whole job for a single post. Publish, check it on a phone, and you are done.

What goes wrong with native embeds

None of these show up on the day you ship. They show up later, usually when somebody else notices first.

  • They break when the post is deleted. LinkedIn says it outright: if the author deletes the post, the embed goes too. X’s documentation says a deleted post will not render as a card and you are left with the plain blockquote text, and some developers have reported getting an empty box instead. Either way, a testimonial on your pricing page now depends on a stranger never cleaning up their old posts or locking their account.
  • Third-party scripts and requests. Every embed loads code or a frame from the platform, so your visitors’ browsers connect to X or LinkedIn on page load. That adds weight to the page, and if you take cookie consent seriously it is one more thing to disclose.
  • Layout shift. An X embed starts as a short blockquote and grows into a taller card once the script runs, pushing everything below it down. The LinkedIn iframe has a height you guessed, so it either clips the post or leaves a gap.
  • No grouping. Each embed is one post, styled the platform’s way. Three tweets and two LinkedIn posts means five separate cards in two different visual styles, laid out by hand. There is no way to say “show my best eight posts in a grid” and have it stay that way.
  • The words may not count as yours. Content inside an iframe is a separate document, so search engines do not treat a LinkedIn embed’s text as part of your page.

For one post you are confident will stay up, these are acceptable costs. They add up quickly once the section becomes a real part of the page.

When a wall makes more sense

The alternative is to store the posts rather than fetch them live, and render them all in one consistent block. That is usually called a wall of love, and it is what SocialClipper’s walls do.

You save each post with the browser extension, which keeps the whole thing (text, images, video, author name and avatar) instead of a link. Tag the ones you want to show, publish the tag as a wall, and paste one line of HTML:

<div data-socialclipper="your-wall-slug"></div>
<script src="https://socialclipper.io/embed.js" async></script>

How that answers the list above:

  • Deleted posts stay on the wall, because the content was saved when you clipped it.
  • X, LinkedIn, Reddit, Instagram, TikTok and YouTube posts sit side by side in one style, in a wall, grid, list or carousel layout, light or dark.
  • It renders inside your page rather than in an iframe, so the text is real HTML that search engines can read. An iframe version exists for hosts that block scripts.
  • Adding a post is a tag, not a redeploy. Clip it, tag it, and it appears wherever the snippet is.

The honest trade-offs: saving posts is free, but publishing a wall needs Premium ($4.99/mo), and every wall carries a small “Powered by SocialClipper” badge. It is still one script on your page, just one instead of one per platform. And a card whose original was deleted is less verifiable than a live post, so if someone asks you to take their post down, do.

For more on choosing between screenshots, native embeds and a wall, see how to embed social media testimonials on your website.

The short version

One post that matters, on one page: use the native embed code and paste it into your builder’s HTML block. Several posts, from more than one platform, that you want to keep working for years: store them and publish a wall. Both are fine answers. The mistake is building a whole testimonials section out of single embeds and finding the gaps six months later.

Put your best posts on your site

Clip the posts people write about you, tag them, and publish the tag as a wall you embed with one line of HTML. It works on Webflow, Framer, WordPress, Shopify and plain HTML.