X (Twitter) SEO is the practice of writing your posts, profile, and bio so they surface when someone runs a search — inside X's own search box first, and in Google second. X search is a literal keyword engine: it matches the words in your post text, your display name, your handle, and your bio, then ranks those matches by relevance, engagement, and recency. Put the right words in the right fields and every post you publish becomes findable by people who were never going to see it in the feed.
This guide completes our per-platform search series alongside Instagram, TikTok, Facebook, LinkedIn, and Pinterest. X is the odd one out: the shortest posts, the fastest feed decay, and the most active search behaviour of the lot. People search X in real time to check whether a service is down, what a company said about a controversy, or whether anyone has solved the exact bug they are staring at — a discovery channel most accounts never deliberately write for.
Feed ranking and search ranking are two different systems
The For You feed is a recommendation problem — X decides which posts to push at people who did not ask for them. Search is a retrieval problem — someone typed a phrase and X has to find posts containing it. The signals overlap, but the outcomes are independent. A post that got almost no feed distribution can still be the top result for its phrase for months, quietly pulling in profile visits from people with real intent.
That is worth internalising if you have read our breakdown of how the X algorithm works and concluded that reach is mostly out of your hands. Feed reach largely is. Search visibility is not — you control the words, and the words are the whole matching mechanism.
How X search decides what to show
Run any search on X and you get a tab set. The two that matter for content are Top and Latest.
Latest is reverse-chronological: every public post containing the query, newest first, lightly filtered for spam and quality. There is no ranking to win. If your post contains the phrase, you are in — instantly, and permanently.
Top is ranked. X weighs relevance to the query alongside engagement on the post, signals about the author, and how recent it is. This is where a post that earned real replies keeps earning attention weeks later, because it sits above the noise for its phrase.
Two distinct wins, then. Latest puts you in front of anyone monitoring a term right now — journalists on a beat, buyers comparing tools, developers debugging an error. Top gives you a durable position for phrases where you have earned engagement.
A concrete example: a freelance Webflow developer posts "Webflow CMS pagination limit — here is the workaround I use" with a short explanation. It does modest numbers in the feed. Six weeks later it is still what someone finds when they search that exact problem at 11pm, and some of those people check the profile. One post doing months of lead generation, because it was written in the words people actually type.
Why keywords beat hashtags on X
A hashtag on X is just a clickable link that runs a search for that token. It does not open a separate distribution channel, and it does not add a categorisation signal the platform uses to route your post elsewhere. #WebflowTips reaches people who search or tap that exact token — a far smaller group than the people typing "webflow tips" in plain language.
So the trade is simple. Characters spent on hashtags are characters not spent on searchable plain words, and X gives you very few characters to work with. Our X character counter is worth keeping open while you draft, and the wider social media character limits reference covers the rest of the networks if you are adapting one post across several.
Hashtags still earn their place in two situations: genuine community conventions that people follow as a tag, and live events where the tag is the meeting point. Beyond that, keep it to one or two. Our X hashtag strategy guide goes deeper on where the exceptions are.
The rule: write the phrase, do not tag it. "How to migrate from Mailchimp to Klaviyo without losing your automations" outranks the same post reduced to #emailmarketing #klaviyo.
Optimize your profile for name-match queries
A large share of searches involving your brand are navigational — someone types your company name plus "X" or "Twitter" because they want your account, not a blog post about you. Your profile is also the single most likely piece of your X presence to rank in Google, because profile pages are stable, linked-to URLs while individual posts are not.
That makes a handful of fields worth deliberate effort:
- Display name. X people search matches on this.
Acme Analyticsis fine;Acme Analytics | Shopify reportingis findable by category too. Keep it readable — this is not a keyword field to stuff. - @handle. Keep it stable and matched to your brand across platforms. Changing it breaks every link and mention pointing at you, and it costs you name-match recognition.
- Bio. Say what you do in the words someone would search, in the first line, before any personality. Our guide to writing a great X bio has structures you can copy.
- Location field. Fill it in if you serve a place. It is a weak signal, but local relevance is one of the few filters X search exposes.
- Pinned post. Whoever lands on your profile from a search sees this first. Pin the post that best answers the question that brought them, not your latest announcement.
- Link back from your own site. A link from your website to your X profile helps Google associate the two for brand queries. Basic hygiene, and it costs you nothing.
Where X search actually reads your keywords
| Field | Matched by X search | What to do |
|---|---|---|
| Post text | Yes | Put the plain phrase in the first line |
| Display name | Yes | Brand name plus one category word |
| @handle | Yes | Keep stable, brand-matched |
| Bio | Yes, in people search | Lead with what you do, plainly |
| Hashtags | Yes, as literal tokens | Use one or two, or none |
| Text inside an image | No | Repeat the phrase in the post body |
| Image alt text | Do not rely on it | Write it for accessibility, not ranking |
The image row catches a lot of people. A well-designed quote card or chart carries none of its text into search — if the point of the post is a phrase, that phrase has to exist as typed text in the body.
What Google does and does not index
Be realistic here. As of July 2026, X profile pages are indexed by Google far more reliably than individual posts. Post-level indexing has been inconsistent since the platform tightened logged-out access, and it varies by account and over time. You will find your own posts in Google occasionally; you cannot plan around it.
The practical conclusion: treat Google visibility as a bonus on X and a primary goal on your own site. If a topic deserves to rank in Google, it belongs on a page you control, with the X post pointing at it. Use X search visibility for what it is genuinely good at — high-intent, in-platform discovery that starts the moment you hit publish.
Build a keyworded evergreen library and recycle it
This is where it becomes a system rather than a habit.
- List 10–20 target phrases. Real queries: problems you solve, comparisons people make, mistakes in your niche, tools you know well. Write them the way a person types them, not the way a marketer says them.
- Write three to five posts per phrase. Different angles, different phrasings, all containing the phrase in plain words. Some short, some threads — our guide to writing an X thread covers the format when a phrase needs room.
- Schedule them across weeks, not days. Spread coverage so your search surface grows steadily and your timeline still reads like a person wrote it.
- Recycle the ones that earned engagement. A post that ranks in Top for its phrase is an asset. Re-post it with fresh framing on a rotation — the mechanics are in how to recycle evergreen X posts.
This is exactly the workflow SocialKit is built for: draft a batch of keyworded evergreen posts in one sitting, drop them on the visual calendar, and let them auto-publish on a rotation across your best windows. The best time to post on X matters for the feed half of the equation; the search half keeps working regardless of when it went out.
One honest limitation: SocialKit does not do social listening or inbox monitoring, so it will not alert you when someone searches your phrase or mentions you. Use X's own saved searches for that — save your target phrases as searches and check them a couple of times a week. It takes minutes and tells you exactly which queries your audience is running.
Measuring whether it is working
Native X analytics does not break out search as a discovery source, as of July 2026, so you are reading indirect signals:
- Impressions that keep accruing after the first 48 hours. Feed distribution collapses fast, so late impressions usually mean search or profile discovery.
- Profile visits relative to impressions. Search traffic converts to profile visits at a higher rate, because the person was already looking for something.
- Manual spot checks. Search your target phrase from an account that does not follow you and see where you land in Top and Latest.
Our X analytics guide covers which of the native metrics are worth tracking week to week and which are noise.
Start here: a one-week sequence
- Write down five phrases you want to be found for. Real queries, plain language.
- Rewrite your display name and the first line of your bio so a category keyword appears naturally.
- Pin the post that best answers your highest-intent phrase.
- Draft ten posts — two per phrase — with the phrase in the first line and at most one hashtag.
- Schedule them across the next three weeks rather than dumping them in two days.
- Save your five phrases as searches on X and check them Friday.
X rewards volume of findable posts more than perfection in any single one. A hundred keyworded evergreen posts sitting in search is a compounding asset; a hundred clever posts with no searchable phrase in them are gone by Thursday. If you want the scheduling half handled so you can spend your time on the words, you can start a free 7-day trial — plans start at €29/month as of July 2026, with unlimited scheduled posts across all 11 platforms.