JavaScript Redirect (JS-редирект) — це перенаправлення користувача на іншу сторінку засобами JavaScript, на стороні браузера (наприклад, через window.location). На відміну від серверного 301-редиректу, він спрацьовує лише після завантаження й виконання скрипта, тому для SEO вважається менш надійним способом перенаправлення.
Простими словами: серверний 301 — це коли пошту одразу пересилають на нову адресу ще на поштамті. JS-редирект — коли лист доходить до старої квартири, і вже там записка каже: «а тепер іди за два квартали далі».
Що таке JavaScript Redirect і коли він виникає
JS-редирект працює у браузері: сторінка завантажується, виконується скрипт — і лише тоді відбувається перехід на новий URL. Його ставлять, коли немає доступу до налаштувань сервера, або коли перенаправлення залежить від дії користувача чи його даних (наприклад, залежно від мови браузера).
Проблема в тому, що Googlebot побачить такий редирект лише після рендерингу JavaScript — а це окремий, відкладений етап. Тому передавання ваги й «схлопування» URL відбувається повільніше й менш передбачувано, ніж із серверним 301.
Синтаксис і приклад коду
// JS-редирект на стороні клієнта
window.location.replace("https://pro-fits.com.ua/new-page/");
// або
window.location.href = "https://pro-fits.com.ua/new-page/";replace() не залишає стару сторінку в історії браузера (кнопка «Назад» не поверне на неї), href — залишає.
Чим відрізняється від 301
| Критерій | 301 (серверний) | JavaScript Redirect |
|---|---|---|
| Де спрацьовує | На сервері, до завантаження | У браузері, після виконання JS |
| Швидкість для SEO | Одразу | Із затримкою (після рендерингу) |
| Передавання ваги | Надійне | Менш передбачуване |
| Коли доречний | Постійне перенесення URL | Коли немає доступу до сервера або редирект залежить від умов |
Приклад
Сторінку послуги переносять на новий URL назавжди. Правильно — серверний 301: він одразу передає вагу й посилання. Якщо ж поставити JS-редирект, Google якийсь час бачитиме стару сторінку, а вагу перенесе повільно. Для постійного переїзду це гірший вибір.
Часто плутають з…
- 301 Redirect — серверний, постійний, надійно передає вагу; JS-редирект спрацьовує пізніше й слабше.
- Meta Refresh — редирект через HTML-тег; теж повільніший і менш бажаний за 301.
Питання та відповіді
JavaScript Redirect шкодить SEO?
Сам собою не «карається», але поступається 301: Google обробляє його лише після рендерингу JavaScript, тому вагу передає повільніше й менш передбачувано.
Коли JS-редирект доречний?
Коли немає доступу до сервера або перенаправлення залежить від умов (мова браузера, дія користувача). Для постійного переїзду URL краще 301.
Чи передає JS-редирект вагу посилань?
Може передавати, якщо Google його відрендерить, але надійність нижча за серверний 301. Для важливих сторінок покладатися лише на JS ризиковано.
Плутанина з редиректами після переїзду? Наведемо лад із перенаправленнями — SEO-аудит та виправлення помилок на сайті.
Схожі терміни: Редирект, 301 Redirect, JavaScript, Рендеринг, Canonical.