Hashtag Generator – Turn Any Caption Into Clean, Usable Tags
Writing hashtags by hand is tedious in a very specific way. You retype the same words with a # in front, guess at the capitalisation, remember halfway through that a hyphen breaks the tag, paste the block into your post and discover you are three tags over the limit. This hashtag generator does the whole pass in one step: it reads your caption, keyword list or existing tag block, extracts the words that carry meaning, formats them the way social platforms actually accept, and checks the finished set against the limits of the platform you are posting to.
What a hashtag is allowed to contain
Every major network — Instagram, X, TikTok, LinkedIn, YouTube, Facebook, Pinterest — links only letters, numbers and the underscore. Nothing else survives. A space ends the tag, so #golden hour links only #golden. A hyphen does the same: #beach-vibes becomes #beach and the rest of the text is orphaned in your caption. Apostrophes, periods, commas, ampersands and emoji are all stripped or truncate the tag early. Accented letters are technically permitted on most platforms but render and match inconsistently, which is why café is folded to cafe by default here. A tag made purely of digits, such as #2026, is rejected outright because platforms will not turn a numeric-only string into a searchable link.
How the generation pipeline works
Your text is normalised first — accented characters are decomposed and their marks removed, emoji are stripped — then tokenised according to the input mode. Sentence mode splits prose on whitespace and punctuation. Keyword list mode keeps each comma or newline entry whole, so golden hour survives as one phrase. Cleanup mode strips leading hashes from an existing block so it can be repaired. Stop words, banned words and anything below your minimum word length are dropped, the survivors are counted for frequency, and — if you asked for phrase tags — adjacent survivors are joined into two- or three-word candidates. Each candidate is then cased, sanitised, de-duplicated case-insensitively, sorted and truncated.
Why camelCase is the accessible choice
Capitalisation makes no difference to how a platform matches a hashtag — search is case-insensitive, so #throwbackthursday and #ThrowbackThursday land in exactly the same feed. It makes an enormous difference to screen readers. A run of lowercase letters is announced as one unpronounceable blob, while a capital letter at each word boundary lets assistive technology split the tag into its words and read it aloud correctly. Choosing camelCase or PascalCase costs you nothing in reach and makes your posts usable by far more people.
#love put you in a firehose nobody scrolls; specific tags like #sourdoughForBeginners put you in front of the small audience that actually wants your post.Platform limits worth knowing
Instagram rejects a post above thirty hashtags and shares a 2,200-character caption budget between your words and your tags. YouTube counts only the first fifteen hashtags, ignores them entirely if you exceed that, and caps each tag at sixty characters. Pinterest allows twenty per pin inside a 500-character description. X sets no tag cap but every character competes for the same 280. LinkedIn and TikTok also have no hard cap, though a handful of precise tags outperforms a wall of them on both. Pick a preset and the compliance panel checks your set live, colouring the meter amber as you approach a limit and red once you pass it.
Campaigns, cleanup and repeatable naming
The prefix and suffix fields wrap every generated tag, so a product launch can share one convention — #acmeSpring2026, #acmeLaunch2026 — without you typing the brand each time. Always-on hashtags are merged into every result and never dropped by the truncation step, which is what you want for a permanent brand tag. The banned words list guarantees a term never reaches a caption, and custom stop words extend the built-in English filler list with the words your niche overuses. In cleanup mode, a before-and-after table shows exactly which of your existing tags were repaired and which passed through untouched.
Nothing leaves your browser
Every step above is plain JavaScript running on this page. Unpublished captions, client copy and campaign names are never uploaded, and there is no trend API or account lookup involved. The share link carries your option settings only — casing, limits, platform, filters — so you can send a teammate your exact configuration without sending them the draft.