Редирект 301. Посилаємо правильно

168

Всім привіт! Як то я упустив цю, досить важливу тему в самостійному просуванні сайтів, тому виправляю ситуацію. Редірект (автоматичне перенаправлення) використовують для багатьох цілей: як то зміна домену, перенесення сторінок сайту, або склеювання доменів. Пересилання – це процес пересилки одного URL на інший URL. Існують три основних види переадресацій: 301, 302, і Meta Refresh. Бувають ще інші, приватні випадки застосування редиректа, так ще можна назвати 7 видів кодів редіректу з 300 по 306. Але ці зокрема відкинемо, перейшовши до найбільш поширених видів редіректу. Редирект 301 – такий собі «шанель номер 5» php-кодинга. Найбільш цінний вид Redirect – а.

Редирект 301. Permanent Redirect – переміщений назавжди. Redirect 301 вказує браузерам і пошуковим ботам, що сторінка була переміщена на постійній основі. Пошукові системи інтерпретують це значення, що не тільки сторінка змінила місце розташування, але зміст і оновлену версію цього, можна знайти на новому URL. Сайт посилає пошуковики і відвідувачів на ці три цифри буде виключено з пошуку назавжди. Основним плюсом 301 редіректу, є збереження пошукового трафіку і таких важливих показників, як ТиЦ і Page Rank (PR): як перше (відвідувачі), так і друге (Тіц і PR ) будуть передані сайту донору. Майте на увазі, що при переміщенні сторінки з однієї сторінки на іншу, пошуковим системам буде потрібно якийсь час для того, щоб виявити 301, визнати його і перенаправити на нову сторінку рейтинг і довіру свого попередника. Цей процес залежить від того, як часто роботи пошукових систем відвідують дану веб – сторінку.

Інші варіанти перенаправлення, такі, як 302 редирект і Meta Refresh, можна назвати “простими” або “тимчасовими” редиректами, неповними, оскільки вони взагалі не будуть переносити рейтинги та пошукові значення сайту, начебто 301 редіректу. Єдине, коли ці переадресації мають хороші альтернативи, якщо веб-майстер навмисно не хоче передавати ссылке весь “сік” з старої сторінки на нову.

Рекомендую до прочитання: Правильне просування в Яндексі

Meta Refresh або HTML-редирект

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

Метатег (meta) refresh або редирект в html

1

Таким чином перенаправлення відбувається без редагування файлу .htaccess, вам треба після URL= вписати сторінку або сайт, на який потрібно надіслати користувача. У даному прикладі я вказав свій блог http:/promotiger.ru. Ви вписуєте свої дані.

Повна передача вмісту стає більш складною, коли весь сайт змінює свій домен або коли вміст переміщається з одного домену в інший. Із-за зловживань зі сторони спамерів і підозр з боку пошукових систем, 301 редиректи між доменами іноді вимагає велику кількість часу (від тижня до місяця), щоб правильно підрахувати пузомірки та індексації. Для того, щоб це працювало, на веб-сервер повинен бути встановлений модуль Apache mod_rewrite. У більшості хостер-провайдерів на Apache буде mod_rewrite встановлений за замовчуванням. Щоб перевірити, чи встановлений модуль, потрібно додати наступний рядок у файл конфігурації Apache або у відповідний файл .htaccess:

Модуль Apache mod_rewrite
RewriteEngine On

1 RewriteEngine On

301 редирект через файл .htaccess

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

Redirect 301
PHP
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^старый_сайт.ру
RewriteRule ^(.*)$ http://www.новый_сайт.ру$1[R=permanent,L]

1
2
3
4
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^старый_сайт.ру
RewriteRule ^(.*)$ http://www.новый_сайт.ру$1[R=permanent,L]

Якщо, з якихось причин не запрацює, то тоді так:

Рекомендую до прочитання: Складання анкорів
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.старый_сайт.ру$ [NC]
RewriteRule ^(.*)$ http://www.новый_сайт.ру/$1 [R=301,L]

1
2
3
4
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.старый_сайт.ру$ [NC]
RewriteRule ^(.*)$ http://www.новый_сайт.ру/$1 [R=301,L]

Редирект 301 через PHP

Файл index.php створюємо, трансформуємо в:

301 редирект через PHP

1
2
3
4

Редірект з без WWW на WWW

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

Перенаправлення з без www на сайт www
RewriteCond% {HTTP_HOST} *! ^ WWW * .promotiger \ .ru [NC]
RewriteRule (. *) Http://www.promotiger.ru/$1 [L, R = 301]

1
2
RewriteCond% {HTTP_HOST} *! ^ WWW * .promotiger \ .ru [NC]
RewriteRule (. *) Http://www.promotiger.ru/$1 [L, R = 301]

Редирект при видаленні сторінок

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

Редірект на нову сторінку
RedirectMatch 301 /old/oldfile.php http://www.newsite.ru

1 RedirectMatch 301 /old/oldfile.php http://www.newsite.ru

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