Коли редирект необхідний.




Ми випустили нову книгу «Контент-маркетинг у соціальних мережах: Як засісти в голову передплатників та закохати їх у свій бренд».

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

301 Permanent Redirect / 301 редирект…

… це переадресація користувача на іншу адресу сторінки або домену. Цей код відповіді сервера означає, що сторінка та ресурс переїхали назавжди і тепер доступні в іншій адресі.

Є міфи, пов'язані з: наприклад, що при редиректі не передається PR сторінки, але цей міф був розвінчаний одним із вебмайстрів Google Джоном Мюллером своєму блозі. Або замість редиректа можна використовувати 302 Temporary Redirect.

Існує цілий клас 3х редиректів. Найчастіше використовуються коди 301 і 302 - вони як двійнята, які начебто і схожі, але все-таки різняться. А для пошукового робота це дві абсолютно різні людини, і трактуються такі відповіді сервера по-різному:

  1. 301 Moved Permanently : постійний редирект. Цей код повідомляє про те, що ресурс переміщений на нову адресу на постійній основі з видаленням минулого домену. Потрібен для остаточного переїзду на новий ресурс, нову CMS або склеювання сторінок.
  2. 302 Temporary Redirect: тимчасовий редирект. Повідомляє про тимчасовий переїзд сайту або його сторінки. Використовується для технічних робіт на сайті.

Як ці коди відіб'ються на видачі:

  • При 301 редиректі у пошуковій видачі починає відображатися нова URL, але це може зайняти деякий час. Google радить зберігати статус сторінки протягом року.
  • При пошуку зберігається старий URL сторінки, але через 6 місяців використання 302 редиректа пошукова система починає вважати його за постійний 301, т.к. тимчасове перенаправлення не дарма названо «тимчасовим», а півроку – досить великий термін.

Через подібні помилки вебмайстрів та зловживання 302 редиректом у неетичних цілях SEO-фахівці дуже не радять використовувати його на своєму сайті, адже навіть за невелику підозру в чорному SEO ви можете клопотати серйозний штраф. Давайте краще розберемося як можна налаштувати 3 01 редирект у

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

Найпростіший прикладредиректа: із сайту на сайт

Redirect / www.example.com

www.example.com – сайт, на який ми перенаправляємо запит користувача.

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

Redirect /semantica сайт/

Redirect /semantica/blog сайт/blog

Redirect 301 /kernel сайт/

Що все це означає:

1 рядок - при зверненні до сторінки www.example.com/semantica відкриватиметься сайт/

2 рядок - при зверненні до http://www.example.com/semantica/blog відкриватиметься сайт/blog

3 рядок - веб-сервер віддаватиме код 301 про постійний переїзд на новий URL

Тепер, коли ви приблизно розумієте, як це працює, можна переходити на складніші завдання.

Складні редиректи

Для складних редирект існує модуль mod_rewrite - це засіб перетворення URL-адрес, що використовує . Для редиректу використовуються три важливі директиви: RewriteCond, RewriteRule та RewriteEngine.

  1. RewriteEngine включає або вимикає роботу механізму перетворення:

RewriteEngine on | off

Положення on-off включає та вимикає роботу модуля.

2. RewriteCond - визначає умову будь-якого правила, у якому відбувається перетворення.Відразу після директиви найчастіше йдуть змінні %(HTTP_HOST) та %(REQUEST_URI), які означають адресу сервера (наприклад, example.ru) та ресурс, запитаний у рядку HTTP-запиту, відповідно.

3. RewriteRule - йде після одного або кількох RewriteCond. Це правило перетворення URI, яке застосовується лише за умови виконання RewriteCond.

Синтаксис директиви RewriteRule має такий вигляд:

RewriteRule Шаблон Підстановка

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

Метасимволи використовуються для завдання груп символів та міток у шаблоні:

  • ^ - мітка початку рядка,
  • $ - мітка кінця рядка,
  • \ - екрануючий сліш, дозволяє вважати наступний за ним метасимвол звичайним символом,
  • . - точка, що позначає будь-який символ, але тільки один,
  • () - Угруповання.
  • ! - заперечення,

Прапори визначають додаткові опції для цього правила і перераховуються у квадратних дужках через кому:

  • NC – (nocase) відключає перевірку регістру символів.
  • R - (redirect) зупиняє процес перетворення та повертає результат браузеру клієнта як редирект на цю сторінку (302, MOVED TEMPORARY). З цим прапором можна вказати інший код результату, наприклад, R=301 поверне редирект з кодом 301 (MOVED PERMANENTLY).
  • L - (last) зупиняє процес перетворення, і поточне посилання вважається остаточним.

Як зробити 301 редирект?

Тепер, знаючи ці правила, ми можемо спробувати самостійно зробитиредирект за допомогою htaccess.

  1. Редирект.htaccess на іншу сторінку
Redirect 301 /old-post.html http://new-site.ru/new-post.html
  1. Редирект.htaccess з www на без www
RewriteEngine on RewriteCond %(HTTP_HOST) !^site.ru$ RewriteRule ^(.*)$ site.ru/$1
  1. Редирект.htaccess з без www на www
RewriteEngine on RewriteCond %(HTTP_HOST) !^www.site.ru$ RewriteRule ^(.*)$ www.site.ru/$1

де site.ru – ваше доменне ім'я.

  1. Редирект з index .php (html) на головну сторінку
RewriteEngine on RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php|html|htm)$ $1
  1. Редирект зі слішем на без слюша
RewriteCond %(REQUEST_URI)!\? RewriteCond %(REQUEST_URI) !\& RewriteCond %(REQUEST_URI) !\= RewriteCond %(REQUEST_URI) !\. RewriteCond %(REQUEST_URI) ![^\/]$ RewriteRule ^(.*)\/$ /$1
  1. Редирект зі сторінок без слiшу на слiш
RewriteCond %(REQUEST_URI)!\? RewriteCond %(REQUEST_URI) !\& RewriteCond %(REQUEST_URI) !\= RewriteCond %(REQUEST_URI) !\. RewriteCond %(REQUEST_URI) !\/$ RewriteRule ^(.*[^\/])$ /$1/
  1. Редирект усіх сторінок одного домену на головну іншого домену
RewriteCond %(REQUEST_URI) (.*) RewriteRule ^(.*)$ http://site.ru/
  1. Редирект з http на https через. htaccess
RewriteCond %(HTTPS) !=on RewriteRule ^(.*)$ https://%(HTTP_HOST)/$1
  1. Редирект з https на http
RewriteCond %(HTTPS) =on RewriteRule ^(.*)$ http://%(HTTP_HOST)/$1
  1. Звільнення від дублів сторінок

Якщо ви помітили, що до адреси основної сторінки приклеюється щось на кшталт &sa=123 456 або &crw=123 456 тощо, просто замініть літерну частину в наступному коді

RewriteCond %(REQUEST_URI) ^(.*)\&sa= RewriteRule ^(.*)\&sa=(.*)$ $1

Приклад: пояснюємо на пальцях

Як за допомогою 301 редиректа зробити так, щоб на запит site.ru/category/art1/zapis/ у рядку адреси було site.ru/zapis/, тобто /category/art1 вирізалася б з рядка, але після вирізання рядка показувався вміст site .ua/category/art1/zapis/?

RewriteCond %(ENV:REDIRECT_STATUS) ^$ RewriteRule ^category/art1/zapis/$ http://%(HTTP_HOST)/zapis/ RewriteRule ^zapis/$ /category/art1/zapis/ [L]

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

Як відомо, mod_rewrit на apache постійно переглядає список правил, поки URL можна хоч якось змінити.
І не рідко виходять нескінченні цикли.

Щоб обмежити цикл виконання правил однією ітерацією, можна використовувати конструкцію першого рядка. Вона надає apache статус був виконаний редирект чи ні і якщо так, то пропустити такі правила. До речі, на nginx цей рядок не потрібний.

Другий рядок робить 301 редирект з www.site.ru/category/art1/zapis/ на www.site.ru/zapis/
Третій рядок каже серверу, що якщо адреса виду www.site.ru/zapis/, то треба показувати те, що знаходиться за адресою www.site.ru/category/art1/zapis/

Пам'ятайте, що з великою силою редиректу приходить і велика відповідальність, тому використовуйте отримані знання з розумом.

  1. Принцип «від меншого до більшого»: маєте в своєму розпорядженні редиректи від приватних до більш глобальних. Т. е. переадресація зі сторінки на сторінку буде вищою, ніжпереадресація з без www на www.
  2. Уникайте послідовних – подвійних, потрійних – редиректів. Один редирект перенаправляє користувача лише один раз.
  3. Перевірте HTTP заголовки та статуси відповіді сервера, щоб переконатися у правильності роботи редагування.

У висновку хотілося б за пунктами оголосити умови за яких варто і не варто використовувати.htaccess переадресацію.

Коли редирект необхідний

  1. Ви переїхали на інший домен: і вам логічно не хочеться втратити своїх клієнтів – справжніх та потенційних, а також є необхідність передати вагу минулого сайту на новий.
  2. Хочете склеїти дзеркала: у вас кілька доменних імен із різним написанням бренду і ви перенаправляєте всіх відвідувачів на основний сайт.
  3. Сторінка змінила свою адресу: структура вашого сайту була реорганізована і ви намагаєтеся запобігти можливому безладу.
  4. Хочете позбавитися дублів сторінок або копії сайту: не варто ставитися до дублів як чогось нешкідливого і незначного. З дублями ви втрачаєте у вазі і здаєте позиції конкурентам, а також дублювання контенту може призвести до штрафів від пошукових систем.

У яких випадках не потрібно використовувати редирект?

  1. Ви тимчасово переїжджаєте на нову сторінку: для цього є 302 та 307 код, це гарантія того, що не станеться склеювання сторінок і оригінальна сторінка не випаде з пошукової видачі.
  2. Ви переїжджаєте через проблеми зі старим доменом: якщо у вас є бани, фільтри та штрафи, то при склеюванні до вас перейде не тільки ТІЦ та PR, але й усі біди, від яких ви втекли.

Код відповіді 301 (Moved Permanently) означає, що запитаний документ тепер доступний на новій адресі на постійній основі. Редирект 301 може знадобитись у кількох випадках: переїзд на новий домен, зміна адреси сторінки або . Цілі цих заходів цілком прозорі:

  • Перенесення старих показників на нову сторінку чи домен.
  • Усунення битих посилань, як зовнішніх, і внутрішніх.
  • Усунення дублів сторінок.

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

Налаштування 301 редагування зі сторінки на сторінку

Досить часто виникає ситуація, коли сторінку сайту було видалено або вимушено змінити свою URL-адресу. При зверненні до її старої адреси користувач, само собою, побачить сторінку 404 помилки (не знайдено).

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

Також його можна використовувати для боротьби із дублями сторінок. Загалом потрібно писати книгу на тему "99 способів використання Redirect 301". Ось його синтаксис:

Redirect 301 /old-page.html http://new-domain.ru/new-page.html

Ну чи так, результат буде той самий:

Redirect permanent /old-page.html http://new-domain.ru/new-page.html

Пояснюю: /old-page.html - відносна адреса старої сторінки. Він може бути вкладеним: /old-category/old-page.html, ну чи таким: /old-category/old-page/ - тут жодних обмежень немає. Те саме стосується http://new-domain.ru/new-page.html (нової сторінки), з тією лише різницею, що шлях тут абсолютний (не обов'язково, щоб це був новий домен - може бути просто нова внутрішня адреса сторінки ).

Налаштування 301 редиректу під час перенесення сайту на новий домен

Не менш зрозуміла ситуація. Виникла потреба переїхати на новий домен, зберігши показники старого ( , PR). В цьому випадку приписуємо в.htaccess старого домену таке:

Options +FollowSymLinks
RewriteEngine on

RewriteEngine off

RewriteCond %(HTTP_HOST) ^old-domain\.ru
RewriteRule ^(.*)$ http://new-domain.ru/$1
RewriteCond %(HTTP_HOST) ^www.oldsite\.ru
RewriteRule ^(.*)$ http://old-domain.ru/$1

У цьому прикладі ми встановили редирект всіх сторінок старого домену на сторінки нового (за умови, що їх відносні адреси збігаються). При цьому ми залишили без редагування на старому домені файл robots.txt, щоб процес перенесення був більш повноцінним. До нього ми прописуємо:

User-agent: *
Disallow:
Host: newsite.ru
Sitemap: http://newsite.ru/sitemap.xml

Ну і чекаємо кілька місяців, поки переїзд домену не буде зарахований, а всі параметри - передані.

Склейка дзеркал сайту: 301 редирект з www на без www і навпаки

Існує кілька варіантів звернення до сайту – з www та без www (наприклад, сайт та www.сайт). Користувачеві все одно, як саме вводити URL, оскільки він у будь-якому випадку потрапить на ту саму сторінку. Інакше справа з пошуковими системами. Вони розцінюють www.site.ru та site.ru, як два абсолютно різні домени (що тягнеться з глибин історії всесвітньої мережі, коли це дійсно було так).

Ці дублі заважають індексації сайту та просуванню в цілому, оскільки, по-перше, це банальні дублі сторінок (вибачаюся вже за повторення) і, по-друге, вхідні посилання будуть також вкладатися в різні кошики. Те саме стосується і дублів головної сторінки: site.ru, site.ru/index.html, site.ru/index.php і т.д. Тому ще на етапі створення сайту бажано подбати про це питання і одну з версій сайту (наприклад, c www) переадресувати на іншу (наприклад, без www). Якщо момент було втрачено, то тут немає нічого страшного.

Розглянемо процес склеювання дзеркал за допомогою 301 редиректу поетапно.

1. Визначаємо основний домен, вибраний для індексації пошуковими системами.

Основне дзеркало можна легко визначити за результатами пошукової видачі Яндекс та . Вводимо назву домену і дивимося, яка адреса відобразиться: www.site.ru чи site.ru. Якщо сайт ще не проіндексований, то вибираємо його на свій розсуд. Якщо в Google та Yandex основні домени різні, то краще залиште Яндексівський.

2. Прописуємо 301 редирект в.htaccess.

Знаходимо в корені FTP сайту файл.htaccess, завантажуємо та відкриваємо у блокноті, а потім вносимо до нього необхідні зміни. Перший варіант - 301 редирект домену без www на www.

Options +FollowSymLinks
RewriteEngine On

RewriteEngine off

RewriteCond %(HTTP_HOST) ^site.ru$
RewriteRule (.*) http://www.site.ru/$1

Зворотна ситуація - з www на без www:

Options +FollowSymLinks
RewriteEngine On

RewriteEngine off

RewriteCond %(HTTP_HOST) ^www.site.ru$
RewriteRule (.*) http://site.ru/$1

Після завершення редагування зберігаємо файл і завантажуємо його в кореневу папку FTP з перезаписом.

Опціонально можна відразу подбати про дублі головної сторінки виду index.php і index.html, додамо нижче наступний код:


RewriteRule ^index\.html$ http://www.site.ru/

RewriteRule ^index\.php$ http://www.site.ru/

Ну і, знову ж таки, якщо у вас site.ru:

RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://site.ru/
RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/

3. Налаштування robots.txt

Побачили знайому директиву, що залишає robots.txt незайманим? Все вірно, вносимо зміну в robots.txt:

Host: основне-дзеркало.ru

4. Перевіряємо роботу сайту.

Вводимо ту адресу, яку ми проставляли редирект, наприклад www.site.ru чи site.ru/index.html і якщо при заході на нього відбувається перехід на site.ru, то все налаштовано правильно.

5. Налаштування Yandex та Google вебмайстер.

Додатково застосовуємо відповідні налаштування в особистих. У випадку з Yandex:

Ну і для Google:

На цьому начебто все. Успіхів вам і якщо з'являться питання, то пишіть у коментарях.

Редирект 301 – навіщо він потрібен? У процесі просування сайту може виникнути ситуація, коли необхідно змінити URL-адресу сторінки. Причини тому можуть бути різні: переїзд на новий домен, склеювання дублів сторінок, або навіть, не до ночі будуть згадані санкції пошукових систем. Щоб змінити URL, використовується перенаправлення, що правильно називається «301 Permanent Redirect».

Що таке 301 редирект?

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

Звільнення від дублів сторінок також називають канонізацією.

Як налаштувати 301 редирект

При використанні деяких CMS (систем керування контентом, або «движків» сайту), редирект можна налаштувати за допомогою спеціальних плагінів. Однак більш поширена практика налаштування 301 редиректа за допомогою внесення змін до файлу.htaссess.

Декілька прикладів використання 301 редиректу

Склеювання дзеркал сайту

Для пошукової системи site.name та www.site.name – різні сайти. Один із них буде проіндексований, другий же виявиться дублем. Щоб такого не сталося, роблять так зване «склеювання» сайту. З сайту з www вказується перенаправлення на сайт без www. Це робиться у файлі.htaccess, за допомогою наступної конструкції:

RewriteEngine On RewriteCond %(HTTP_HOST) ^www.vash-sait\.ru$ RewriteRule ^(.*)$ http://vash-sait.ru/$1

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

RewriteEngine On RewriteCond %(HTTP_HOST) ^vash-sait\.ru$ RewriteRule ^(.*)$ http://www.vash-sait.ru/$1

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

При використанні ЧПУ посилань іноді виникає ситуація, коли URL необхідно змінити, але вихідна сторінка вже знаходиться в індексі. Щоб не втратити позиції та вагу при зміні посилання, варто встановити перенаправлення з вихідного посилання на змінену.

RewriteEngine On RewriteRule ^(.*)url.html$ http://vash-sait.ru/new-url.html

Перенаправлення на інший домен

У ситуації, коли потрібно змінити домен, це можна зробити без втрат позицій і ваги. Для цього потрібно встановити 301 редирект зі старого домену на новий.

RewriteEngine on RewriteCond %(HTTP_HOST) ^www\.staryy-sait\.ru$ RewriteRule ^(.*)$ http://novyy-sait.ru/$1 RewriteCond %(HTTP_HOST) ^staryy-sait\.ru$ RewriteRule ^(.*)$ http://novyy-sait.ru/$1

Редирект аліасів на основний домен сайту

Якщо для сайту використовується кілька доменів (аліасів), зареєстрованих у різних доменних зонах, то щоб уникнути дублювання контенту, потрібно встановити 301 редирект на основний домен.

RewriteEngine On RewriteCond %(HTTP_HOST) ^vash-sait.com$ RewriteCond %(HTTP_HOST) ^www.vash-sait.com$ RewriteCond %(REQUEST_URI) !^/robots.* RewriteRule ^(.*)$ http:// vash-sait.ru/$1

Забираємо розширення за допомогою 301 редиректа

RewriteEngine on RewriteRule ^(([^/]+/)*[^.]+)$ /$1.html [L]

Перенаправлення з index.php на головну

У деяких випадках, головна сторінка сайту доступна за кількома адресами одночасно. Це також негативно позначається на просуванні, оскільки говорить про дублювання контенту. Позбутися цього можна, застосувавши наступну конструкцію:

RewriteEngine On RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://vash-sait.ru/

Сторінки, в яких url зустрічається слєш, та сторінки, в яких цього символу немає, також можуть бути визнані дублями. Наступним кодом встановлюється перенаправлення зі сторінок без слеша на сторінки зі слешем:

RewriteCond %(REQUEST_FILENAME) !-d RewriteCond %(REQUEST_URI) ^(.+)/$ RewriteRule ^(.+)/$ /$1

Редирект для url з параметрами

Якщо вихідна адреса містить будь-який параметр (наприклад, http://vash-sait.ru/articles.php?section=1. Параметр тут "section=1"), то перенаправляюча конструкція матиме такий вигляд:

RewriteEngine On RewriteCond %(QUERY_STRING) section=1 RewriteRule ^index.php http://vash-sait.ru/articles.php?

Редирект, або переадресація, - це спосіб переміщення користувачів, а також пошукових систем на веб-сторінки, розташування яких змінилося. Існує кілька різновидів редиректів, основні їх типи – тимчасовий та постійний.

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

301 редирект своїми руками

До переадресації 301 зазвичай вдаються у таких випадках:

  • Зміна домену.Редирект дозволяє зробити її непомітною для користувачів, забезпечуючи їхнє переміщення на нову адресу при введенні в адресний рядок старого.
  • Необхідність зберегти пошуковий трафік, Page Rank та ТІЦ, передавши їх новому домену.
  • Існування декількох сайтів-дзеркал з різними URL-адресамита необхідність перенаправляти трафік на основний домен при введенні користувачем будь-якої URL-адреси.
  • Об'єднання двох сайтівта необхідність коректної роботи посилань на застарілі сторінки.
  • Перенесення сторінки до нового місця.
  • Необхідність склеювання імені сайту.

Як налаштовувати 301 редирект - повна інструкція, приклад коду

Щоб ухвалити рішення щодо того, який сайт канонізувати — з «www» чи без, зі слішем наприкінці чи без, — потрібно проаналізувати становище в топі та індексацію кожного варіанту.

Для склеювання домену, що містить «www», з доменом без нього використовується код:

RewriteCond %(HTTP_HOST) ^www.site\.com$

RewriteRule ^(.*)$ http://site.com/$1

Для зворотної процедури:

RewriteCond %(HTTP_HOST) ^site\.com$

Для видалення слєшу:

RewriteCond %(HTTP_HOST) (.*)

RewriteCond %(REQUEST_URI) /$

RewriteRule ^(.*)(/)$ $1

Для його додавання:

RewriteCond %(REQUEST_FILENAME) !-f

RewriteCond %(REQUEST_URI) !(.*)/$

RewriteRule ^(.*[^/])$ $1/

Для редиректу сторінки:

Redirect 301 /oldpage.html http://www.site.com/newpage.html

Для перенаправлення з дублів головної сторінки на канонічну версію:

RewriteCond %(THE_REQUEST) ^(3,9)\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTP/

RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.site.com/$1

Для редагування каталогу, структура якого вписана в URL:

RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2

Для редиректу каталогу, URL якого починається відразу після домену:

RewriteRule old-catalog /(.*) / old-catalog /$1

Для випадків, коли змінюється лише розширення URL (перенесення сайту на іншу платформу або CMS):

RedirectMatch 301 (.*)\.php$ http://www.site.com$1.html

Як переїхати на новий домен? Оптимальний варіант 301 редиректа

Зміна домену – одна з найпоширеніших причин виконання постійного редиректу. Постало питання, як переїхати на новий домен? Розроблений з урахуванням алгоритмів роботи основних пошукових систем Рунету, Google та Яндекс, оптимальний варіант 301 редиректу здійснюється за такою схемою:

  • постійна переадресація кожної сторінки старого сайту на новий;
  • Редиректу не підлягає лише файл robots.txt, натомість у ньому прописується директива Host із зазначенням нового домену.

На старому сайті прописується такий код налаштування 301 редиректа:

RewriteCond %(REQUEST_FILENAME) robots.txt$

RewriteRule ^([^/]+) $1 [L]

RewriteCond %(HTTP_HOST) !^www\.site\.com

RewriteRule ^(.*)$ http://www.site.com/$1

Файл robots.txt стосовно старого сайту має набути такого вигляду:

User-agent: Yandex

Disallow:

Host: newsite.com

Як налаштувати головне дзеркало сайту

Робот пошукової системи визначає сайти з повним або частковим збігом контенту на сторінках з однаковими адресами як дзеркала та склеює їх, індексуючи при пошуку лише головне. Вибір головного дзеркала здійснюється автоматично за алгоритмом пошукової системи або відповідно до вказівок веб-майстра. При зміні домену часто виникає необхідність перетворити новий домен, що тимчасово є неголовним дзеркалом, на головне, і постає питання, як налаштувати головне дзеркало сайту. Можливі варіанти:

  • застосовується директива Host, як її значення вказується ім'я головного дзеркала. Вибір головного дзеркала відповідно до зазначеної цієї директиви не гарантовано, але ймовірність висока;
  • здійснюється серверний редирект зі станиць старого ресурсу, який тепер буде неголовним дзеркалом, на новий.

Щоб прискорити набуття чинності змін, потрібно вибрати сайт через Яндекс.Вебмайстер, у розділі «Допомога» розкрити пункт «Налаштування індексування» і перейти за посиланням «Головне дзеркало». Тут можна поставити позначку навпроти домену, який при індексуванні має сприйматися роботом як головний.

Як і коли краще використовувати 301 редирект vs Canonical

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

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

За умовчанням переважним є постійний редирект, але є кілька нюансів і правил, як і коли краще використовувати 301 редирект vs Canonical.

301 редирект застосовується, якщо:

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

Canonical переважніше у випадках, коли:

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

Як правильно зробити 301 редирект сторінки

Дуже важливо після закінчення прописування кодів переадресації перевірити працездатність ресурсу:

  • зайти на головну сторінку, щоб переконатися, що сайт взагалі працює;
  • перевірити завантаження основних розділів, найважливіших сторінок;
  • скористатися для тестування сервісами http://bertal.ru та http://www.internetmarketingninjas.com/header-checker/.

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

Помилки під час використання

Не всі знають, як налаштовувати 301 редирект правильно. Найбільш поширені помилки при використанні постійного редиректу:

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