Усі сценарії/ Розробник

Сайт на JavaScript: що бачить пошуковик до рендеру і після

Сайт переїхав на React, Vue чи інший фреймворк, і частина сторінок випала з індексу або показується з чужим title. У браузері все гаразд, бо браузер виконує JavaScript. Пошуковик спершу читає сирий HTML, і треба знати, що в ньому немає і що JavaScript змінює.

Хто
Фронтенд-розробник, техлід, технічний SEO
Сайт
SPA або сайт із рендерингом на клієнті, частково чи повністю
Що болить
Сторінки поза індексом, порожні сніпети, посилання, яких пошуковик не бачить
Що треба
Перелік сторінок, де HTML і відрендерена версія розходяться, і що саме відрізняється
  1. Увімкніть рендеринг для всіх сторінок

    «Рендеринг JavaScript» у налаштуваннях сканування має три режими. «Авто» рендерить лише сторінки, у сирому HTML яких мало тексту, тож сторінку з текстом, але зі зміненим через JavaScript canonical, він не порівняє. Для сайту на фреймворку оберіть «Усі сторінки»: це повільніше, зате кожна сторінка буде прочитана двічі.

    Налаштування · Сканування — документація (англійською)
    Знімок екрана Molfar: Налаштування рендерингу JavaScript
    На знімку: Налаштування рендерингу JavaScript
  2. Дочекайтеся контенту, що вантажиться пізно

    «Читати відрендерену сторінку» вирішує, коли сторінку вважати готовою: коли вона перестала змінюватися або коли ще й мережа затихла. Другий варіант для сторінок, що підтягують текст запитами після завантаження, наприклад каталогів і відгуків.

    Налаштування · Сканування — документація (англійською)
    Знімок екрана Molfar: Вкладка JavaScript
    На знімку: Вкладка JavaScript
  3. Знайдіть текст, якого немає в HTML

    У вкладці JavaScript фільтр «Текст лише після JavaScript» показує сторінки, де сирий HTML майже порожній, а після рендеру текст є. «JavaScript змінює текст понад 20%» знаходить сторінки, де HTML і відрендерена версія суттєво розходяться. Колонки «Слова (сирий HTML)» і «Зміна від JS, %» кажуть, наскільки. Фільтр «Зображення, що з'являються лише після прокручування» знаходить зображення, адресу яких скрипт вписує, лише коли вони потрапляють у видиму область, без запасного варіанта в HTML.

    JavaScript — документація (англійською)
    Знімок екрана Molfar: Вкладка JavaScript
    На знімку: Вкладка JavaScript
  4. Перевірте, що JavaScript змінює в head

    Найнебезпечніше — коли JavaScript переписує сигнали для індексу. Фільтри «Canonical змінюється після JavaScript», «Meta robots змінюється після JavaScript», а також title, H1 і description показують такі сторінки, а колонка «Canonical: HTML → JS» — обидва значення. Google пише, що noindex у сирому HTML може зупинити рендеринг, тож прибрати його скриптом не вийде. Поруч фільтр «Внутрішні посилання лише після JavaScript»: такі посилання пошуковик бачить лише після рендеру.

    JavaScript — документація (англійською)
    Знімок екрана Molfar: Вкладка JavaScript
    На знімку: Вкладка JavaScript
  5. Відкрийте одну сторінку в трьох видах

    В інспекторі сторінки панель джерела має три вкладки: «Сирий HTML», «Після JavaScript» і «Додано JavaScript». Остання показує лише те, чого в HTML не було, — це конкретний фрагмент, який треба віддавати з сервера.

    Інспектор сторінки — документація (англійською)
    Знімок екрана Molfar: Таблиця всіх сторінок з інспектором
    На знімку: Таблиця всіх сторінок з інспектором
  6. Перевірте після релізу

    Коли сервер почне віддавати текст, canonical і посилання в HTML, проскануйте з тими самими налаштуваннями й порівняйте в «Історії»: сторінки мають зникнути з фільтрів вкладки JavaScript.

    Історія — документація (англійською)
    Знімок екрана Molfar: Історія сканувань
    На знімку: Історія сканувань
01

Сторінки, порожні без JavaScript

Список сторінок, текст яких існує лише після рендеру, зі словами до і після.

02

Сигнали, які змінює JavaScript

Canonical, meta robots, title, H1 і description, що в HTML одні, а після рендеру інші.

03

Посилання й зображення для сервера

Внутрішні посилання, що з'являються лише після JavaScript, зображення без запасного варіанта в HTML і фрагменти, які варто рендерити на сервері.

  • Molfar рендерить сторінки власним вбудованим Chromium. Google теж рендерить у Chromium, але з власними обмеженнями часу й ресурсів, тож результат близький, а не однаковий.
  • У режимі «Авто» порівнюються лише сторінки, які були відрендерені; повне порівняння дає режим «Усі сторінки».
  • Прокручування для пошуку зображень відбувається лише на відрендерених сторінках: на сторінці без рендеру такі зображення не шукаються. Вбудований loading="lazy" — це нормально, і його не рахують.
  • Рендеринг помітно повільніший за читання HTML; на великому сайті почніть зі зразка розділів.
Який режим обрати для SPA?
«Усі сторінки» і «коли ще й мережа затихла» в «Читати відрендерену сторінку»: так кожна сторінка буде прочитана двічі і з контентом, що приходить запитами.
Чи можна перевірити одну сторінку без сканування?
Так, URL audit показує, чи змінює JavaScript сторінку, разом з рештою перевірок для однієї адреси.
Агент може це перевірити?
Так. Через MCP можна почати сканування з потрібним режимом рендерингу, а аудит однієї адреси повертає обидві версії сторінки.

Спробуйте на своєму сайті.

Molfar у попередньому доступі, працює на Windows і на Mac з Apple silicon.

Отримати Molfar