For a long time we ran the same 18 hashtags across every video, every platform, every day. The list was a mix of generic trending tags (#fyp #pourtoi), niche tags about French law, and a few audience-targeting tags. It looked reasonable. It was costing us 60% of our potential reach.
The fix wasn't more hashtags. It was different hashtags per platform, served in different positions, with different intent. Here is what we learned, and what EnDroit now does automatically.
What changed in 2025–2026
Three things forced everyone to rethink:
- Instagram capped meaningful hashtags at five. The 30-tag limit still technically exists but the algorithm only weights the first five. Stuffing the caption with the rest gets you flagged as spam.
- TikTok stopped boosting
#fyp. Trending generic tags became neutral signals at best. The new signal: 3–5 highly specific tags that classify your video for the right audience. - YouTube's Shorts algorithm started treating
#Shortsas redundant. The system detects the format automatically. Adding it neither helps nor hurts. The bandwidth is better spent on descriptive tags.
The combined effect: a 20-tag list copy-pasted everywhere went from "harmless" to "actively penalized." Especially on Instagram, where the algorithm started flagging accounts with generic-heavy captions.
The three-bucket model
EnDroit splits every video's hashtag pool into three buckets:
- Generic / trending —
#fyp#pourtoi#viral#apprendresurtiktok. Useful on TikTok in moderation, useless or harmful elsewhere. - Niche / topical —
#droitdutravail#cdd#prudhommes. The strongest signal on every platform. These tell the algorithm what your video is about. - Audience-targeting —
#etudiantenddroit#jeunesalaries. Define who should see it. Useful especially on Instagram, where reach is more about matching the right viewer than reaching everyone.
The mix changes per platform. Here's the breakdown we now ship by default:
TikTok (5 tags)
2 generic + 3 niche. Generic gets you onto the FYP carousel for cold viewers. Niche tells TikTok which sub-FYP to feed you to. Example: #fyp #pourtoi #droitdutravail #cdd #prudhommes.
Instagram Reels (5 tags)
5 niche, zero generic. Generic tags like #fyp hurt Instagram reach — the algorithm classifies them as TikTok-cross-posted and demotes the video. Example: #droitdutravail #cdd #precarite #salarie #avocat.
YouTube Shorts (5 tags)
5 descriptive tags. No need for #Shorts. YouTube wants searchable, topic-specific tags that help its recommendation engine match the video to interested viewers. Example: #droit #cdd #travail #legal #france.
Where to put them
Positioning matters as much as choice. Two rules we follow:
- TikTok: hashtags inline in the caption, not at the bottom. The algorithm reads the first 50 characters with more weight. Put one niche tag in the natural flow if you can ("Quand ton patron viole tes droits sur ton
#cdd…"). Put the rest at the end. - Instagram: first comment, not caption. Captions stuffed with hashtags reduce caption readability, and Instagram's algorithm has been gentler with hashtags placed in the first comment for the past two years. Both work equally well for reach now, but caption quality matters for retention.
YouTube Shorts is simpler: drop the 5 tags at the end of the description. The platform parses them. No first-comment trick needed.
The data we're seeing
After we shipped per-platform hashtags in EnDroit's January 2026 release, we saw the following month-over-month change across the 14 beta channels using the system:
- TikTok: +18% impressions, +9% retention
- Instagram Reels: +312% reach (this is not a typo — most accounts had been throttled by Instagram's anti-spam classifier, and the new tag mix unblocked them)
- YouTube Shorts: +47% impressions
The biggest delta is always Instagram. Most creators publishing the same captions everywhere don't realize Instagram has quietly thrown them in a soft-shadow ban. The fix is purely tag-cleanup. No content change needed.
What to do today
If you publish across all three platforms with the same caption, you have at least one platform underperforming for purely structural reasons. The fix takes 5 minutes per video manually, or zero minutes with EnDroit. Either way: stop treating these as the same platform. The algorithms haven't been the same for years.