Ghost hashtag generator
A Ghost hashtag generator reads your draft and returns tags that match what the post is about. This one also says how much hashtags are worth on Ghost, because networks moved in opposite directions on that question. On one network a missing tag costs you the whole post. On another the tags are what gets you ignored.
The more specific this is, the narrower the tags. "Shipped a Postgres index that cut a query from 4s to 40ms" beats "database tips".
Optional, and the single field that most improves the result.
A discovery tag and a campaign tag are chosen by opposite rules. A campaign tag is supposed to be empty when you start.
This is a ceiling, not a quota. On a network that punishes tags the tool will return fewer than you ask for and tell you why.
Free, no account. Written for Ghost.
How to use it
- Paste your draft. If it is not written yet, describe the post in one line.
- Name the people you want to reach. "Rust developers" gets you better tags than "developers".
- Say why the tag is there, because a discovery tag and a campaign tag are picked by different rules.
- Generate, then delete every tag you would not click yourself.
- Open each survivor on Ghost before you post. A tag with a dead feed, or one that turns out to mean something else, is worse than no tag.
Three big networks have turned against hashtags
The advice industry still sells hashtags as a single technique, and varies the advice only by how many to use. The platforms stopped agreeing with each other years ago, and two of the largest now treat a stack of tags as a smell rather than a signal.
Do hashtags still work on X?
X went first and went furthest. At the end of 2024 Elon Musk told users to stop using hashtags, on the grounds that the system no longer needed them. By the middle of 2025 X had banned them from promoted posts outright. The ranking model reads the text of your post directly, so a tag tells it nothing it had not already worked out, and a row of them at the bottom of a post matches the shape of the spam its classifiers were trained on.
What is left is the case where a tag is the name of something people are watching together. A conference, a live event, a running community joke. There the tag is a meeting point rather than a reach tactic, and one of them in the body of the sentence is enough. Everything else is better written as words, because the words are what the ranking reads anyway.
What Instagram hashtags do now
Instagram's position is quieter and easy to misread. Adam Mosseri has said more than once that hashtags are not a way to get more reach, and Instagram removed the ability to follow a hashtag in 2024, which deleted the feed those tags used to fill. What survives is a sorting job: tags help Instagram file your post under a topic so it can be found in search. That is worth something. It is not distribution, and treating it as distribution is how people end up with a wall of tags and flat numbers.
Filing rewards accuracy over volume. A handful of tags that describe what is in the image and what it is about does the sorting job, and every tag after that is filing the post under something it is not. Since the same words feed Instagram's search, the caption itself is now doing work the tags used to do, which is an argument for writing a real first line rather than a keyword line.
Hashtags on LinkedIn after the pages went
LinkedIn has been draining the feature since late 2024. Hashtag following went, the dedicated hashtag pages went, and the tags stopped appearing in the places that made them feel load-bearing. LinkedIn's content search leans on semantic matching now, so a tag is one weak keyword among the words you already wrote. On LinkedIn the cost of a hashtag is mostly the line it occupies.
That cost is not zero. A LinkedIn post is truncated early, so a tag block sitting above the fold is spending your most valuable line on nothing. If you keep any, keep them at the bottom and keep them to a couple. Nobody has ever followed an account because of the tags under a post.
On Mastodon, a post with no hashtag is nearly invisible
Mastodon is the sharpest counterexample, and almost no hashtag tool accounts for it. There is no ranking feed anywhere in the fediverse. Nothing decides your post is good and shows it to strangers, because there is nothing doing the deciding. Your post reaches your followers, in order, and then stops.
Why an untagged Mastodon post goes nowhere
Hashtags are the mechanism that gets it past that wall. They federate cleanly between servers, they fill the tag timelines people watch, and users follow individual tags the way they follow accounts. On top of that, Mastodon's full-text search is opt-in per user, so by default a public post is findable only through the tags in it. Post without one and you have published to your existing followers and to nobody else.
The same logic applies to the rest of the fediverse, since the tag is the piece that survives the trip between servers. It also explains a habit that puzzles people arriving from Instagram: fediverse users tag their own posts for other people's benefit, so that anyone following the topic gets the post, and they expect the same courtesy back.
Which tags actually work on Mastodon
That makes Mastodon the one network where a generator is doing real work rather than decoration, and it changes what a good tag looks like. Volume metrics barely matter, since there is no algorithm to game. What matters is whether a live community is actually reading that timeline, which is why the tags the fediverse grew itself (#CatsOfMastodon, #FediHelp) outperform anything imported from Instagram.
So pick tags by reading them rather than by counting them. Open the tag, look at whether the posts under it are conversations or a wall of syndicated links, and check that the people posting are the ones you wanted to reach. A tag with a dozen active humans in it beats a bigger one that turned into an automated feed.
CamelCase hashtags and screen readers
Write multi-word tags in CamelCase, meaning a capital at the start of each word. A screen reader cannot split a lowercase run of letters into words and will read it as noise. This is a stated community norm on Mastodon rather than a style preference, and it happens to be easier for sighted readers too.
It costs nothing anywhere else, which is why this tool capitalises every multi-word tag it returns regardless of network. Hashtags match without regard to case on every major platform, so #DogsOfMastodon and #dogsofmastodon land in the same timeline. One of them can be read aloud.
TikTok is the one where the old advice still mostly holds
TikTok behaves more like a search engine than anything else on this list. A large share of its traffic starts in the search box rather than the feed, and its ranking pulls text signals out of the caption, the on-screen text, the spoken audio and the tags, then weighs them against watch time and saves.
Tags that place a video before anyone has watched it
That gives a hashtag a job on TikTok that it lost elsewhere: it tells the system which corner of the catalogue a video belongs in before anyone has watched enough of it to prove anything. A mixed set works better than a uniform one, with a couple of broad tags to place the video in a category and narrower ones to reach the people already inside it.
Because the caption, the on-screen text and the spoken words are read too, the tags should agree with all of them. A video whose audio never mentions the subject and whose tags insist on it is sending the system two different answers, and the one it trusts is the one it can check against what viewers did.
Tags that describe the audience you wish you had
The failure mode on TikTok is the same as everywhere else, though. Tags that describe the audience you wish you had rather than the video you made will get the video shown to people who swipe away, and a fast swipe-away is the single worst thing you can teach the system about your account.
This is why the giant catch-all tags do so little. Being placed in front of a general audience that has no reason to care produces exactly the signal you did not want. Aim the tags at the people who would watch to the end, even when that is a much smaller room.
The same network tags a video and a photo differently
Hashtag advice is usually written as though a network were one place. It is several. A short video, a photo in the main feed, a post that disappears after a day and a live broadcast are ranked by different things inside the same app, and tags matter most where the system has the least else to read.
Video, feed and disappearing posts
Short video is ranked mostly on what viewers did with it: how long they stayed, whether they saved it, whether they sent it to somebody. Tags help place a new video before any of that exists to be read, and then they stop counting for much. A tight set that says what the video actually is beats a wide one that hedges.
A photo or a carousel in the main feed offers less behavioural signal, so the text around it carries more weight, and the tags are part of that text. Posts that expire are the other end again. They are shown mostly to people who already follow you, so a tag there is context or a joke rather than a route to strangers. Where a network caps tags differently on one surface than another, the app tells you by refusing the extra ones.
Tags for a business with an address
A local business is the one case where a broad tag can outperform a narrow one, because the geography does the narrowing for you. The city tag, the neighbourhood tag, and the informal name locals use for the area are all read by people who are physically nearby and deciding where to go.
Check what the locals actually type, since the official name of a district and the name people use are often different, and the tag with traffic in it is the one people use. Pair the place with the thing, so the tag for your city sits next to the tag for what you sell and finds somebody choosing where to eat tonight. Where the network offers a place sticker or a geotag, that usually does more for this than any hashtag will.
One set of tags is doing several different jobs
Look at a set that works and the tags are not all the same kind of thing. One or two say which category the post belongs to, so the system can file it. Several name the specific subject, which is where readers who care actually arrive from. One might be a community that uses a tag as a meeting point, and those are chosen by reading the timeline rather than by counting anything.
Two more get picked by rules of their own. A tag of yours, for a campaign or a recurring series, which exists so that you and your readers can find the run of posts later. And an event or seasonal tag, worth using while the event is happening and dead weight the following week. Knowing which job each tag is doing is what stops a set from being five ways of saying one word.
What a hashtag generator cannot know
A language model has read a great deal of text about hashtags and can see none of the things that decide whether a tag works today. It cannot see how many posts went into a tag this week, whether the community behind it moved to a different spelling, or whether the platform has quietly restricted it. Any tool that shows you a live volume number next to a suggestion is either querying an API for it or making it up, and most are making it up.
The one thing worth automating here is the writing, not the judgement. This tool is built to give you fewer tags than you asked for when Ghost does not reward them, and to say so rather than padding the list out to look useful.
How to check a tag before you post it
So treat the output as a shortlist to check, not a set to paste. The check takes under a minute: open the tag on Ghost, look at the last few posts, and ask whether your post belongs in that company. Tags drift. A tag that meant one thing for a year gets adopted by a fandom or a spam ring and now means another.
Two things to look at while you are there. Whether anything was posted today, since a tag with nothing recent in it is a room with nobody in it, and whether the tag reads as something else when the words run together. That second one has embarrassed enough brands to be worth ten seconds.
Tags that are quietly restricted
Networks restrict tags and do not announce it. A tag that attracted enough spam or enough rule-breaking content gets its page limited, hidden from search, or stripped of everything recent, and a post attached to it can be dragged down with it. Nothing tells you this has happened. The post simply goes nowhere and you assume the writing was the problem.
You can see it in about ten seconds. Open the tag on Ghost while logged in. A tag whose page carries a warning, shows nothing recent, or shows a fraction of what its size implies is one to leave out. The same goes for anything that reads as a plea for engagement, follow-for-follow and its relatives, since those are the tags that attracted the enforcement in the first place. No tool can hand you a pre-filtered list, because the restrictions are not published anywhere a model can read them.
Campaign tags are chosen by the opposite rule
Everything above is about finding a tag that already has readers. A campaign tag is the reverse. You want one nobody is using, because the point is to own it and to be able to count what happened under it.
So check it for emptiness rather than for activity, keep it short enough to type from memory, and put it somewhere people will see it more than once. A campaign tag that collides with an existing one is worse than useless, since your results are now mixed with a stranger's and you cannot separate them afterwards.
Why no tool can show you a live tag volume
Suggestion tools like to print a number next to each tag: posts this week, a difficulty score, a little bar. A language model has no access to any of that, and the ones that do have access are querying an API whose numbers are already hours old.
The practical version of that number is the tag timeline itself, which you can read in seconds and which is current. If you need real volume data for planning, get it from the platform's own tools rather than from a generator, and treat anything a text model prints as a guess dressed as a measurement.
Questions
How many hashtags should I use on Ghost?
It depends on the network, and the honest range now runs from none to a full set. On X the answer is usually zero or one, since X's own leadership asked people to stop and its ads product refuses them. On LinkedIn a couple, and mostly out of habit. On Instagram and TikTok a small, specific set that describes the post. On Mastodon use them properly, because they are the only route to anyone who does not already follow you. Platform caps change, so check Ghost's current one in its own help pages rather than trusting a blog post.
Are hashtags dead in 2026?
On X, close to it, and by design. On Instagram and LinkedIn they moved from a reach tool to a filing label, which is a demotion rather than a death. On TikTok and Mastodon they are load-bearing. "Hashtags are dead" is a headline built out of one platform's decision and applied to all of them.
Should hashtags go in the caption or the first comment?
The first-comment habit came from wanting a clean caption while still collecting reach from tags. On the networks where tags no longer drive reach, moving them changes nothing that mattered. Put them where the post reads better. On Mastodon, keep them in the post itself, because a reply is a separate post and the tag timelines will only show what is tagged.
Can I reuse the same block of hashtags on every post?
It is the most reliable way to look automated. An identical tag block pasted under unrelated posts is one of the patterns spam detection is explicitly built to catch, and it also guarantees that most of your tags do not describe most of your posts. Pick per post. It takes a minute.
Why does the tool suggest CamelCase tags?
Because screen readers cannot find word boundaries in a lowercase run of letters and will read #dogsofmastodon as gibberish. #DogsOfMastodon reads correctly. Hashtags are case-insensitive on every major network, so the capitals cost you nothing and buy real accessibility.
Is my draft sent anywhere?
Yes. This tool needs a model, so unlike the character counter on this site it cannot run on your machine. Your draft goes to our server and on to the model that reads it. There is no account attached to it and nothing here asks you to make one. Treat it the way you would treat text pasted into any chat window: fine for a draft post, wrong for anything confidential.
What happens if I go over the tag limit?
It depends on the network and none of the outcomes help you. Some refuse the post outright, some publish it with the extra tags silently dropped, and some have been reported to quietly hold the post back. The caps move and each network states its own, so read Ghost's current help page rather than a number from a blog. The practical answer is that if you are close enough to the cap to be asking, the set is too big.
How do I tell whether the tags did anything?
Start with the network's own analytics, since some of them report how many people reached a post through search or through a tag, and that is the only figure on the subject that was measured rather than guessed. Where nothing like it exists, the comparison you can run is dull and honest: post similar things with and without tags across several weeks and see whether the untagged ones do noticeably worse. A single post proves nothing in either direction.
Do I need different tags for a video than for a photo?
Usually yes, and for a reason that has nothing to do with the subject. Video is ranked mostly on what viewers do, so tags there are a placement hint that stops counting once the watch data arrives, and a small accurate set does the job. A still post has less of that signal, so its text is weighed more heavily and a slightly wider set can earn its place. Posts that expire after a day mostly reach existing followers, so tags on those are context rather than reach.
Can GrowSocialelion post to Ghost?
Yes. Ghost is live today: connect it, let the agent draft and schedule, approve, and it publishes. See the status of all 49 networks.