How to show only recent Instagram posts on your website
An Instagram feed is supposed to make your website look alive. It does the opposite when the first thing a visitor sees is last winter’s holiday menu, an event that ended months ago or a sale that is long over. If you post regularly, new posts push old ones out on their own. If you post in bursts, or your business is seasonal, old posts can sit on your homepage for a long time. This guide explains how to show only recent Instagram posts on your website with the date range filter in Social Feed by grip space: exactly how “recent” is measured, how to pick the right window for how often you post, and how to avoid an empty or half-filled feed.
Updated October 12, 2026

The short answer
Open your widget’s “Settings & preview”, go to the Filter posts section and choose a Date range: Any time, Last 30 days, Last 90 days or Last year. Save, and the embed code already on your website starts showing only posts published inside that window. You do not need to change the code on your site.
The rest of this guide covers the details that decide whether that works well for you: the window is a rolling one, it is measured from when each post was first published, it never adds posts beyond the number you set, and it can leave the feed short or empty if you do not post often enough for the window you picked.
Why limit the feed to recent posts?
Most businesses do not need a date limit. If you post a few times a week, the newest posts fill the feed and anything old drops off naturally. A date range is useful in a few specific situations:
- Time-sensitive posts. Specials, opening hours, sales, event announcements and “now booking” posts are useful for a few weeks and misleading afterwards.
- Irregular posting. If you post ten times in one busy month and then nothing for two months, a feed of twelve posts looks the same for the whole quiet period. A date range lets the stale ones fall away.
- Seasonal businesses. A ski school, a beach café, a pumpkin farm or a wedding venue may have posts that only make sense during part of the year.
- Pages that promise “what is happening now”. A “News” or “This week” section looks odd with posts from last year in it.
- Rebrands. After a new logo, menu or shop design, old posts can show things that no longer exist. A date range hides the old look without deleting anything from Instagram.
If none of these apply, leave the Date range on Any time and let the post count do the work. A full grid of slightly older posts usually looks better than a half-empty grid of very recent ones.
The four options
| Date range | What appears | Good fit for |
|---|---|---|
| Any time | Your most recent posts, however old (the default) | Accounts that post steadily; portfolios; evergreen content |
| Last 30 days | Only posts published in roughly the last 30 days | Accounts that post several times a week; specials, events, news |
| Last 90 days | Only posts published in roughly the last three months | Accounts that post weekly or a bit less; most seasonal businesses in season |
| Last year | Only posts published in roughly the last 365 days | Accounts that post a few times a month; hiding a previous brand or very old content |
These four choices are the options in the dashboard. There is no field for a custom number of days and no way to choose a fixed start and end date, such as “June 1 to August 31”. The filter always counts back from now.
Exactly how “recent” is measured
Date filters are easy to misunderstand, so here are the rules the widget follows. They are the same in the dashboard preview and on your live site.
- It is a rolling window. “Last 30 days” means the 30 days before the moment the posts are loaded, not the current calendar month. A post published on the 3rd is still in the window on the 28th of the same month, and drops out early in the following month.
- It counts elapsed time, not calendar days. The comparison is with the exact time a post was published, so a post goes out of the window at roughly the same time of day it was published, 30, 90 or 365 days later. Time zones do not shift it: Instagram reports publish times in UTC and the widget compares elapsed time, not dates.
- The date is the original publish time. The widget uses the publish time that Instagram reports for each post. Editing a caption, changing the cover or getting new likes and comments does not make an old post “recent” again.
- Each post is checked on its own. A carousel counts as one post with one publish time, whichever images are inside it. A Reel is judged by when the Reel was shared.
- Posts are never added to fill the gap. The window removes posts; it does not raise the number of posts you set. If you set 12 posts and only 5 are inside the window, you see 5.
- A post without a reported date is not removed. Instagram normally reports a publish time for every post. In the rare case it does not, the date filter cannot judge that post and lets it through.
When the window moves on the Free plan and on paid plans
The window is checked when the widget gets your posts from Instagram, so how often that happens matters a little.
| Free plan | Light and Standard plans | |
|---|---|---|
| When your posts are fetched | At most once a day for each set of settings | Every time the widget loads |
| When an old post drops out | At the next daily refresh after it passes the limit, so up to about a day late | On the next page load after it passes the limit |
| When a new post appears | At the next daily refresh | On the next page load |
| When you change the Date range | Right away, because new settings are fetched fresh | Right away |
For most uses the Free plan’s daily refresh makes no visible difference: a post that leaves a 30-day window a few hours late is not a problem. It matters only if you rely on something disappearing at a precise moment, in which case the honest answer is that a date filter is the wrong tool. Delete the post on Instagram, or switch the widget to Unpublished. Full details on refresh timing are in our guide to why an Instagram feed is not updating.
How the date range works with the number of posts
The number of posts you set in a widget is a maximum. The date range decides which posts are allowed; the number decides how many of the allowed ones you see. The widget starts with your newest post and works backwards until it has enough posts or runs out of posts inside the window.
| Posts in the window | Number of posts set | What the widget shows |
|---|---|---|
| 20 | 9 | Your 9 newest posts. The date range has no visible effect. |
| 9 | 9 | All 9 posts in the window. The grid is full. |
| 5 | 9 | Only 5 posts. On a 3-column grid that is one full row and one row of 2. |
| 0 | 9 | No posts. If the account header is on, it still appears on its own. |
Two details about the empty case. First, the account header, if you show it, displays your account’s total post count from Instagram, not the number of posts in the window, so it may say “Posts 214” above an empty feed. Second, the widget does not show a “no recent posts” message. If an empty feed is a real possibility for you, read the section on seasonal businesses below.
Your plan also caps the number of posts per widget: 16 on Free, 30 on Light and 50 on Standard. With “Last year” and an active account, you will usually hit that cap long before the window matters.
Choosing a window that will not leave the feed empty
The simplest rule: pick the shortest window that still contains your post count during your slowest normal stretch. Count how many posts you publish in a quiet month, not a busy one.
| How often you post | Posts in 30 days | Posts in 90 days | Suggested window for a 9-post grid |
|---|---|---|---|
| Daily | About 30 | About 90 | Last 30 days |
| 3 times a week | About 13 | About 39 | Last 30 days |
| Once a week | About 4 | About 13 | Last 90 days |
| Twice a month | About 2 | About 6 | Last year, or 6 posts with Last 90 days |
| Once a month or less | 0 to 1 | 1 to 3 | Any time or Last year |
If the suggested window feels too long, the other lever is the number of posts. A row of 4 recent posts looks intentional; a grid of 12 with 4 filled looks broken. Match the post count to a whole number of rows you can reliably fill. For example, with 4 columns and Last 30 days, choose 4 or 8 posts rather than 12 if you only post twice a week.
A slider is more forgiving than a grid. Five posts in a slider just look like a short slider, while five posts in a 3-column grid leave a visible gap. If your post count inside the window varies a lot, consider a slider. The trade-offs between the two layouts are covered in <a href={`${BASE}/blog/instagram-feed-grid-or-slider/`}>grid or slider</a>.
Combining the date range with other filters
The date range is one of several filters in the same section. When you use more than one, a post must pass every one of them to appear. That makes it easy to over-filter.
| Combination | Effect | Watch out for |
|---|---|---|
| Last 30 days + Reels only | Only Reels shared in the last 30 days | If you share one Reel a month, you may see only one or none |
| Last 90 days + caption keyword (Only matching posts) | Only tagged posts from the last three months | Rare tags plus a short window often leave the feed empty |
| Last year + caption keyword (Exclude matching posts) | Everything from the last year except announcements you tagged | A good homepage default: old posts age out, unwanted posts are hidden |
| Any date range + carousel posts off | Single photos and videos only, within the window | If you post mostly carousels, very little is left |
| Any date range + video posts off | Photos and carousels only, within the window | Reels-heavy accounts lose most of their posts |
Keyword rules are explained in detail in how to filter an Instagram feed by keyword, and Reels options in how to show Instagram Reels on your website. A good habit: add one filter at a time and look at the preview after each.
A playbook for seasonal businesses
Seasonal businesses are where the date range is most useful and also where it most often backfires, because the off-season is exactly when you post least. Here is a pattern that works.
- In season: use a short window. Last 30 or Last 90 days, depending on how often you post. Visitors see this season’s conditions, menu, prices and events, not last year’s.
- As the season ends: lengthen the window. Switch to Last year so the feed shows the highlights of the season that just ended instead of emptying out.
- Off season: decide what the feed is for. If your best posts are from last season, Last year or Any time keeps them visible. If showing last season would confuse people, switch the widget to Unpublished in the dashboard. The embed code stays on your site but shows nothing, so you do not need to edit your pages.
- Before reopening: post first, then shorten the window. Publish a few “getting ready” posts before you switch back to a short window, so the feed is never empty on the day you change it.
- Put a reminder in your calendar. The filter does not change by itself. Two reminders a year, at the start and end of the season, are usually enough.
Text on your page matters more than the feed. Opening dates, prices and booking details belong in the page itself, where search engines and visitors can read them reliably. The feed supports that information; it should not be the only place it appears.
Other ways to keep a feed fresh
The date range is not the only tool, and sometimes it is not the best one.
| Goal | Better tool | Why |
|---|---|---|
| Hide a few specific old posts | Caption keyword with Exclude matching posts | Removes only what you tagged; everything else stays |
| Hide one post permanently | Delete it on Instagram, or tag its caption and exclude the tag | There is no option to hide an individual post in the widget |
| Show only event posts that are still relevant | Keyword filter on an event tag, plus Last 90 days | Topic and age together |
| Make the whole feed disappear for a while | Switch the widget to Unpublished | Nothing shows; switch back later without touching your site |
| Show newer posts sooner on the Free plan | A paid plan | Posts are fetched on every load instead of once a day |
| Fewer, more recent posts | Lower the number of posts | Only your newest posts appear, with no risk of an empty feed |
That last row is worth repeating. If you post steadily, lowering the number of posts from 12 to 6 does almost the same thing as a 30-day window and can never leave the feed empty.
Setting it up, step by step
- Sign in to your dashboard and open the widget you want to change. Choose Settings & preview.
- Scroll to Filter posts and find Date range.
- Choose Last 30 days, Last 90 days or Last year.
- Look at the preview. Count how many posts remain and whether they fill whole rows.
- If the feed is short, either choose a longer window or reduce the number of posts so it fills complete rows.
- Save. Your live site uses the new setting the next time the page loads; you do not need to paste the code again.
- Open the live page on your phone to check it there too.
If you have not added a widget to your site yet, follow the guide for your platform first: WordPress, Shopify, Wix, Squarespace, Webflow or plain HTML.
The preview and the live site
The preview in “Settings & preview” applies the same date rule as your live widget, using the current time in your browser. One difference: the preview looks at your 50 most recent posts, while the live widget keeps looking further back through a few hundred recent posts until it has enough. With a date range alone this rarely matters, because posts outside the window are older than the 50 the preview sees anyway. It can matter when you combine the date range with a rare keyword, so check the live page after saving.
On the Free plan, remember that new posts reach the live site once a day, while the preview always shows your latest posts. If a brand-new post is in the preview but not on your site yet, that is the daily refresh, not the date range.
Troubleshooting
The feed is empty after I chose a date range. You have no posts inside the window that also pass your other filters. Choose a longer window, turn off other filters one at a time, or post something new.
Only a few posts appear, and the grid has a gap. Fewer posts are in the window than the number you set. Reduce the number of posts to a full row, lengthen the window, or switch to a slider.
An old post is still showing. Check its publish date on Instagram; if it is close to the limit, it may simply not have crossed it yet. On the Free plan it can take up to about a day to drop out. An old post you edited recently still counts by its original date, so that is not the cause either way.
A post I just published is not showing. The date range never hides a new post. Check the other filters, and on the Free plan allow for the daily refresh.
The header says I have hundreds of posts, but the feed shows three. The header shows your account’s total post count from Instagram. It is not affected by filters. You can hide the post count in the account header settings if it looks confusing.
Nothing shows at all, not even the header. That is not the date filter. See Instagram feed not showing on your website.
Frequently asked questions
Can I set a custom number of days, like 14 or 60? Not in the dashboard. The options are Any time, Last 30 days, Last 90 days and Last year. If you need something shorter than 30 days, lowering the number of posts usually gives a similar result.
Can I show posts from a specific season or date range in the past? No. The filter always counts back from now. To group posts from a past event or season, tag their captions and use a caption keyword filter instead.
Does the date range delete or hide anything on Instagram? No. It only decides what the widget on your website shows. Your Instagram profile is unchanged.
Is the date range available on the Free plan? Yes. All post filters are available on every plan. Plans differ in the number of widgets, posts per widget, monthly views and how often new posts are fetched. See what the Free plan includes and the pricing section.
Can different pages use different date ranges? Yes. Filters belong to a widget, so create one widget per page and give each its own range, for example Last 30 days on the homepage and Any time on the gallery page. How to manage several widgets is covered in how to show different Instagram feeds on different pages.
Does it work with Stories? Stories are not shown by the widget at all, with or without a date range. Instagram’s API lists Stories separately from regular posts.
What timezone is used? None in practice. Instagram reports each post’s publish time in UTC, and the widget compares how much time has passed. A post leaves a 30-day window about 30 × 24 hours after it was published, wherever you and your visitors are.
Getting started
If you do not have an account yet, create a free Social Feed account, connect your Instagram professional account and set up a widget. If your account is a personal one, switch it first; this guide to Instagram professional accounts explains how. Then come back to the Date range setting, pick a window that fits how often you post, and check the result on your phone. For ideas on where a recent-posts feed works best, see where to put an Instagram feed on your website.
Sources
- Meta for Developers, “IG Media” reference (timestamp field, ISO 8601 in UTC): https://developers.facebook.com/docs/instagram-platform/reference/instagram-media
- Meta for Developers, “IG User Media” reference (Stories not returned by the media endpoint): https://developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-user/media
Get your embed code in a few minutes. The Free plan needs no credit card.
Sign up freeMore articles

How to show different Instagram feeds on different pages of one website
Run several Instagram feeds on one website: one widget per page, Duplicate to copy settings, per-page filters, plan widget limits and how views are counted.
Read the article →
How to hide your website’s Instagram feed temporarily without removing the code
Switch your Instagram feed off for a closure, rebrand or account cleanup, then back on later, without touching the embed code on your website.
Read the article →
How to add an Instagram follow button to your website
Add an Instagram Follow button to your website with your feed’s header, change its text and color, and use Instagram’s own profile link and QR code.
Read the article →
How to add an Instagram feed to your website footer
Put your Instagram feed in the footer of every page: settings for narrow footer columns, slider vs grid, site-wide steps per platform, and how views add up.
Read the article →
How Instagram carousel posts appear on your website
How carousel posts show in an Instagram feed on your site: the first-image tile, the carousel mark, browsing all images in the lightbox, and hiding carousels.
Read the article →
Showing Instagram videos and Reels on your website: what to expect
How Instagram videos and Reels look in a website feed: cover-image tiles, muted playback in a lightbox, the video setting, and why some videos show as stills.
Read the article →