SEO для разработчиков: HTML, который читают роботы, правильные коды HTTP, ключевые теги в head, прохождение Core Web Vitals и видимость для ИИ.

Коротко
для разработчика SEO означает сделать каждую важную страницу доступной, отрисовываемой и однозначной для роботов. Отдавайте основной контент в исходном HTML (серверный рендеринг или статическая генерация), возвращайте честные коды HTTP, размещайте title, meta description, canonical и директивы robots в ответе сервера, ставьте ссылки настоящими элементами <a href>, укладывайтесь в пороги Core Web Vitals и добавляйте структурированные данные JSON-LD. Большинство роботов ИИ не выполняют JavaScript: контент, который появляется только после гидратации, невидим для ChatGPT, Claude и Perplexity.
Хотите узнать больше? Спросите
Короткий тест
Подходит ли вам SEO и с чего начать?
4 коротких вопроса, чтобы понять, может ли Google приводить вам клиентов.
Наш совет для вас
Sorank подходит вам лучше всего
Люди ищут то, что вы продаёте, и вы можете подождать несколько месяцев: Sorank находит нужные запросы, пишет и публикует статьи и получает для вас ссылки.
Sorank подходит под ваши ответы
Попробуйте его 3 дня на своём сайте или начните с бесплатного аудита, чтобы понять, где вы находитесь.
3 дня бесплатно, потом вы можете остановиться в любой момент. Гарантия возврата денег 90 дней.
SEO для разработчиков охватывает ту часть оптимизации, которая живет в коде: шаблоны, маршрутизацию, рендеринг, заголовки и производительность. Маркетинг выбирает ключевые слова и пишет тексты, но неверный код состояния, маршрут только на клиенте или забытый noindex могут перечеркнуть эту работу одним деплоем. Основы SEO для JavaScript от Google описывают три этапа (сканирование, отрисовка, индексирование), и на каждом есть сбои, которые могут исправить только разработчики. Это руководство разбирает их в том порядке, в котором они ломаются.
| Область | Ответственность разработчика | Типичный симптом сбоя |
|---|---|---|
| Рендеринг | Основной контент и ссылки в HTML от сервера | Страницы проиндексированы пустыми или неполными |
| Коды состояния | 200, 301, 404, 410, 5xx отдаются честно | Soft 404, проиндексированные страницы ошибок, удаленные страницы все еще в выдаче |
| Теги в head | Уникальные title, description, canonical, robots, hreflang | Дубли, в выдаче не тот URL, страниц нет в индексе |
| Управление сканированием | robots.txt, XML-карта сайта, внутренние ссылки, параметры | Важные страницы не найдены, сканирование тратится на фильтры |
| Производительность | Core Web Vitals у реальных мобильных пользователей | Плохое удобство страницы, меньше конверсий |
| Структурированные данные | Валидный JSON-LD, совпадающий с видимым контентом | Нет расширенных результатов, путаница с сущностью |
| Доступ ИИ | Разрешенные роботы ИИ, контент читается без JavaScript | Бренда нет в ответах ChatGPT и Perplexity |
Googlebot выполняет JavaScript, но на втором этапе, который может откладываться, и сама Google пишет, что серверный рендеринг или предварительный рендеринг по-прежнему отличная идея: это быстрее для пользователей и роботов, а JavaScript выполняют не все боты. Последний пункт сегодня важнее, чем когда-либо: в анализе The rise of the AI crawler от декабря 2024 года Vercel установил, что ни один из крупных роботов ИИ сейчас не выполняет JavaScript, и назвал среди прочих GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot и PerplexityBot. Исключение составляет Gemini, работающий на инфраструктуре Google.
| Режим рендеринга | Что получают роботы | Пригодность для SEO |
|---|---|---|
| Клиентский рендеринг (CSR) | Почти пустой HTML-каркас, контент после выполнения JavaScript | Слабая: с задержкой для Google, невидим для большинства роботов ИИ |
| Серверный рендеринг (SSR) | Полный HTML при каждом запросе | Высокая для динамических страниц |
| Статическая генерация (SSG) | Полный HTML, собранный при деплое | Наилучшая для редко меняющегося контента |
| Инкрементальная регенерация (ISR) | Статический HTML, обновляемый по расписанию или по запросу | Высокая для больших каталогов и блогов |
Два правила действуют для любого фреймворка. Ссылки должны быть элементами <a> с атрибутом href: Google указывает, что находит ссылки только в таком виде, поэтому кнопки с обработчиками кликов и маршруты на фрагментах ведут в тупик. И у каждого маршрута должен быть собственный URL без #, который сразу отдает свой контент. Наши руководства по SEO для JavaScript, SEO одностраничных приложений и SEO для Next.js разбирают детали фреймворков.
Коды состояния служат инструкциями для роботов. Документация Google о кодах состояния HTTP и сетевых ошибках описывает обработку каждой группы:
Проверьте, что на самом деле отдает ваш сервер, с помощью проверки HTTP-заголовков и сокращайте цепочки перенаправлений до одного шага: наша статья о SEO-редиректах разбирает сценарии миграции.
Каждой индексируемой странице нужны уникальные title и description, canonical на саму себя, а на многоязычных сайтах еще и разметка hreflang. Держите все это в ответе сервера:
<title>Running shoes for flat feet | Example</title>
<meta name="description" content="Tested picks, sizes and prices.">
<link rel="canonical" href="https://example.com/running-shoes-flat-feet">
<link rel="alternate" hreflang="fr" href="https://example.com/fr/chaussures-pieds-plats">
<meta name="robots" content="index, follow">Тег canonical должен указывать на URL, который вы хотите видеть в выдаче, с точно тем протоколом, хостом и правилом завершающего слеша, которые использует сайт.
Внимание
Никогда не полагайтесь на JavaScript для удаления noindex. Google указывает, что, обнаружив тег noindex, может пропустить отрисовку: страница, отданная с noindex в HTML и снимающая его на клиенте, может остаться вне индекса.
Поисковые системы индексируют URL, поэтому их схема относится к решениям SEO. Используйте понятные пути в нижнем регистре через дефис, выберите одно правило завершающего слеша и перенаправляйте второй вариант, держите один URL на одну единицу контента. Фильтры, сортировки и параметры отслеживания множат URL без нового контента: направляйте их canonical на чистую версию и не ставьте ссылки на комбинации параметров, которые не хотите отдавать на сканирование.
Внутренние ссылки отвечают и за обнаружение, и за вес страниц. Рендерьте на сервере навигацию, хлебные крошки и блоки связанного контента, давайте постраничным спискам обычные ссылки на каждую страницу и избегайте бесконечной прокрутки без постраничных URL. Товар или статья, доступные только через внутренний поиск или JavaScript-фильтр, для робота остаются страницей-сиротой.
robots.txt управляет сканированием, а не индексированием: заблокированный URL все равно может попасть в выдачу, если на него ссылаются другие страницы. Чтобы исключить страницу из индекса, разрешите ее сканирование и отдавайте noindex. Генерируйте XML-карту сайта из маршрутов или базы данных, включайте только канонические URL с кодом 200 и меняйте lastmod только при реальном изменении контента. Проверяйте правила с помощью проверки robots.txt перед каждым релизом и никогда не выкладывайте в продакшен тестовый robots.txt с "Disallow: /".
Google использует Core Web Vitals как часть сигналов удобства страницы. По данным web.dev, страница считается хорошей, когда достигает этих порогов на 75-м процентиле реальных загрузок, на мобильных и десктопе:
| Метрика | Что измеряет | Хороший порог | Типичные исправления на стороне разработки |
|---|---|---|---|
| LCP (Largest Contentful Paint) | Загрузку | 2,5 с или меньше | Предзагрузка главного изображения, серверный рендеринг первого экрана, CDN |
| INP (Interaction to Next Paint) | Отзывчивость | 200 мс или меньше | Разбиение длинных задач, отложенные сторонние скрипты, более легкая гидратация |
| CLS (Cumulative Layout Shift) | Визуальную стабильность | 0,1 или меньше | Ширина и высота у медиа, зарезервированное место под рекламу и встраивания |
INP заменил First Input Delay в качестве стабильной метрики Core Web Vitals в 2024 году. Оценивайте по полевым данным (Search Console, Chrome UX Report), а отлаживайте лабораторными инструментами. Наша статья глоссария о Core Web Vitals перечисляет инструменты.
Используйте JSON-LD в теге script, отрендеренный на сервере и описывающий то, что видно на странице:
<script type="application/ld+json">
{"@context": "https://schema.org", "@type": "Article",
"headline": "Running shoes for flat feet",
"datePublished": "2026-10-01",
"author": {"@type": "Person", "name": "Jane Doe"}}
</script>Генерируйте его из тех же данных, что и страницу, чтобы они никогда не расходились, проверяйте в CI и не внедряйте через менеджер тегов. Генератор schema дает стартовый шаблон для распространенных типов.
Совет
Добавьте SEO-проверки в пайплайн: пусть сборка падает, если у индексируемого шаблона нет title или canonical, если маршрут отдает 200 для неизвестного slug или если боевой robots.txt содержит "Disallow: /". Такие регрессии дешево поймать до деплоя и дорого после.
Видимость в ИИ начинается с доступа. Решите, каким роботам ИИ вы открываете сайт (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot и другие), и пропишите явные правила в robots.txt; наше руководство по robots.txt для роботов ИИ объясняет разницу между ботами для обучения и для поиска. Затем убедитесь, что тексты, цены, характеристики и FAQ есть в исходном HTML, используйте семантические заголовки и таблицы вместо текста на картинках и держите страницы достаточно легкими для быстрой загрузки. Файл llms.txt может кратко описать ключевые страницы для ИИ-инструментов, но ни один крупный ассистент не подтвердил, что использует его: считайте его необязательным.
Sorank является нашим продуктом. Это программа для SEO и GEO, работающая на autopilot. Разработчики сталкиваются с ней в основном через интеграции: она публикует статьи в WordPress, Shopify, Webflow или Wix либо в любой собственный стек через вебхук, как описано на странице установки. SEO Chat отвечает на вопросы о вашем сайте в формате диалога, а отслеживание упоминаний в ИИ каждую неделю проверяет, называют ли ChatGPT, Claude и Gemini ваш бренд.

Кратко: отдавайте с сервера полный HTML, честные коды состояния и правильные теги, а затем измеряйте производительность на реальных пользователях. Это работает и для Googlebot, и для роботов ИИ, которые не выполняют JavaScript. Чтобы наполнить хорошо построенный сайт контентом, который ранжируется, посмотрите тарифы Sorank: от $49 в месяц и 3 дня бесплатного пробного периода.
Для Google, который выполняет JavaScript, не всегда, но он добавляет задержку и риск, а большинство роботов ИИ JavaScript вообще не выполняют. Для страниц, которые должны ранжироваться или цитироваться, отдавайте основной контент и ссылки в исходном HTML через серверный рендеринг, статическую генерацию или предварительный рендеринг, а клиентский рендеринг оставьте для интерактивных частей.
Оба кода сообщают Google, что страницы больше нет, и в обоих случаях Google со временем перестает использовать URL. Код 410 указывает на намеренное и окончательное удаление, что некоторые команды предпочитают для сознательно удаленного контента. Главное не отдавать 200 с сообщением об ошибке, поскольку это создает soft 404.
Они входят в сигналы удобства страницы, которые Google называет одним из многих факторов, причем релевантность и качество контента весят больше. Чаще всего они решают спор между похожими страницами и сильно влияют на конверсию, поэтому достичь порогов стоит.
ОНИ ПОПРОБОВАЛИ SORANK ДО ВАС
