Способи редиректу, редирект 301, 302, 307, javascript редирект

Редирект. Великий та могутній. Наскільки корисний, настільки і шкідливий спосіб відправити користувача або пошукового робота не на ту сторінку, на яку він збирався потрапити. Або на іншу версію цієї сторінки. Або на ту ж версію, але в іншому місці. Отже, поїхали.

За фактом, редирект - це комп'ютерний код, який повідомляє браузеру, що він повинен відкрити замість вихідного - інший URL і іноді повідомляє причину такої вказівки. Url при цьому може знаходитися як в межах домену, так і взагалі в будь-якому місці мережі.

Отже, редіректи бувають різні. наприклад:

301 Moved Permanently

Такий редирект дає зрозуміти браузеру і / або пошуковому роботу, що сторінка на яку він потрапив перенесена в інше місце. 301 редирект - улюблений редирект сеошник тому при його використанні зазвичай зберігається контрольний вагу відсотків на 90. А то й на всі сто.

307 Moved Temporarily (Вірно для HTML версії 1.1. У більш ранніх версіях використовувався редирект 302)

Цей редирект говорить про те, що контент перенесений в інше місце тимчасово. Використовувати цей редирект на постійній основі в принципі не рекомендується тому що він не переносить ніякого посилального ваги. І взагалі, достеменно невідомо, як відреагує на нього пошуковий робот. Чисто теоретично виходячи з досвіду, якщо ви використовуєте 307 редирект - пошуковий робот повинен розуміти, що ваш сервер підтримує HTML 1.1 і правильно інтерпретувати 307-й редирект. Але насправді, при всіх просторікуваннях на цю тему, ніхто точно не знає, як поведе себе пошуковий робот в тій чи іншій ситуації. Тому використовувати редирект 307 і / або 302 не варто. Звичайно, крім тих випадків, коли матеріал переміщений дійсно тимчасово (для чого і створено редирект 302/307).

Приблизно так йдуть справи з серверними редирект. Але є ще і не серверний варіант редиректу. Наприклад перенаправлення за допомогою спеціального тега META. Тобто можна перенаправити користувача сайту на інший URL просто вписавши в код сторінки одну сходинку. Природно, раз мова йде про meta-тегу - потрібно розуміти, що вписується він між тегами і .

Виглядає це так:

lt; meta http - equiv = "Refresh" content = "5; URL = // comp-pro.ru" gt;

Для тих, хто зрозумів: Так, точно, можна!

Для тих, хто ще й в шоломі:

lt; meta http - equiv = "Refresh" content = "5" gt;

Де 5 - це час оновлення сторінки в секундах.

Такий спосіб перенаправлення зазвичай потрібен для виведення якогось повідомлення. Наприклад, якщо користувач на сайті запустив якийсь скриптова дію типу зміни пароля. Сайт показує сторінку з повідомленням про те, що пароль змінений і через 3 секунди перенаправляє користувача назад в профіль або на якусь іншу сторінку. Мінус такого способу з точки зору СЕО очевидний: такий рефреш-редирект фізично не в змозі відправити якийсь код (301/302/307) і відповідно не дає інформації пошуковому роботу про причини редиректу. Що тягне за собою накладення санкцій. Не завжди - вірно. Але тим не менше пошукачі не люблять, коли користувачам показують не ту сторінку, на яку вони намагалися потрапити. Тому такі сторінки від роботів краще ховати за директивами robots.txt або noindex.

Також до редіректу можна відносити канонізацію (склейку) домену. Тобто, якщо ви вибираєте для себе канонічним (головним) домен з WWW і всі запити без WWW повинні перенаправлятися на домен з WWW.

Канонічний домен нашого сайту: comp-pro.ru

Всі запити до www.comp-pro.ru відправляються на comp-pro.ru

Для того, щоб реалізувати таку склейку потрібно створити в кореневій директорії сайту файл з ім'ям .htaccess або відкрити вже існуючий і додати в нього наступний код:

Де location - це цільової URL, а 15 - час до спрацьовування з моменту завантаження.

Знову ж таки, для тих, хто в танку:

Код вказаний вище вписується між тегами і .