Бывает обидная ситуация. Сайт красивый, быстрый на вид, собран на современном фреймворке — а в поиске его будто нет. Причина часто не в текстах и не в ссылках, а в одной технической развилке, о которой заказчику обычно не рассказывают: где именно собирается страница — на сервере или уже в браузере пользователя.
Две страницы, которые выглядят одинаково
Представьте два сайта, внешне неотличимых.
Первый присылает готовую страницу: сервер собрал HTML с текстом, заголовками и ссылками — и отдал целиком. Открыл — всё сразу на месте.
Второй присылает почти пустую заготовку и программу, которая уже в браузере дорисует контент. Человек разницы почти не замечает — подождёт долю секунды, и всё появится. А вот поисковый робот может заглянуть ровно в тот момент, когда пришла пустая заготовка, а скрипты ещё не отработали, — и увидеть пустоту.
Это и есть разница между серверным рендерингом и клиентским. Для глаза её почти нет. Для поиска она решающая.
Почему это бьёт именно по SEO
Робот бывает нетерпелив. Он не всегда ждёт, пока браузерный код закончит работу; на больших сайтах у него лимит времени и сил на каждую страницу. Если контент появляется только после скриптов, часть страниц он заберёт полупустыми, а часть не заберёт вовсе. Тексты вроде есть — а для поиска их как бы нет.
С серверным рендерингом этой лотереи не существует. Что на странице, то робот и получил — в первую же секунду, без «подождите, дорисовываю». Вы не зависите от того, в какой момент и с каким терпением он заглянул.
«Но у всех же SPA, и живут»
Живут — потому что крупные научились это лечить. Они дорендеривают страницы на сервере, отдают роботу готовый HTML, а интерактив навешивают сверху. То есть проблему не игнорируют, а решают — тем же серверным рендерингом или пререндером, просто под капотом, незаметно.
Беда приходит, когда модный фронтенд взяли, а про эту часть забыли. Тогда и получается: красиво для человека, пусто для поиска. И выясняется это не сразу, а через пару месяцев, когда страницы так и не появились в выдаче, а причину ищут где угодно, только не там.
Что с этим делать
Если сайт только планируется — заложить серверный рендеринг сразу. Это дешевле, чем лечить потом. Мы поэтому собираем сайты так, чтобы страница приходила готовой: робот получает полный HTML, а скорость и интерактивность от этого не страдают — одно другому не мешает, если подумать об этом на старте.
Если сайт уже есть и закралось подозрение — проверить просто, своими руками. Откройте страницу, отключите в браузере JavaScript и обновите. Осталось содержимое — всё в порядке. Пусто — у поиска ровно та же картина, и это повод позвать того, кто занимается технической стороной SEO, пока непроиндексированных страниц не накопилось.
Красивая картинка и видимость в поиске — не одно и то же. Обидно вложиться в первое и потерять второе на ровном месте — из-за развилки, которую видно только под капотом.