Рендеринг JavaScript та індексація
Рендеринг JavaScript — процес, в якому пошуковий робот виконує скрипти сторінки, щоб побачити вміст, якого немає в вихідному HTML. Google це вміє, але робить в два етапи і не миттєво; інші роботи і парсери вміють далеко не завжди.
Як це відбувається
- Робот завантажує вихідний HTML і відразу індексує те, що в ньому є.
- Сторінка потрапляє в чергу на рендеринг.
- Коли доходить черга, скрипти виконуються і індекс доповнюється.
Між першим і третім кроком проходить від годин до тижнів. Для новин і швидко змінюваних сторінок це критично, для решти — терпимо.
Коли виникають проблеми
| Ситуація | Ризик |
|---|---|
| Весь контент підвантажується скриптом | Затримка індексації, іноді втрата частини тексту |
| Посилання зроблені не тегом a, а обробником кліка | Робот по ним не переходить — сторінки не знаходяться |
| Контент з'являється після дії користувача | Робот його не побачить: він не клікає |
| Скрипти закриті в robots.txt | Рендеринг неможливий |
| Скрипт помилився на повільному з'єднанні | Сторінка індексується порожньою |
Як перевірити свою сторінку
Найпростіший спосіб — відключити JavaScript в браузері і відкрити сторінку: те, що залишиться, робот бачить відразу і напевно. Другий спосіб — порівняти вихідний код сторінки з відрендереним деревом в інструментах розробника. Якщо критичний текст і посилання є тільки в другому — є про що подумати.
Що робити
Не відмовлятися від JavaScript, а тримати в вихідному HTML головне: текст, заголовки, внутрішні посилання і метадані. Все інше може підвантажуватися як завгодно. Для великих сайтів зазвичай застосовують серверний рендеринг або попередню генерацію сторінок.
Інші роботи вміють менше
Робот Google рендерить сторінки, але багато інших — краулери соцмереж, збирачі прев'ю посилань, частина ІІ-агентів — читають тільки вихідний HTML. Якщо заголовок і опис з'являються на сторінці скриптом, посилання на ваш сайт в месенджері здасться порожньою карткою.