How to embed a single Instagram post on your website (and when a feed is better)

Instagram has a built-in way to put one post on your website: the Embed option. It is free, it needs no account with any other service, and it takes about a minute. This guide walks through it on a computer and on a phone, explains what the embed can and cannot do, and helps you decide when a single embedded post is enough and when an automatically updating feed is the better choice.

Updated October 12, 2026

What Instagram’s Embed option does

Every public post on Instagram has an Embed option. It gives you a short piece of HTML, the embed code, that you paste into your website. When a visitor opens your page, Instagram’s own script loads and turns that code into a card that looks like the post on Instagram, with the account name and a link back to Instagram.

According to Instagram’s Help Center, posts, reels and guides from public accounts can be embedded, and so can a public profile. When someone embeds your content, it appears directly on their website, so people can see it without using Instagram, and it includes your username and a link to your Instagram.

The key word is “single”. One embed code shows one post. If you want five posts on a page, you copy five codes and paste them one by one, and when you publish something new on Instagram, nothing on your website changes until you add another code yourself.

What you can and cannot embed

ContentCan it be embedded?Notes
A photo or carousel post from a public accountYesCopy the code from the post’s Options menu.
A reel from a public accountYesReels use the same Embed option.
A public profileYesCopy the code from the profile’s Options menu.
Anything from a private accountNoInstagram’s Help Center says private accounts and content from private accounts can’t be embedded.
A public account that turned off EmbedsNoPublic accounts can switch off the Embeds setting without going private.
StoriesNoMeta’s developer documentation lists Stories as not supported by the embed endpoint.
Posts on inactive or age-restricted accountsNoAlso listed as not supported in Meta’s developer documentation.

Embedding someone else’s public post is technically possible, because the Embed option is available to everyone who can see the post. Whether you should do it on a business website is a separate question. The account owner controls the setting and can turn embedding off at any time, and the post stays theirs. If you plan to feature another person’s or brand’s content on your site, asking first is the polite and safe route.

How to copy the embed code on a computer

Instagram does not offer embed codes in the mobile app. Its Help Center says you can’t copy embed codes from the Instagram app and should use a computer or a mobile browser instead. On a computer, the steps are:

  1. Open the Instagram website in the browser on your computer and log in if needed.
  2. Go to the post, reel or profile you want to embed.
  3. Click the Options button (the three dots) in the top right of the post or profile.
  4. Click Embed, then click Copy Embed Code.
  5. The code is now on your clipboard. Paste it into your website’s HTML editor or custom code element (see below).

Depending on the version of Instagram you see, the Embed window may also offer display options, such as whether to include the caption. Choose these before you copy the code, because the choice is written into the code itself.

How to copy the embed code on a phone

If you only have a phone with you, use the browser, not the app:

  1. Open the Instagram website in the browser on your phone (for example Safari or Chrome).
  2. Go to the post, reel or profile you want to embed.
  3. Tap Options in the top right.
  4. Tap Embed, then tap Copy Embed Code.

Pasting a long block of code into a website editor on a phone is fiddly. If you can, send the code to yourself and finish on a computer.

If you do not see the Embed option

Instagram’s Help Center gives three reasons the Embed option can be missing:

  1. The post or account is private.
  2. The account is public but has Embeds turned off.
  3. The content or profile cannot be embedded.

If it is your own account, check whether the account is public and whether the Embeds setting is on. Instagram notes that switching an account from public to private also turns off embedding.

Where to paste the code on your website

The embed code contains a script, so it has to go into a part of your site that keeps HTML and scripts as they are. A normal text or paragraph block will usually show the code as text, or remove the script. Most site builders have a dedicated element for this:

PlatformWhere to pasteThings to know
WordPress (self-hosted)A Custom HTML blockOnly users with the unfiltered_html capability can save scripts. On a single site, that is administrators and editors.
WordPress.comA Custom HTML blockWordPress.com allows JavaScript only on sites with a plugin-enabled plan and activated hosting features.
ShopifyA Custom Liquid section or block in the theme editorCustom Liquid can be added to templates, or to the header or footer to show on every page.
WixAdd Elements → Embed Code → Popular Embeds → Embed HTMLWix shows the code inside an iframe, which has the size you set in the editor.
SquarespaceA Code block in HTML mode, with Display Source offJavaScript in Code blocks needs the Core, Plus or Advanced plan.
WebflowA Code Embed elementAvailable with a paid Site plan or an eligible paid Workspace plan.
Hand-written HTMLInside the <body>, where the post should appearUpload or deploy the page, then check it in a browser.

Our platform guides walk through each of these elements step by step: WordPress, Shopify, Wix, Squarespace, Webflow and plain HTML. They are written for our feed widget, but the element you paste into is the same for an Instagram embed code.

Preview vs. live page: many editors do not run scripts while you are editing, so an embedded post can look like an empty box or plain text in the editor. Always check the published page before deciding something is broken.

How the embedded post looks and sizes itself

You cannot style the embedded card with your own fonts or colors. It looks the way Instagram designs it. A few things are worth knowing about its size:

  1. It adapts to its container. Meta’s documentation says the embed is responsive and adapts to the size of its container, so its height varies with the width and the length of the caption.
  2. It has a maximum width. Developers who request embeds through Meta’s oEmbed API can set a maximum width between 320 and 658 pixels. On a wide page, expect a card about the width of a phone screen, not a full-width banner.
  3. A long caption makes it tall. If you include the caption, a long one pushes the content below the post further down the page.

On builders that place embedded code inside a fixed-size box, such as Wix, the box does not grow with the post. Make the element tall enough for the post and its caption, and check the result on a phone as well as a computer.

Limits of a single embedded post

The Embed option is great for what it is designed for. These are the limits to keep in mind before you use it for anything bigger:

  1. One code, one post. Showing several posts means managing several codes, and the cards do not line up into a grid by themselves.
  2. It does not update with your account. New posts never appear on their own. The embed always shows the post you copied it from.
  3. The account owner stays in control. If the post is deleted, the account goes private, or Embeds are turned off, the embed stops working. Instagram notes that embeds on other sites may take time to disappear after the setting is turned off.
  4. Instagram’s design, not yours. You can choose roughly how wide the card is, but not its colors, fonts or layout.
  5. It loads Instagram’s script. Each page with an embed loads Instagram’s embed script and content from Instagram. If your site uses a cookie consent tool or a Content Security Policy, check that it allows this, and mention embedded content in your privacy policy if your situation requires it.
  6. A profile embed is not a configurable gallery. Embedding a profile shows it the way Instagram designs the embed. You cannot choose columns, the number of posts or which posts appear, as you can with a feed.

For developers: Instagram oEmbed

If you build websites or apps, you can request embed code programmatically instead of copying it by hand. Meta provides an Instagram oEmbed endpoint that takes the URL of a post, reel or profile and returns the embed HTML along with a few basic fields. A few points from Meta’s documentation:

  1. Endpoint: a GET request to instagram_oembed on graph.facebook.com, with the post URL as the url parameter.
  2. Access token: since Meta’s 2020 change to token-based access, the endpoint requires an app access token or a client access token, which means you need a Meta app. Check Meta’s current app and review requirements before relying on it.
  3. Options: maxwidth (320 to 658 pixels), hidecaption to leave out the caption, and omitscript to leave out the script so you can load Instagram’s embed.js once and call instgrm.Embeds.process() yourself.
  4. Rate limit: up to 1,000 requests per hour.
  5. Usage rule: the endpoint is only meant for embedding content in websites and apps. Using the returned metadata or content for anything other than a front-end view, including analytics, is prohibited.
  6. Not supported: posts on private, inactive or age-restricted accounts, accounts that have turned off embeds, and Stories. Shadow DOM is not supported.

For most site owners, copying the code from the Instagram website is simpler. oEmbed matters when a content management system needs to turn a pasted Instagram link into an embed automatically.

When a single embed is the right choice

Use Instagram’s Embed option when the post itself is the point, and it will still be relevant in a year:

  1. A blog article that refers to a specific post, such as a launch announcement, a behind-the-scenes reel or a customer’s photo you have permission to feature.
  2. A press or news page that quotes a post as it was published.
  3. A product page that shows one demonstration reel that will not change.
  4. A one-off campaign page that lives only as long as the campaign.
  5. Someone else’s public post that you are discussing or featuring with permission. A feed widget can only show your own connected account.

When a feed is the better choice

A feed widget connects to your Instagram account and shows your latest posts as a grid or a slider. New posts appear on your site without you touching the page again. A feed fits better when:

  1. You want the website to stay fresh. Restaurants, salons, shops and studios post often. A feed shows that the business is active without anyone editing the website.
  2. You want several posts to look like a gallery. A feed arranges posts into even rows or a scrollable row, which a stack of single embeds does not do.
  3. You want the design to match your site. A feed widget lets you set columns, spacing and width, and choose what happens when someone clicks a post.
  4. You want to show only some posts. For example only Reels, only posts from the last 90 days, or only posts whose captions mention a keyword.
  5. You do not want to manage many codes. One embed code on the page, and all changes are made in a dashboard.

Single embed vs. feed at a glance

Instagram’s Embed optionSocial Feed by grip space
What it showsOne post, reel or profileYour latest posts as a grid or a slider
Whose contentAny public post that allows embeddingYour own connected Instagram professional account
New postsNever appear on their ownAppear automatically (once a day on the Free plan)
Code to pasteOne code per postOne code per widget
DesignInstagram’s cardColumns, spacing, max width, font size, account header and Follow button
Clicking a postOpens InstagramLightbox on your page, open Instagram, or do nothing
Choosing postsYou pick each oneFilters for Reels, carousels, videos, date range and caption keywords
Account typeAny public account with Embeds onInstagram professional account (Business or Creator)
CostFreeFree plan available; paid plans for more widgets, posts and views

What a feed looks like with Social Feed by grip space

If a feed sounds like the better fit, here is how it works with Social Feed by grip space, so you can compare it fairly with the Embed option:

  1. You connect an Instagram professional account. Personal accounts cannot be connected, because Instagram’s API only gives access to professional accounts. Switching is free; see our guide to professional accounts.
  2. You choose a grid or a slider and set columns, the number of posts, spacing, a maximum width and font size, with a live preview. Our post on choosing between a grid and a slider covers this in detail.
  3. You choose what a click does: open a lightbox on your page that can show the caption and like count, open the post on Instagram, or do nothing. Videos play in the lightbox, and carousel posts can show all of their images there.
  4. You copy one script tag and paste it where the feed should appear, using the same HTML elements described above.

Like Instagram’s embed, the feed is drawn by a script and the images load from Instagram’s servers. Unlike the embed, the feed is drawn directly in your page (not in an iframe), and the widget itself does not set cookies or use local storage.

The Free plan includes one widget, up to 16 posts and 3,000 views a month. New posts are picked up once a day, and a small “Powered by Social Feed” credit is shown below the feed. The Light plan ($8 a month or $80 a year) allows 3 widgets, 30 posts and 30,000 views a month; the Standard plan ($24 a month or $240 a year) allows unlimited widgets, 50 posts and unlimited views. On paid plans the credit is optional. See pricing for details.

A feed cannot do everything the Embed option does. It shows only your own connected account, not other people’s posts, and it does not show Stories. If you want to feature a specific post from another account, the Embed option is still the right tool.

Using both on the same site

The two approaches work well together. A common setup is a feed on the homepage or footer that keeps the site current, and single embedded posts inside blog articles where a particular post is part of the story. Because the feed only needs one code and the embeds are placed one by one, they do not interfere with each other.

If you use both on one page, keep the page light: each single embed loads its own card, and a feed loads its own images. A handful of embeds plus one feed is fine; dozens of single embeds on one page is a sign that a feed would serve you better.

Troubleshooting embedded posts

  1. The code shows up as text on the page. It was pasted into a text block instead of an HTML or code element, or the element is set to display the source. Move it to an HTML element.
  2. There is a plain box or link instead of the post. The embed HTML is there, but Instagram’s script did not run. Your platform may have removed the script (check your plan and user role), a privacy or consent tool may be blocking it, or a Content Security Policy may not allow Instagram’s script.
  3. It works on the live page but not in the editor. That is normal on many platforms. Editors often do not run scripts.
  4. An embed that used to work has disappeared. The post may have been deleted, the account may have gone private, or the owner may have turned off Embeds. You cannot fix this from your side; remove the code or replace it.
  5. The post is cut off. On builders that use a fixed-size box, make the element taller. A long caption needs more space, especially on narrow phone screens.

Frequently asked questions

Is embedding an Instagram post free? Yes. The Embed option is part of Instagram and costs nothing.

Can I embed a post from the Instagram app? No. Instagram says embed codes can’t be copied from the app. Use the Instagram website in a computer or mobile browser.

Can I embed a post from a private account? No. Private accounts and their content can’t be embedded.

Can I embed my whole Instagram feed with the Embed option? You can embed a profile, which shows it in Instagram’s own embed design. To show a grid or a slider of your latest posts that updates by itself, you need a feed widget.

Will a new post replace the embedded one? No. An embed always shows the post it was copied from.

Can I hide the caption? If the Embed window offers a caption option, choose it before copying. Developers using oEmbed can pass hidecaption.

Can I stop other sites from embedding my posts? Yes. A public account can turn off the Embeds setting without going private, and switching to a private account also turns embedding off. Existing embeds may take some time to disappear.

New to Social Feed? Read what Social Feed by grip space is, or compare options in our Instagram feed widget comparison. When you are ready, create a free account.

Sources

  1. Instagram Help Center, “Embed an Instagram post or profile”: https://help.instagram.com/620154495870484
  2. Meta for Developers, “oEmbed” (Instagram Platform): https://developers.facebook.com/docs/instagram-platform/oembed
  3. Meta for Developers, “Instagram oEmbed” (Graph API reference): https://developers.facebook.com/docs/graph-api/reference/instagram-oembed/
  4. Meta for Developers blog, “Required migration to token-based access for User Picture and oEmbed endpoints” (2020): https://developers.facebook.com/blog/post/2020/10/14/required-migration-token-based-access-user-picture-oEmbed-endpoints/
  5. WordPress.org, “Custom HTML” block: https://wordpress.org/documentation/article/custom-html/
  6. WordPress.org, “Roles and Capabilities”: https://wordpress.org/documentation/article/roles-and-capabilities/
  7. WordPress.com Support, “Add code to your site”: https://wordpress.com/support/code/
  8. Shopify Help Center, “Customizing sections”: https://help.shopify.com/en/manual/online-store/themes/customizing-themes/theme-editor/customizing-sections
  9. Wix Help Center, “Embedding a site or a widget”: https://support.wix.com/en/article/wix-editor-embedding-a-site-or-a-widget
  10. Squarespace Help Center, “Code blocks”: https://support.squarespace.com/hc/en-us/articles/206543167-Code-blocks
  11. Webflow Help Center, “Custom code embed”: https://help.webflow.com/hc/en-us/articles/33961332238611-Custom-code-embed

Get your embed code in a few minutes. The Free plan needs no credit card.

Sign up free

More articles