ЗМІСТ СТАТТІ:
Завдяки 301 редиректу у власників сайтів з’являється можливість перенаправлення користувачів і пошукових роботів на адресу сторінки, яка відрізняється від тієї, яку запитували раніше. Пропонуємо добірку описів перенаправлень, які найчастіше використовуються.
Налаштування 301 редиректу в більшості випадків проводиться з файлу під назвою .htaccess. Цей файл розташований в корені сайту і для його зміни використовуються спеціальні оператори:
Спецсимволи:
Модифікатори:
За допомогою 301 Moved Permanently можна направити користувача з адреси сторінки, прописаної в рядку пошуку, на будь-яку іншу. Для seo оптимізації дана функція дозволяє перенести практично всю вагу, якою володіла стара сторінка на іншу адресу. Старий URL буде відзначений як застарілий. В результаті позиції в пошукових системах будуть збережені. Якщо не ставити перенаправлення, а просто створити нову сторінку, то пошуковики порахують її новою, і вона буде брати участь в пошуку нарівні зі старою.
Існує кілька ситуацій, коли варто використовувати перенаправлення:
Все більше вебмайстрів дотримуються рекомендацій ПС і використовують для сайту захищений протокол. Для цього потрібно встановити 301 редирект з http на https за допомогою файлу .htaccess. Внесіть в код такі рядки:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https:// site. com. ua/$1 [R=301,L]
У разі, коли потрібно поставити 301 редирект з https на http, то потрібно прописати наступні рядки:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ http:// site. com. ua/$1 [R=301,L]
Сьогодні використання протоколу www не є обов’язковим. При цьому багато вебмайстрів все ж намагаються його застосовувати. Коли йде налаштування нового сайту, то рекомендується в якості головного дзеркала вибирати сторінки без www. Склеювання доменів дає можливість об’єднати їх траст, перенести основні параметри разом з трафіком. Так само дана склейка є одним з факторів по оптимізації сайту. Інакше Яндекс і Гугл можуть порахувати, що ресурс з www і без нього – це два різні сайти з дубльованим контентом і накласти санкції.
Щоб налаштувати 301 редирект з www на без www в .htaccess потрібно прописати наступне:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www. site. com.ua $ [NC]
RewriteRule ^(.*)$ http:// site. com. ua/$1 [R=301,L]
Встановлюючи для виражезу RewriteEngine в першому рядку значення on або off, ви можете регулювати доступ до коду файлу.
У другому рядку прописана директива, яка використовується для створення умов, за якими буде працювати редирект.
У третьому рядку вказані приписи, які будуть виконувати ту чи іншу дію. В даному випадку – це перенаправлення за дпомогою 301 редиректу.
У разі, коли змінилося доменне ім’я у сайту, то найкращим варіантом можна вважати налаштування 301 редиректу. Пошукові системи радять поступати саме так. Зазвичай виконують такі дії:
Код для проставляння редиректу на старому доменному імені буде виглядати наступним чином:
RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} !^www\.site\.com
RewriteRule ^(.*)$ http:// www. site .com/$1 [R=301,L]
У файлі robots.txt потрібно прописати наступні рядки:
User-agent: *
Disallow:
Host: newsite com
Іноді потрібно направити користувачів з однієї сторінки сайту на іншу. Наприклад, якщо Ви вирішили не змінювати матеріал на одній зі сторінок сайту, а створили нову, куди повинен бути направлений трафік. Або в разі роботи з CMS з’явилися дублі сторінок, які потрібно прибрати. Щоб не втратити трафік на старі сторінки сайту, найкращим рішенням буде простановка 301 редиректу з однієї сторінки на іншу. Для цього прописуємо в .htaccess наступні рядки:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.project-seo\.net$ [NC]
RewriteRule ^page/301-redirekta/$ https:\\www.project-seo.net/newpage/ [R=301,L]
У цьому випадку достатньо поставити перенаправлення на інші сторінки сайту. Зазвичай в якості такої сторінки виступає головна.
RewriteCond %{QUERY_STRING} ^cPath=373_703
RewriteRule ^index\.php$ http:// site.com.ua/? [L,R=301]
Приклад вище відмінно працює на сайтах з безкоштовними CMS, наприклад на Джумла. Це актуально для оптимізації проекту.
Якщо потрібно поставити 301 редирект для головної сторінки сайту з index.php на нормальний url, потрібно прописати:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http:// site.com.ua/ [L,R=301]
Оскільки дубль сторінки виду index.php може з’явитися не тільки у головній, а й у інших сторінок сайту, необхідно вжити заходів для вирішення цієї проблеми. Щоб відразу позбутися дублювання, досить прописати наступний рядок:
RewriteRule ^index\.php/(.*)$ /$1 [R=301,L]
У деяких випадках у головної сторінки може з’явитися дубль, на кінці якого буде прописано main.html. Позбутися від проблеми можна за допомогою 301 редіректу такого виду:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /main\.html\ HTTP/
RewriteRule ^main\.html$ http:// vash-sait. com. ua/ [R=301,L]
Або можна використовувати такий спосіб:
Redirect 301 /main.html http:// site.com.ua/
Іноді може знадобитися, щоб сторінки сайту мали адресу з .html в кінці. Для цього в файлі .htaccess необхідно прописати наступні рядки:
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1.html [R=301,L]
RewriteRule ^(.*)/$ /$1.html [R=301,L]
У разі, коли потрібно, щоб у url сайту не було .html на кінці, необхідно прописати наступне:
RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^(.*)\.html$ /$1 [R,L]
Іноді потрібно поставити редирект з адрес виду .htm на адреси .html. Для цього прописуємо наступні рядки:
RewriteBase /
RewriteRule ^(.*)\.htm$ $1.html [R=301,L]
Редирект зі сторінок зі слешем в кінці на сторінки без слеша
Там, де необхідне рішення даної проблеми, необхідно налаштувати редирект з допомогою наступних рядків коду:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
У деяких CMS адреси можуть формуватися таким чином, що сторінка буде доступна за адресою: /? Page_id = 2324. Для їх перенаправлення прописуємо рядки:
RewriteCond %{QUERY_STRING} page_id=111
RewriteRule ^ http:// site. com.ua /new-page/ [R=301,L]
Для сайтов под управлением этой CMS создано огромное количество плагинов, которые упрощают работу. Для настройки перенаправления страниц сайта можно воспользоваться плагином Redirection. Количество его скачиваний превышает 2 миллиона.
С его помощью можно самостоятельно создавать 301 редиректы внутри страниц сайта и отслеживать статистику по перенаправлениям. Так же он позволяет отыскивать страницы с 404 ответом сервера.
Альтернативный вариант это плагин Safe Redirect, который вышел значительно позже. Его интерфейс более удобный для восприятия.
Одним из самых простых решений для данной CMS можно считать плагин Simple 301 Redirects. Здесь отсутствуют лишние настройки, и плагин выполняет только перенаправление с одной страницы сайта на другую.
У всех сайтов под управлением данной CMS главная страница имеет вид адрес на конце которого находится: index.php /?route=common/home.
Почему-то разработчики системы не хотят исправлять данную проблему, по неизвестным причинам. Поэтому решать ее приходится тем пользователям, которые решили использовать данную CMS. Сделать это можно заменив строки в файлах header.tpl и footer.tpl.
Вместо:
<?php echo $home; ?>
Нужно прописать
<?php echo $base; ?>
Другим вариантом является стандартное изменение содержимого файла .htaccess. Пропишите там следующие строки:
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteRule ^index\.php$ http:// site. com/? [R=301,L]
Чтобы установить 301 редирект на страницы с ЧПУ адресами потребуется прописать следующее:
RewriteCond %{QUERY_STRING} ^path=83_94_113&route=product/category$
RewriteRule ^index\.php$ http:// site. com/new-category? [R=301,L]
Для динамических адресов, когда категория привязывается к той или иной секции адрес может иметь следующий вид:
www. site. com/katalog?c=category
Чтобы решить данную проблему, используйте следующий код:
RewriteCond %{QUERY_STRING} ^c=sumki$ [NC]
RewriteRule katalog http:// site. com/? [R=301,L]
При настройке 301 редиректа стоит помнить следующее:
В некоторых случаях использование 301 редиректа может оказаться неправильным. Внедрять на сайт многоуровневый редирект не стоит. Если на сайте существуют две страницы, содержание которых не релевантное, то стоит сохранить оба вариант для пользователей. Так же нельзя ставить перенаправление на страницу, которая имеет 404 ответ. Настройка редиректа в файле robots.txt так же недопустима.
Головний редактор.
SEO кейси від НАС!