Language:

How to Embed Your Instagram Feed on Your Website for Free

Display your latest Instagram posts directly on any page of your website — with auto-updating layouts, filters, and mobile-ready designs that match your brand. Below we walk through available methods, setup steps, and best practices.
See what ChatGPT thinks Open the Live Widget Editor
How to Embed Your Instagram Feed on Your Website for Free

If you’ve tried embedding Instagram posts on your website, you’ve probably hit the same wall: Instagram’s built-in embed is one post, one code snippet, no auto-updates. There’s a better way. You can embed an Instagram feed on your website that pulls in new photos, Reels, and carousels automatically — no manual swaps every time you post.

This guide walks through the full setup using the Elfsight Instagram Feed widget — a no-code option that works on WordPress, Wix, Shopify, Squarespace, and any platform that accepts custom HTML. We also cover Instagram’s native embed and the API approach, so you can pick the method that fits your setup.

In this guide, you’ll discover:

  • A 4-step workflow to get your Instagram feed live in minutes
  • How to choose between profile feeds, hashtag feeds, and single-post embeds
  • A full walkthrough of layout, style, and source configuration
  • Alternative methods including the manual iframe approach
  • Optimization tips for performance, filtering, and mobile display

Quick Start: Embed Instagram Feed on Your Website

If you already know what you want, here’s the short path from zero to a working feed:

  1. Open the Instagram Feed editor and select a template.
  2. Enter your Instagram username or hashtag in Sources.
  3. Click “Add to Website” to get the embed code.
  4. Paste the code into a Custom HTML block and publish.

Build your Instagram feed widget in the interactive editor below

How to Embed Instagram Feed on Website: Your Options

There are really only three ways to do this, and they’re not equally practical. Here’s the honest comparison of available methods:

MethodDifficultyCustomizationAuto-UpdatesCost
Elfsight Instagram FeedNo codeHigh (layouts, colors, popups, filters, CTA buttons)Yes (every 48 hours)Free plan or paid from $5/mo
Instagram native embed (oEmbed)Low (copy-paste per post)Minimal (Instagram’s default card style)No (static per post)Free
API approachHighFull (you build everything)Yes (if you code it)Development time

Takeaway: Elfsight is the fastest way to add a continuously updating, styled feed without code. Native embeds work for a few static posts but don’t scale, while the API offers full control – at the cost of needing a developer for setup and ongoing changes.

Types of Instagram Embeds: Feed, Wall, Reels & Hashtags

The right embed type depends on what you want visitors to see. Most people default to “show my whole feed, “but that’s not always the best move. Here’s what each type actually does:

Embed TypeWhat It ShowsBest For
Profile feedLatest posts from a public Instagram accountBrand pages, portfolio websites, “follow us” sections
Hashtag feedPosts tagged with a specific hashtagUGC campaigns, event coverage, community content
Instagram wallGrid layout pulling from one or more sourcesDedicated social proof pages, visual galleries
ReelsVideo Reels from your accountProduct demos, tutorials, behind-the-scenes content
Single postOne specific Instagram postBlog articles, testimonials, featured content

A few things worth noting

  • Profile feeds require the Instagram account to be public. Private, age-restricted, or country-restricted profiles won’t display content.
  • Hashtag feeds pull posts tagged with that hashtag, but Instagram doesn’t provide usernames for hashtag-sourced posts, so you can’t filter a hashtag feed by specific accounts.
  • Reels appear in the feed alongside regular posts, displayed in the same aspect ratio as photos (square or landscape). Vertical display requires custom CSS.
  • Instagram Stories are not supported by any third-party embed tool, including Elfsight. Only posts, Reels, and carousel content can be embedded.
Instagram hashtag feed example

If you want to combine Instagram with content from other social platforms in a single feed, check out how to embed a social media wall on your website.

Prefer watching? Here’s a quick video overview of the setup process:

Step-by-Step: Setting Up Your Instagram Feed Widget

With the embed type sorted, here’s the full walkthrough with practical tips. Each step maps to a tab in the Elfsight editor — what it does, what to change, and what to leave alone.

Step 1: Open the editor and pick a template

The editor opens with a template gallery showing several starting points depending on your preferred layout: Profile Widget, Grid, Hashtag Showcase, Post Slider, etc.

Choose your Instagram Feed template

Each template is a pre-configured combination of layout, post style, and color scheme. You can customize everything after selecting one, so pick whichever is closest to your intended look.

Step 2: Connect your Instagram source

Click the Sources tab in the left sidebar. You’ll see the Add Instagram Source panel with two source type options:

  • Account — enter a public Instagram username or profile URL
  • Hashtag — enter a hashtag to pull in all public posts tagged with it

You can add up to 5 sources per widget, mixing accounts and hashtags. If you want an Instagram hashtag feed on your website alongside your brand account, add both as separate sources within the same widget.

Add your Instagram Feed source
Note: There’s also a Business Account connection type for Instagram Business or Creator accounts. It connects via Facebook/Instagram authorization and doesn’t require the profile to be public. As of October 2025, Facebook verification is no longer needed for this connection.

Step 3: Choose your layout

Next, switch to the Layout tab. The widget offers two core layout types:

  • Slider — a horizontal strip of posts that visitors navigate with arrows or swipe gestures
  • Grid — a traditional grid of posts with a “Load More” button
Adjust your Instagram Feed layout

Under the layout selection, you’ll find additional configuration panels:

  • Columns & Rows – choose Auto or Manual mode to set column/row counts, spacing, and width
  • Header – configure the profile header (avatar, account name, bio, follower count, Follow button)
  • Slider Settings – control arrows, pagination, autoplay, and scrolling behavior
  • Feed Title – add an optional custom title above the feed

If you want to add an Instagram wall to your website, the Grid layout with 3–4 columns and multiple rows creates the classic wall look.

Pro tip: Slider works well as a section element (above the footer, within a social proof area) at full page width, while Grid is better for dedicated Instagram pages or sections where you want to display more content at once.

Step 4: Customize post appearance

The Post tab controls how individual posts look inside the feed. There are two main settings here:

Post style

Cycle through available post templates using arrows:

  • Tile — clean, photo-only display with no visible details. Hovering reveals an overlay with likes, comments, and a caption.
  • Classic — mirrors the authentic Instagram post layout with username, date, caption, engagement counts, and a share button.
Configure Instagram Feed style

Image Aspect Ratio defaults to 1:1 (Classic square), but you can switch to 4:5 (Portrait) if needed.

Post elements

Individually toggle which details appear on each post card:

  • User
  • Date
  • Instagram Link
  • Likes Count
  • Comments Count
  • Share
  • Text (caption)

Post-click action is configurable as well: your media can be opened in a popup, on Instagram, or not open at all if you prefer.

Pro tip: This is where the feed starts to feel like yours — not a generic embed. If you’re embedding product shots, keep it clean: image only, maybe a CTA. For a community-focused page, turning on likes, comments, and captions adds the social proof that actually moves people.

Step 5: Set your color scheme and styling

The Style tab gives you control over the widget’s visual identity. Start with the Color Scheme dropdown, which offers 10 presets and a Custom option.

Set Instagram Feed style

Choosing Custom unlocks per-element color controls under Customize Elements:

  • Header — background, text, follow button, follow button text
  • Post — overlay background, overlay text
  • Arrows — button and text colors
  • Popup — individual color settings for popup elements
  • Custom CSS — an editor for advanced styling beyond the built-in options

If your website uses a specific brand palette, the Custom option lets you match the feed exactly. For most websites, picking a preset and tweaking one or two colors gets you 90% of the way there — don’t overthink this step.

Step 6: Configure language and advanced settings

The Settings tab covers two areas:

  • Language — select the display language for the widget’s interface elements
  • Custom JS — a code field for adding JavaScript for event tracking or advanced integrations
Adjust Instagram Feed settings

For most setups, you’ll only need to change the language if your website serves a non-English audience. The Custom JS option is there for users who want to track specific interactions via Google Analytics or other tools.

Step 7: Get your embed code and install

Once you’re happy with the preview, click the green “Add to website for free” button at the bottom of the editor or “Publish” in your Elfsight dashboard to display your installation code — a short HTML snippet.

Get your Instagram Feed embed code

Copy the code and paste it into your website. The exact placement depends on your platform: the embed is supported by WordPress, Wix, Squarespace, Shopify, Webflow, Elementor, HTML websites, and other CMS setups.

Note: Any changes you make in the Elfsight editor — source, layout, colors, filters — go live on your website automatically. You don’t need to re-paste the code after making updates.

Troubleshooting quick check

  • Feed not appearing: Make sure the code is in a Custom HTML or Code block, not a standard text block. Clear any caching plugins after installation.
  • Empty feed or wrong posts: The Instagram account must be public. Private, age-restricted, or country-restricted profiles won’t load via the Account/Hashtag connection.
  • New posts missing: Content refreshes every 48 hours. If posts are still absent after that, verify the source URL and that the account hasn’t gone private.
  • Mobile layout issues: If you’re using Manual column/row settings, configure the mobile-specific values separately in the Layout tab — the widget doesn’t auto-sync desktop settings to mobile in Manual mode.

Other Ways to Add Instagram Feed to a Website

The Elfsight widget isn’t the only approach. Here’s how to set up an Instagram feed using other methods, with limitations explained.

Method 1: Instagram’s native oEmbed (single post embed)

Instagram offers a built-in embed option for individual posts. This places a single post card on your page — with the photo, caption, likes, and a link to the original.

  1. Open the Instagram post you want to embed on instagram.com (desktop).
  2. Click the three-dot menu icon (⋯) on the post and select Embed.
  3. Copy the embed code provided.
  4. Paste the code into a Custom HTML block on your website and publish.
Key Limitation: This method embeds one post at a time—there’s no dynamic feed. Each embed is static and won’t update, so showing new content requires manually replacing the code every time.

Method 2: Instagram Feed on website code via the Instagram API

For developers who want full control, Instagram’s API lets you pull post data programmatically and render it with custom HTML, CSS, and JavaScript.

  1. Switch your Instagram account to a Business or Creator account (if it isn’t already).
  2. Create a Meta Developer app and add the Instagram Graph API product.
  3. Link a Facebook Page to your Instagram account and configure OAuth permissions.
  4. Generate a long-lived access token through the authorization flow.
  5. Use the Graph API endpoints to fetch your media and build a frontend to display it.
Key Limitation: This only works with professional Instagram accounts—personal accounts lost API access after the Basic Display API shutdown. Tokens expire, Meta updates APIs frequently, and you’re responsible for layout, caching, and error handling, so it’s only practical with ongoing developer support.

Optimization Tips for Your Instagram Feed

With your feed live, don’t just leave it at defaults. These are the things you might want to change immediately after the first install to make it work best.

  1. Use filters to curate content. On the Sources tab, you can use “Show Posts Containing” and “Hide Posts Containing” filters to include or exclude posts by hashtag, username, or URL to show only what fits the page (e.g., products or testimonials).
  2. Limit posts to control load time. The “Total Number of Posts” setting caps how many posts load. If your feed sits on a high-traffic landing page, displaying 6–9 posts instead of 20+ keeps load times fast while still showing fresh content.
  3. Place it where users already scroll. Instagram feeds perform best below the fold on product pages, in dedicated “social proof” sections, or above the footer – not above the fold, where it competes with your CTA.
  4. Use the Tile layout for visual feeds. If your Instagram is mostly product photography or lifestyle imagery, the Tile template removes captions and metadata, letting the visuals do the work.
  5. Optimize mobile columns. In the Layout tabs, switch to Manual and set mobile to 1-2 columns, even if you’re running 3-4 on desktop, so images don’t become too small to tap on phone screens.
  6. Add CTAs in the popup. When visitors click a post and the popup opens, custom Call to Action buttons can redirect them to a product page, sign-up form, or booking link. This turns passive browsing into a conversion path.
Tip from the Elfsight Team: “Hashtag feeds are powerful for UGC but they’re the #1 source of ‘why is my feed showing weird content’ support tickets. Always enable moderation if you’re pulling from a hashtag — especially a branded one. People tag all kinds of things.”

Real Team Using Instagram Feed

Andrew Chin runs Gigi Beauty PMU, a permanent-makeup studio website built on Squarespace. He added the Elfsight Instagram Feed widget to the homepage to display client results — before-and-after photos, procedure videos, and happy client moments — directly from the studio’s Instagram account.

“Elfsight allowed me to have the creative freedom I wanted, without the technical headaches I was facing before. And the best part — no developer needed”

Instagram Feed use case

The feed sits alongside a photo gallery, YouTube videos, and review widgets, creating a visual proof section that lets prospective clients evaluate the work without leaving the website and feel confident to book.

Andrew’s approach shows a common pattern for service-based businesses: using the IG feed as a living portfolio that updates itself as new client photos go up on Instagram.

Frequently Asked Questions

Can I embed an Instagram feed on my website for free?

Yes. The Elfsight Instagram Feed widget has a free plan that includes 1 widget, 5 sources, and 200 monthly views. It displays Elfsight branding on the free tier. Paid plans start at $5/month (annual billing) and remove branding. Instagram’s native embed is also free but only supports single posts, not dynamic feeds.

Does the embedded Instagram feed update automatically with new posts?

The Elfsight widget caches content and refreshes every 48 hours automatically. You don’t need to re-paste any code or manually trigger an update. If you use Instagram’s native embed code instead, each embedded post is static and won’t reflect new uploads.

Can I embed Instagram Reels on my website alongside regular posts?

Yes. When you connect an Instagram account as a source, Reels are included in the feed alongside photos and carousel posts. However, Reels display in the same aspect ratio as other posts (square or landscape) — not in native vertical format. Achieving vertical display requires custom CSS.

Will the Instagram feed widget slow down my website?

The widget uses lazy loading, which means it only loads content as visitors scroll to the feed section. This minimizes impact on initial page load time. Setting a reasonable post limit (6–12 posts) and avoiding excessive sources per widget also helps keep performance in check.

Does the Instagram feed work on mobile devices?

Yes. The widget is fully responsive and auto-adapts to desktops, tablets, and smartphones. For Grid layouts, you can configure separate column and row settings for mobile versus desktop in the Layout tab, giving you precise control over how the feed appears on smaller screens.

Conclusion

You now have a complete walkthrough for embedding an Instagram feed on your website: from choosing the right embed type, to configuring sources and layouts, to installing the code on any platform. Whether you go with a widget tool, Instagram’s native embed, or a custom API build, the setup steps above cover each path.

To get started with the no-code approach, head to the Elfsight Instagram Feed widget, pick a template, connect your account, and paste the code on your website. The free plan gets you a working feed in minutes — customize from there and make it your own.

Article by
Marketing Lead
I’m Andrei Kozinskiy, Marketing Lead at Elfsight. I’m responsible for driving user growth through content and various traffic channels. I love sharing insights and experiences to help others succeed.