Tutorial 
Updated October 5, 2026

How to Embed an Instagram Post on WordPress

Iain profile image
Iain

To embed an Instagram post on WordPress, open the post on instagram.com in a desktop browser, choose Embed from its menu, copy the code, and paste it into a Custom HTML block. Pasting the post’s link on its own doesn’t work anymore. If what you want is your own Instagram posts on your site, every time you post, you don’t need to embed anything: Intagrate Lite imports them as WordPress posts for you.

This guide covers both: embedding a single post, yours or anyone’s, and importing your own posts automatically.

Automatically Publish Instagram Media to WordPress

Intagrate is the best WordPress Instagram plugin for posting Instagram media to WordPress.

How to embed an Instagram post on WordPress with the embed code

This works for photos, carousels, videos and Reels from any public account. You need a computer for the first part: the Instagram app doesn’t offer the embed code.

  1. Open the post on instagram.com in a desktop browser.
  2. Click the three dots (…) on the post and choose Embed.
  3. Leave Include caption ticked if you want the caption shown under the post, then click Copy embed code.
  4. In the WordPress editor, add a Custom HTML block where you want the post to appear and paste the code into it.
  5. Click Preview in the block toolbar to check it, then update or publish the page.

In the Classic Editor, switch to the Text tab before pasting, or WordPress will show the code as text instead of running it.

The embed shows the post as it looks on Instagram: the photo or video, the account name, the caption if you kept it, and a link back to Instagram.

An Instagram post embedded in a WordPress post with a Custom HTML block

Why pasting the Instagram link doesn’t work

WordPress used to embed an Instagram post from its link alone: paste the URL on its own line and the post appeared. In October 2020 Facebook (now Meta) retired the API that made this work and required every site to use its own developer app instead, so WordPress removed Instagram and Facebook from its built-in embeds in version 5.5.2 (the WordPress announcement).

Paste an Instagram link into the block editor today and WordPress still turns it into an Instagram embed block, but the block can’t load the post: it says “Sorry, this content could not be embedded.” and offers Try again or Convert to link. Neither gets you the post.

The WordPress block editor showing "Sorry, this content could not be embedded." for a pasted Instagram link

The embed code from step 3 is the way round it, because it carries Instagram’s own script and doesn’t depend on WordPress.

When the Embed option is missing

If Embed isn’t in the post’s menu, one of these is usually the reason:

  • The account is private. Only public accounts’ posts can be embedded.
  • The owner has turned embeds off. Instagram lets account owners stop other sites embedding their posts, under Settings and privacy, then Sharing and reuse, with the Website embeds setting. If it’s your account, switch it on there.
  • You’re in the app. Use a desktop browser instead.

What to know before you embed

An embedded post is still Instagram’s, shown in a frame on your page. That’s ideal for sharing someone else’s post with credit, but it has some limits:

  • It can disappear. If the owner deletes the post, archives it or makes the account private, the embed breaks.
  • Nothing is saved to your site. The image isn’t in your media library, and the caption isn’t part of your page’s text, so search engines don’t count it as your content.
  • It loads Instagram’s script. Each embed adds weight to the page, which adds up with several on one page.
  • It’s one post at a time. Embedding every new post by hand gets old quickly.

For other people’s posts, those trade-offs are fine. For your own posts, there’s a better option.

How to post your own Instagram posts to WordPress automatically

Intagrate Lite is our free plugin for this. Each time you post on Instagram, it creates a WordPress post from it: the caption becomes the title, and the image goes into the post content, saved to your media library if you choose. The posts are yours, on your site, and they stay there whatever happens on Instagram.

Since Meta shut down the Instagram Basic Display API in December 2024, only professional Instagram accounts (Creator or Business) can be connected to any plugin. Switching is free, in the Instagram app’s settings, and doesn’t change how your account looks to followers.

Set up Intagrate Lite

  1. In WordPress, go to Plugins, then Add New Plugin, search for “Intagrate Lite”, then click Install Now and Activate.
  2. Go to Settings, then Intagrate Lite.
  3. Click Log in in the notice at the top of the page, sign in to Instagram with your professional account and allow access. You’re sent back to the settings page, which now shows your account, your recent posts and the settings.

The Intagrate Lite settings page before connecting, with the Log in link
4. Choose your settings (below), then click Update Options.

The settings that matter

  • Last Image: Intagrate posts every image published after the one selected here. Pick an older image to bring some of your recent posts across straight away.
  • Select Image Saving: Save Image to Media Library keeps a copy on your site; Link to Instagram Image doesn’t. Saving is the one to choose if you want the posts to outlast Instagram.
  • Featured Image Config: Featured and Post Image sets the image as the post’s featured image and puts it in the content. Featured Only is for themes that already show the featured image at the top of a post.
  • Post Category, Post Author and Post Format: where new posts go and who they’re credited to.
  • Post Date: Instagram Image Created Date dates the post when you shared it on Instagram, rather than when it reached WordPress.
  • Post Status: Draft lets you check each post before it goes live. Publish posts straight away.
  • Custom Title Text and Custom Body Text: wrap the caption and image in your own words, using %%title%% for the caption and %%image%% for the image.

Intagrate Lite checks for new Instagram posts when someone visits your blog page or the category it posts into, so a new Instagram post shows up on your site with the next visit.

When you need more

Intagrate Pro adds videos and Reels, any number of Instagram accounts, your entire post history, moderation (choosing which posts get published), and templates that control exactly how each post is built, using template tags. The quick start guide walks through the first setup, and the features page has the full list.

Embed or import: which to use

You want to Use
Show one post, especially someone else’s Instagram’s embed code in a Custom HTML block
Show a Reel or video once Instagram’s embed code
Put your own posts on your site, automatically Intagrate Lite
Own the images and captions, and have search engines index them Intagrate Lite, saving images to the media library
Import videos, several accounts, or your full history Intagrate Pro

If you want a scrolling gallery of your latest posts rather than real WordPress posts, that’s a feed plugin’s job: our roundup of Instagram plugins for WordPress and our guide to embedding an Instagram feed cover those.

To start bringing your own posts across, install Intagrate Lite free from wordpress.org.

Automatically Publish Instagram Media to WordPress

Intagrate is the best WordPress Instagram plugin for posting Instagram media to WordPress.

Iain avatar
Posted by
I’m Iain Poulson. I make Intagrate, run WP User Manager, the membership plugin for WordPress, and co-run FlipWP, the private marketplace for buying and selling WordPress businesses.

Follow me on Twitter

Share this article:

Let's get you started

Start publishing your Instagram media to your site today