301 редирект – принудительная переадресация посетителя с одного урл-адреса на другой. При этом оба адреса могут находиться как на одном домен, так и на разных.
Другими словами, посетитель вбивает в поиске браузера (или напрямую открывает ссылку) один урл-адрес, при этом автоматически попадает на другой. Процесс переадресации настолько быстрый, что пользователь ничего не замечает.
Как работает 301 редирект?
- Пользователь указывает URL адреса в строке браузера или кликает на ссылку.
- Сервер получает запрос с адресом и приступает к его обработке.
- Во время обработки запроса получает инструкцию редиректа и придерживается его правилам.
- В результате посетитель получает другой урл-адрес, который был прописан в инструкции 301 редиректа.
При этом правило 301 редиректа действует не только для посетителей, но и для поисковых ботов. Краулер Google или Яндекс тоже переходит на другой адрес, если настроена переадресация.
Какие задачи выполняет 301 redirect
Основная задача редиректа – перенаправить трафик на новый адрес (вместе с тем, передается и вес страницы). В каких случаях требуется такое мероприятие? Основные из них:
- Изменился URL страницы, поэтому необходимо перенаправить посетителей на новый.
- Сайт переехал на новый домен, поэтому появилась необходимость в настройке 301 редиректа.
- Одна страница доступна под несколькими URL-адресами (дублирует себя).
- При работе онлайн-сервисов, модулей, форум и других интерактивных элементов ресурса требуется настройка перенаправления.
Настроить 301 редирект можно только, если у вас есть доступ к сайту. Прописать переадресацию для любого адреса в сети, не получится. Поэтому редирект считается «официальным», так как его указывает сам владелец ресурса. Поисковые роботы лояльно относятся к таким действиям. Вот что об этом говорит Яндекс в Справке.
Как реализовать 301 redirect посредством PHP
Несмотря на то, что большинство вебмастеров предпочитают задавать правило переадресации через файл .htaccess, иногда возникает потребность реализации и через php. Способ это не менее простой. Достаточно прописать следующее содержимое на странице, с которой запланирована переадресация:
<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.new-domain.ru/page.php”);
exit();
?>
Так, обращаясь к документу, посетитель будет автоматически перенаправлен на другую страницу. Но проследите, чтобы до вызова header ничего не выводилось, иначе настройка не сработает. Это касается «echo» или «print». Разместите команду вначале скрипта.
Существует и другое решение реализации редиректа 301 на php. Например, если сайт переехал на другой домен, но урл-адреса сохранились:
<?
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://new-domain.ru/'.$ref);
exit();
?>
При таком решении меняется только домен, а адрес страницы остается неизменным. Такой способ довольно простой в реализации, но имеет один серьезный недостаток – код нужно прописывать вручную в каждом документе, с которого требуется редирект.
Как проверить, сработал ли redirect
После того, как вы все настроили, нужно убедиться в работоспособности 301 редиректа. Для этого достаточно выполнить следующие шаги:
- Убедитесь, что сайт доступен. Загрузите главную страницу.
- Проверьте основные разделы и страницы на наличие ошибок.
Для комплексной оценки работы редиректов можете воспользоваться одним из сервисов:
- Bertal.ru – подробный отчет об ответе сервера.
- Header Checker Tool – простой и удобный инструмент.
- Яндекс.Вебмастер – проверка редиректа для своего сайта.
Выводы
301 редирект – важная и полезная инструкция, которая используется при изменении адреса одной или нескольких страниц сайта. Благодаря автоматической переадресации вы не потеряете трафик и позиции со старой версии страницы. Поисковые роботы понимают эту команду и относятся к ней адекватно.
А каким способом вы настраиваете 301 редирект? Поделитесь опытом в комментариях.