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:

  1. Time-sensitive posts. Specials, opening hours, sales, event announcements and “now booking” posts are useful for a few weeks and misleading afterwards.
  2. 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.
  3. 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.
  4. Pages that promise “what is happening now”. A “News” or “This week” section looks odd with posts from last year in it.
  5. 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 rangeWhat appearsGood fit for
Any timeYour most recent posts, however old (the default)Accounts that post steadily; portfolios; evergreen content
Last 30 daysOnly posts published in roughly the last 30 daysAccounts that post several times a week; specials, events, news
Last 90 daysOnly posts published in roughly the last three monthsAccounts that post weekly or a bit less; most seasonal businesses in season
Last yearOnly posts published in roughly the last 365 daysAccounts 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
Repost to bring something back. Because the filter uses the original publish time, the only way to make an old photo count as recent is to publish it again as a new post. Editing the old post does not reset its date.

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 planLight and Standard plans
When your posts are fetchedAt most once a day for each set of settingsEvery time the widget loads
When an old post drops outAt the next daily refresh after it passes the limit, so up to about a day lateOn the next page load after it passes the limit
When a new post appearsAt the next daily refreshOn the next page load
When you change the Date rangeRight away, because new settings are fetched freshRight 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 windowNumber of posts setWhat the widget shows
209Your 9 newest posts. The date range has no visible effect.
99All 9 posts in the window. The grid is full.
59Only 5 posts. On a 3-column grid that is one full row and one row of 2.
09No 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 postPosts in 30 daysPosts in 90 daysSuggested window for a 9-post grid
DailyAbout 30About 90Last 30 days
3 times a weekAbout 13About 39Last 30 days
Once a weekAbout 4About 13Last 90 days
Twice a monthAbout 2About 6Last year, or 6 posts with Last 90 days
Once a month or less0 to 11 to 3Any 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.

CombinationEffectWatch out for
Last 30 days + Reels onlyOnly Reels shared in the last 30 daysIf 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 monthsRare 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 taggedA good homepage default: old posts age out, unwanted posts are hidden
Any date range + carousel posts offSingle photos and videos only, within the windowIf you post mostly carousels, very little is left
Any date range + video posts offPhotos and carousels only, within the windowReels-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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

GoalBetter toolWhy
Hide a few specific old postsCaption keyword with Exclude matching postsRemoves only what you tagged; everything else stays
Hide one post permanentlyDelete it on Instagram, or tag its caption and exclude the tagThere is no option to hide an individual post in the widget
Show only event posts that are still relevantKeyword filter on an event tag, plus Last 90 daysTopic and age together
Make the whole feed disappear for a whileSwitch the widget to UnpublishedNothing shows; switch back later without touching your site
Show newer posts sooner on the Free planA paid planPosts are fetched on every load instead of once a day
Fewer, more recent postsLower the number of postsOnly 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

  1. Sign in to your dashboard and open the widget you want to change. Choose Settings & preview.
  2. Scroll to Filter posts and find Date range.
  3. Choose Last 30 days, Last 90 days or Last year.
  4. Look at the preview. Count how many posts remain and whether they fill whole rows.
  5. If the feed is short, either choose a longer window or reduce the number of posts so it fills complete rows.
  6. Save. Your live site uses the new setting the next time the page loads; you do not need to paste the code again.
  7. 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

  1. Meta for Developers, “IG Media” reference (timestamp field, ISO 8601 in UTC): https://developers.facebook.com/docs/instagram-platform/reference/instagram-media
  2. 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 free