Cleaning a Russian keyword set: word forms, synonyms and the negative keyword limit

Cleaning a keyword set is not tidying up after the fact. Most advertisers wait until the search terms report fills with junk, then exclude one word at a time. That is a race you are always losing.

Cleaning a keyword set is not tidying up after the fact.

Most advertisers wait until the search terms report accumulates junk and only then exclude one word at a time. That is a race in which you are always a step behind. It is cheaper and faster to block impressions on unwanted words in advance, before launch, than to keep patching the negative list against budget that is already spent.

Here is how to clean a Russian keyword set pre-emptively, and how to fit that work inside Yandex’s hard technical limits.

Preventing synonym drift before launch

Single-word keywords make the most mess: the system readily substitutes one word with a synonym and drags in irrelevant impressions. Synonym drift on single-word keywords is prevented by three actions, and all three happen before launch, not after.

One. Every single-word keyword except the few core target words is added to negatives in exact match in advance. Assuming single-word keywords are justified in this niche at all.

Two. From the related queries column of the demand tool, from similar queries and from search suggestions, two-word phrases are parsed and added to negatives in exact match.

Three. The core single-word keywords are parsed in quotation marks with the word count fixed, as a query of the form “word word”. That gives you dozens of pages of nested depth built from two-word phrases around that single word. Keep what is relevant, send everything else to negatives in exact match.

The point of the whole chain is moving the work to the preparation stage. You are not waiting for irrelevant impressions in order to react. You close the corridor in advance and the junk simply does not come in.

Word forms: fix them, do not duplicate them

The second leak is subtler. You add a base phrase with a brand to the campaign, and broad matching substitutes some words with synonyms while autotargeting pulls in adjacent brands and categories. The cure is Yandex syntax, and here it matters not to overdo it.

The square bracket operator applied to each word separately requires the query to contain all the specified words in any order and any word form, but without synonym substitution.

That is better than exact match on the whole phrase, which brings too little traffic, only a small share of what is available. And better than fixing the whole phrase in brackets, which cuts off queries with reordered words, something Russian speakers do constantly. The fewer words you fix with brackets, the larger the share of traffic that goes to synonyms of the unfixed words. It is an adjustable compromise between reach and precision.

A couple of rules that save nerves.

Stop words, prepositions and conjunctions are usually left out of the fixing. Their presence in the query is not critical.

Do not duplicate the same keyword in brackets with different word forms by hand. Writing the singular and the plural separately is pointless: the operator already accounts for word forms. This is the single most common waste of effort by teams importing habits from English.

Do not launch two-word keywords as a broad pool straight away. The nested traffic on them is often too dirty. Start with phrases of three or more words and add the short ones later if volume is lacking.

For brand and vendor traffic, the word forms of both the Cyrillic and the Latin spelling are fixed with the exact-form operator, an exclamation mark before the word. That way the brand is not replaced by a synonym while the nested depth of the query survives.

The negative keyword limit forces you to choose

Yandex has an engineering fact that breaks the idea of “just exclude everything”. The combined volume of negative keywords across all levels, campaign, groups, keywords and shared lists, is only a few thousand words. On a large account, the junk word forms and synonyms mixed in are noticeably more numerous. The whole wish list physically will not fit, and exclusion has to be prioritised.

The order of priorities goes like this.

Normalise the query statistics: strip punctuation, unify case, lemmatise, remove duplicates. Break the queries into separate words. For each word form, aggregate impressions, clicks, leads and spend, and calculate the derivatives: cost per lead, click-through rate, cost per click, conversion rate. Sort by descending impressions and assess on several signals: many impressions with zero clicks, isolated clicks with a click-through rate far below average, low click-through with no leads, cost per lead several times the average, obviously irrelevant words.

Then exclude in priority order:

  1. What has already spent budget with no conversions.
  2. What brings extremely expensive conversions.
  3. Traffic with very low click-through and no inquiries.
  4. Last, what merely accumulates impressions without clicks but harms indirectly by lowering the statistical click-through of your keywords and ads.

The limit turns from a constraint into a discipline: it forces you to spend scarce list space on what actually burns money.

Competitor brands: collect them and sort them by category

The names of specific competitors and vendors often do not appear even in the nested depth of category keywords. They are collected by a separate process, and for a foreign advertiser this is the part that cannot be done from memory, because you do not know the names.

Using a scraping tool, collect the Google and Yandex results for your target keywords plus the Yandex ads running on the same keywords. From those three exports, build a list of unique domains. From each domain, parse the title, the first-level heading and the description of the home page. Extract the core industry words from them, the ones without which the text is not about your topic, and keep only the domains where those words appear, which confirms industry relevance.

Then, with a regular expression, pull the capitalised words out of the metadata, Latin script separately, Cyrillic separately, remembering the letter “ё”. Sort alphabetically, remove your own brands, place names, hot add-ons and general industry vocabulary. What remains is almost certainly the names of competitors and vendors, and it does not need further cleaning.

The collected names and domains go into negatives, in both Russian and English. Names of two or more words are excluded in phrase match, not broad.

And here is the important knot. You cannot dump all competitors from all categories into one list: it will hit the character limit before it covers the volume, and it will mix competitors that never overlap with each other. Split them by the same logic as the keyword set, by product category or cluster, and for each category build its own negative list from the competitors relevant to it. Doing that by hand on a large array is impractical; the process is automated, for example in a spreadsheet query tool.

Narrowing autotargeting to the brand

When a campaign is deliberately aimed only at brand or premium demand, autotargeting gets in the way: it expands impressions to adjacent but irrelevant topics.

One switch helps. In the autotargeting settings, leave only the option for impressions on queries mentioning the brand and switch the other automatic selection options off. That cuts junk automatic matching on general topics without manually excluding every case.

The setting is reinforced by neighbouring measures: a separate lowered bid for autotargeting, the brand in the ad headline and text, the brand in the title, heading and description of the landing page. All of that helps the algorithm associate the group with the brand query specifically.

One caveat: for campaigns aimed at broad category reach this option is wrong, it would cut out most of your non-brand traffic.

What to do with your keyword set this week

  1. Close single-word synonym drift before launch: exact-match exclusion of unnecessary single words, parsing of two-word phrases from suggestions and the related column, and analysis of the core single words in quotation marks.
  2. Fix word forms with the bracket and exclamation operators instead of duplicating keywords by hand in different forms.
  3. Accept the negative keyword limit as a fact and set priorities: first what has spent budget without conversions.
  4. Collect competitor brands by scraping the results and extracting names, then split them by category rather than one list.
  5. Narrow a brand campaign with the “queries mentioning the brand” option.

A dirty keyword set quietly poisons everything downstream: statistics, bid decisions, demand estimates. It is cleaned not by a heroic quarterly push but by the habit of closing the corridor in advance and living inside the limit with a cool head.

If your advertising brings inquiries but too many of the wrong kind, and the negative list has been living its own life for a while, that is what the free review looks at first.

Frequently asked questions

Why does Russian need a different approach to negative keywords?

Because one word exists in many forms and the system substitutes synonyms freely. A negative list built the way an English one is built leaves most of the doors open, and manual duplication of every case form wastes the limited space you have.

Is there a limit on negative keywords in Yandex Direct?

Yes. The combined volume across campaign, groups, keywords and shared lists is a few thousand words. On a large account the junk exceeds that, so exclusion has to be prioritised rather than exhaustive.

How do I find competitor brand names I do not know?

Collect the Yandex and Google results for your target keywords plus the ads running on them, reduce it to unique domains, pull the metadata from each home page, and extract the capitalised words. After removing your own brands, place names and industry vocabulary, what remains is mostly competitor and vendor names.

Can autotargeting be narrowed to brand queries only?

Yes. In the autotargeting settings, leave only the option for queries mentioning the brand and switch the rest off. It suits a brand or premium campaign and is wrong for a broad category campaign, where it would cut most of your traffic.

Sources

Andrey Belokrylov
Andrey Belokrylov

Independent marketing strategist and digital marketer. 10+ years, 100+ projects, from Marriott to small restaurants. I write about how Russian customers decide and how to run Yandex, VK and Avito without wasting the budget. More about me

From reading to doing

Let's look at your project

Send a link. In 30–40 minutes I'll show where the budget leaks, where Russian customers drop off, and what to fix first. Honest, even if we never work together.