Рендеринг javascript googlebot
Когда вы запускаете приложение на JavaScript и React, браузер пользователя видит весь контент. Но что видит Googlebot? Совсем другое — в этом суть JavaScript SEO. Когда Google crawler попадает на вашу страницу, механизм должен выполнить JavaScript rendering, чтобы получить доступ к контенту, который находится в JS коде. Это долго, сложно и часто работает неполно. Начальный HTML response обычно содержит только пустые div — весь реальный контент генерируется JavaScript после загрузки page в браузере пользователя. Googlebot должен загрузить JS файлы, выполнить их, дождаться сформирования DOM, и только потом indexed может стать страница для search. Но часто процесс rendering не доходит до конца, потому что search engine просто не дожидается результат. Итог: SPA на React или Vue получают нулевой трафик из Google search, несмотря на качественный контент и SEO подготовку website. Это не ошибка Google — это следствие того, как построен ваш сайт. Чтобы исправить, нужно разобраться в рендеринге javascript googlebot и в том, почему ваша page остается невидима в search результатах.

Как Googlebot на самом деле видит JavaScript
Много разработчиков думают что Googlebot просто скачивает HTML и уходит—это неправда. Google давно научился работать с JavaScript контентом. Но как именно Googlebot processes JavaScript на практике, это совсем не то, что представляет себе большинство. Сейчас разберёмся.
Главное что нужно понять: Googlebot может индексировать JavaScript content. Он имеет собственный запас ресурсов для web rendering. Он uses headless Chromium и V8 engine, то есть те же инструменты что и обычный браузер для JavaScript execution. Но это не означает что ваш React SPA будет идеально indexed просто так.
Два разных представления HTML: initial и rendered
Когда you открываете React приложение в браузере, происходит вот что. Сервер отправляет initial HTML response—пустая оболочка. Буквально:
html