Как устроен редирект?
Общий алгоритм редиректа выглядит следующим образом:
1. Пользователь в браузере открывает страницу. Например, site/abc.html
2. Сайт возвращает браузеру специальный заголовок, в котором указывает какую страницу необходимо открыть вместо запрошенной. Например, site/abc2.html
3. Браузер открывает страницу, адрес которой был указан в заголовке.
В реальности же, зависит от того, как реализован редирект:
1. С помощью htaccess. Многие существующие сайты используют Apache (серверная программа для сайтов). И файл htaccess позволяет настраивать в нем сложные правила переадресации страниц. Алгоритм аналогичен общему.
2. С помощью PHP (и иные серверные языки). Тот же самый специальный заголовок может сформировать серверный язык, такой как php. Алгоритм аналогичен общему.
3. С помощью мета тега HTTP-EQUIV=REFRESH. С некоторого времени, браузеры стали поддерживать специальный мета тег в html, который позволяет перенаправлять пользователей с одной страницы на другую. Пример:
<meta http-equiv="refresh" content="5; URL=site.ru">
где «5;» — это время в секундах, через которое необходимо осуществить редирект, а URL=site.ru — это адрес страницы.
Алгоритм следующий. Браузер загружает полноценную страницу по старому адресу (и отображает ее пользователю), видит данный заголовок и осуществляет перенаправление через указанное время.
Данный подход появился из-за того, что порой требуется отобразить некую информацию до переадресации. Например, поясняющий текст о том, что страницы разделов были перенесены.
4. C помощью JavaScript. Это не совсем переадресация в полноценном смысле. Дело в том, что перенаправление на другой url происходит после того, как страница будет полностью загружена (в этом смысле схоже с мета тегом), и после выполнения специальной команды, вида:
window.location.href = "";
Отличие в том, что данная команда может быть вызвана в произвольном месте и неожиданно для браузера. Именно поэтому этот метод сложно считать полноценным редиректом.
Стоит знать, что корректными для поисковых систем считаются htaccess, php и мета тег. JavaScript далеко не всегда может корректно восприниматься, поэтому его стоит использовать только для внутренних целей (например, в ЛК пользователей).
Как активировать «переезд навсегда» через код php
Настроить перманентное перенаправление можно не только через htaccess — это можно прописать и в коде php. Порой такой способ даже лучше предыдущего, поскольку у новичков часто возникают проблемы с использованием файла htaccess. А в результате вместо нормальной переадресации на сайте появляется сообщение об ошибке 500, которое гласит о неправильном синтаксисе в файле htaccess. И хоть php нельзя назвать более легким языком, чем внутренний язык конфигурационного файла htaccess, настроить через него перенаправление куда проще в некоторых случаях.
В языке php переадресация работает при помощи функции header () и параметра Location. Чтобы вы могли в php активировать 301-й редирект, вам нужно будет его указать как «HTTP/1.1 301 Moved Permanently», то есть как «уезжающий навсегда». Написать это необходимо в скобках после первого аргумента header. А после следующего аргумента header нужно прописать в скобках следующее: «Location: http://www.домен_куда_переезжать.ru». Предварительно рекомендуется коротко ознакомиться с языком php и тем, как он работает, чтобы случайно не наделать глупых ошибок.
Стоит учесть, что указанный способ переадресации через язык php хоть и работает аналогичным способом, как и при помощи htaccess, но не всегда является уместным. Особенно, если вы хотите настроить гибкое перенаправление, например, с главной с index.php на главную страницу без индексного файла. Тогда такая переадресация вам не поможет. Она сгодится разве что для автоматического перенаправления с конкретной страницы на другую.
Другие виды редиректов
Опытные вебмастеры помимо самого популярного 301 редиректа используют и некоторые другие: от 300-го по 307-й. К примеру, 302 и 307 — это временный редирект, 305 — доступ исключительно посредством прокси и т. д. Также довольно востребованным типом редиректов можно назвать Meta Refresh. Он выполняется не на уровне сервера, а на уровне страницы. Однако, такой редирект эксперты рекомендуют применять как можно реже. Это обосновано тем, что к ним зачастую прибегают дорвейщики и спамеры. К тому же применение этого редиректа практически не дает возможности для передачи ссылочного веса.
Рекомендую:
Если хотите получить перспективную профессию или освоить новый навык (будь то SEO, HTML, веб-программирование или даже мобильная разработка), то посмотрите ТОП-3 лучших онлайн школ:
Эти школы выдают дипломы и помогают с трудоустройством, а если вам нужно просто научиться что-то делать для себя больше как хобби, то рекомендую начать с бесплатных курсов, они позволят получить общее представление о профессии и первый практический опыт.
Дата размещения/обновления информации: 29.04.2021 г.
Сообщить об ошибке
Как настроить 301 редирект
Джон Мюллер предупреждает, что Google может не проиндексировать конечную страницу, если не соблюсти все правила. Нужно использовать канонический тег, внутренние ссылки и при необходимости тег hreflang для конечной страницы, а не той, с которой вы перенаправляете пользователя. Иначе Google получит неправильные сигналы и может не проиндексировать конечную страницу.
Настроить переадресацию можно через панель управления вашим хостингом или вручную средствами HTML, PHP, JavaScript.
В настройках конкретного хостинга обычно подробно описано, как сделать редирект через панель управления. Для разных CMS есть специальные плагины для редиректов. Разберем способы для настройки вручную на примере редиректа на сайт с www или без него.
Редирект для Nginx
Для серверов под Nginx нужно использовать файл nginx.config, добавьте код в секцию server. Если вы настроили виртуальные хосты, для каждого хоста нужно редактировать файлы отдельно.
С домена с www на домен без www
server {#... if($host~ * www\.(.*)) { set $host_without_www $1; rewrite ^ (.*) $ http: //$host_without_www$1 permanent; }#... }
С домена без www на домен с www
server {#... if($host~ * ^ + \. + $) { rewrite ^ (.*) $ $scheme: //www.$host$1 permanent; }#... }
После изменения nginx.config перезапустите nginx с помощью команды «service nginx restart». Проверить, все ли корректно заполнено, можно через команду «nginx -t».
Редирект для Apache
Если вы используете Apache, вам нужен файл .htaccess. Для доступа есть несколько вариантов:
- Используйте FTP и включите отображение скрытых файлов. Найдите .htaccess в каталоге public_html в папке с названием домена.
- Откройте панель управления хостингом, включите отображение скрытых файлов и найдите его через Диспетчер файлов.
Скачайте .htaccess, добавьте код редиректа и загрузите файл заново. Если файла .htaccess нет, его нужно создать.
На домен без www
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.site\.ru$ RewriteRule ^(.*)$ <a href="https://site.ru/https://site.ru/$1" class="redactor-autoparser-object">https://site.ru/https://site.ru/$1</a>
На домен с www
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^site.ru RewriteRule (.*) <a href="http://www.site.ru/http://www.site.ru/$1" class="redactor-autoparser-object">http://www.site.ru/http://www.site.ru/$1</a>
Редирект через PHP
Действует на уровне сервера. Лучше использовать другой способ, потому что этот работает медленно. Через PHP перенаправление настраивают для сайтов, где редирект нужен на многих, но не на всех страницах.
Файл index.php расположен в корневой папке. Скачайте его и добавьте код или отредактируйте прямо в диспетчере файлов в панели управления хостингом.
На домен без www
<!--?php header("Location: http://site.ru/", true, 301); exit(); ?-->
На домен с www
<!--?php header("Location: http://www.site.ru/", true, 301); exit(); ?-->
Редирект через HTML
Редирект через HTML-код медленнее, он работает на стороне браузера. Код нужно добавить между тегами и страницы, с которой нужно перенаправить. В параметре content=»» указывают задержку по времени.
На домен без www
<meta http-equiv="refresh" content="0; url=http://site.ru/">
На домен с www
<meta http-equiv="refresh" content="0; url=http://www.site.ru/">
Редирект через JavaScript
Редирект настраивают и с помощью JavaScript, он работает на стороне браузера, как и HTML. Это медленный способ и не сработает, если у пользователя в браузере отключен JavaScript. Его обычно настраивают для редиректов с задержкой, если такое требуется.
Код для редиректа нужно добавить между и в код первой исходной страницы.
На домен без www
<script type="text/javascript"> window.location.replace("http://site.ru/"); </script>
Для задержки:
На домен с www
<pre><script> window.location.replace("http://www.site.ru/"); </script></pre>
Через cPanel
cPanel — это платная панель управления веб-хостингом. В ней тоже можно настроить редиректы, причем не используя вводы кодов. Во вкладке «Домены» есть раздел «Перенаправления», там нужно настроить редирект.
На домен без www
- В списке выберите нужный домен.
- В поле «Перенаправляет на» пропишите его с префиксом http://.
- Поставьте отметку у «Перенаправлять только с www»
На домен с www
- В списке выберите нужный домен.
- В поле «Перенаправляет на» пропишите его с префиксом http://www.
-
Поставьте отметку у «Не перенаправлять www»
Как настроить переадресацию с помощью 301 редиректа
Если вы что-то напутаете, то сайт просто не будет работать. Придётся писать в поддержку хостинга и просить их откатить изменения. Поэтому лучше самому заранее позаботиться о копии. Тем более это очень просто. Скопируйте файл себе на компьютер. Потом редактируйте тот, что лежит на сервере. Если вдруг что-то не так, то загрузите файл с компьютера и замените. Всё снова заработает.
Меры предосторожности рассказал. Идем дальше
Для того чтобы сделать 301 редирект в файле .htaccess нужно использовать специальную форму записи:
Redirect 301 /staraya-str.html https://site.ru/novaya-str.html
Это общий случай. Для каждой смены УРЛа нужна одна такая запись.
Есть частные случаи, когда не нужно всё по отдельности прописывать, а можно обойтись парой строк кода.
How Do 301 & 302 Redirects Impact SEO?
When you use a 301, Google removes the old page from their index, and most value (link equity) from that page is transferred to the new one.
With that said, it’s important to note that anytime you move a page from one URL to another, it will take search engines some time to notice the change – and therefore for you to see any potential impact/change in rankings.
In general, this time period is relatively short.
When used correctly, a 302 redirect will not hurt your SEO efforts.
When you choose this type of redirect, the original page remains indexed in Google and no value (link equity) is transferred to the new URL because Google knows this is just temporary.
Thus, you’ll retain any rankings, traffic value, and authority that page might have.
Where problems tend to arise is when people don’t know the difference between the two, and they choose a 302 to redirect a site permanently.
Essentially, they are creating a new website or page and not transferring over any of the value they’ve accrued over time from the old website or webpage.
That’s why it’s important to understand the difference between a 301 and a 302, and when it’s appropriate to use both.
Why Would You Use a 302 Redirect?
The best reason to use a 302 redirect is to keep your ugly URLs from being indexed permanently by search engines. For example, if your site is built by a database, you might redirect your homepage from a URL like:
To a URL with lots of parameters and session data on it, that would look like this:
The » symbol indicates a line wrap.
When a search engine picks up your home page URL, you want them to recognize that the long URL is the correct page, but not define that URL in their database. In other words, you want the search engine to have «http://www.lifewire.com/» as your URL.
If you use a 302 server redirect, you can do that, and most search engines will accept that you’re not a spammer.
Для чего нужен редирект
Зачем нужен редирект на сайте, если и так все нормально работает? На самом деле данная опция просто незаменима в оптимизации, так как с ее помощью SEO-специалист может управлять трафиком, а поисковые роботы эффективно индексировать данные. При правильно настроенном редиректе сохраняется и передается авторитет или ссылочный вес от страницы-донора к странице-акцептору.
Ниже примеры ситуаций, когда без перенаправления не обойтись.
- Удаление с сайта целого раздела или категории.
- Переезд ресурса на другой домен.
- Борьба с дублями страниц (чтобы повторяющийся контент не мешал ранжированию, стоит вписать в код redirect, чтобы краулер знал, какой из них главный).
- Смена движка (если произошла смена URL, старый адрес будет недоступен для пользователей, а все результаты продвижения потеряны).
- Склейка доменных имен (для поисковых систем наличии или отсутствии «/» или «www» в URL воспринимается как два разных сайта, редирект помогает соединят обе версии).
Один (а не два последовательных!) 301 редирект на без www и без слеша на конце адреса страницы
RewriteCond %{REQUEST_URI} ^\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)\/$ http://%1/$1
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)\/$ http://%1/$1
302 временно, 301 постоянно
Оба типа перенаправления достигают одинакового эффекта. Когда пользователь пытается получить доступ к перенаправленным ресурсам (например, HTTP-версии ссылки HTTPS), веб-сервер отправляет код ответа 301 или 302 в браузер пользователя вместе со ссылкой на предполагаемое место назначения. Затем браузер пользователя немедленно сделает еще один запрос на правильную страницу, фактически перенаправив его.
Разница заключается в том, что происходит, когда пользователь посещает эту страницу во второй раз. Если вы используете переадресацию 302, браузер увидит это как временное. В примере с HTTPS браузер будет продолжать делать запросы к небезопасной HTTP-версии страницы, а веб-сервер будет продолжать каждый раз отправлять коды ответа 302.
Это плохо сказывается на производительности вашего сайта, так как пользователю придется совершать больше круговых поездок на веб-сервер, чтобы добраться до нужного пункта назначения. Чтобы решить эту проблему, вы можете использовать редирект 301. Когда браузер попытается сделать второй запрос, он проверит свой кеш и запомнит, что URL-адрес должен быть перенаправлен, и автоматически перенаправит, не беспокоя сервер. Предполагается, что редирект 301 отправляется один раз и перенаправляется навсегда.
Это означает, что переадресация 301 очень постоянна. Chrome запомнит его до тех пор, пока пользователь не очистит кеш, что является ручной операцией. Если вы случайно сделали неправильную переадресацию 301, это может вызвать проблемы в будущем, поэтому вам всегда нужно сначала протестировать изменения с помощью переадресации 302, чтобы убедиться, что она работает, а затем развернуть переадресацию 301.
302 редирект с помощью php
Создание 302 редиректа возможно не только в файле .htaccess, но и посредством php кода. Для реализации используется функция header(), которая способна создавать заголовки страниц. То есть, мы можем сгенерировать необходимый нам заголовок страницы при помощи php кода.
Прописывать код необходимо в самом начале Вашего документа. В противном случае при вызове функции header() возникнет ошибка и переадресация не сработает.
Синтаксис не имеет сложных элементов, весь код помещается в одну строчку. Имея поверхностные знания в php, Вы без труда разберетесь в нем.
Сразу же стоит сказать, при использовании Location по умолчанию используется 302 редирект, поэтому прописывать код необходимости нет.
Полный синтаксис:
void header ( string $string ] )
<?php header('Location: http://dh-agency.ru/discounts.html'); exit; ?>
Вот и все, переадресация настроена. Функция header() позволяет реализовать не только 302-й, но и другие виды редиректов, в том числе 301-й, 307-й.
Разновидности редиректов
Вышеописанные виды редиректов различаются по своему функционалу. Однако, существует еще один фактор, который отличает их друг от друга — техническое исполнение редиректа. В соответствии с ним можно выделить несколько вариантов.
Редирект .htaccess
Файл .htaccess является системным файлом, расположенным в корневой директории сайта. Для доступа к нему необходимо зайти в панель управления хостингом, на котором размещен веб-ресурс. Чтобы настроить редирект нужно внести соответствующий код в файл .htaccess.
PHP-редирект
Этот редирект отличается от предыдущего варианта тем, что находится на уровне сервера. Однако процесс настройки аналогичен редиректу через .htaccess. Нужно найти корневую директорию сайта, затем PHP-файл и в нем внести строку кода для настройки соответствующего редиректа.
Хотя PHP-редирект работает медленнее, чем через .htaccess, он может стать оптимальным вариантом, если нужно настроить перенаправление для большого количества страниц, и это нужно сделать выборочно, а не для всех страниц сайта.
JavaScript-редирект
Он используется для перенаправления на стороне браузера, что снижает скорость переадресации из-за необходимости загрузки скрипта. Однако, JavaScript-редиректы могут быть использованы для вывода сообщения на экран с задержкой перед перенаправлением. Но это решение не работает, если у посетителя отключен JavaScript в браузере.
Для настройки такого редиректа необходимо изменить исходный код страницы, с которой осуществляется перенаправление, добавив соответствующий код в теги <head>-</head>. В SEO данный вид редиректа не приветствуется.
HTML-редирект
Из всех рассмотренных выше типов редиректов, HTML-редирект является самым медленным, поскольку перенаправление выполняется в браузере, а не на сервере. Для его настройки нужно добавить метатег refresh в исходный код страницы, с которой выполняется перенаправление.
Однако, в большинстве случаев предпочтительнее использовать серверные редиректы, так как они обладают более высокой скоростью загрузки и не зависят от настроек на стороне пользователя.
Когда нужен 301 редирект страниц
Анализ логов сервера и отчетов поисковых систем: Проверьте отчеты в Google Search Console, Яндекс.Вебмастер или других инструментах. Также можно анализировать логи сервера. Это поможет выявить страницы с ошибками 404 или другими проблемами, требующими редиректа.
Проверка изменений структуры сайта: Если были изменены URL-адреса из-за перехода на новую CMS, изменения категорий или других структурных обновлений, составьте список всех измененных адресов.
Анализ дублированного контента: Поисковые системы могут штрафовать за дублированный контент. Используйте 301 редирект для объединения дубликатов в одну каноническую страницу.
Использование специализированных инструментов: Существует множество инструментов, таких как Screaming Frog, Moz и др., которые могут автоматически сканировать сайт и выявлять страницы, нуждающиеся в перенаправлении.
Ручная проверка важных страниц: Важные страницы с высоким трафиком и SEO-значимостью стоит проверить вручную, чтобы убедиться в их правильном функционировании.
Составление карты редиректов: По результатам анализа составьте таблицу или карту редиректов, где четко пропишите исходный и конечный URL-адрес. Это упростит процесс настройки и поможет избежать ошибок.
Оценка влияния на пользователей: Убедитесь, что планируемые перенаправления не создадут путаницу для пользователей и не ухудшат их удобство.
Как выбрать подходящий тип редиректа
Различные типы редиректов имеют разные цели и влияют на SEO и пользовательский опыт по-разному.
301 редирект (постоянное перенаправление):
- Используется, когда страница перманентно перемещена или удалена.
- Сообщает поисковым системам, что старый URL заменен новым, и большинство SEO-значимости передается на новый адрес.
- Пример: переход с HTTP на HTTPS, слияние дублирующих страниц.
302 редирект (временное перенаправление):
- Применяется, когда страница временно перемещена, но старый URL остается актуальным.
- SEO-значимость не передается на новый адрес.
- Пример: временная акция или тестирование новой страницы.
307 редирект (временное перенаправление, сохраняя метод HTTP):
- Аналогичен 302 редиректу, но с сохранением метода HTTP.
- Используется реже, но может быть полезен в некоторых случаях.
Выбор типа редиректа должен основываться на конкретной ситуации и целях, которые вы ставите перед перенаправлением. Наиболее часто используется 301 редирект из-за его SEO-дружественности и постоянного характера, но в некоторых случаях другие типы могут быть более подходящими.
Как установить 301 редирект
Теперь, когда мы обсудили, что такое 301й редирект, его важность и случаи, когда вы должны его использовать, давайте посмотрим к наиболее распространенным методам установки 301 редиректа
301й редирект с помощью файла .htaccess
В подавляющем большинстве случаев веб-сервер настраивается с помощью так называемого файла .htaccess. Это простой текстовый файл, который находится в корневом каталоге вашего сайта. Для установки 301 редиректа вам необходимо поместить файл .htaccess в корневой каталог (если этот файл еще не существует). Вы можете создать или отредактировать файл .htaccess, используя любые инструменты редактирования простого текста, такие как Блокнот, Sublime или Nano.
Начнем мы с простого примера, а именно, с переименования страницы на вашем веб-сайте. Например, если вы хотите изменить URL-адрес страницы с:
https://www.example.com/old.html
на:
https://www.example.com/new
Чтобы старая страница перенаправлялась на новую, вам нужно добавить следующий код в ваш файл .htaccess:
redirect 301 /old.html https://www.example.com/new
Вот объяснение того, что означает приведенный код:
- «redirect 301” сообщает поисковым системам (и браузерам), что ваша страница была перемещена навсегда.
- «/old.html» — указывает старое расположение страницы.
- «https://www.example.com/new.html» — это новое расположение страницы, на которую веб-сервер должен перенаправлять посетителей.
Важно отметить, что если вы перемещаете несколько страниц, то вам нужно будет сделать перенаправления для каждой из страниц, которые вы перемещаете. Создание уникальной строки для каждой страницы рекомендуется как самый безопасный подход, если вы хотите, чтобы ваши команды были подхвачены поисковыми системами
301 Redirect: WordPress
Если у вас сайт на WordPress то вы можете использовать любой из доступных плагинов для создания редиректа. Например, такой плагин как Redirection, позволяет пользователю ввести старый URL, затем новый URL и привязку — и теперь у вас есть 301 редирект. Это упрощает процесс перенаправления и сокращает время. Кроме того, с помощью этого плагина, вы сразу сможете настроить группы перенаправлений.
Примечания и ошибки
С чем можно столкнуться, и о каких деталях не стоит забывать при настройке 301 редиректа:
- строгий учет последовательности правил редиректа — это первое, о чем следует помнить. Поэтому в случае не выполнения определенного правила, стоит перепроверить — нет ли иных редиректов, противоречащих ему;
- 301 редирект имеет множество особенностей и непростой синтаксис, все это сложно постоянно держать в голове, — так что официальные мануалы вам в помощь. Кроме них, помочь может логика и последовательный перебор нескольких вариантов;
- проверка работоспособности сайта и всех внедренных правил редиректа — это обязательное условие благополучного завершения его настройки. Не поленитесь зайти в разделы и страницы ресурса, не только на главную страницу, дабы исключить любые проблемы в дальнейшем. При допущении ошибок в синтаксисе инструкций вполне может перестать работать и весь сайт.
Также существует несколько ситуаций, когда использование 301 редиректа будет ошибочным. Так, лучше не применять многоходовый редирект, если его внедрение займет слишком продолжительное время. Или, например, при наличии контента, который дублируется, и по ряду причин нужно сохранить обе страницы для пользователей. Если страница и ее содержимое не релевантны, то от редиректа тоже стоит отказаться. Ошибкой будет настройка редиректа на некорректно работающую страницу (страница должна быть с 200 или 404 ответом сервера). И, наконец, неверным будет редирект файла robots.txt.
Редирект (redirect) это
Редирект (redirect) — это переадресация посетителей с одной страницы на другую. При этом переадресация может происходить как внутри сайта, так вне (со своего сайта в чужой).
Рассмотрим пример для понимания. Допустим, вы создали свой блог и долгое время публиковали в нем шедевральные обзоры. Людям они нравились и поэтому они оставляли ссылки на них в других сайтах (формировали ссылочную массу). Со временем, вы обнаружили, что часть страниц с некрасивым url адресом, например, вида «2222-11-11-11-11» (дата и время). Поэтому решили, что неплохо бы изменить адрес на более привычный для интернета (хотя бы транслит), чтобы посетителям было проще ориентироваться (ну и для сео оптимизации это полезно).
Однако, если просто изменить адрес, то возникнет следующая ситуация. Ссылки на других сайтах, ведущие на редактируемую страницу, станут бесполезными. Во-первых, вместо обзора будет возникать 404 ошибка (адрес не найден). Во-вторых, из-за этого по ссылкам не будет передаваться вес в полноценном объеме. В-третьих, такие ссылки будут постепенно удалять (см. во-первых).
Плюс к этому, хоть сам текст страницы не изменился, поисковые системы будут считать ее недавно добавленной и, соответственно, ниже ранжировать.
Чтобы избежать подобных проблем и применяется редирект, который информирует браузер и поисковые системы, такие как Яндекс и Google, что страница перемещена и расположена по другому адресу.
301 или 302 редирект: в чем разница
При использовании 302 редиректа «пузомерки» и ссылочный вес не передаются новому URL. У 301 и 302 редиректов разница не наблюдается лишь насчет передачи трафика – в обоих случаях пользователь, использующий старую ссылку, всегда будет перенаправляться на новую страничку.
301 и 302 редирект имеют отличия в восприятии исходной страницы ботами поисковиков
Если при 301 про старую страницу нужно забыть и больше никогда не пытаться на нее заходить, то 302 редирект – это указание не забывать и продолжать индексировать ее содержимое в независимости от продолжительности перенаправления.
Влияние на поисковую выдачу в зависимости от выбора 301 или 302 редиректа – различия будут касаться прекращения отображения старой страницы в результатах поиска (при 301-м) или же наличия в них обоих страничек (при 302-м).
Следует принимать во внимание, что используя 301 и 302 редирект, разница в риске попасть под фильтры поисковых систем довольно существенна.
Если за 301-е перенаправление могут наказать лишь в случае выявления целенаправленных махинаций со склеиванием показателей и веса разных сайтов, то 302-й часто может быть распознан как элемент, который часто используется в черном SEO (как разновидность клоакинга).
При настройке 301 и 302 редиректов отличия отсутствуют. Используются одни и те же команды.
Вы также должны выбрать 302 перенаправление если:
исходная страничка должна быть скрыта от глаз посетителей (находится в стадии доработки или внесения изменений);
важно чтобы старая страница продолжала индексироваться;
нужно, чтобы пользователи видели только новую страницу;
не критично отсутствие индексации конечной странички;
на исходной страничке размещены ссылки, которые должны и дальше индексироваться;
целевая страничка будет часто меняться.
301 redirect | 302 redirect | |
Передает ссылочный вес | да | нет |
Индексация старой страницы | нет | да |
Наличие старой страницы в поиске | нет | да |
Риск попасть под санкции ПС | минимален | высок |
https://youtube.com/watch?v=fBhAXTRnW3Y%3F
Как настроить 301 редирект для разных случаев в файле htaccess
Если вам необходимо сделать переадресацию всего сайта со старого домена на новый, то в htaccess нужно указать всего одну строчку: Redirect 301 / http://www.новый_домен.ру/new.html. Таким образом, поисковые роботы получат известие о перманентном переезде со старого адреса на новый, и постепенно вес старого URL будет присужден текущему адресу. Кроме того, вы можете при помощи аналогичной строки сделать перенаправление со старой страницы на новую с сохранением ее PR. Для этого вместо одного слэша «/», который означает корневой каталог сайта, пропишите в htaccess путь к странице, которую вы перенаправляете. В качестве команды вы можете не указывать 301-й редирект, а писать его полное название — RedirectPermanent — эта опция работает одинаково.
Но чаще всего 301-й редирект используют для того, чтобы склеить домен с WWW и без WWW. Ведь по умолчанию на ваш сайт можно зайти и введя домен с WWW, и без WWW. Это приводит к нежелательному дублирования страниц, что негативно влияет на индексацию и раскрутку ресурса. Потому вам нужно настроить htaccess так, чтобы сайт работал только с одним из доменов: либо с WWW, либо без WWW. Какой вариант выбирать — это уже лично ваше решение, поскольку принципиальной разницы нет. В любом случае, даже если пользователи будут вводить противоположный адрес, их запрос все равно будет перенаправлен на другой URL.
Чтобы настроить переадресацию на главный домен со вторичного зеркала, вам следует в htaccess прописать правила перенаправления. Сделать это можно активировав переадресацию при помощи строк Options +FollowSymLinks и RewriteEngine on. Далее вам нужно будет указать с какой страницы активировать перенаправление: если со страницы с WWW, то пропишите RewriteCond %{HTTP_HOST} ^www\.(.*)$, а если со страницы без WWW — то RewriteCond %{HTTP_HOST} ^(.*)$. В последней строке функции необходимо указать куда перенаправлять пользователей: если вы хотите сделать главным зеркалом домен без WWW, то напишите в htaccess RewriteRule ^(.*)$ http://%1/$1 , а если с WWW — то RewriteRule ^(.*)$ http://www.%1/$1 .
Учтите, что есть большая разница между настройкой htaccess для серверов с различными модулями. Многие сервера работаю с mod_rewrite. Если ваш также рабоатет с этим модом, то вам следует использовать команды, которые были описаны выше: RewriteRule, RewriteCond; а тип редиректа указывать в скобках (например, для 301 нужно прописать ). А если ваш сервер работает с активированным модом mod_alias, то используйте в htaccess другие команды, вроде RedirectMatch 301, Redirect 301, RedirectPermanent и прочие.
Подведение итогов
Нужно ли добавлять, исправлять или удалять какие-либо редиректы на своём сайте? Правильный ответ, как обычно, «зависит», в основном от происхождения и смысла этих редиректов, их цели, а также от того, правильно они были сделаны или нет (длинная цепочка редиректов)
Выводы:
- Не паникуйте, когда ваш SEO-эксперт говорит, что на вашем сайте тысячи редиректов. Сначала выясните, имеют ли эти редиректы смысл для вас или нет.
- При необходимости добавляйте редирект напрямую, избегая длинной цепочки редиректов.
- Не стоит излишне волноваться по поводу редиректов внешних ссылок
- При переходе на новый домен или структуру URL следует обновить карту (sitemap) сайта и внутренние ссылки, чтобы они указывали на новое местоположение.
- При переходе на новую структуру URL или домен, убедитесь, что вы добавили редирект со старой структуры на новую, чтобы избежать потери трафика
- При внутренней перелинковке (ссылка на одну статью из другой) используйте конечный URL, не используйте короткую ссылку или старую структуру URL. Старайтесь ссылаться на страницу, которая не вызывает редирект.