Logo

MonoCalc

/

Hashtag Generator

Text

Unpublished captions stay private — every tag is generated in your browser and nothing is uploaded.

Load a sample:

Casing preview:

Sample built from the words morning, coffee, routine. Capitalising each word inside a tag is what lets a screen reader announce it as three words rather than one long string.

Your text

151 chars
Free prose is split on spaces and punctuation, then ranked by frequency.

Generated hashtags

17 tags122 chars

Hashtags

17

after filtering and dedupe

Total characters

122

including hashes and separators

Average tag length

5.24

characters per tag, excluding the hash

Duplicates removed

0

matched case-insensitively

Longest tag

#mountains

9 characters

Stop words removed

7

filler words filtered out

Source words

28

26 unique · 17 kept

Rejected candidates

11

listed with a reason below

Platform compliance

No platform
Limits are not enforced — only your own Max Hashtags applies.

Hashtag budget

17 tags — no hard cap

Caption budget

275 characters — no preset limit

Recommended: Whatever your channel allows.

Generation options

How each tag is capitalised.
#coffee #routine
Most frequent source words first.
#one #two
Between 1 and 100; a platform cap takes precedence.
Words shorter than this are ignored (1–15).
Longer tags are dropped (5–140).
Decimal places used for the average tag length (0–10).
Prepended to every generated tag, up to 30 characters.
Appended to every generated tag, ideal for a campaign year.
Comma separated, merged into every result.
Comma separated words that must never become a tag.
Extra filler words on top of the built-in English list.

Result detail

Click a tag to copy it on its own, or use the × to drop it from the set. Bigger chips came from words that occurred more often.

#mountains
#trailhead
#sunset
#camera
#golden
#coffee
#rocky
#light
#ridge
#hike
#hour
#cold
#wind
#warm
#long
#walk
#back

About This Tool

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.

Fewer, sharper tags usually win
Instagram allows thirty hashtags but its own creator guidance suggests three to five relevant ones. Broad tags like #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.

Frequently Asked Questions

Is the Hashtag Generator free?

Yes, Hashtag Generator is totally free :)

Can I use the Hashtag Generator offline?

Yes, you can install the webapp as PWA.

Is it safe to use Hashtag Generator?

Yes, any data related to Hashtag Generator only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does the hashtag generator work?

Your text is normalised first — accents are folded to plain letters and emoji are stripped — then tokenised according to the input mode you picked: prose is split on spaces and punctuation, a comma or newline list keeps each entry whole, and an existing hashtag block has its leading hashes removed. Stop words, banned words and anything below the minimum word length are dropped, the survivors are counted for frequency, optionally joined into two- or three-word phrases, cased in your chosen style, sanitised down to letters, numbers and underscores, de-duplicated case-insensitively, sorted and finally truncated to your tag limit.

Which characters are actually allowed in a hashtag?

Every major platform links only letters, numbers and the underscore. Spaces end the tag, and a hyphen, apostrophe, period, comma or any other punctuation mark cuts it short — so #beach-vibes becomes the tag #beach and the rest of the text is discarded. The generator removes those characters for you and tells you exactly which ones it stripped. A tag made only of digits is rejected outright because platforms will not turn it into a link.

Why does camelCase or PascalCase matter for hashtags?

Screen readers pronounce a run of lowercase letters as one unreadable blob, while capitalising each word inside the tag lets them announce the individual words. #NowThatsWhatICallAccessibility reads correctly; the all-lowercase version does not. Capitalisation makes no difference to how a platform matches or ranks the tag — search is case-insensitive — so it costs you nothing and makes your posts usable by more people.

How many hashtags should I use on each platform?

Instagram rejects a post above 30 hashtags and its own guidance suggests 3 to 5 well-chosen ones. YouTube counts only the first 15 and ignores them entirely if you exceed that, with a 60-character limit per tag. Pinterest allows 20 per pin. X, TikTok, LinkedIn and Facebook have no hard cap, but each tag spends characters from the post budget — 280 on X, 2,200 on TikTok, 3,000 on LinkedIn. Pick a platform preset and the compliance panel checks your set against those numbers live.

What is the difference between the input modes?

Sentence mode treats the input as prose and turns individual meaningful words into tags, so a caption becomes a ranked tag set. Keyword list modes treat each comma-separated entry or each line as one tag, which keeps a phrase like 'golden hour' together as #goldenHour instead of splitting it. Cleanup mode takes a messy block of existing hashtags and repairs it — deduplicating, re-casing, stripping stray hashes and invalid characters — and shows a before-and-after column so you can see what changed.

Is my text sent anywhere?

No. Every step runs in JavaScript in your own browser: the caption you paste, the generated tags, the exports and the preview never leave the page, and there is no API call or trend lookup involved. The share link carries your option settings only — casing, limits, platform, filters — never the text itself, so you can send a colleague your exact configuration without sharing an unpublished caption.