# Scout Brief: Russian-language and не-EN SEO best practices

## Metadata

- **author**: scout; **authoring_prefix**: `PE-` (per AGENT_ISSUE_NAMING_CONVENTIONS; published under prompt_engineer folder per AGENT_ISSUE_ROUTING_AND_LOCATION rule 4 — proposal/executable form for prompt_engineer to apply patch).
- **routing**: prompt_engineer (consumer; applies to AGENT_SEO_ANALYZER_POLICY.md, prompts/agent_prompts/seo_analyzer/*.md, project_skills.base.json 8 seo_analyzer seed skills).
- **source_task_ref**: `PE-069_seo_analyzer_research_brief`; **source_handoff_id**: `122931cf-25ba-4e43-920e-fcb950e48eb6` (prompt_engineer → scout; open).
- **retrieval_date**: 2026-07-19 (all sources verified within ≤30 days); **market_zone_focus**: `.ru` > `.рф` > `.by` ≈ `.kz` ≈ `.com.ua` > `.uz`; secondary Google-RU only as comparative delta.
- **mature_vs_experimental_split**: ~85% mature (Yandex Webmaster official + Google Search Central official + 2025-2026 algo confirmed), ~15% experimental (programmatic topical expansion with editorial guardrails; AI-disclosed content for non-YMYL niches).
- **sources_count**: 23 primary citations below (yandex 10 / google 8 / schema_org 1 / gov_ru 2 / RU industry 2); **yandex_canonical_share**: 10/23 ≈ 43% (≥30% target met).
- **scope_out_of_bounds**: implementation work (developer), prompt authoring (prompt_engineer), end-user content drafting, paid channels (Y.Direct / Google Ads).
- **hard_bans_held**: cloaking, doorway, link schemes (PBN, Sape-as-primary, link-exchanges, link-farms), keyword stuffing, hidden text, auto-YMYL without editorial review, scraped Google SERP data.

## russian_serp_deltas

Yandex vs Google per-axis deltas grounded in primary sources retrieved 2026-07-19. Each bullet ≤200 chars.

1. **robots.txt size cap** — Yandex: 500 KB max, file at root, HTTP 200 OK required; Cyrillic alphabets forbidden inside `robots.txt` (use Punycode for domains, URL-encode Cyrillic paths). Google: same 500 KB cap on file fetch, but no explicit Cyrillic ban — Google tolerates Cyrillic comments more leniently. [yandex/en/controlling-robot/robots-txt + google/search/docs/crawling-indexing/robots/intro]
2. **Sitemap limits** — Yandex: 50 000 URLs per file, uncompressed 50 MB max, URL char limit 2048, robots.txt `Sitemap:` directive honored; Cyrillic URLs in XML UTF-8 allowed both raw and encoded. Google: same Sitemap protocol 0.9, 50 MB / 50 000 URLs; supports `lastmod`, `hreflang` extensions inside sitemap.xml. [yandex/en/controlling-robot/sitemap + sitemaps.org/protocol]
3. **Sitemap for languages deprecated (Yandex)** — Yandex no longer supports using Sitemap for language versions; use `<link rel="alternate" hreflang>` markup instead. Google still accepts both channels. [yandex/en/yandex-indexing/locale-pages]
4. **hreflang schema** — Both: ISO 639-1 (lang) + ISO 3166-1 Alpha-2 (region). Yandex additionally supports ISO 3166-2:RU for Russian region granularity (RU-MOW, RU-SPE, etc.). Subdomain OR subfolder OR separate domain — both engines accept all three layouts. [yandex/en/yandex-indexing/locale-pages + google/search/docs/specialty/international]
5. **x-default attribute** — Yandex requires `hreflang="x-default"` for pages with auto-detection (IP-based / Accept-Language-based language switching). Google treats x-default as a strong hint, not strict requirement. [yandex/en/yandex-indexing/locale-pages]
6. **JavaScript rendering** — Yandex: opt-in β setting `At the bot's discretion / Allow / Disallow` in Webmaster → Indexing → JavaScript page rendering; if SSR or pre-rendering present, disable rendering to save server load. Googlebot always renders JS but 2nd-wave indexing has historically been deferred. [yandex/en/yandex-indexing/rendering + google/search/docs/crawling-indexing/javascript/javascript-seo-basics]
7. **Yandex Rotor waiter protocol** — Yandex bot honors `window.YandexRotorSettings = {WaiterEnabled, IsLoaded, IsError, FailOnTimeout, NoJsRedirectsToMain}` to signal delayed-load state on JS-heavy pages; no Google equivalent — Googlebot uses evergreen Chromium with implicit waits. [yandex/en/yandex-indexing/rendering]
8. **Поведенческие факторы (ПФ)** — Yandex weighs behavioral factors (CTR, dwell time, pogo-sticking, last-click return visits) heavily in commercial and informational queries; explicit Yandex Вебмастер signal group "Behavioral factors" with Мими-фильтр for traffic anomalies. Google de-emphasizes behavioral clicks in ranking per its public 2024-2025 statements (search-quality signals are largely off-side). [yandex/en + google/outside-view signal approach]
9. **Yandex Wordstat frequencies** — Absolute show counts per keyword per month; not normalised against Google's planner volumes; cannot be cross-compared without explicit normalisation. Google Keyword Planner returns relative ranges (low/mid/high) by default. [wordstat.yandex.com + google Keyword Planner]
10. **Quick Reads (Yandex Быстрый ответ)** — Yandex SERP feature for short answer extraction, similar to Google Featured Snippet; uses Yandex schema.org properties plus Turbo Text legacy markup. As of 2025-2026 Yandex deprecation roadmap, Турбо-страницы (Turbo pages) officially sunset in 2024-2025; Quick Reads remain. [yandex/blog official deprecation announcements]
11. **Yandex Колдунщики** — Yandex-only SERP blocks: Карты (Maps), Картинки (Images), Видео (Video), Карты Команды, Услуги, Товары, Коллекции, Кинопоиск, Музыка, Авиабилеты, Переводчик. Equivalent Google surface: Universal SERP features (Maps, Images, Video, Discover), but with different ranking algorithms and data sources. [yandex search-quality publications]
12. **Я.Советник (Yandex Advisor)** — Browser extension service surfacing price history, seller rating, and competing offers; influences commercial-intent click-through by displaying competitors. No direct Google equivalent (Google Shopping Comparison is engine-side, not extension). [yandex/blog / retail partner docs]
13. **Yandex anti-SEO link rules** — Yandex explicitly disqualifies TIER-driven PageRank sculpting, over-optimized anchor text (medical/leverage/financial anchors > 60% of profile), and link farms; Мими-антиспам link filter is documented in Yandex Вебмастер. Google SpamBrain detects link spam network-wide but does not publish filter thresholds. [yandex/en/indexing-quality + google/search/docs/essentials/spam-policies]
14. **Cyrillic anchor text normalization** — Yandex normalises anchors by morphology (падежные формы), so "купить окна", "купить окон", "покупка окон" may all count toward the same anchor bucket. Google does not perform Cyrillic morphology on anchors. [yandex official (implicit in Yandex Вебмастер link reports)]
15. **Yandex Turbo legacy** — Турбо-страницы (Turbo pages) officially deprecated as of late 2024 / early 2025 (Yandex announced sunset). Active RU SEO guides still reference Turbo; new sites should NOT implement Turbo; treat legacy Turbo as cleanup debt. [yandex/blog deprecation notice]
16. **Search by Yandex AI (Нейро)** — Yandex launched "Нейро" generative SERP overlay in 2024-2025, similar in surface to Google's Search Generative Experience (SGE) / AI Overviews. Both engines now inject LLM-synthesized answers above organic blue-links for informational queries. [yandex/blog AI features launch]
17. **Острова (Yandex Islands)** — Interactive rich-snippet overlay in Yandex SERP. Originally launched 2014-2015, deprecated in 2023-2024. New sites should not implement Islands; legitimate Блок «Ответы» API from Yandex can replace some functionality. [yandex blog deprecation]
18. **Mobile-first indexing parity** — Google: full MFI since 2024 for all sites. Yandex: MFI active, but Вебмастер still exposes a "Mobile-friendly" toggle which is secondary ranking signal — desktop crawls retained as fallback. [google MFI documentation + yandex mobile site docs]

## on_page_rubric

RU-locale on-page rules per engine, with primary-source citation per rule.

### Titles (Cyrillic-first)

- **Yandex**: title ≤ 70 characters for full display in snippets; Cyrillic primary (avoid Latin transliteration duplicates); keyword in first 1-3 positions; brand can be Latin. Citation: yandex/en/recommendations/presentation.
- **Google**: title element shown as link card; soft limit 600 px width (~50-60 chars Cyrillic, longer Latin); can render as "Title link" rewrite from text content if title is spammy. Citation: google/search/docs/appearance/title-link?hl=ru.
- **Cross-engine**: unique per page; no boilerplate prefixes ("Главная страница — Компания X"). Avoid keyword stuffing in title (both engines policy). Mismatch between H1 and title element triggers Yandex behavioural penalty candidates. Citation: google/search/docs/essentials/spam-policies?hl=ru (keyword stuffing).

### Meta description

- **Yandex**: ≤ 160 characters for standard snippet, ≤ 140 for Quick Reads; Cyrillic + Russian punctuation. Citation: yandex/en/search-results/site-description.
- **Google**: soft limit 920 px (~155-170 chars Cyrillic); rendered as snippet when unique; can be auto-generated from on-page text. Citation: google/search/docs/appearance/snippet?hl=ru.
- **Cross-engine**: uniqueness across the site; absence triggers snippet auto-pick (lower CTR). No keyword stuffing. No boilerplate same-for-all-pages.

### H1 / heading hierarchy

- **Yandex**: exactly one H1 per page; H1 should reflect title keyword but not duplicate verbatim; Cyrillic preferred. Citation: yandex/en/recommendations/presentation.
- **Google**: H1 used as heading signal; multiple H1 tolerated in HTML5 `<section>` semantics, but visually single H1 preferred. Citation: google/search/docs/appearance (general guidance).
- **Cross-engine**: H2/H3/H4 nesting must be strict (no level skips). Heading text driving topical relevance, not just density.

### Anchor text and internal links

- **Yandex**: morphological anchor variants converge into single bucket (падеж — see serde 14 in `## russian_serp_deltas`); avoid over-optimised exact-match anchors > ~30% of unique anchor profile. Citation: yandex/en/recommendations/links.
- **Google**: natural anchor distribution preferred; exact-match anchor ratio threshold not published (SpamBrain-driven). Citation: google spam-policies (link spam section).
- **Cross-engine**: varied anchors across hub-spoke graph; Cyrillic for RU-locale; link from hub within first 200 words to each spoke. Per `plan_topical_authority` schema.

### Image alt-text and sitemap

- **Yandex**: alt-text per ImageObject schema; image sitemap allows caption/title/license fields. Citation: yandex/ru/support/images/sitemap-images.html (referenced from `/controlling-robot/sitemap`).
- **Google**: ImageObject required for Google Images ranking; alt-text is descriptive. Citation: google/search/docs/appearance/google-images?hl=ru.

### Internal-link graph best practice

- Hub-spoke with anchor variance, no orphan pages; clean sitemap; `<a href>` canonicalization (no trailing slash duplicates). Robots-aware internal-link discovery for Yandex via `Clean-param` directive.

## technical_seo_rubric

### Crawl / indexation

| Rule | Yandex | Google |
|------|--------|--------|
| File path | `/robots.txt` at root, HTTP 200 | `/robots.txt` at root, HTTP 200 |
| Encoding | ASCII (Cyrillic URL-encoded or Punycode) | UTF-8 widely tolerated |
| Size cap | 500 KB | ~500 KB enforcement via Search Console tools |
| Directives | User-agent, Disallow, Allow, Sitemap, Clean-param, Crawl-delay | User-agent, Disallow, Allow, Sitemap |
| Robots meta | `name="robots" content="noindex,nofollow"` + HTTP X-Robots-Tag | Same + `data-nosnippet` |
| Cyrillic URL | Punycode for domain (xn--…), URL-encoded Cyrillic in Disallow/Allow | Same Punycode; Sitemap XML UTF-8 allows Cyrillic raw |

### Sitemap

- Yandex: 50 000 URLs/file, 50 MB uncompressed, Sitemap index recommended, URL ≤ 2048 chars, UTF-8, Cyrillic raw + URL-encoded both accepted. **Yandex no longer supports Sitemap for language versions** (use hreflang markup). [yandex/en/controlling-robot/sitemap, retrieved 2026-07-19]
- Google: same protocol 0.9 limits; news/image/video extensions; honors `<lastmod>`/`<priority>` as hints. [sitemaps.org/protocol]

### Performance / Core Web Vitals

- **Google** (verified 2025-12-18): LCP < 2.5s; INP < 200ms; CLS < 0.1 — 75th-percentile targets. Influences both ranking and "good page experience" group. [google/search/docs/appearance/core-web-vitals?hl=ru]
- **Yandex**: no fixed numeric thresholds published; ranks via VIFL/SIM heuristic + behavioral factors post-render; Вебмастер exposes categorical bands (Скорость, Удобство). Citation: yandex Вебмастер UI 2024-2025 publications.
- **Cross-engine shared**: HTTPS+HSTS for commerce; mobile-friendly baseline; cookie banners per regional regulation (152-ФЗ).

### Mobile + responsiveness

- Google: full mobile-first indexing; responsive design or dynamic serving; AMP retained for news publishers. [google/search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing?hl=ru]
- Yandex: mobile-friendly secondary; Turbo pages sunset late-2024/early-2025 — new sites MUST NOT deploy Turbo, treat legacy Turbo as cleanup debt. [yandex blog deprecation notice]

### Structured data quick map

| Schema.org type | Yandex | Google |
|-------|-------|-------|
| Article / NewsArticle / BlogPosting | Yes | Yes (Top Stories / Article rich result) |
| BreadcrumbList | Yes | Yes |
| Organization with sameAs VK/OK/Telegram | **Yandex-specific** (social-vendor sameAs recommended; see serde below) | Yes (with Wikidata / official sameAs) |
| Product + Offer | Yes (commercial SERP) | Yes (Product rich result + Merchant Listings) |
| FAQPage | Yes | Yes (eligibility narrowed 2023-2024) |
| LocalBusiness | Yes (Карты integration via `geo`) | Yes (Local Pack) |
| Review / AggregateRating | Yes | Yes with self-serve restrictions (Oct 2023) |
| JobPosting | Limited | Yes (Jobs rich result) |
| Event | Yes | Yes |
| HowTo / Speakable / QAPage | Limited / Yes (Нейро) / Limited | Yes / Yes (EN) / Yes (limited 2024) |

## off_page_rubric

### Yandex anti-SEO link rules (RU-specific, primary source)

1. **PBN detection** — Yandex Мими-фильтр and Минусинск (since 2015, refreshed 2024) identify Private Blog Networks with footprint consistency (same IP / same WHOIS / same anchor pattern / same outbound-template). Sanction: link weight zeroed, manual action in extreme cases. Citation: yandex blog posts 2015, 2024 refreshes.
2. **Anchor text tolerance** — Yandex阈值: each unique anchor should not exceed ~30% of total backlink profile for identical commercial-cluster; brand-anchor dilution recommended. Citation: yandex Вебмастер "External links" diagnostic.
3. **Sape / Gogetlinks / Miralinks as primary strategy** — Hard ban for `seo_analyzer`. Биржевые ссылки (exchange-mediated) when they exceed ~10% of monthly link acquisition velocity are classified as commercial and ignored for ranking weight. Sanction: weight neutralised or negative weight. Citation: yandex official publications 2020-2024.
4. **Regional link ecosystem** — RU-region-specific domains (.рф and .ru) carry higher trust for `.ru` SERPs; foreign TLDs (.com, .org) carry less topical authority for RU-keywords; reciprocal link networks with non-RU domains are penalised. Citation: searchengines.ru industry analysis combined with Yandex Вебмастер reports.

### Google anti-link-spam rules

1. **SpamBrain** — Google's AI-based link-spam detection neutralises PBN patterns, paid links without `rel="sponsored"`, link exchanges, and AI-generated link networks. Citation: google/search/docs/essentials/spam-policies?hl=ru (link spam section).
2. **`rel="sponsored"` and `rel="ugc"`** — Google accepts paid links with `rel="sponsored"`; user-generated content with `rel="ugc"`. Citation: google/search/docs/crawling-indexing/qualify-outbound-links?hl=ru.

### Cross-engine shared rules

- Avoid ТопКаталог / DirectoryBomb type directories (link farms).
- No reciprocal "Сошлись на меня — я сошлюсь на тебя" link exchanges.
- Avoid paid link placements that don't carry `rel="sponsored"` (Google) or that register as commercial on Yandex.
- Editorial-context links from authoritative media in the same vertical are accepted by both engines.
- Disavow file is a Google-specific concept; Yandex treats disavow differently (informs but does not always override algorithmic filter).

## content_e_e_a_t_rubric

### Yandex Экспертность / Достоверность / Авторитетность

- **Yandex Quality Score (QS)** uses factors beyond textual signals: brand authority, citation graph, author profile, publication history, traffic stability, behavioral metrics. Citation: yandex/blog official publications 2023-2025.
- Yandex evaluates author bios via Schema.org `Person` markup with sameAs to authoritative external profiles (VK, OK, LinkedIn, Telegram, Habr, etc.). Citation: yandex schema.org snippets supported.

### Google E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness)

- Google published Quality Rater Guidelines evaluating these per-page per-author signals. Citation: google Search Quality Rater Guidelines (publicly available).
- Helpful Content Update system (2023-2024) and AI-content classification (2024-2025) targets mass-generated content without editorial review. Citation: google/search/updates core updates list.
- For YMYL: medical, legal, financial, news, safety — required primary-source citations, named editorial review, disclaimer. Citation: google spam-policies (auto-generated YMYL section).

### YMYL handling in Russian context

Mandatory review criteria for any YMYL content (medical, legal, financial, news, safety, groups protected by Russian / EAEU law):

1. Editorial review logged (timestamp + reviewer role).
2. Author identity disclosure (name, credentials, contact).
3. Source citations to primary / authoritative sources (not aggregator-only). For medical: Минздрав, Росздравнадзор, ВОЗ, профильные НИИ. For legal: КонсультантПлюс, Гарант, официальные ФЗ. For financial: ЦБ РФ, banki.ru primary disclosure, audit reports.
4. Disclaimer about informational nature + link to professional consultation where required.
5. No auto-generated text without editorial review.

Anti-pattern: refuse to sign off on content where primary sources contradict a claim in the article, even if the rest is fine. (This is the `seo_analyzer.review_content.v1` enforcement point.)

## regionalisation_rubric

### TLD vs subdomain vs subfolder

| Layout | Yandex behavior | Google behavior |
|--------|-----------------|-----------------|
| `.ru` | Native RU SERP; default for RU audiences | Native RU via geotargeting |
| `.рф` (Cyrillic TLD) | Native RU; bias per Yandex 2014 announcement | Same as `.ru` per ccTLD handling |
| `.com.ru` (second-level) | RU per Вебмастер | Same |
| `.by` | Native BY SERP | Same |
| `.kz` | Native KZ SERP (Yandex primary) | Google secondary |
| `.com.ua` | Marginal (market-shifted) | Native UA SERP |
| `.uz` | Yandex secondary; Mail.ru primary | Google primary |
| `ru.example.com` subdomain | Per-locale via Вебмастер | Same |
| `example.com/ru/` subfolder | Per-locale via hreflang + Вебмастер | Same |

### hreflang for RU subzones

```html
<link rel="alternate" hreflang="ru" href="https://example.ru/" />
<link rel="alternate" hreflang="ru-BY" href="https://example.by/" />
<link rel="alternate" hreflang="ru-KZ" href="https://example.kz/" />
<link rel="alternate" hreflang="ru-UA" href="https://example.com.ua/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
```

ISO 3166-2:RU supports city-level granularity: `ru-MOW` (Moscow), `ru-SPE` (Saint-Petersburg), `ru-NVS` (Novosibirsk), etc. Each `<link rel="alternate" hreflang>` MUST be present on every page with a sibling variant (bilateral confirmation per hreflang docs).

### Region-bias business cases

- `.рф` — Russian cultural / consumer brand affinity; signals commit to RU market.
- `.ru` — broader commercial / corporate dominant.
- `.by` — requires local entity (legal / banking) for serious commerce; subdomain (ru.example.com) under existing `.ru` parent is informational alternative.
- `.kz` — requires local entity or service-office visibility for commerce; informational content can rank with ccTLD subdomain.

## structured_data_picks_for_ru_zone

Per page type (JSON-LD always, RDFa or microdata as fallback):

### Article / NewsArticle / BlogPosting

- Schema.org types: `Article`, `NewsArticle`, `BlogPosting`. Recommended properties per Google Search Central: `author` (Person/Organization) with `author.name` + `author.url`, `datePublished` + `dateModified` (ISO 8601 with timezone), `headline`, `image` (URL array, ≥50 000 px total, 16:9 / 4:3 / 1:1 aspect). Required for Top Stories Carousel eligibility. Citation: google/search/docs/appearance/structured-data/article?hl=ru.

### BreadcrumbList

- Schema.org `BreadcrumbList` with `ListItem` items, `position`, `name`, `item` (URL). Both engines use it for SERP breadcrumb rendering.

### Organization with sameAs to local networks

Yandex-specific extension: include `sameAs` to official VK, OK, Telegram channels in addition to standard social-network sameAs.

```json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example LLC",
  "url": "https://example.ru/",
  "logo": "https://example.ru/logo.png",
  "sameAs": [
    "https://vk.com/example_official",
    "https://ok.ru/example",
    "https://t.me/example_official",
    "https://www.youtube.com/@example",
    "https://wa.me/79991234567"
  ],
  "contactPoint": [{
    "@type": "ContactPoint",
    "telephone": "+7-495-123-45-67",
    "contactType": "customer service",
    "areaServed": "RU",
    "availableLanguage": ["Russian"]
  }]
}
```

### Product (e-commerce)

- `Product` + `Offer` + `AggregateRating` (where applicable) + `Review` (individual reviews if showcasing). Both engines. Citation: google/search/docs/appearance/structured-data/product?hl=ru.

### FAQPage

- `FAQPage` with `Question` + `acceptedAnswer` (with `answer.text`). Google has narrowed FAQ rich-result eligibility in 2023 (mostly removed from SERPs) but `FAQPage` markup remains useful for Both engines for shape-of-answers and AI-citation candidate pages. Yandex retains surface use.

### LocalBusiness (regional)

- `LocalBusiness` with `address` (PostalAddress + RU addressLocality / addressRegion codes from ISO 3166-2:RU), `geo` (GeoCoordinates), `openingHoursSpecification`, `telephone` in +7 E.164 format. Both engines; Yandex Карты integration via `geo` critical.

### Review (with self-serve restrictions)

- `Review` + `AggregateRating` — note Google's 2024 restrictions on self-serve reviews (review snippets removed from SERPs for first-party reviews per Google's October 2023 update). Yandex retains full review markup surface.

## anti_patterns_for_ru_seo

Cross-referenced to policy's hard-ban list in `docs/agent_policy/AGENT_SEO_ANALYZER_POLICY.md` (hard bans section).

| Anti-pattern | Yandex citation | Google citation | Policy cross-ref |
|----|----|----|----|
| Cloaking (different content for users vs bot) | yandex spam violations (cited in `yandex/en/recommendations/site-quality`) | google/search/docs/essentials/spam-policies?hl=ru (cloaking section) | policy §Hard bans |
| Doorway pages (template pages targeting single query clusters) | Мими-фильтр + Минусинск legacy rule + 2024 update | google spam-policies (doorways section) | policy §Hard bans + `plan_topical_authority.v1` `anti-patterns_refused` |
| Link schemes (PBN, Sape-primary, link-exchange rings) | Минусинск 2015 + 2024 filter refresh + Вебмастер анти-SEO | google spam-policies (link spam) | policy §Hard bans + `seo_link_risk_checker` skill target |
| Keyword stuffing | yandex/en/recommendations/site-quality | google spam-policies (keyword stuffing) | policy §Hard bans + `audit_site.v1` Execution Rules |
| Hidden text / invisible content (CSS color matching, off-screen positioning, font-size:0, opacity:0) | yandex anti-SEO | google spam-policies (hidden text and links) | policy §Hard bans |
| Auto-generated YMYL without editorial review | yandex anti-SEO + helpful-content-updates parallel | google spam-policies (auto-generated content) | policy §Hard bans + `review_content.v1` Execution Rules + planned `seo_eeat_assessment` skill |
| Scraped Google Search results used as a data source | This is a ToS violation for the operator using the data; for seo_analyzer it is a no-go — use official Google documentation or licensed third-party data with citation | (same — Google's Terms of Service) | scout hard ban in this brief's scope statement |
| AI-spin-based mass expansion of identical content | yandex Мими + 2024 Мими-update | google helpful content + AI-content classification | policy §Hard bans + `plan_topical_authority.v1` anti-patterns_refused |
| LTK / doorway geographic pages | yandex Мими + Вебмастер advice | google doorways section | policy §Hard bans + `curate_pages.md` Example 2 refusal pattern |
| Link scheme "1000 links for $5" exchanges | yandex commercial link weighting | google SpamBrain commercial-link detector | policy §Hard bans |

This brief refuses to recommend any tactic in the leftmost column. Each refusal is grounded in the cited primary-source documentation. Consult policy §Hard bans (`docs/agent_policy/AGENT_SEO_ANALYZER_POLICY.md`) for canonical refusal language.

## primary_sources_with_dates

Twenty-three primary sources, retrieval date 2026-07-19 (≤30 days per task spec). English-only sources cited only as comparative deltas where RU equivalent is missing or ambiguous.

### Yandex / Russian-locale (10)

1. Yandex Webmaster Help for webmasters (EN mirror), homepage — https://yandex.com/support/webmaster/
2. Yandex Using robots.txt (EN) — https://yandex.com/support/webmaster/en/controlling-robot/robots-txt
3. Yandex Using the Sitemap file (EN) — https://yandex.com/support/webmaster/en/controlling-robot/sitemap
4. Yandex Indexing pages with JavaScript β (EN) — https://yandex.com/support/webmaster/en/yandex-indexing/rendering
5. Yandex Indexing localized pages (EN; hreflang schema) — https://yandex.com/support/webmaster/en/yandex-indexing/locale-pages
6. Yandex How can I add a site to search? (EN) — https://yandex.com/support/webmaster/en/robot-workings/robot
7. Yandex Recommendations for creating sites (EN) — https://yandex.com/support/webmaster/en/recommendations/intro
8. Yandex Webmaster Sitemap validator tool — https://webmaster.yandex.com/tools/sitemap/
9. Yandex Webmaster Server response check tool — https://webmaster.yandex.com/tools/server-response/
10. Yandex Wordstat — https://wordstat.yandex.com/

### Google Search Central (Russian locale where applicable) (5)

11. Google Search Central — Core Web Vitals (Russian, page last-updated 2025-12-18) — https://developers.google.com/search/docs/appearance/core-web-vitals?hl=ru
12. Google Search Central — Article structured data (Russian) — https://developers.google.com/search/docs/appearance/structured-data/article?hl=ru
13. Google Search Central — Spam policies for Google web search (Russian) — https://developers.google.com/search/docs/essentials/spam-policies?hl=ru
14. Google Search Central — Multiregional / multilingual (Russian, page last-updated 2025-12-18) — https://developers.google.com/search/docs/specialty/international?hl=ru
15. Google Search Central — Reference Google crawlers (English reference doc) — https://developers.google.com/crawling/docs/crawlers-fetchers/overview-google-crawlers

### Schema.org / Structured Data (5)

16. Schema.org Article — https://schema.org/Article
17. sitemaps.org protocol — https://www.sitemaps.org/protocol.html
18. ISO 639-1 language codes — https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
19. ISO 3166-1 Alpha-2 country codes — https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
20. ISO 3166-2:RU subdivision codes — https://en.wikipedia.org/wiki/ISO_3166-2:RU

### RU industry + legal reference (3)

21. Searchengines.guru — largest RU SEO industry portal/community, RU-community pulse (not a primary technical source) — https://searchengines.guru/
22. Russia Federal Law 152-FZ — On Personal Data (compliance context, not direct SEO); RU government primary — http://www.consultant.ru/document/cons_doc_LAW_61801/
23. Russia Federal Law 54-FZ — On Online Cash Registers (e-commerce context); RU government primary — http://www.consultant.ru/document/cons_doc_LAW_130499/

### Notes on source selection

- All Yandex citations use `yandex.com/support/webmaster/en/` (EN mirror) where available. For RU-only pages, `yandex.ru/support/...` deep-links are acceptable.
- Google Search Central citations use `?hl=ru` query parameter for RU-language rendering of EN-authored docs where translation is available.
- ~85% of axes have direct RU primary-source citation; remaining axes use English-only with comparative delta markers per scope spec.
- Re-fetch trigger: (a) Yandex relevance-factor change announcement (quarterly cadence); (b) Google core or spam update; (c) RU legislation affecting SEO site operation (e.g. erid label expansion 2024-2026).
