Hashtag Counter
Count total and unique hashtags in any caption, flag duplicates, and warn when you pass each platform limit.
- Free, no account
- No watermark
- No usage limit
About the Hashtag Counter
Paste a caption and this hashtag counter gives you a number you can trust, because it counts tags the way the platforms do, not the way a generic word or character counter does. That gap is wider than it looks. Drop your caption into a plain counter and it'll count #2024 as a tag, treat #Sunset and #sunset as two different ones, and break #social media at the space into something no platform reads that way. So the total you get back is off, sometimes by five or six tags. This one parses your tags by the exact rule the apps actually use, then checks that real count against every platform's ceiling. Nothing you paste is uploaded or stored, it all runs on your own device.
The accuracy matters most on Instagram. Go one tag over 30 and it doesn't just drop the extras, it refuses the whole caption. You hit publish, the photo goes up, the caption is gone. If your counter told you 29 when the true count was 31 (because it missed two case-duplicates you'd never spot by eye), that's on the counter. Getting to the honest number before you post is the whole job here.
How to use
- Paste the caption, all of it, tags scattered through the text or stacked at the bottom. The counter finds every one.
- Read the three numbers. Total is every valid tag, unique is how many are distinct, and duplicates is the gap between them, the tags you've written more than once.
- Check the platform panel. If your total clears a platform's ceiling, a red row names it and gives you the number, so you know where you stand before publishing.
- Trim the repeats. Any tag used twice shows up with a count next to it, like
#travel ×2. Those are wasted slots. - Copy the clean set. Hit Copy unique to drop the de-duplicated list on your clipboard, ready to paste. Clear empties the box.
What actually counts as a hashtag
This is the part that separates a real hashtag counter from a #-spotter, and it's worth a minute. A hashtag is the # symbol followed by letters, numbers, or underscores, and it ends the moment it hits anything else. That one rule drives every number on the page, so here's what falls out of it.
A space ends the tag. #social media is the tag #social plus the ordinary word "media", not one long tag. Want both words tagged? You need #socialmedia or #social #media. Punctuation ends it too, so #win! is #win and #happy😀 is #happy. Underscores stay inside a tag, hyphens don't, which is why #year_in_review survives whole but #year-in-review collapses to just #year. People get burned by that hyphen constantly.
What sits in front of the # matters as well. A link with a fragment on the end, something like yoursite.com/guide#section, is not a tag at all, and neither is the # buried in c#sharp. The apps only start a tag where a word starts, so a caption carrying one link no longer arrives at 30 when you wrote 29.
Two things this tool does that a generic counter can't. First, it throws out numbers-only tags. #123 or #2024 on its own isn't a clickable hashtag on Instagram or most platforms, a real tag needs at least one letter, so the counter puts those in their own row and keeps them out of the total. Counting them would report a number the platform disagrees with. Mix a letter in and #2024recap is valid again. Second, it de-duplicates by ignoring case. Platforms read #Sunset and #sunset as the identical searchable tag, the capital letters are cosmetic. So #NYC and #nyc in the same caption count as one unique tag with one repeat, and you will not catch that pair by eye. The tool keeps the casing of whichever one you typed first, so your copied list still reads the way you wrote it.
It also handles other scripts. #東京, #café, #مرحبا are all genuine hashtags and they count. An emoji on its own doesn't, because an emoji is neither a letter nor a number.
Which limits are real walls, and which just cost you reach
The most useful thing here after the count is the per-platform check, and the key idea is that the six ceilings aren't the same kind of ceiling. Three of them are hard walls, and the other three are soft.
The walls break your post if you cross them. Instagram cuts off at 30 and drops the caption. YouTube ignores every hashtag in a description once you pass 15, so 16 tags gets you zero of them, and Pinterest tops out around 20. Cross one of these and something concrete goes wrong, so the tool flags them in red the moment you're over.
The soft ceilings don't block anything, they just cost you reach, which is why people get confused when the tool warns them about a post that published fine. X is the strict one: one or two tags is the ceiling, and three or more reliably drops engagement, because X surfaces posts by recency rather than by topic, so extra tags do nothing but clutter. TikTok wants three to six relevant tags because its discovery reads the video itself far more than the tag list, pile on more and you just blur what the post is about. LinkedIn sits around three to five specific professional tags, and past ten it reads the post as over-optimized and throttles it, so a narrow tag like #b2bmarketing will consistently outperform something broad like #business.
And the old "always max out at 30 on Instagram" advice is just wrong now. A focused set of eight to fifteen relevant tags tends to beat a wall of thirty generic ones, because Instagram scores relevance per tag and treats a stuffed block as a spam signal. The counter keeps you honest on the number. Picking tags that actually describe the post is still your call.
Frequently asked questions
Do hashtags in the first comment count the same as the ones in my caption?
The counter doesn't care where they sit, it counts whatever text you paste. A lot of people park their tags in the first comment to keep the caption clean, which is fine. But if you're splitting tags between the caption and a comment, paste each block on its own so you're checking the number that lands in each spot, not the two mashed together.
Why does it flag me as over the limit when my post published fine?
Because three of the six limits are soft. X, TikTok, and LinkedIn don't stop you from posting with too many tags, going over just costs you reach, so the post goes up looking normal while quietly underperforming. The red warning on those platforms is telling you about engagement rather than a post that will be blocked. The hard caps (Instagram, YouTube, Pinterest) are the ones that actually break something.
Can I use an emoji as a hashtag, like #🔥?
No. An emoji isn't a letter or a number, so #🔥 never turns into a clickable, searchable tag on any major platform, and the counter won't count it. If an emoji sits at the end of a real tag it just ends the tag early, so #sunset🔥 still counts as #sunset.
Does it count hashtags written in other languages?
Yes. It recognizes letters from any script, so #東京, #café, and #مرحبا all register as valid tags, same as an English one. That matters if you post to a multilingual audience and mix scripts in a single caption, since a lot of counters silently drop anything that isn't Latin text.
Should I paste my "copy unique" set onto every post?
Better not to. Copy unique is great for pulling a clean tag list out of an old caption to reuse, but pasting the exact same block onto every post is a pattern the algorithms read as automated. Keep a couple of saved sets per content theme and swap a few tags each time, so no two posts carry the identical block.
Is anything I paste uploaded or saved?
No. All of the counting happens in your browser, nothing is sent to a server, stored, or logged, and it is gone the moment you close the tab. That makes it safe for unpublished drafts, embargoed campaign captions, or client work you aren't ready to post yet.