Canonical, noindex, robots.txt и sitemap решают разные задачи. В programmatic проектах они часто противоречат друг другу: URL указан в sitemap, закрыт robots.txt, содержит noindex и canonical на другую страницу. Такая конфигурация не «усиливает сигнал», а делает намерение неясным.
Короткая карта
- Canonical: какая версия представляет одинаковый или очень похожий контент.
- Noindex: URL не должен появляться в поиске.
- Robots.txt: crawler не должен запрашивать путь; это не надёжное удаление из index.
- Sitemap: список предпочтительных canonical URL, которые вы хотите видеть в поиске.
- Authorization: защита приватного контента; robots/noindex не являются security boundary.
Когда использовать self-canonical
Каждая самостоятельная индексируемая запись получает абсолютный self-canonical. В sitemap входит тот же URL. Internal links тоже ведут на него без tracking/filter параметров.
Когда canonical указывает на другой URL
Если сортировка, tracking parameter или alternate representation содержит тот же основной контент, canonical указывает на owner. Google рассматривает redirects и rel=canonical как сильные сигналы, sitemap — как более слабый поддерживающий сигнал.
Не канонизируйте тысячу разных, но слабых страниц на общий hub только для маскировки thin content. Canonical предназначен для дубликатов/очень похожих вариантов, а не для «передачи веса» между любыми URL.
Когда нужен noindex
Noindex подходит для публично доступной страницы, которая полезна пользователю, но не должна быть search landing: внутренний поиск, малонаполненная category, некоторые filters или временная utility page.
Чтобы crawler увидел noindex, путь нельзя одновременно блокировать в robots.txt. Google прямо предупреждает: заблокированный crawler не прочитает meta/header, и URL может оставаться известен по ссылкам.
Не используйте noindex для выбора canonical среди дубликатов — Google рекомендует rel=canonical.
Что делать с private content
Платный lesson, admin и profile защищаются authentication/authorization и возвращают корректный 401/403/404 плюс private, no-store. Даже если meta noindex отсутствует или crawler сменил User-Agent, контент не должен утекать.
Landing платного курса и внутренние lessons — разные URL-классы: landing индексируется, уроки закрыты.
Sitemap policy
В sitemap входят только indexable, canonical, 200 URLs. Не добавляйте redirects, noindex, filtered pages, drafts и private routes. Используйте абсолютные URL и semantic lastmod только при существенном обновлении содержания.
Sitemap не гарантирует indexation и не исправляет thin content. Это discovery и canonical hint.
Facets и combinations
Начните с allowlist индексируемых combinations, а не с попытки закрыть миллионы уже сгенерированных URL. Filter может стать landing только если имеет отдельный спрос, уникальный intro/data и достаточное число записей.
Пустые и out-of-range страницы возвращают 404, а не 200 с фразой «ничего не найдено».
Тестовая матрица
Для каждого URL-class проверяйте HTML, HEAD, .json/.md, нестандартный Accept, mobile/desktop и anonymous/authenticated response:
| Класс | Status | Robots | Canonical | Sitemap | Cache |
|---|---|---|---|---|---|
| Public record | 200 | index | self | yes | public |
| Duplicate variant | 200/redirect | follow | owner | no | public |
| Utility noindex | 200 | noindex | self | no | public/private по смыслу |
| Private lesson | 401/403/404 | secondary | none | no | private, no-store |
| Removed | 301/404/410 | n/a | replacement/none | no | policy |
Эта матрица должна быть executable test, а не только страницей в документации.
Источники и методика
Decision framework сверён с Google Search Central по noindex, canonical и sitemap 21.08.2026.
- Google Search — Block indexing with noindex: https://developers.google.com/search/docs/crawling-indexing/block-indexing
- Google Search — Canonical URLs: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- Google Search — Build and submit a sitemap: https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
Проверено 21.08.2026.