SEO & PageSpeed
Instagram Feed on Your Website: Why It Breaks and What to Show Instead

Most Instagram feeds on small business websites are either broken or quietly out of date, and the owner is usually the last person to find out. The ones that do work rarely earn their place on a homepage.
That is a strong position for someone whose job is keeping websites running, so I will be specific about why I hold it. A feed widget is not part of your website in the way your pages are. It is a live connection to another company, one that changes its rules on its own schedule, and the connection depends on a key that expires. When it fails, nothing on your side raises an alarm. Your site loads. The pages look fine. A box on the homepage keeps showing whatever it last managed to fetch, or nothing at all.
Treat the feed as a dependency, not decoration. Everything that follows comes from that one shift.
Why feeds stop working without telling you
Almost every broken feed comes down to one of four causes. None of them involve a fault in your website itself.
Meta switched off the old connection
On 4 September 2024, Meta announced that the Instagram Basic Display API, the connection a lot of older feed plugins relied on, would close on 4 December 2024. Its wording left no room for doubt: "all Instagram Basic Display API requests will fail from that day onwards" [1]. The replacement is built for Instagram professional accounts, which Meta describes as "businesses and creators" [2].
So if your feed was set up years ago, on a personal account, through a plugin nobody has touched since, there is a fair chance it stopped updating that December. It may have been showing the same posts ever since.
The access key lapsed
The newer connection runs on an access token, a digital key your plugin holds on your behalf. Meta's documentation states that refreshed tokens are "valid for 60 days from the date at which they are refreshed," and that only an unexpired token can be refreshed [3]. Well-built plugins renew the key in the background. Renewal can fail for ordinary reasons, though: the plugin was switched off for a few weeks, someone removed the app's access inside Instagram's settings, or a conflict with another plugin stopped the scheduled job. Once the key expires, the feed stops.
The plugin stopped being maintained
Feed plugins have to keep pace with every change Meta makes. WordPress runs roughly four in ten of all websites, according to W3Techs' figures this month, and its plugin directory holds a long tail of feed plugins built for that audience. The most popular, Smash Balloon's Social Photo Feed, reports more than a million active installations and a recent update [6]. Plenty of smaller ones have not been touched in years, and a plugin nobody updates is a dependency nobody is watching.
Somebody changed the account
A new person takes over your social media. Someone switches the account from personal to business. Or a staff member connected the feed with their own login and has since left. Each of these can break the link between the plugin and the account you assume it is showing. Smash Balloon's own changelog, for example, tells users with a personal account connection that "you will need to reconnect" after one of its updates [6].
The failure that hides itself
This is the part that concerns me most from an operations point of view. A broken feed rarely looks broken.
Plugins are designed to degrade gracefully. The logic is simple: if Instagram cannot be reached, show the last good copy instead of an error box. Smash Balloon's changelog describes exactly that: a feed "showing an older saved copy of its posts because Instagram could not be reached" [6]. For an outage lasting an hour, that is sensible behaviour. When the outage turns out to be permanent, it means your homepage keeps a tidy grid of photos that never moves again, and nothing tells you.
Consider a composite case, built from a pattern anyone who reviews small business homepages will recognise. A florist in Louth runs Christmas wreath workshops every year and promotes them almost entirely on Instagram. In late October, a customer who came to last year's workshop opens the website to book again. The feed shows sunflowers and summer bouquets, all from more than a year ago. Nothing about wreaths. The customer reasonably concludes the workshops are not running this year, and books one elsewhere, with a business whose site lists the dates.
The florist never hears about it. Lost bookings do not send a notification.
That is the real cost. A feed exists to say "we are busy, and this is our latest work." A frozen one says the opposite, on the most visited page you have, to exactly the people who were ready to buy.

What a working feed still costs
Assume the connection is healthy. The feed still carries a cost, and your customer pays it on their phone.
A typical grid shows somewhere between six and twelve photos. Each one is an image the phone has to download, usually alongside the plugin's own scripts and styles, and depending on how the plugin is set up, the images may come from Instagram's servers rather than yours. Put that on the homepage and you have added a gallery's worth of weight to the page every visitor loads first.
In practice, the person checking your opening hours from a car park waits for photos they did not ask for before they get the information they came for. Some of them will not wait.
We see the same pattern with most embedded extras, from chat widgets to map embeds, and the general mechanism is laid out in our piece on why fast hosting cannot save a site buried in third-party scripts. Feeds are a particularly awkward case, because their content changes every time you post, so there is no fixed set of images to resize and tune once.
Where hosting stops helping
One limit is worth stating plainly, including about our own platform. Page caching serves your own pages ready-made, which is a large part of why a properly hosted WordPress site stays quick. It cannot make another company's servers answer faster, and it cannot shrink photos it never holds. If a feed loads its images straight from Instagram in the visitor's browser, your hosting has no say in how quickly they arrive. How caching, images and scripts add up across a whole page is covered in our complete WordPress performance guide for business owners.
The privacy question that comes with it
This one gets far less attention than it should. On 29 July 2019, the Court of Justice of the European Union ruled on a German online clothing retailer that had embedded Facebook's Like button on its website. The court found the retailer could be a controller jointly with Facebook "in respect of the collection and transmission" of its visitors' personal data, though not for what Facebook did with that data afterwards [5]. The court's press release notes the data appeared to be sent whether or not the visitor had clicked the button, or even had a Facebook account.
That judgment concerned a Like button, not a photo feed, so do not stretch it further than it goes. The operational point carries over, though. If a widget on your page makes your visitor's browser contact Meta when the page opens, you share responsibility for that step.
Whether your feed does this depends on its configuration. A plugin that stores copies of the images on your own server behaves differently from one that loads Instagram's code and images directly. Find out which yours is. Describe it accurately in your privacy policy. If it does contact Meta on page load, check with whoever advises you on data protection whether it belongs behind your cookie consent. Privacy-first analytics that needs no cookie consent only covers the analytics itself; it says nothing about widgets you add on top.
Four ways to put Instagram on your website
There is more than one way to show customers your Instagram work, and they behave very differently.
| Option | Breaks when Meta changes the rules? | Weight on your page | Contacts Meta when the page opens? |
|---|---|---|---|
| Live feed plugin | Yes, needs a valid key | Heavy: 6 to 12 images plus scripts | Depends on plugin settings |
| Single embedded post | Less likely: no key needed since June 2026 | Moderate: Instagram's own embed code | Yes |
| Your own photo gallery | No | Light, if the photos are resized | No |
| Plain link to your profile | No | Negligible | No |
A live feed plugin
This is where I concede ground. If Instagram genuinely is the product, a feed can earn its place. A tattoo studio posting healed work several times a week, or a bakery whose daily specials go up each morning: for businesses like these, constant movement is the proof, and a still gallery undersells them. Keep the feed in that case, but connect it to a professional account you control, use a plugin that is actively maintained, and verify it monthly.
A single embedded post
On 15 June 2026, Meta removed the access token requirement for single-post Instagram embeds of public content [4]. Showing one specific post, say a reel of a finished kitchen on your kitchens page, is now simpler than it has been in years. Each embed still loads Instagram's own code in your visitor's browser, so the speed and privacy points above still apply, on a smaller scale. One or two on a relevant page works. A wall of them does not.
Your own photo gallery
This is what I recommend for most businesses. Choose six to nine of your best photos, upload them to your own site, and write a sentence under each: what the job was, what it involved, what the customer wanted. Nobody picks those photos better than the person who did the work.
The gallery never breaks, because it depends on nothing outside your site. The photos load from your own server, resized once. And the words describing your work sit on your own page, under your control, rather than in a caption on another company's platform. Refreshing it takes about ten minutes, once a season.
A plain link
"See our latest work on Instagram," linked to your profile. It costs nothing, weighs nothing, and never breaks. Anyone who wants more can go to the app, which is where Instagram photos look best anyway.

A twenty-minute check for your own site
None of this needs a developer. It needs a phone, your WordPress login and a clear order of work.
- Verify what a customer sees. Open your homepage in a private browser window on your phone, using mobile data, and compare the newest photo in the feed with your newest Instagram post. If they do not match, the connection has failed.
- Verify the plugin and the account. In your WordPress dashboard, see when the feed plugin was last updated and which Instagram account it is connected to. A personal account, a former employee's login or a plugin untouched for a year is a conflict waiting to surface.
- Decide what the feed is actually for. If it is there to show you are active, a seasonal gallery with a clear date or offer does that better. If Instagram really is your product, keep the feed and set a monthly reminder to check it.
- Build the change in staging, then deploy. Replacing a feed with a gallery changes how your homepage looks, so try it on a copy of your site first, check it on a phone, then push it to production. If something looks wrong afterwards, roll back to the previous version.
- Update your privacy policy. Whatever you end up keeping, describe it accurately, including any connection to Meta.
What your hosting should handle
Strip out the brand names and the standard is simple to describe. Your own pages and photos should be served from cache on fast infrastructure, so the gallery you upload arrives quickly on a phone. There should be a staging environment, so you can rebuild your homepage without experimenting on production. Backups should run automatically, so a plugin swap that goes wrong is a one-click rollback rather than a rebuild. And there should be a person you can ask when something on the homepage stops behaving.
Web60's Irish-hosted Nginx and caching stack is built to that standard. Pages are served through Nginx with FastCGI page caching and Redis object caching. One-click staging lets you test a homepage change before you deploy it. Nightly backups run automatically, with one-click restore and a safety snapshot taken before every update. Support comes from an Irish-based team of real people. Everything is included for €60 a year. If you are starting from scratch, the AI website builder gives you a full WordPress site in under a minute, which means you can put your own gallery on the homepage from day one and never depend on a feed at all.
A homepage that depends only on you
The useful question about any widget is not whether it looks good the day you install it. It is what happens a year later, when nobody has looked at it and the company on the other end has changed something.
Run the phone check this week. If your feed is current and Instagram really is your product, you have lost nothing but twenty minutes. If it has frozen, you now know what customers have been seeing, and you have a simpler option that will still be accurate next Christmas.
Frequently Asked Questions
Why has the Instagram feed on my website stopped updating?
The most common causes are an expired access token, an old plugin that relied on the Instagram Basic Display API (which Meta switched off on 4 December 2024), a plugin that is no longer maintained, or a change to the Instagram account it was connected to. Many plugins keep showing the last saved posts when the connection fails, so the feed can look normal while being months out of date. Compare the newest photo on your homepage with your newest Instagram post to verify.
Do I need an Instagram business account to show a feed on my website?
For most feed plugins, in practice yes. Meta's current Instagram API is built for professional accounts, which it describes as businesses and creators. Switching a personal account to a professional one is free in the Instagram app, but you will usually need to reconnect the account in your feed plugin afterwards.
Does an Instagram feed help my website's SEO?
Do not count on it. The photos and captions in a feed belong to your Instagram account and are loaded into the page by a plugin, and the feed adds weight to the page your visitors load first. Your own photos, uploaded to your site with a sentence describing each job, are content you control and a more dependable way to show your work.
Is an Instagram feed on my website GDPR compliant?
It depends on how the plugin is set up. If it makes your visitor's browser load code or images from Meta when the page opens, data about that visitor goes to Meta, and the Court of Justice of the EU has held that a website embedding a Facebook button can be jointly responsible for that collection and transmission. Find out how your plugin works, describe it in your privacy policy, and check with your data protection adviser whether it needs to sit behind cookie consent.
Can I embed a single Instagram post instead of a whole feed?
Yes. Since 15 June 2026, Meta no longer requires an access token for single-post Instagram embeds of public content, so showing one specific post is simpler than it was. Each embed still loads Instagram's own code in the visitor's browser, so use one or two on a relevant page rather than a wall of them.
Sources
Ian oversees Web60's hosting infrastructure and operations. Responsible for the uptime, security, and performance of every site on the platform, he writes about the operational reality of keeping Irish business websites fast, secure, and online around the clock.
More by Ian O'Reilly →Ready to get your business online?
Describe your business. AI builds your website in 60 seconds.
Build My Website Free →More from the blog
How Many Words Should a Web Page Have? Google Says There Is No Number
How many words should a web page have? Google says there is no target. Why padding pages to 300 words loses customers, and how to set the right length.
UTM Campaign Links: How to Tell Which Post Brought the Customer
Most website visits show up as direct, so you never learn which post or flyer worked. UTM campaign links fix that. A plain-English guide for small businesses.
