СОДЕРЖАНИЕ СТАТЬИ:
Благодаря 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, например на Joomla. Это актуально для оптимизации проекта.
Если нужно поставить 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 кейсы от НАС!