How to Embed an Instagram Feed on WooCommerce (Step-by-Step)
How to add a shoppable Instagram feed to a WooCommerce store: connecting WooCommerce's REST API, placing the embed with a Custom HTML block or the Site Editor's Single Product template, what Instagram's API changes mean, and the WordPress-specific faults (sanitised scripts, optimisation plugins) that break feeds.
In this article
WordPress gives you more ways to place an embed than any hosted platform, which is both the appeal and the problem. The same Instagram feed can be added through a block, a template, a page builder or a PHP hook, and each has a different failure mode. This guide picks the right route for your theme, connects the catalogue so the feed is shoppable, and covers the WordPress-specific faults.
Choose your placement route
Where should the embed code go?
Start here
Is your theme a block theme (does Appearance › Editor exist)?
- Yes, block theme
Use the Site Editor
Add a Custom HTML block to a page, or edit the Single Product template to show a feed on product pages.
- Feed on every product page: Edit the Single Product template and add a Custom HTML block below the product summary.
- Feed on one product only: Create a Single Item: Product template for that product and add the block there.
- No, classic theme
Use blocks in content, or a hook
Add a Custom HTML block to pages and posts. For product templates, use your page builder's HTML element or a hook in a child theme.
- You use a page builder: Use its HTML or code element on the page or product template it controls.
- No page builder: Ask a developer to output the embed from a WooCommerce single-product hook in a child theme.
WooCommerce's documentation is clear on the split: with a block theme you edit templates, including the Single Product template, visually in the Site Editor; with a classic theme you can use blocks in posts and pages but you don't get the Site Editor for shop templates. To create a template for one product, WooCommerce's steps are Appearance › Editor, Templates, add new, then "Single Item: Product" and choose the product.
Step by step with Idukki
Instagram feed on WooCommerce
- 01
Create REST API keys
In WordPress, go to WooCommerce › Settings › Advanced › REST API and add a key. Read access covers catalogue sync.
- 02
Connect WooCommerce
In Idukki's settings, open the WooCommerce integration, enter your store URL and connect using the dashboard's pairing option or the consumer key and secret.
- 03
Import products
In the Products area, choose the WooCommerce import so your catalogue is available for tagging.
- 04
Add Instagram and tag
Add Instagram as a source, curate a collection and tag the products that appear in each post.
- 05
Paste the embed code
Copy the embed code from the collection's publish step into a Custom HTML block or your chosen template, then update and check the live page.
WooCommerce's REST API keys come in Read, Write or Read/Write permission levels. Give any integration the least access it needs, and revoke keys you no longer use from the same screen. Tag one to three products per post, the ones actually visible; AI tagging can suggest matches, but check them before publishing. If you run several collections on one page (a homepage gallery and a reels strip, say), the embed code checks whether the Idukki loader is already present before adding it, so the script loads once.
The WordPress catch: who can save a script
WordPress's documentation for the Custom HTML block explains that for users without the unfiltered_html capability (for example, a Contributor), WordPress sanitises the block's content and strips disallowed tags such as <script> and <iframe> when the post is saved. On a single-site install, Administrators and Editors have it by default and Authors and Contributors don't; WordPress's roles documentation notes that on multisite only Super Admins have it. The practical risk: an Administrator adds the feed, someone with a lower role later fixes a typo on the same page, and the script is quietly removed on save.
The Instagram side
Meta switched off the Instagram Basic Display API on 4 December 2024 and directed developers to the Instagram API with Facebook Login or the Instagram API with Instagram Login, which Meta describes as for "Instagram professionals: businesses and creators". Many WordPress Instagram plugins were built on the retired API, so if yours froze that month, convert to a business or creator account and reconnect through a tool on the current API. Showing a customer's post also needs their permission; see collecting UGC legally from Instagram and TikTok and Instagram rights request templates.
Performance on WordPress
Add data-ugc-lazy="1" to the placeholder element in the embed code for feeds below the fold; the widget then waits until the placeholder is near the viewport before mounting. Wrap the embed in a div with a min-height so the page doesn't jump when images load (Google's good threshold for Cumulative Layout Shift is 0.1 or less). Then check your caching or optimisation plugin: settings that delay, defer or combine JavaScript can hold the widget back until the visitor interacts, or break its loader. Exclude it, clear the cache, and test logged out. Core Web Vitals and UGC widgets covers the before-and-after measurement.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Feed vanished after someone edited the page | Script stripped on save by a user without unfiltered_html | Re-add it as an Administrator; move the embed into a template or synced pattern. |
| Works when logged in, not for visitors | Page cache or JavaScript optimisation | Exclude the feed script from delay/combine, purge the cache, test in a private window. |
| Preview fine, broken layout on the live theme | Theme CSS constraining the container | Place the block in a full-width group or adjust the theme's content width. |
| Connection to WooCommerce fails | Wrong store URL or revoked key | Use the site root URL without a trailing slash; generate a fresh key. |
| Products missing when tagging | Catalogue not imported | Run the WooCommerce import in the Products area again. |
| Feed stopped updating in December 2024 | Plugin relied on the retired Basic Display API | Switch to a business or creator account and reconnect. |
FAQs
How do I add an Instagram feed to WooCommerce without a plugin?
Paste the embed code from your feed provider into a Custom HTML block on a page, or into the Single Product template via Appearance › Editor on a block theme. You need an account with the unfiltered_html capability for the script to be saved.
Can I show an Instagram feed on WooCommerce product pages?
Yes. On a block theme, edit the Single Product template in the Site Editor. On a classic theme, use your page builder's product template or a developer-added hook.
Why did my WordPress Instagram feed stop working?
Most often because the plugin used Meta's Basic Display API, switched off on 4 December 2024. Reconnect with a business or creator account through a plugin or service on the current API.
Do I need a business account for an Instagram feed on WordPress?
For any tool using Meta's official API, yes. The supported APIs are built for professional (business and creator) accounts.
Will an Instagram feed slow down my WooCommerce store?
It shouldn't if it lazy-loads below the fold and has reserved space. Measure with PageSpeed Insights before and after, logged out.
Sources
- 1WordPress.org Documentation: Custom HTML block · Users without unfiltered_html have script and iframe tags stripped on save
- 2WordPress.org Documentation: Roles and capabilities · unfiltered_html; only Super Admins have it on multisite
- 3WooCommerce: Customizing your product pages · Single Product template; creating a template for one product
- 4WooCommerce: Using blocks in WooCommerce · Block themes edit templates in Appearance › Editor; classic themes don't get the Site Editor
- 5WooCommerce: REST API documentation · Generating keys; Read, Write, Read/Write permissions
- 6Meta for Developers: Update on Instagram Basic Display API · Unavailable from 4 December 2024
- 7web.dev: Cumulative Layout Shift (CLS) · Good CLS threshold of 0.1 or less
Continue reading
1 piece in this clusterThese long-form pieces on the Idukki blog link back to this article, go deeper on the cluster.
More from Rohin Aggarwal
- Strategy
Instagram Shopping vs. on-site UGC galleries: where each wins
Instagram Shopping tags earn discovery inside the app. On-site UGC galleries earn the sale you can see, measure and retarget. Most brands need both, run differently.
- Strategy
Instagram UGC rights requests: two messages, a consent page and the proof to keep
Copy-ready templates for a public comment, a DM and a consent page. Plus what to store as proof and what to do when the answer is no.
- Strategy
Instagram Stories UGC: archiving and reusing 24-hour content properly
Stories vanish in 24 hours by design. Catching, clearing and archiving customer Stories before they disappear is a workflow problem, not a content problem.