SEO — как сайт попадает в поиск

Поисковая оптимизация — это не только про «ключи в тексте». Это про скорость, структуру страниц, правильный HTML и понятную для роботов разметку. Разберём техническую сторону SEO, которую обязан знать каждый веб-разработчик.

Уровень: начальный 16 разделов 2–3 часа

1. Как работают поисковики

Поисковая система делает три вещи: краулит (обходит страницы роботом), индексирует (сохраняет содержание в базу) и ранжирует (решает, что показать на запрос). Задача разработчика — сделать первые два этапа беспроблемными.

# жизненный цикл страницы в поиске
1. Робот находит страницу по ссылке или sitemap.xml
2. Скачивает HTML и связи (CSS, JS, картинки)
3. Разбирает содержание и складывает в индекс
4. По запросу пользователя алгоритм ранжирования
   решает: показать ли страницу и на каком месте
ЭтапЧто влияетТипичная ошибка
Краулингдоступность сайта, скорость, ссылкисайт отдаёт 500 или требует логин
Индексацияпонятный текст, отсутствие дублейконтент генерируется только JS после загрузки
Ранжированиерелевантность, авторитетность, UXзаголовки не совпадают с содержанием
Проверить, как видит страницу робот, можно через Google Search Console: пункт «Уточнение URL» показывает готовый HTML, который получает робот.
Если контент подгружается скриптами и робот получает пустую страницу — индексации не будет. Для этого в SPA и используют SSR или пререндеринг (см. Nuxt, Next.js).

2. Семантический HTML и заголовки

Роботы не «видят» слой вёрстки так, как люди. Поэтому HTML должен описывать структуру: один <h1> на странице, логичные <h2>/<h3>, и семантические теги.

<main>
  <h1>Как настроить Nginx за час</h1>
  <article>
    <h2>Шаг 1: установка</h2>
    <p>...</p>
    <h3>Установка на Debian</h3>
  </article>
</main>
// у каждой картинки — осмысленный alt
<img src="cat.jpg" alt="Рыжий кот на диване">
Что читается в заголовке страницы и первом абзаце — это и есть «тема страницы» для поисковика. Не вставляйте в h1 общие слова вроде «Главная».
Полный разбор тегов — в курсе HTML. Для SEO достаточно соблюдать иерархию заголовков и семантические теги.

3. Meta-теги и Open Graph

Заголовок страницы <title> и описание meta description показываются в сниппетах поиска. Open Graph задаёт превью для соцсетей и мессенджеров.

<head>
  <title>Как настроить Nginx за час | IT Уроки</title>
  <meta name="description" content="Пошаговая настройка
        Nginx: установка, server, location, HTTPS.">

  <!-- Open Graph -->
  <meta property="og:title" content="Как настроить Nginx">
  <meta property="og:description" content="Пошаговая настройка">
  <meta property="og:image" content="https://site.ru/preview.png">
  <meta property="og:type" content="article">
</head>
ТегЗачемДопустимая длина
titleзаголовок в выдаче и вкладке50–60 символов
descriptionописание в сниппете150–160 символов
og:imageпревью при шаринге1200×630 px
Каждая страница должна иметь уникальные title и description. Дубли заголовков — классическая ошибка шаблонных сайтов.
Проверить превью за минуту помогут утилиты вроде Opengraph.xyz: вставьте URL и посмотрите, как страница выглядит при пересылке в Telegram или WhatsApp.

4. Core Web Vitals и скорость

Core Web Vitals — метрики скорости и стабильности, которые поисковики учитывают при ранжировании. Три главных показателя:

LCP  — Largest Contentful Paint
       когда появился главный контент (норма < 2.5 c)
INP  — Interaction to Next Paint
       отклик на клики (норма < 200 мс)
CLS  — Cumulative Layout Shift
       насколько страница «прыгала» (норма < 0.1)
МетрикаО чём говоритКак улучшить
LCPскорость загрузки главногосжимать картинки, прелоадить критическое
INPотзывчивость интерфейсане блокировать главный поток тяжёлым JS
CLSстабильность макетавыделять размеры картинок и рекламы заранее
Мерить легко: вкладка Lighthouse (отдельный курс) даёт баллы и подсказки. Начните с десятка тяжелых картинок — это половина проблем LCP.
Web Vitals на реальных пользователях (CrUX) важнее теста Lighthouse на вашей машине. Смотрите в Search Console раздел «Основные показатели».

5. Мобильная версия

Больше половины трафика — с телефонов, и поисковики индексируют именно мобильную версию (mobile-first indexing). Если сайт плохо читается на телефоне, ранжирование страдает.

// обязательный viewport в head каждой страницы
<meta name="viewport" content="width=device-width,
      initial-scale=1.0">

// не фиксируйте мелкие шрифты и тач-элементы
body { font-size: 16px; }
button { min-height: 44px; }
Проверка вручную: включи в DevTools мобильную эмуляцию и прокликай весь основной путь. Если что-то мешает — это и пользователю будет мешать.
Тонкости вёрстки под экраны и респонсив-подход — в курсе CSS.

6. Schema.org — разметка для «богатых» сниппетов

Schema.org — общий словарь разметки, понимаемый поисковиками. JSON-LD в <head> описывает: рецепт, товар, статью, FAQ, организацию. За такую разметку в выдаче появляются рейтинги, цены и ответы.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Как настроить Nginx за час",
  "author": { "@type": "Person", "name": "IT Уроки" },
  "datePublished": "2026-01-10"
}
</script>
Тип разметкиГде применяетсяЧто получаете
Articleблоги, лендинги, новостиавтор и дата в выдаче
Productинтернет-магазиныцена и рейтинг
FAQPageстраницы с вопросамираскрывающиеся ответы
BreadcrumbListхлебные крошкипуть навигации в сниппете
Разметка должна честно соответствовать содержанию. Ошибки разметки Google показывает в Search Console, а при явном обмане — понижает позиции.
Валидатор: Google Rich Results Test — залейте URL и посмотрите, понял ли робот разметку и какие сниппеты возможны.

7. sitemap.xml и robots.txt

robots.txt подсказывает роботу, куда ходить не нужно, а sitemap.xml — список страниц, которые стоит проиндексировать.

# robots.txt — в корне сайта
User-agent: *
Allow: /
Disallow: /admin/
Sitemap: https://example.ru/sitemap.xml
# sitemap.xml — список страниц
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.ru/</loc>
    <lastmod>2026-01-10</lastmod>
  </url>
  <url>
    <loc>https://example.ru/nginx.html</loc>
    </url>
</urlset>
ФайлНазначениеОшибка
robots.txtзапреты и путь к картеслучайный Disallow: / отключает весь сайт
sitemap.xmlподсказка, что индексироватьв карте URL, которые отдают 404
robots.txt не защищает данные: это лишь просьба к добрым роботам. Реальную защиту админки делают паролем, а не Disallow.
Для статических сайтов sitemap генерируют сборщики (например, плагин для Nuxt). Вручную его обновлять тяжело.

8. Аналитика и Search Console

Без данных SEO слепо. Два минимума для каждого сайта: аналитика посещений и поисковый консоль (Google Search Console, Яндекс Вебмастер).

// аналитика (Яндекс Метрика / GA4) в head
<script>
  (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a
  ||[]).push(arguments)};m[i].l=1*new Date();
  m[i].t=1*new Date();}...
</script>

// подключение консоли: добавить сайт → подтвердить
// Ownership через TXT-запись в DNS или мета-тег
ИнструментЧто показываетПериодичность
Яндекс Метрикапосещения, поведение, карта кликовежедневно
Search Consoleзапросы, позиции, индексация, ошибкираз в неделю
Вебмастер Яндексарегиональность, запросы, Турбо-страницыраз в неделю
Консоль впервые показывает позиции только через несколько дней или недель после добавления — это нормально, это не баг.
Устанавливайте аналитику через системные менеджеры тегов или сразу в шаблон, иначе счетчик потеряете при редизайне.

9. Типичные ошибки и чек-лист

Большинство проблем SEO находятся и лечатся за вечер. Ведите такой чек-лист перед каждым релизом:

☐  HTTPS включён и редирект с HTTP настроен
☐  title и description уникальны на каждой странице
☐  один <h1>, иерархия заголовков
☐  alt у всех картинок
☐  sitemap.xml и robots.txt отдают 200
☐  нет битых ссылок (проверить: 404 в Search Console)
☐  страницы не дублируются (www/без www, http/https)
☐  Canonical-тег на главной версии страницы
ОшибкаСимптомРешение
Дубли с wwwодин контент на двух адресах301-редирект на один вариант
Битые ссылкимного 404 в консолиисправить или 301 на ближайшую страницу
Тяжёлые картинкиLCP красныйWebP, сжатие, srcset
Нет canonicalпоиск индексирует копииуказать предпочтительный URL
Проблема дублей решается тегом <link rel="canonical" href="...">.
Медленный, но честный путь SEO: качественный контент + правильные мета + скорость. Схемы «мгновенных результатов» и переспама ключей почти всегда кончаются фильтрами.

10. Скорость загрузки и Core Web Vitals

Скорость — фактор ранжирования и главный враг конверсии: каждая лишняя секунда теряет покупателей. Google использует Core Web Vitals: LCP, INP и CLS.

МетрикаЧто измеряетХороший порог
LCPотрисовка основного контента< 2,5 c
INPотзывчивость на взаимодействие< 200 мс
CLSпрыжки макета< 0,1
// ключевые улучшения быстродействия
1. WebP/AVIF вместо JPEG, кэш через CDN
2. отложенная загрузка скриптов (defer, async)
3. Lazy loading изображений loading="lazy"
4. фиксированные размеры медиа против CLS
5. сжатие gzip/brotli + HTTP/2
Проверяйте себя в PageSpeed Insights и Lighthouse как для мобильных, так и для десктопных запросов: данные Google для мобильных отличаются от ваших тестов.
Приоритет: сначала критический контент и скрипты, потом аналитика и трекинги. Лишние трекеры съедают и скорость, и приватность пользователей.

11. Структура сайта и перелинковка

Понятная иерархия страниц помогает и людям, и поисковикам. Перелинковка распределяет вес между страницами и позволяет найти любую страницу не глубже трёх кликов.

Дом → Категория → Страница товара / статьи
3 клика максимум до любой страницы
каждая категория ссылается на смежные
хлебные крошки (breadcrumbs) везде
без ссылок на битые/пустые URL
Не заваливайте главную десятками ссылок «про запас»: качество перелинковки важнее количества. Плюс к этому каждая страница должна иметь 1 единственный H1.
Разбор падений и сканов памяти даёт Sitemap и инструменты вебмастера (Яндекс Вебмастер, Search Console).

12. Региональное и мобильное SEO

Бизнес с локальными клиентами выигрывает за счёт региональности. Плюс Google перешёл на mobile-first индексацию: мобильная версия — базовая.

// региональные сигналы
✓ Н/НТП: «ремонт квартир в Казани»
✓ адрес и телефон на сайте, карты-local (Google Business / Яндекс Бизнес)
✓ heading и текст с регионом
✓ региональные каталоги и отзывы
АспектЧто сделать
мобильная версияадаптивная вёрстка, один URL
скорость на мобильныхуменьшенные изображения, кэш
контактытелефон, часы, карта на странице
отзывыреальные отзывы в карточках-картах
Для магазинов и услуг гео-региональность сильнее глобальных статей: отдельная страница под каждый город с уникальным контентом, а не клон главной.

13. Международное SEO: hreflang

Сайт с версиями на разных языках сталкивается с проблемой: поисковик не знает, какую версию показывать пользователю из конкретной страны. Тег hreflang связывает версии страницы между собой и подсказывает регион и язык.

<link rel="alternate" hreflang="ru" href="https://site.ru/">
<link rel="alternate" hreflang="en" href="https://site.com/">
<link rel="alternate" hreflang="x-default" href="https://site.ru/">
Забудете взаимные ссылки или укажете другой язык — робот проигнорирует пары, и версии задублируются. Проверяйте связки специальным валидатором hreflang.

14. Технический аудит: план на день

Время от времени сайт нуждается в аудите: он показывает, где поиск теряет страницы и почему метрики деградируют. Большая часть проверок делается парой инструментов за один день.

// типовой технический аудит (порядок)
1. Серверные коды: карта 200/301/404 по разделам
2. Индексация: количество страниц в консоли
3. Canonical: дубли и путаница
4. title/description: длины и дубли
5. Скорость: LCP/INP/CLS на мобильном
6. Структура: трёхкликовость, битые ссылки
7. Разметка: ошибки Schema.org
8. Ошибки краулинга из Search Console

Проверки автоматизируются: краулер собирает весь сайт за минуты и отдаёт проблемы в CSV. В CI такие проверки держат как часть пайплайна — тогда поломка метрики попадёт к дежурному до пользователей.

// быстрая проверка кода ответа (curl)
curl -s -o /dev/null -w "%{http_code} %{url_effective}\n" \
  -L https://example.ru/nginx
Аудит ради аудита бесполезен: каждую находку привязывайте к цели (трафик, конверсия). Иначе «почините» десяток мелочей и не увидите роста.

15. SEO для интернет-магазинов

Магазин живёт на товарных страницах: они должны быть видны, не дублироваться и иметь конверсионные сниппеты. Три зоны внимания — каталог, карточка товара и служебные страницы.

СтраницаЧто настроить
категорияуникальные title/description, фильтры с canonical
карточка товараProduct и Offer в JSON-LD: цена и наличие
фильтры и сортировкаnoindex для служебных URL с параметрами
пустые категории404 или 301 на ближайшую смежную
<meta name="robots" content="noindex">
// параметры фильтров и шагов пагинации закрываем
<link rel="canonical" href="https://shop.ru/catalog/phones">
В магазинах побеждает полнота карточки: у товаров с описанием, фото и отзывами выше и трафик, и конверсия.

16. E-E-A-T: доверие и качество контента

E-E-A-T — «опыт, экспертиза, авторитетность, доверие». Это не балл, а набор сигналов, по которым поисковик решает, показывать ли ваш контент на сложные запросы: медицина, финансы, юридические вопросы.

// сигналы доверия на странице
✓ автор с именем и биографией (Person)
✓ даты публикации и обновления
✓ контакты и страница «О компании»
✓ цитаты, данные, источники
✓ реальные отзывы и кейсы
✓ текст без воды и переспама

Практика: укажите автора и его опыт, обновляйте устаревшие статьи, публикуйте развёрнутые исследования вместо пересказа чужого. Доверие строят месяцами, теряют одним вводящим в заблуждение заголовком.

СигналКак усилить
авторстраница автора + разметка Person
авторитетностьссылки и переносы в отраслевых СМИ
довериереальные данные, контакты, политика обработки
объективностьисточники, даты, корректировка устаревшего
Анкоры «купить дёшево» в каждом абзаце и авторы-«админы» смывают доверие быстрее любого линкбилдинга. Сначала контент, потом механизмы.

17. Семантическое ядро и кластеризация

SEO начинается не с тегов, а со слов: какие запросы пользователь печатает, чтобы найти ваш товар. Семантическое ядро — список таких запросов, собранный из подсказок, статистики и конкурентов.

1. собрать десятки запросов по теме
2. убрать мусор (неизвестные слова, «мусорные» фразы)
3. сгруппировать: ключ → страница
4. назначить страницы под кластеры

Кластеризация объединяет запросы по интенту: «купить куртку», «купить куртку мужскую» и «купить мужскую куртку» — один кластер, одна страница. Разные интенты («сшить куртку» или «как выбрать куртку») — отдельные страницы, иначе одна не ответит на оба.

КластерСтраница
купить/цена/доставкакаталог + карточка товара
как выбрать/сравнениеблог-статья
отзывы/качествостраница отзывов
Начните с 20 запросов, руки генерируют подсказки. Потом уточняйте по Яндекс.Вордстат — у вас появятся частотности для приоритетов.
Не штампуйте отдельные страницы на каждый синоним — это размывает авторитет. Лучше одна сильная страница на интент.

18. SEO для SPA: SSR и пререндер

Одностраничные приложения на React/Vue отдают почти пустой HTML — краулеры видят только контейнер #root. Роботы могут выполнять JS, но ненадёжно, поэтому SPA требует специальной защиты.

# конфиг пререндера для SPA (пример)
routes: [ '/', '/catalog', '/product/*' ]
renderer: { headless: true, timeout: 10s }
ПодходСложностьИндексация
SSRсредняяполная
динамический рендерингнизкаяполная
чистый SPAнулеваяпо JS, непредсказуемо
Не полагайтесь на «Google читает JS»: в Яндексе и малых краулерах исполнение хуже. HTML с контентом — базовая страховка.

19. Расширенные элементы выдачи

Помимо обычного сниппета, поисковики выделяют пункты выдач: избранные сниппеты (featured snippets), блоки «Люди также спрашивают», картинки. Попадание в них резко поднимает CTR.

Формат избранного сниппета:
«как установить node js» → ответ абзацем + шаги внутрь страницы.
БлокЧто помогает
featured snippetпрямой ответ + список/таблица
People also askвопросы в тексте с ответами-микроблоками
изображениярелевантные alt, правильные имена файлов
Ищите страницы, где «тонкие» ответы: переписывайте абзац в чёткий список из трёх пунктов — так выше шанс попасть в избранный сниппет.

20. Контент и ссылочная масса

Поиск ранжирует страницы по авторитетности: сколько и какие сайты на них ссылаются. Качество ссылок важнее количества, и прирост качества — результат контента, который цитируют.

Что цитируют вместо вас?
статистика → свои исследования
практики → чек-листы и гайды
инструменты → бесплатные утилиты
Тип ссылкиЦенность
с тематического ресурсавысокая
с главной новостногосредняя
с каталога/биржанизкая или рискованная
Покупные ссылки массово — прямой сигнал манипуляции. Результат: санкции и ручная фильтрация, из которой выбираются годами.

Что дальше

Соберите любую страницу, прогоните её через Lighthouse, подключите Search Console и понаблюдайте за индексацией неделю-другую. Про скорость и запросы — HTTP и DNS и Хостинг и деплой. Семантику разберите в HTML, а если сайт на фреймворке — в Nuxt или Next.js есть готовые решения для мета и пререндера.

← Вернуться к курсам