Страница может выглядеть готовой в браузере, хотя первый ответ сервера почти не содержит её содержания. Для проверки SSR сравните ответ сервера, видимую страницу с выключенным JavaScript и страницу после выполнения скриптов. Название фреймворка и HTTP 200 сами по себе не отвечают на вопрос о доступности контента.
Выберите страницу и важное содержание
Возьмите публичный лендинг, статью или карточку товара. Запишите, что посетитель должен получить: основной заголовок, описание, сведения о товаре и ссылки на связанные страницы. Проверяйте опубликованный URL. Отдельно отметьте, меняется ли ответ после входа или выбора региона.
Запустите SEO-аудит Milten, чтобы изучить SEO, метаданные и SSR для пяти или менее страниц одного сайта. Откройте нужную страницу в отчёте. Результат для одного шаблона не описывает автоматически все маршруты и языки.
Прочитайте ответ и проверьте видимость
В панели Network браузера выберите запрос документа и откройте его ответ. Найдите основной заголовок и ссылки именно как HTML-элементы. Текст внутри JSON, script или сериализованных данных компонентов ещё не означает, что посетитель увидит его на странице.
Затем отключите JavaScript и заново загрузите страницу в чистом контексте браузера. Появился ли заголовок? Можно ли прочитать описание и перейти по ссылкам? Скрытый контейнер потоковой загрузки может содержать нужные слова, но ждать скрипт, который перенесёт их в видимую часть страницы. Поиск фразы в ответе сервера не обнаружит эту разницу.
Включите JavaScript и повторите загрузку. После получения данных и отрисовки сравните те же элементы. Запишите, какой раздел зависит от скриптов. Одного показателя объёма текста для такого вывода недостаточно.
Разберите небольшой пример клиентского рендеринга
В учебном фрагменте сведения о товаре добавляет JavaScript. Это не измерение клиентского сайта.
<main id="product"><p>Загружаем сведения о товаре...</p></main>
<script>
document.getElementById('product').innerHTML =
'<h1>Походный рюкзак</h1><p>Модель объёмом 25 литров.</p>';
</script>
При включённом JavaScript заголовок появляется. Без JavaScript посетитель получает сообщение о загрузке. Серверный вариант должен возвращать содержательные заголовок и описание в разметке ответа. Интерактивные возможности можно добавить после этого.
Не каждое различие означает ошибку. Меню аккаунта, актуальный остаток товара или персональная цена могут намеренно загружаться отдельно. До изменения рендеринга определите, какое содержание необходимо публичной странице.
Отделите SSR от решения об индексации
Google умеет выполнять JavaScript. Отсутствие текста в первом ответе является результатом диагностики, а не доказательством невозможности индексации. Проверьте URL в Search Console: дату обхода, состояние индексации и выбранный canonical. Документация Google о JavaScript SEO объясняет связь обхода, отрисовки и индексации.
Отдельно проверьте HTTP-статус, robots, canonical и внутренние ссылки. Даже полная серверная разметка может намеренно содержать noindex или ссылаться на другой канонический адрес. Эти проверки разобраны в чеклисте технического SEO.
Повторите проверку после публикации
После изменения шаблона повторите три сравнения на опубликованном URL. Проверьте другую страницу того же шаблона и каждый затронутый язык. Заголовок, полезный текст и ссылки должны оставаться доступными, а скрипты не должны заменять canonical другим адресом.
Сохраните наблюдения до и после вместе с датой deploy. Затем проверьте, когда Google повторно обошёл страницу. Проверка браузера подтверждает доставленное содержание, а последующий результат Search Console показывает, что обработал поисковик. Проверьте SEO и SSR сайта, затем отдельно сверьте индексацию.
