JavaScript SEO — це набір практик оптимізації сайтів на JavaScript, щоб пошукові системи могли коректно сканувати, рендерити та індексувати їхній контент. Йдеться передусім про сайти й застосунки на React, Vue чи Angular, де частина контенту з’являється лише після виконання JS-коду в браузері, а не одразу в HTML-відповіді сервера.
Простими словами: якщо сторінка «збирає себе» вже у браузері, Google має спершу її «зібрати», щоб побачити текст. JavaScript SEO — про те, щоб на цьому етапі нічого не загубилося.
Що таке JavaScript SEO і навіщо воно потрібне
Класична сторінка віддає готовий HTML одразу. JS-сайт часто віддає майже порожній каркас, а контент підвантажує скриптами. Проблема в тому, що Googlebot спершу читає HTML, а рендеринг JavaScript ставить у чергу — це так звана «друга хвиля індексації». Якщо ключовий текст, посилання чи метадані з’являються лише після виконання скриптів, вони можуть проіндексуватися із затримкою або не проіндексуватися взагалі.
А навіщо це вам. Якщо продукт побудований на сучасному фреймворку, без уваги до JavaScript SEO ви ризикуєте тим, що половина контенту буде «невидимою» для пошуку — при цьому у браузері користувача все відображається ідеально. Саме тому JavaScript SEO — обов’язковий пункт для будь-якого SPA чи headless-проєкту.
Як працює індексація JS-сайтів
- Сканування (crawl) — Googlebot завантажує первинний HTML і знаходить посилання.
- Черга на рендеринг — сторінки з JS відкладаються, доки звільняться ресурси Web Rendering Service.
- Рендеринг — Google виконує JavaScript (на движку Chromium) і бачить фінальний DOM.
- Індексація — у пошук потрапляє вже відрендерений контент.
Способи рендерингу і що обрати
- Client-side rendering (CSR) — усе збирається у браузері; найризикованіше для SEO.
- Server-side rendering (SSR) — сервер віддає готовий HTML; найнадійніше для індексації.
- Static / prerendering — сторінки генеруються заздалегідь; швидко й дружньо до пошуку.
- Dynamic rendering — боту віддають готовий HTML, людині — JS-версію (тимчасове рішення).
Приклад
Інтернет-магазин на React показує картки товарів лише після завантаження JS. У вихідному HTML — порожній <div id="root"></div>. Google ставить сторінку в чергу на рендеринг, і кілька днів товари не потрапляють в індекс. Рішення — SSR або prerendering: тоді картки віддаються одразу в HTML і індексуються без черги.
Часто плутають з…
- Рендеринг — це один етап процесу; JavaScript SEO — уся дисципліна навколо нього.
- Технічне SEO загалом — ширше поняття; JavaScript SEO — його вузька підмножина саме про виконання скриптів.
Питання та відповіді
Чи бачить Google контент, доданий через JavaScript?
Так, але з затримкою. Google виконує JavaScript на движку Chromium, проте рендеринг іде «другою хвилею» — тому критичний контент краще віддавати в HTML одразу.
Чи впливає JavaScript на позиції?
Побічно так: якщо через CSR контент індексується повільно або частково, сторінка недоотримує релевантності. Тому SSR чи prerendering часто дають приріст видимості.
Як перевірити, що Google бачить JS-контент?
Через інструмент перевірки URL у Search Console («переглянути відрендеровану сторінку») та тест оптимізації для мобільних — вони показують саме те, що «бачить» Googlebot після рендерингу.
Сайт на React чи Vue погано індексується? Знайдемо причину в SEO-аудиті та полагодимо рендеринг — виправлення помилок на сайті.
Схожі терміни: Рендеринг, Client-side Rendering, Індексація, HTML, Краулер.