Research Instagram Hashtag Performance (2026 Guide)
Analyze Instagram hashtag performance using Thirdwatch. Post volume, top creators, engagement rates, hashtag-cluster discovery.

Thirdwatch's Instagram Scraper makes hashtag-performance research a structured workflow — post volume, top-creator engagement, hashtag-cluster correlation, emerging-hashtag detection. Built for content-strategy teams, brand-marketing functions, creator-economy analysts, and influencer-marketing platforms that need raw hashtag-feed data.
Why research Instagram hashtag performance
Instagram remains the highest-engagement broad-audience visual platform. According to Meta's 2024 Creator Economy report, Instagram's hashtag-feed engagement drives more than 25% of organic content discovery, and the relative performance of hashtags within a niche meaningfully predicts campaign reach. For content-strategy teams, brand-marketing functions, and creator-economy analysts, hashtag-performance research is the foundation of organic-growth playbooks.
The job-to-be-done is structured. A content-strategy agency wants 50 client niches × 30 hashtags each = 1,500 hashtags performance-tracked monthly. A brand-marketing team running an awareness campaign wants per-hashtag engagement benchmarks to set realistic KPIs. A creator-economy analyst studying niche competitiveness wants hashtag-density vs engagement-quality cross-tabulations across 200+ hashtags. An influencer-marketing platform wants hashtag-fit recommendations per creator based on the platform's audience. All reduce to hashtag list + post pull + engagement-stats aggregation per hashtag.
How does this compare to the alternatives?
Three options for Instagram hashtag-performance data:
| Approach | Cost per 10,000 records monthly | Reliability | Setup time | Maintenance |
|---|---|---|---|---|
| Iconosquare / Later (SaaS) | $50–$200/month per seat | High, with scheduling | Hours | Per-seat license |
| Meta Graph API (business accounts) | Free with quotas | Limited to owned accounts | Days (app review) | Strict use-case scope |
| Thirdwatch Instagram Scraper | Pay per record | Production-tested with TLS-level fingerprinting | 5 minutes | Thirdwatch tracks Instagram changes |
Iconosquare and Later are the SaaS market leaders but priced for individual-seat consumption. Meta's Graph API is the official path but limited to your own business accounts and doesn't enable cross-hashtag competitive research. The Instagram Scraper actor page gives you raw cross-hashtag data at the lowest unit cost.
How to research hashtag performance in 4 steps
Step 1: How do I authenticate against Apify?
Sign in at apify.com (free tier, no credit card), open Settings → Integrations, and copy your personal API token. Every example below assumes the token is in APIFY_TOKEN:
export APIFY_TOKEN="apify_api_xxxxxxxxxxxxxxxx"Step 2: How do I pull a hashtag-watchlist batch?
Pass #hashtag queries with searchType: "hashtag".
import os, requests, pandas as pd
ACTOR = "thirdwatch~instagram-scraper"
TOKEN = os.environ["APIFY_TOKEN"]
HASHTAGS = ["#fitness", "#fitnessjourney", "#fitnessmotivation",
"#workout", "#gym", "#bodybuilding",
"#yoga", "#yogainspiration", "#yogapractice",
"#mealprep", "#healthyfood", "#cleaneating",
"#crossfit", "#cardio", "#strengthtraining"]
resp = requests.post(
f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items",
params={"token": TOKEN},
json={"queries": HASHTAGS, "searchType": "hashtag",
"maxResultsPerQuery": 30, "maxResults": 450},
timeout=900,
)
df = pd.DataFrame(resp.json())
print(f"{len(df)} posts across {len(HASHTAGS)} hashtags")15 hashtags × 30 top posts = up to 450 records — well within budget for a weekly hashtag sweep.
Step 3: How do I compute per-hashtag performance metrics?
Aggregate engagement stats per hashtag.
df["likeCount"] = pd.to_numeric(df.likeCount, errors="coerce")
df["commentCount"] = pd.to_numeric(df.commentCount, errors="coerce")
df["engagement"] = df.likeCount + df.commentCount * 5
def hashtag_from_query(q):
return q.lstrip("#")
df["hashtag"] = df.searchString.apply(hashtag_from_query)
perf = (
df.groupby("hashtag")
.agg(
post_count=("id", "count"),
median_engagement=("engagement", "median"),
p75_engagement=("engagement", lambda x: x.quantile(0.75)),
median_followers=("ownerFollowers", "median"),
)
.assign(engagement_per_follower=lambda d: d.median_engagement / d.median_followers)
.sort_values("engagement_per_follower", ascending=False)
)
print(perf)Engagement-per-follower normalizes for creator-tier differences. High engagement-per-follower hashtags are the most-engaging niche destinations regardless of follower count.
Step 4: How do I detect emerging hashtags via velocity?
Snapshot hashtag post-volume across two timeframes and compute delta.
import json, pathlib, datetime
ts = datetime.datetime.utcnow().strftime("%Y%m%d")
pathlib.Path(f"snapshots/instagram-hashtags-{ts}.json").write_text(perf.to_json())
# Two weeks later, compare
prev = pd.read_json("snapshots/instagram-hashtags-20260413.json")
combined = perf.merge(prev, left_index=True, right_index=True, suffixes=("", "_prev"))
combined["volume_delta"] = combined.post_count - combined.post_count_prev
combined["volume_delta_pct"] = combined.volume_delta / combined.post_count_prev
emerging = combined[
(combined.volume_delta_pct >= 2.0)
& (combined.post_count >= 50)
].sort_values("volume_delta_pct", ascending=False)
print(f"{len(emerging)} emerging hashtags (3x+ volume growth)")
print(emerging[["post_count", "post_count_prev", "volume_delta_pct"]])Hashtags showing 3x+ post-volume growth over 14 days are emerging — content-strategy teams use this signal to ride trend waves before saturation.
Sample output
A single Instagram post (hashtag-feed entry) looks like this. Five rows weigh ~7 KB.
{
"id": "C7abc123XYZ",
"shortcode": "C7abc123XYZ",
"caption": "Morning workout done! Feeling pumped 💪 #fitness #fitnessmotivation #workout",
"type": "Image",
"url": "https://www.instagram.com/p/C7abc123XYZ/",
"imageUrl": "https://scontent-...",
"likeCount": 8420,
"commentCount": 156,
"ownerUsername": "fitnessguru",
"ownerFullName": "Fitness Guru",
"ownerFollowers": 250000,
"ownerVerified": false,
"postedAt": "2026-04-25T07:30:00Z",
"hashtags": ["fitness", "fitnessmotivation", "workout"]
}shortcode is Instagram's globally unique post identifier — the canonical key for cross-snapshot dedup. likeCount and commentCount feed the engagement aggregation; ownerFollowers enables engagement-per-follower normalization. hashtags is the parsed array — useful for cross-hashtag co-occurrence analysis (which hashtags travel together).
Common pitfalls
Three things go wrong in hashtag-research pipelines. Top-9 vs Recent post mixing — Instagram's hashtag feed has two tabs (Top, Recent); the actor pulls Top by default which biases toward high-engagement posts. For category-fairness analysis, supplement with Recent-tab data to capture creator-volume distribution. Hashtag-banning silent failures — Instagram occasionally shadow-bans hashtags for community-violation patterns; banned hashtags return empty feeds even though the term appears in caption text elsewhere. Always verify hashtag-feed responsiveness before treating low-volume signals as real. Caption-vs-comment hashtag attribution — some creators bury hashtags in the first comment rather than the caption (anti-clutter pattern); for accurate hashtag association, parse first-comment text alongside caption.
Thirdwatch's actor handles TLS-level fingerprinting and session rotation so you can focus on the data. Pair Instagram with TikTok Scraper for full short-form-content cross-platform hashtag research. A fourth subtle issue worth flagging: Instagram's hashtag-feed visibility for any individual user is partially personalized based on their viewing history, but the actor's IPs see a relatively neutral feed; for advertiser-relevant audience research, supplement actor data with first-party IG Insights from owned accounts to capture audience-personalized signals. A fifth pattern unique to hashtag research: niche communities sometimes use intentional misspellings or character substitutions (#yogainspirationn, #workout_plan) to build private subcommunities — these alt-spelling hashtags often have 10-20x higher engagement-per-follower because participation requires inside-knowledge. Discover them by scanning the most-engaged posts' caption text for hashtag-like tokens that don't match canonical hashtags. A sixth pitfall: Instagram's algorithm increasingly demotes pure-hashtag-stuffing posts (>15 hashtags), so hashtag-performance research should weight engagement-per-follower more than raw engagement for posts using >10 hashtags — those posts have artificially-suppressed reach independent of hashtag quality. A seventh and final pattern worth flagging: Reels posts and static-image posts within the same hashtag feed have materially different engagement distributions — Reels typically see 3-5x higher engagement than images on the same hashtag because Instagram's algorithm preferentially distributes Reels to non-followers. For accurate hashtag benchmarks, segment by post type (type: Image vs type: Video vs type: Sidecar) and compute separate engagement-per-follower bands for each, otherwise mixed-format averages will undercount Reels-friendly hashtags and overcount image-heavy ones.
Related use cases
Frequently asked questions
Why hashtag-based research on Instagram specifically?
Hashtags are Instagram's organic-discovery primitive — posts tagged with a hashtag get distributed to that hashtag's feed and surface in search. For brand-building, content-research, and creator-strategy work, hashtag performance analytics is the canonical signal of category-level engagement and creator competition. Most niches have a 'core 30' hashtag set that captures 70%+ of category content.
How is hashtag performance measured?
Three signals: post volume (how many posts use this hashtag — proxy for category size), top-creator engagement rate (engagement per follower among top-9 posts — proxy for content quality demanded), and engagement-density (average engagement per top post / post volume — proxy for category competitiveness). Cross-tabulate the three to identify high-volume + high-quality hashtags worth targeting.
What sample size produces stable hashtag insights?
For top-9 post analysis (Instagram's hashtag-feed displays top 9 posts), 50+ engagement-bearing samples produces stable median estimates. For 'recent' tab analysis (most recent 30 posts per hashtag), 200+ samples is the floor for stable percentile bands. For longitudinal cross-hashtag analysis, target 500+ posts per hashtag-snapshot to support hashtag-cluster correlation studies.
How fresh does hashtag data need to be?
For active campaign-planning workflows, weekly cadence is sufficient — hashtag composition changes slowly enough that weekly snapshots capture meaningful drift. For viral-content surfaced through hashtags, daily cadence enables rapid response. For long-term content-strategy research, monthly is sufficient. Hashtag retirement and emergence happen on multi-month timescales, so quarterly broad-cluster analysis is the right cadence for big-picture trend research.
Can I find emerging hashtags before they go mainstream?
Yes, indirectly. Track hashtag post-volume velocity (posts-per-day delta) over 14-day windows; hashtags showing 3x-5x post-volume growth often precede mainstream creator adoption by 30-60 days. The earliest signal is rising posts-per-hour from a small creator base — by the time top-creator accounts adopt the hashtag, the trend is already visible to all monitoring tools.
How does this compare to Iconosquare or Later?
Iconosquare and Later bundle hashtag analytics with scheduling tools and content calendars at $50-$200/month per seat. Their analytics are decent for individual creators but limited for cross-hashtag research. The actor gives you raw post data — for high-volume cross-hashtag research, agency content-strategy work, or platform-builder use cases, raw data is materially more flexible. For solo creators doing one-off hashtag research, the SaaS tools win on UX.
Related
100 free credits, no credit card.
About 30 real searches. Add the MCP to Claude or Cursor in two minutes.