Keyword clustering by meaning, not by alphabet
Sort ten thousand Russian phrases alphabetically and "buy windows" lands next to "buy wallpaper", while two spellings of the same window query drift to opposite ends of the list. The alphabet groups letters. Money lives in meaning.
By Andrey Belokrylov · September 22, 2026 · 9 min read

Collect ten thousand Russian keyword phrases and sort them alphabetically. The phrase for “buy windows” will sit next to the phrase for “buy wallpaper”, because in Russian both start with купить. Meanwhile пластиковые окна and окна пластиковые, which are the same demand with the words swapped, drift to opposite ends of the list. The alphabet groups letters. Money lives in meaning. As long as you split a keyword set by first letter or by matching strings, you are splitting it by an accidental property and losing the structure the whole exercise was meant to reveal.
Meaningful grouping answers a different question. Not “how is this phrase spelled” but “what does this person want and how far along are they”. One query is about price, another about delivery, a third belongs to someone who is reading and comparing. Cluster by that property and you get campaigns where every ad answers one intent, and reports where you can see which segment brings money and which one burns budget. Below is how to reach that grouping without drowning in manual markup, and why Russian makes the manual route more hopeless than English does.
Why the alphabet and “similar strings” mislead you, especially in Russian
The first problem with large keyword sets is hidden duplicates. One phrase exists in dozens of spellings: different word forms, different word order, a spare preposition. купить пластиковые окна, окна пластиковые купить and куплю пластиковое окно are one demand. Plain text comparison will not merge them, and the statistics for the phrase get smeared across its variants.
For anyone who learned keyword work on English this is where the Russian market first bites. “Buy plastic windows” has one common spelling and one word order, so a spreadsheet catches most duplicates by exact match. Russian is inflected and its word order is free: a noun changes across six cases and two numbers, an adjective agrees with it, a verb changes by person and aspect. Spellings that share almost no exact strings are still one query, and there are far more of them than an English-trained eye expects.
The fix is a phrase mask. Every word is reduced to its dictionary form, its lemma. Function words, meaning prepositions, conjunctions and particles, are dropped. The remaining words are sorted into one fixed order. Every spelling of the same idea converges on one string. Now duplicates are visible and the statistics collect on the phrase rather than on random versions of it. This is done automatically, because no one will catch it by hand in thousands of rows.
One caveat. The mask is for finding duplicates and counting, never for ad copy. A preposition dropped in the mask can carry meaning in the ad: окна в москве and окна москва read differently to a Russian customer. Restore that role separately when writing the ads.
A meaning tag instead of a first letter
Separate what a word means from the role it plays in demand, and attach a tag to each word. The tag classes repeat from niche to niche:
- place names: cities, districts, regions;
- hot commercial modifiers: price, wholesale, instalments, made to order, rental, any marker of readiness to buy;
- informational modifiers: how, why, what is, the words of a person who is reading rather than buying;
- early-stage words: compare, choose, rating, catalogue;
- stop words, kept as separate lists for Cyrillic and Latin script.
With the words tagged, you group phrases by tags rather than by letters. Hot demand in one place, reading in another, region in a third. Then you decide what to launch at all and what to leave out.
This is a library you build once and carry forward. A new niche brings new brands and new place names, but the skeleton stays. On a single one-off project the dictionary may not pay for itself. When there are many projects and the vocabulary repeats, tagging a new keyword set collapses into one operation. The order of steps does not depend on the project language or the ad platform. What changes is the translation step for the phrases and the details of loading finished campaigns into a particular interface.
For a foreign company selling into Russia, two of those tag classes behave differently from the home market.
Place names first. Russian searchers type the city into the query far more often than Western users do, because delivery cost and delivery time depend heavily on the region. A place-name tag in a Russian keyword set is therefore often the axis along which you split campaigns, and the region setting on a Yandex Direct ad group has to agree with the words in the phrases.
Commercial modifiers second. The Russian words that signal readiness to buy do not map one-to-one onto English. опт means wholesale and is a strong B2B marker. рассрочка means interest-free instalments, a retail signal that has no clean English counterpart and that a translated keyword set will simply miss. под заказ means made to order. A native reader has to build that list once. After that, the tags are language-neutral labels, and a team that does not read Russian can still work with the clusters.
Numbers and sizes: where a regex beats human hands
In product niches a large share of the unique words are not meaning at all. They are numbers: article codes, dimensions, model names. You cannot tag them by hand, and you do not need to. One set of regular expressions pulls out and labels whole classes: numbers of any length, round and not round; numbers with a leading zero, which are usually technical codes; sizes with units (m, cm, mm); two- and three-dimensional records written with х or на, the Russian equivalents of “by”; alphanumeric model codes.
Whatever the patterns find is replaced with a tag: “number”, “size”, “model”. From there the grouping runs on categories rather than raw values. On an array of hundreds of thousands of words this is minutes instead of weeks of manual reading.
The pattern set is adjusted per niche: units and size formats differ everywhere, and some expressions will have to be written on real data. One Russian-specific trap: the Cyrillic letter х and the Latin x look identical on screen and are different characters to a regex, and Russian users type both in dimensions. A pattern that only knows the Latin x silently skips part of the size queries. The letter ё, which many users replace with е, is the same trap for the lemmatiser.
For services with no dimensional component the value of the regex step is lower. There, the dictionary of commercial modifiers carries more of the weight.
When one query sits in three segments at once
The hardest case: a narrow segment nested inside two broader ones. A corporate client inside a general industry, and that industry inside an even broader market. By the text of the query these levels are often indistinguishable. The platform does not separate them and pours impressions across the entire industry. Spot cleaning does not save you here. Systematic clustering does.
Yandex Direct adds a twist. Its automated targeting, on by default in new groups, extends reach from the ad text and landing page rather than from your phrases. Where the platform already struggles to tell a corporate buyer from a private one, that expansion widens the blur, and the clusters are what tell you where it is acceptable.
Start by digitising what you have already accumulated. Break the statistics into meaning clusters. For each one, count the volume of phrases, the efficiency and the share of off-target traffic. Before you collect any new keywords, understand the ones you already own.
A non-obvious source of signal lies outside the query: the free-text field a person fills in on the inquiry form. Tag that field and it shows you the markers that separate the target segment from its neighbour. For a company entering Russia this is doubly useful: the words customers use in the form are the words they use in search, and they rarely match a translated English keyword set.
A ready report with a filter by cluster then lets you walk through each cluster with the client on a call, in real time: is it needed, what are the figures, where should the budget move. That is the moment clustering stops being a technical procedure and becomes a management tool.
Alongside clustering, cruder measures keep working: large-scale exclusion lists, where competitor brands in an industry can run to tens of thousands of entries; pausing keywords where off-target inquiries dominate; filtering the audience through the ad text itself; and separate campaigns on a list of direct competitors agreed with the client. Every one of these leans on the same tagging. Until the phrases are laid out by meaning, you can neither cut the excess nor strengthen what matters. This is also why I treat the keyword set and the campaign as one piece of work on the Yandex Ads page, and why a free review of an existing account starts from the phrases rather than from the bids.
What to do with your keyword set this week
- Collapse duplicates with a mask. Reduce phrases to lemmas without stop words in one fixed order, and collect statistics per phrase rather than per spelling. Make sure the lemmatiser is a Russian one.
- Tag the words. Separate place names, hot, informational and early-stage modifiers from category words, and group by tag. Have a native reader build the commercial modifier list once.
- Hand the numbers to regular expressions. Replace article codes, sizes and models with meaning labels instead of manual tagging, and include Cyrillic look-alike characters in the patterns.
- Digitise what you have. Break the history into clusters and count volume and efficiency per cluster before you collect anything new.
- Read the inquiry form. Look at what people write in the free-text field and find the markers of the target segment there.
Alphabetical sorting looks like order, but it is order for the eye, not for money. Meaning gathers into clusters, clusters turn into decisions, and decisions turn into a report where you can see where demand is and where only its shadow lies. A tag library built once moves from project to project and works for years.
If your keyword set has grown and there is no structure in it, a review starts there: it shows where the phrases have congealed and what gives the first gain. How a clean set becomes a manageable campaign is described on the Yandex Ads page.
Frequently asked questions
Why is alphabetical or string-based grouping worse for Russian keywords than for English ones?
Russian is inflected: a noun has six cases in two numbers, verbs change by person and aspect, and word order is free. The same demand appears in dozens of spellings that share almost no exact strings. In English a simple text match catches most duplicates. In Russian it catches a fraction, and the statistics for one demand get scattered across variants that never meet.
What is a phrase mask and why do I need one before clustering?
A mask reduces each phrase to its dictionary forms, drops prepositions, conjunctions and particles, and sorts what is left into a fixed order. Every spelling of one idea collapses into one string. Only after that can you see real duplicates and collect statistics per demand rather than per spelling. The mask is for deduplication and counting, never for ad copy: the preposition you dropped may carry meaning in the ad.
Can I run this clustering with Google Ads tools or a Western SEO suite?
The method is tool-independent: lemmatise, tag, replace numbers with classes, group by tags. What changes is the lemmatiser, which has to handle Russian morphology properly, and the final step of loading groups into Yandex Direct, whose match operators and group limits differ from Google's. Most Western suites lemmatise Russian poorly or not at all, so the mask step usually needs a dedicated Russian tool or a short script.
We sell into Russia from abroad and nobody on the team reads Russian. Where does clustering break for us?
At the tagging step. The regex work on numbers and sizes is language-neutral and a developer can do it. Deciding which Russian words signal readiness to buy, which signal early research, and which are place names or competitor brands needs a native reader once. After that the tag library is reusable and the team can work with the clusters in translation, because each cluster carries a meaning label rather than raw Russian text.
Sources
- Russian version of this article on belokrylovo.ru: Кластеризация семантики: по смыслу, а не по алфавиту