SEO: основы для разработчика

SEO (Search Engine Optimization) — технические и контентные практики в HTML, которые помогают поисковым системам правильно индексировать и ранжировать страницу.

Зачем нужно

Разработчик напрямую влияет на техническое SEO: структура заголовков, метатеги, семантика разметки, скорость загрузки, canonical URL. Игнорирование этих вещей при разработке приводит к проблемам, которые сложно исправить позже, когда сайт уже запущен. Хорошее техническое SEO — это также хорошая доступность (a11y) и производительность.

Где используется

  • Публичные сайты и лендинги с органическим трафиком
  • Блоги, медиа, интернет-магазины
  • SSR/SSG-проекты (Next.js, Nuxt, Astro, Gatsby)
  • Корпоративные сайты и порталы

Ключевые HTML-элементы для SEO

<title> — главный сигнал

<title>Название страницы | Название сайта</title>
  • Уникальный для каждой страницы
  • Длина: 50–60 символов (иначе Google обрежет)
  • Содержит ключевое слово страницы

<meta name="description">

<meta name="description" content="Краткое описание страницы до 155 символов. Отображается в SERP под заголовком.">

Description не влияет на ранжирование напрямую, но влияет на CTR.

Иерархия заголовков <h1><h6>

<h1>Единственный H1 — тема страницы</h1>
<h2>Раздел 1</h2>
  <h3>Подраздел 1.1</h3>
<h2>Раздел 2</h2>

На странице должен быть ровно один <h1>.

Семантическая разметка

<article>
  <header>
    <h1>Заголовок статьи</h1>
    <time datetime="2026-04-10">10 апреля 2026</time>
  </header>
  <p>Текст...</p>
</article>

Canonical URL — защита от дублей

<link rel="canonical" href="https://example.com/canonical-url">

Используется, когда одна страница доступна по нескольким URL (с параметрами, с/без www, с/без trailing slash).

Атрибут lang на <html>

<html lang="ru">

Помогает Google определить язык контента для геотаргетинга.

Структурированные данные (JSON-LD)

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Заголовок статьи",
  "datePublished": "2026-04-10",
  "author": { "@type": "Person", "name": "Автор" }
}
</script>

Подробнее в Микроданные и JSON-LD.

robots мета-тег

<!-- Запретить индексацию страницы -->
<meta name="robots" content="noindex, nofollow">

<!-- Разрешить (по умолчанию) -->
<meta name="robots" content="index, follow">

Частые ошибки

Ошибка Почему плохо Как правильно
Несколько <h1> на странице Размывает тему страницы для поисковика Один <h1> на страницу
Дублированные <title> и <description> Конкурирующие страницы в выдаче Уникальные мета для каждой страницы
<title> > 60 символов Google обрезает и переписывает Укладывай в 50–60 символов
Нет canonical на страницах с параметрами Дубли в индексе Добавлять canonical всегда
Контент рендерится только JS (CSR без SSR) Googlebot может не дождаться рендеринга Используй SSR или SSG для SEO-важных страниц

Связанные темы

Ресурсы