301 редирект: гайд з налаштування

Що за звір такий, цей редирект? Редирект використовується для перенаправлення людини або бота ПС на іншу адресу, яка відрізняється від запитуваної спочатку.

Приклад: https://en.uaateam.agency/ перенаправляється на https://uaateam.digital/

Коли використовується 301 redirect

Найпоширеніший приклад використання 301 redirect у SEO-просуванні – це склеювання урлів сайту. У цьому випадку крім передачі 90% посилальної ваги, передається також і авторитетність сайту з якого йде перенаправлення.

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

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

Ще можна використовувати редирект для того, щоб перенаправити користувача з битого посилання (бите посилання – посилання при переході на яке сервер віддає 404 код сервера) на якусь іншу; або коли у вас є сторінки з дублювальним контентом на них.

Але в таких випадках також присутній ще один варіант виправлення помилки – видалення сторінки.

Види редиректів

301 редирект

301 редирект – це постійний редирект, за допомогою якого можна передавати понад 90% посилальної ваги, також він говорить про те, що сторінка має нову адресу, а старий урл варто вважати неактуальним.

302 і 307 редирект

302 редирект є тимчасовим і передає цілих 0% посилальної ваги і не рекомендуються для використання, його наступником у протоколі HTTP 1.1 є 307 редирект. Ці типи перенаправлень слід використовувати лише для переміщення контенту на час, наприклад, для проведення технічних робіт.

Решта видів редиректів

Також редирект можна виконати за допомогою JavaScript або Meta Refresh, незручність їх використання полягає у тому, що вони не передають контрольну вагу і виконуються на рівні сторінки, а не на рівні сервера як 301 або 302 редіректи.

Чим відрізняється постійна переадресація від 302?

Якщо коротко, то при 301 редиректі, пошуковику дається сигнал більше не заходити за старою адресою, а публікації, які знаходяться на цій сторінці перестають відображатися в пошуковій видачі.

При 302 ж редиректі індексуватися будуть обидві сторінки, саме тому повторюся про те, що застосовувати їх краще лише на короткочасній основі.

Поради щодо використання редиректу

  1. Переадресація не повинна бути циклічною, якщо сторінка буде посилатися на саму себе, це може привести до того, що при індексації сайту пошуковими ботами, є ймовірність його попадання в таку “петлю”, що зрештою призведе до зливання краулінгового бюджету і, як підсумок, сайт не буде проіндексований.
  2. Не варто робити редирект з адреси, на яку також йде редирект, тобто, якщо у вас є сторінка 1, 2 і 3, то не потрібно робити редирект з першої на другу, а з другої на третю, ставте відразу з першої на третю. Таким чином навантаження на сервер не буде збільшуватися, а ефективність редиректу не буде зменшуватись.
  3. Розміщення правил редиректів варто починати із загальних, і лише після них вписувати приватні, бо при будь-яких суперечностях першими будуть спрацьовувати загальні правила і лише після них приватні.
  4. Корисним перенаправленням буде вважатися те, який веде на сторінку, що копіює у всіх нюансах запитувану.


Де налаштовуються редиректи?

Найпопулярнішим і поширеним методом виконання переадресації є створення файлу під назвою .htaccess у папці сайту або редагування його, якщо він у вас є.

При використанні веб-сервера Apache файл називається httpd.conf.

Рекомендую вам робити Backup запису або всього сайту, перед тим як вносити будь-які зміни.

Регулярні вирази

Перш ніж перейти до прикладів, хочу сказати, що для написання правил редиректів використовуються регулярні вирази. Крім редиректів, вони можуть використовуватися у сервісах аналітики (Google Analytics, Яндекс Метрика), пошуку записів за посиланнями, при роботі з Google Tag Manager.

Детально про регулярні вирази і його синтаксисі ви можете прочитати тут.

Приклади:

  • Перенаправляємо повністю весь сайт на нову адресу:

  • Редирект з однієї сторінки на іншу:

  • Редирект з www на без www:

  • Переадресація з HTTP на HTTPS:

Не забувайте про те, що працюючи з файлом, команда відбувається на рівні сервера з ОС Linux або Apache з активованим модулем Mod_rewrite.

Також можна зменшити навантаження на сервер, змінивши конфігураційним файлом hpptd.conf. – редирект .htaccess.

Налаштування редиректів у CMS

Для більшості CMS є плагіни, що дозволяють легко налаштовувати редиректи. Основною складністю зазвичай є те, що необхідно вручну формувати список адрес для переадресації.

За допомогою PHP-умови

Якщо ви знаєте структуру web-проекту, розбираєтеся у PHP і сайт зроблений на CMS, то відкрийте файл index.php, і в корені движку пропишіть:

(В першому рядку вказується старий url, а в другому – новий)

Також, перенаправлення PHP можна зробити за допомогою відправки заголовків:

ASP редирект

ASP.NET редирект

У корені сайту необхідно буде знайти файл web.config і вставити у секцію синтаксис:

ColdFusion редирект

JSP (Java) редирект

Такий спосіб найкраще підійде для коригування простих проектів. Ви просто прописуєте код в одному файлі і додаєте на все потрібні сторінки. А ось і сам код:

(Перенаправлення на інший сайт)

CGI-скрипт на PERL

Ruby on Rails

Редирект в nginx

HTML-редирект

Якщо вам необхідно змінити лише одну сторінку на простенькому статичному сайті – зробіть редирект HTML. Просто додайте мета-тег всередині.

У даному прикладі ми використовуємо редирект на наш сайт з 10-секундною затримкою:

Якщо ми змінимо значення з 10 на 1, то користувач відправиться на https://uaateam.agency/ з секундною затримкою.

Але так краще робити тільки для простих сайтів, на великих ресурсах таким чином ви витратите багато часу.

Редиректи за типом завдання

Перенаправлення з www / без www

Додайте ці рядки до файлу .htaccess, якщо вам необхідно налаштувати головне дзеркало:

Також редирект з www можна виконати завдяки синтаксису:

Склеювання index.php, index.html, index.htm, index.asp

Редирект з http і https

Якщо ми переїжджаємо на захищений протокол, то додаємо:

або

Редирект з https на http

Склеювання дублів зі слешем у кінці url

Для видалення слеша по всьому сайту необхідно використовувати код:

Код для зворотного ефекту:

Видаляємо кілька слешів або тире в адресному рядку

Робимо перенаправлення із зайвими слешами на сторінку з одним слешем:

Для склеювання тире воєдино пропишіть від www.site.com/catalog/page1.html:

Для спрощення процесу я рекомендую скористатися сервісами, які генерують редіректи, просто підставте ваші дані і відразу отримаєте готовий код:

 

Редирект одного url на іншу адресу

Найшвидша переадресація сторінки на нову адресу:

Зі збереженням GET-параметрів

url до параметра

значення після параметра (замість? = ставиться ^)

Нова адреса

Якщо деяких GET-параметрів немає або вони мають довільне значення, обираємо такий синтаксис:

Без збереження GET-параметрів

Для переадресації адреси site.ua/index.php на основне дзеркало site.ua:

або

Редирект на URL у нижньому регістрі

Ми знаємо, що ПС враховує регістр букв, саме тому розробники намагаються додавати адреси у нижньому регістрі, але якщо щось пішло не за планом, то завжди можна скористатися ось таким алгоритмом перенаправлення.

Пропишіть даний код на рівні php-скрипту:

З внутрішньої сторінки на головну

Перенаправлення каталогу

Якщо змінюється структура каталогу, що відображається в url:

Якщо адреса каталогу, який застаріла, йде відразу ж після назви сайту, то застосовуємо такий синтаксис:

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

Редирект при зміні файлових розширень

Якщо через переїзд на іншу платформу у вас змінилися розширення файлів, ви можете використовувати таку формулу:

Склеюємо домени або переїжджаємо на інший сайт

Перенаправляємо всі сторінки з одного домену на головну сторінку іншого

Додайте до файлу .htaccess сайту, з якого робите редирект, такі рядки:

(site.ua – майданчик, на яку буде вести редирект)

Перенаправлення на головну з внутрішніх сторінок

Перенаправлення на внутрішню сторінку з головної

З піддомену на основний домен

Зі сторінок одного домену на аналоги в іншому

Якщо перенаправлення на іншу адресу необхідно після зміни структури урлів, то спробуйте цей код:

У разі відсутності рішення проблеми за допомогою синтаксису, рекомендую звернутися до розробників даного ресурсу, вони дороблять запропоновані вище варіанти з особливостями вашої CMS. Також у такому випадку, було б добре скласти карту редиректів.

На цьому у мене все, сподіваюся, що дана стаття буде вам корисна і стане в нагоді у роботі. Якою би страшною не здавалася вам настройка редиректу, запевняю вас, коли ви спробуєте, то зрозумієте що нічого складного у цьому немає.

Також раджу вам детально ознайомитися і вивчити синтаксис регулярних виразів, бо він ще не раз стане вам в нагоді у вашій роботі.