Instagram competitor analysis: a hashtag-first method you can repeat
Published
An Instagram competitor analysis answers three questions: who else is talking to your audience, what they post, and what gets a response. You can answer the first two by scrolling competitor profiles. The third needs the posts in one place with their likes, comments, dates and captions side by side. This guide shows a method that starts from hashtags instead of profiles, because the hashtags your market uses show you the competitors you already know about and the ones you have not noticed yet. It works by hand for a small check and as a spreadsheet when you want to repeat it every month.
Why start an Instagram competitor analysis from hashtags
A profile shows you what a competitor chose to publish. A hashtag shows you the whole conversation around a topic: the brand's own posts, its customers' posts, creators it pays, and rivals competing for the same attention. Three kinds of tag are worth watching:
- Niche tags, the words your buyers use for the thing you sell, such as
#specialtycoffeeor#homegym; - Branded tags, a competitor's name or slogan, which is where its customers post;
- Campaign tags, the short-lived tag a competitor attaches to a launch, a contest or a challenge.
Profiles are still useful, and you should look at them. But a list of five competitor accounts only tells you about the five you picked. The niche tag tells you who is actually showing up.
What you can learn, and what you cannot
Before collecting anything, be clear about what public data can answer.
| Question | Answerable from public posts? | Where the answer comes from |
|---|---|---|
| Which accounts post most often on my niche tags | Yes | Count posts per account |
| Which formats get the most likes and comments | Yes | Group by photo, video or carousel |
| When competitors post | Yes | Post dates and times |
| Which campaign tags a competitor runs | Yes | Other hashtags in their captions |
| How a competitor's campaign tag performed | Partly | Posts and engagement on that tag |
| A competitor's reach, impressions or follower growth | No | Only the account owner sees these |
| What a competitor spends on ads or creators | No | Not public |
Reach and impressions belong to the account owner. Any tool that shows a competitor's exact reach is estimating it. Engagement on public posts is the measurement you can actually take, so this method builds on that.
Step 1: list your hashtags
Write down 5 to 15 tags in three columns: niche, branded, campaign.
- Search your product category in the Instagram search bar and note the tags that appear on posts from people you would want as customers.
- Open two or three competitor profiles and read their captions for the last month. Note any tag they use repeatedly, and any tag that looks tied to one launch or event.
- Open a few customer posts that tag a competitor and note the extra tags those customers add. Those are often better niche tags than the ones brands pick.
If you want to check whether a tag is active before you commit to it, the free hashtag checker tells you whether a tag returns recent posts. Keep the list short. A focused list you repeat every month is worth more than a long one you run once.
Step 2: pick a time window
Decide the period you are comparing, such as the last 30 days or the four weeks around a competitor's launch. Use the same window for every tag, or the comparison is meaningless: a tag checked over three months will always look busier than one checked over a week.
For campaign tags, set the window from a few days before the launch to a couple of weeks after it. That shows the ramp, the peak and how quickly it faded.
Step 3: collect the posts
By hand
For a quick look at one or two tags, open each hashtag page in Instagram and scroll. Record, for each post in your window:
- the account that posted it;
- the date;
- the format (photo, video, carousel);
- the likes and comments;
- any other hashtags in the caption.
This is fine for twenty posts. It gets slow past fifty, and the hashtag page is a scrolling feed rather than a complete list, so it is easy to miss posts or lose your place. How to see all posts under a hashtag covers the limits of the hashtag page in more detail.
As a spreadsheet
For anything you plan to repeat, collect the posts as rows instead. The Instagram Hashtag Scraper takes one hashtag, a date window and an exact result limit, and writes one row per post with the fields this analysis needs: the post URL, the date, the caption, the hashtags in it, the like and comment counts, the owner's username and the media type. The full list is on the output page. You pay only for posts actually delivered, so a tag with a quiet month costs little.
Run it once per tag with the same window, then export each dataset to CSV or Excel. How to export Instagram posts to Excel walks through getting the file into a sheet. It needs a session cookie from an Instagram account you control, because Instagram serves hashtag data only to signed-in sessions; the getting started guide explains that step.
Step 4: turn the rows into answers
Put every tag's rows into one sheet with an extra column for the tag it came from. Then build these views. Each is a pivot table or a sort, nothing more.
Who shows up
Count posts per ownerUsername, per tag. The accounts at the top are your real competitors for attention on that topic. Expect surprises: a creator or a small shop often posts more on a niche tag than the brand you were worried about.
What format works
Group by media type and compare the median likes and comments. Use the median rather than the average, because one viral post can drag an average far from what a normal post gets.
| View | Rows | Values | What it tells you |
|---|---|---|---|
| Share of voice | Account | Count of posts | Who dominates the tag |
| Format | Media type | Median likes, median comments | Which format earns responses |
| Timing | Day of week | Count, median likes | When the tag is busy and when it responds |
| Tag pairing | Other hashtags | Count | Which tags travel together |
| Campaign curve | Date | Count of posts | How a campaign tag rose and faded |
When people post
Split the date into day of week and compare counts and median engagement. A day with many posts and low engagement is crowded; a day with fewer posts and similar engagement is an opening.
Which tags travel together
Split the hashtags column and count each tag. The tags that appear most beside your niche tag are candidates for your own captions and for the next month's list. A branded tag that keeps appearing next to a competitor's campaign tag tells you how that campaign was structured.
How a campaign performed
For a competitor's campaign tag, chart the post count by date. A steep rise and a sharp drop means a burst driven by one push, such as a contest deadline. A slow rise that holds means customers kept using it after the brand stopped pushing. Read the top posts by engagement to see whether the brand, creators or customers carried it.
Step 5: decide, then repeat
An analysis is only useful if it changes something. After each pass, write down at most three decisions, for example:
- "Carousels get roughly the same comments as videos on our niche tags; test more carousels."
- "Competitor X's challenge tag held for three weeks after launch; plan our own challenge with a longer window."
- "Two creators post often on our tag and nobody sponsors them yet; contact them."
Then run the same tags over the next window and compare. Because the rows carry dates, comparing this month to last month is a matter of filtering, and a change in who shows up is itself a finding. If you run a contest of your own, Instagram hashtag contest covers collecting every entry the same way.
When the manual way is enough
You do not need a spreadsheet for every question. Stay with scrolling when:
- you are checking one competitor's last few posts before a meeting;
- the tag gets only a handful of posts a week;
- you want a feel for the visual style rather than numbers.
Move to collected rows when you compare more than one tag, when you want to repeat the check every month, or when someone else needs to see how you reached a conclusion.
A note on fair use of the data
Everything here uses public posts. Keep what you collect to what the analysis needs, do not republish other people's content without permission, and treat the usernames in your sheet as a research list, not a mailing list. How to scrape Instagram hashtags covers the collection step in more depth.
Summary
- List niche, branded and campaign hashtags.
- Fix one time window for all of them.
- Collect the posts, by hand for a quick look or as rows for a repeatable one.
- Build five views: share of voice, format, timing, tag pairing and campaign curve.
- Write down three decisions and run it again next month.
Hashtags show you the whole conversation your competitors are part of, including the parts they did not publish themselves. When you want those posts as a spreadsheet, run the Instagram Hashtag Scraper on your first tag and start with share of voice.