№3

25 августа 2026

SEO · инструменты

Технический SEO-минимум сайта за одну сессию с агентом

Технический минимум сайта за одну сессию с агентом: кабинеты Google и Яндекса, robots.txt, карта сайта, разметка JSON-LD, свои title и description.

4 мин чтения · бесплатно · одна сессия

Где подвох
Если размечаете курсы: блок с деталями одного курса Google в июне 2025 убрал совсем. Визуальное отличие в выдаче теперь получает только размеченный список минимум из трёх курсов.

Как повторить

1. Google Search Console. Нажмите Add property. Тип Domain охватывает весь домен с поддоменами и подтверждается только записью TXT в DNS у регистратора (или CNAME, у некоторых провайдеров автоматически). Без доступа к DNS выберите URL-prefix: хватит HTML-файла в корне, мета-тега в <head> или уже стоящих Google Analytics либо Tag Manager. Охват у него уже: один протокол и один хост. После подтверждения откройте Sitemaps и отправьте sitemap.xml.

2. Яндекс.Вебмастер. Нажмите «+ Добавить сайт», укажите адрес с протоколом. Сервер по нему должен отвечать кодом 200. Права подтверждаются HTML-файлом в корне, мета-тегом, записью TXT или через Яндекс Тег Менеджер либо GTM. Затем откройте «Индексирование», «Файлы Sitemap» и укажите адрес карты.

3. robots.txt положите в корень домена:

User-agent: *
Allow: /

Sitemap: https://домен/sitemap.xml

На SPA (сайте, который собирает страницы в браузере) на Vite или React файл кладут в public/. Если хостинг на любой путь без расширения отдаёт index.html, /robots.txt может попасть под это правило и вернуть HTML вместо текста.

4. sitemap.xml, карту сайта, тоже кладут в корень:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://домен/</loc>
    <lastmod>2026-08-25</lastmod>
  </url>
  <url>
    <loc>https://домен/раздел</loc>
    <lastmod>2026-08-25</lastmod>
  </url>
</urlset>

На многостраничном SPA список адресов удобнее генерировать скриптом из тех же данных, по которым строятся маршруты.

5. JSON-LD вставляют как <script type="application/ld+json"> в <head>. На SPA его кладут в статический HTML или добавляют через prerender, то есть заранее собирают страницы в готовый HTML. Тип выбирайте по тому, что продаёте:

  • личный сайт или эксперт: Person или Organization;
  • разовая консультация или менторинг: Service или ProfessionalService. Для Google курс означает серию лекций с образовательным результатом, и консультация, выданная за курс, ближе к спаму разметки;
  • три программы и больше, у каждой модули: Course на странице каждой и ItemList на общей.

Для Course обязательны name и description, provider рекомендован. Рекламные формулировки и цену в название курса не ставьте.

{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "Название программы",
  "description": "Краткое описание, Google показывает примерно 60 символов",
  "provider": {
    "@type": "Organization",
    "name": "Название организации",
    "sameAs": "https://домен"
  }
}
{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "url": "https://домен/programs/one" },
    { "@type": "ListItem", "position": 2, "url": "https://домен/programs/two" },
    { "@type": "ListItem", "position": 3, "url": "https://домен/programs/three" }
  ]
}

6. title и description задайте свои для каждой страницы:

<title>Конкретная фраза, ~50-60 символов</title>
<meta name="description" content="Что на странице и зачем кликать, ~150-160 символов">

На SPA управляйте <head> под каждый маршрут или используйте prerender. Иначе поисковик увидит один и тот же title во всех разделах.

Как проверить результат

curl https://домен/robots.txt должен вернуть простой текст. Если пришёл HTML главной, сработало правило хостинга из шага 3. curl https://домен/sitemap.xml должен вернуть валидный XML. Тест расширенных результатов должен найти блоки JSON-LD без ошибок парсинга, превью у одиночного Course без ItemList при этом не появится. Данные об индексации и запросах подтянутся в кабинетах через срок от нескольких дней до пары недель.

Как это устроено

Кабинеты на ранжирование не влияют. Через них поисковик сообщает, проиндексированы ли страницы, по каким запросам идут показы, есть ли санкции и ошибки разметки. JSON-LD повторяет содержимое страницы в машиночитаемом виде, чтобы поисковик понял, что на ней: курс, отзыв или организация. Одной сессии хватает, если DNS под вашим контролем и страницы не собираются только в браузере без prerender: Google скрипты в основном исполняет, но не все боты и AI-краулеры делают это надёжно.

Ссылки

Больше подобного

Разбираю по находке в день и складываю сюда. Свежее и то, что до сайта не доехало, выходит в канале «Евдокимов как обычно».