Добавьте страницу в закладки, чтобы не искать её заново — Ctrl+D / ⌘+D.

Если инструмент пригодился — поделитесь им с коллегами.

Генераторы для сайта · Редиректы

Генератор 301-редиректов — код, который не сломает сайт

Опишите, куда должны вести старые адреса, — и получите готовый код редиректа для .htaccess, Nginx или PHP. Подходят четыре сценария: отдельные страницы, целый раздел по маске, склейка www и HTTPS, переезд на новый домен. Перед копированием инструмент найдёт циклы, цепочки и конфликты правил.

Apache, Nginx и PHP Даже без доступа к конфигу сервера
Защита от петель Циклы не попадают в готовый код
Переезд и удаление Коды 301, 302, 307, 308 и 410
Правильный порядок правил Конкретные адреса раньше масок
Сверено с первоисточниками Предупреждает о конфликтах сценариев Обновлено: 18 октября 2026

Формат и домен

Общие настройки для всего кода ниже — сначала выберите сервер, на котором работает сайт.

Рекомендуемый вариант. Постоянная переадресация: поисковые системы переносят накопленный вес на новый адрес и со временем убирают старый из индекса. Применяется к правилам ниже. Склейка зеркал и переезд домена всегда идут с кодом 301 — это постоянные изменения. Для удалённых страниц код выбирать не нужно: отметьте строку как «удалена насовсем», и она получит 410.
Нужен для склейки зеркал и переезда домена — для обычных постраничных редиректов не обязателен
А. Постраничные редиректы страница → страница

Самый частый случай: удалили страницу, переименовали адрес, объединили две страницы в одну. Указывайте только путь — домен добавляется автоматически.

Если вставите ссылку целиком (с https:// и доменом) — при сборке кода будет использован только путь, домен и протокол игнорируются.
Б. Массовый редирект по маске каталог → каталог

Когда переименовали целый раздел и страниц слишком много, чтобы перечислять вручную. Всё из старого префикса пути ведёт в новый с тем же окончанием.

В. Склейка зеркал www · https

Правило уровня всего сайта, не отдельной страницы — приводит все варианты адреса к одному каноническому.

Включайте только если на сайте уже установлен и работает SSL-сертификат. Если сертификата нет или он просрочен, редирект на HTTPS сделает сайт полностью недоступным — браузер заблокирует переход с ошибкой безопасности.

Г. Переезд на новый домен домен → домен

Весь сайт целиком переезжает на другой домен с сохранением структуры путей. Указанный выше «Домен сайта» считается старым доменом, с которого происходит переезд.

Готовый код

Вставьте в файл .htaccess в корне сайта. Обновляется автоматически.

Чек-лист перед публикацией

  • Сделайте резервную копию текущего файла конфигурации перед заменой
  • Для Nginx обязательно проверьте синтаксис командой nginx -t перед перезагрузкой
  • Проверьте 2-3 конкретных адреса после публикации через любой сервис проверки HTTP-заголовков
  • Не публикуйте изменения в момент пиковой нагрузки на сайт
  • Убедитесь, что новые адреса из правил действительно открываются и отдают код 200

Код формируется локально в браузере — ничего не отправляется на сервер Neorank.

Важно: сначала сделайте резервную копию файла с правилами: ошибка может отключить сайт. Проверьте цепочки и циклы редиректов на тестовом адресе.

Подробнее об инструменте

Как правильно настроить 301-редиректы

Разбираем разницу между Apache и Nginx, типичные ошибки и то, что реально происходит с SEO-весом при переадресации.

Apache (.htaccess)

Самый распространённый вариант на виртуальном хостинге в рунете. Правила читаются из файла .htaccess в корне сайта — изменения применяются сразу, без перезапуска сервера.

  • Директивы RewriteRule из модуля mod_rewrite
  • Правила выполняются построчно сверху вниз
  • Ошибка в синтаксисе часто даёт мгновенную 500-ю ошибку на всём сайте
  • Доступен почти на любом shared-хостинге без доступа к серверу

Nginx

Используется на VPS и выделенных серверах. Правила прописываются в конфиге виртуального хоста, а не в файле внутри сайта — нужен доступ к серверу.

  • Директивы return 301 внутри блоков server и location
  • Ошибка в конфиге не применяется — сервер откажется перезагружаться, если проверить через nginx -t
  • Склейка зеркал и переезд домена требуют отдельных server-блоков, а не строк внутри существующего
  • Изменения применяются только после reload, не мгновенно

Цепочки редиректов — почему это вредно

Цепочка возникает, когда страница A ведёт на B, а B — на C, вместо того чтобы сразу A вести на C. Каждое дополнительное перенаправление — это лишний сетевой запрос, который замедляет загрузку страницы и постепенно теряет часть передаваемого SEO-веса.

Хуже всего — циклическая цепочка, когда одна из страниц в цепочке в итоге снова ведёт на A. Такой цикл делает страницу недоступной: браузер прерывает загрузку с ошибкой «слишком много перенаправлений».

Что такое склейка зеркал и зачем она нужна

Без явного указания поисковик может воспринимать site.ru, www.site.ru, http://site.ru как четыре разных сайта с одинаковым содержимым — это дубли контента, которые размывают ранжирование между версиями.

Склейка зеркал через 301 редирект явно указывает поисковику единственную каноническую версию — весь вес и позиции консолидируются на ней, а остальные версии перестают индексироваться отдельно.

301 против 302 — путать нельзя

301 сообщает поисковику: «страница переехала навсегда, обновите свой индекс». Он передаёт накопленный вес и постепенно вытесняет старый адрес из выдачи новым. Это правильный код для любого постоянного изменения структуры сайта.

302 означает «временно» — поисковик продолжает считать старый адрес основным и периодически его перепроверяет, вес новой странице не передаётся. Использование 302 там, где нужен 301, — одна из самых частых технических ошибок при миграции сайтов.

Как долго нужно хранить редиректы

Официальной рекомендации по срокам нет, но общепринятая практика — держать 301 редиректы минимум год после изменения структуры. За это время поисковики успевают полностью переиндексировать новые адреса, а часть пользователей всё ещё переходит по старым ссылкам из закладок и внешних сайтов.

Для страниц с большим количеством внешних ссылок (у которых высокий трафик из соцсетей или упоминаний на сторонних ресурсах) редиректы разумно не удалять вообще.

Справочник

Виды редиректов: 301, 302, 307, 308 и 410

Код ответа решает, передастся ли накопленный вес и что станет со старым адресом в индексе. Выбор кода — не формальность.

Редирект — это ответ сервера, который говорит браузеру и поисковому роботу: запрошенного адреса здесь больше нет, иди по другому. Технически это код состояния из группы 3xx и заголовок Location с новым адресом. Разница между кодами не косметическая: от неё зависит, сохранит ли страница позиции после переезда.

Пять кодов, которые собирает конструктор. Коды 307 и 308 отличаются от 302 и 301 одной деталью: они запрещают браузеру менять метод запроса, поэтому POST остаётся POST.
Код Смысл Когда использовать
301 Переехало навсегда Основной вариант для SEO. Вес старой страницы переходит на новую, старый адрес со временем уходит из индекса. Смена адресов, склейка зеркал, переезд домена.
302 Найдено, временно Страница вернётся: акция, техническое обслуживание, A/B-тест. Вес не передаётся, старый адрес остаётся в индексе.
307 Временно, метод сохраняется То же, что 302, но браузер обязан сохранить метод запроса. Нужен там, где переадресуется не только просмотр страницы, — формы, API.
308 Навсегда, метод сохраняется Строгий аналог 301 для запросов, отличных от GET. Для обычных страниц разницы с 301 нет, и 301 понимают все клиенты без исключений.
410 Удалено насовсем Не переадресация. Товар снят с продажи, раздел закрыт, замены нет. Поисковые системы убирают такую страницу из индекса быстрее, чем при обычной 404.

Главное правило выбора

Редирект должен вести на страницу с тем же смыслом. Переадресация всех удалённых товаров на главную выглядит аккуратно в отчётах, но для поисковой системы это признак нерелевантности: такие переходы обрабатываются как обычная ошибка «страница не найдена», и вес не передаётся. Если замены нет — честнее отдать 410 и не делать вид, что страница куда-то переехала.

Второе правило — не путать редирект с канонической ссылкой. Редирект физически уводит посетителя на другой адрес, тег rel="canonical" лишь подсказывает поисковой системе, какую из похожих страниц считать главной. Если обе версии должны оставаться доступными людям, нужен canonical, а не 301.

Реализация

Где настраивать редиректы: .htaccess, Nginx, PHP и CMS

Способ зависит от того, к чему у вас есть доступ. Результат для поисковой системы одинаков — важно лишь, чтобы код ответа был настоящим.

Способ Когда подходит На что обратить внимание
Apache .htaccess Виртуальный хостинг, доступ к файлам сайта есть, к конфигу сервера — нет. Файл читается при каждом запросе. Ошибка в синтаксисе даёт ошибку 500 на весь сайт, поэтому резервная копия обязательна.
Nginx VPS и выделенные серверы, есть доступ к конфигурации виртуального хоста. Правила применяются только после перезагрузки. Всегда проверяйте конфиг командой nginx -t: перезагрузка с ошибкой останавливает весь веб-сервер.
PHP Доступа к конфигу нет вовсе, либо правила нужно строить по данным из базы. Заголовки отправляются до вывода — код идёт в самое начало файла. Работает только для запросов, которые доходят до PHP.
Плагин или модуль CMS WordPress, Битрикс, другие движки с готовым разделом переадресаций. Удобно для нескольких правил. На сотнях правил каждый запрос идёт через движок, и это заметно медленнее серверного варианта.

Редиректы в популярных системах

WordPress живёт на Apache: правила добавляются в .htaccess, но выше или ниже служебного блока между комментариями # BEGIN WordPress и # END WordPress — движок перезаписывает его содержимое при обновлении настроек ссылок. Альтернатива — плагин переадресаций, который хранит правила в базе.

1С-Битрикс тоже работает через .htaccess в корне сайта; в редакциях с модулем поисковой оптимизации есть и раздел для переадресаций в административной панели. Осторожнее с масками: у Битрикса собственные правила ЧПУ, и слишком широкая маска может перехватить служебные адреса.

Тильда и другие конструкторы не дают доступа ни к .htaccess, ни к конфигу сервера — переадресации настраиваются штатными средствами платформы в настройках сайта. Код из этого конструктора там применить не получится, и это ограничение платформы, а не инструмента.

Мета-обновление страницы и переход через JavaScript редиректами не являются. Тег <meta http-equiv="refresh"> и window.location в скрипте отдают обычный код 200: для поисковой системы страница осталась на месте, а её содержимое подменилось. Вес при этом не передаётся, а посетитель успевает увидеть промежуточную страницу. Поэтому таких форматов в конструкторе нет — не потому, что их сложно собрать, а потому, что для переезда они не годятся.

Проверка

Как проверить редирект и найти ошибку

Настроить — половина дела. Вторая половина: убедиться, что переход происходит за один шаг и с нужным кодом.

1

Проверьте код ответа

Откройте инструменты разработчика на вкладке «Сеть» и перейдите по старому адресу. В списке запросов должен быть один переход с выбранным кодом, а не 200 и не 302 вместо 301.

2

Посмотрите на цепочку

Если запросов в списке больше двух, вы получили цепочку: http → https → www → страница. Каждый лишний шаг замедляет обход и расходует краулинговый бюджет. Правильно — один переход сразу на конечный адрес.

3

Убедитесь, что цель отдаёт 200

Частая ошибка — переадресация на страницу, которой уже нет. Проверьте несколько конечных адресов из своих правил: они должны открываться обычным кодом 200, а не уводить дальше.

4

Сообщите поисковым системам

При переезде домена подтвердите оба сайта в Яндекс Вебмастере и Google Search Console и пересоберите карту сайта с новыми адресами. В Вебмастере Яндекса есть отдельный инструмент для переезда сайта.

Ошибки, из-за которых редирект не работает

Циклический редирект

Браузер показывает «слишком много переадресаций» или ERR_TOO_MANY_REDIRECTS. Причина всегда одна: адрес прямо или через несколько шагов ведёт сам на себя.

Классика — правило «убрать слэш» вместе с правилом «добавить слэш», или переезд на домен, который совпадает со старым. Конструктор находит такие циклы и не добавляет их в код.

Общее правило выше конкретного

Маска на весь раздел, поставленная выше постраничного правила, перехватывает адрес первой — и конкретное правило уже не срабатывает. Внешне похоже на «редирект не работает», хотя строка на месте.

Поэтому в готовом коде конкретные адреса всегда идут раньше масок, а не наоборот.

Адрес с параметрами

И RewriteRule в Apache, и location в Nginx сопоставляются только с путём: строка запроса после знака вопроса в них не попадает. Правило для /page?id=5 не сработает никогда.

Для таких адресов нужна отдельная проверка %{QUERY_STRING} в Apache или $args в Nginx. Конструктор предупреждает, если находит вопросительный знак в пути.

Кеш браузера и сервера

Код 301 постоянный, и браузер запоминает его надолго. После правки правил кажется, что ничего не изменилось, хотя на сервере уже всё верно.

Проверяйте в режиме инкогнито. По этой же причине новые правила иногда сначала отдают с кодом 302 и переключают на 301, убедившись, что цепочка верная.

Коды состояния приведены по спецификации HTTP (RFC 9110): 301 и 308 — постоянные, 302 и 307 — временные, при этом 307 и 308 запрещают клиенту менять метод запроса; 410 сообщает, что ресурс удалён окончательно. Позиция поисковых систем о переадресации на нерелевантную страницу — по документации Google о переадресациях сайта и справке Яндекс Вебмастера о переезде сайта. Синтаксис приведён для Apache 2.4 (mod_rewrite) и Nginx.

Вопросы и ответы

Частые вопросы о редиректах

Разница между кодами, потеря позиций, цепочки, циклы и настройка в разных системах.

301 означает «переехало навсегда»: поисковые системы переносят накопленный вес старой страницы на новую и со временем убирают старый адрес из индекса. Это основной вариант при смене адресов, склейке зеркал и переезде домена.

302 означает «временно»: вес не передаётся, старый адрес остаётся в индексе, робот продолжает его периодически проверять. Подходит для акций, техобслуживания и тестов — то есть когда страница действительно вернётся.

Ошибочно поставленный 302 вместо 301 — частая причина, по которой после переезда позиции не восстанавливаются: для поисковой системы переезда как бы и не было.

Они повторяют смысл 302 и 301, но с одним строгим условием: клиент обязан сохранить метод запроса. При 301 и 302 браузер исторически имеет право превратить POST в GET, и данные формы теряются.

Для обычных страниц разницы нет — там всегда GET, и 301 понимают вообще все клиенты. Коды 307 и 308 нужны, когда переадресуются формы, API или загрузка файлов.

Когда страница удалена окончательно и замены ей нет: товар снят с производства, услуга закрыта, раздел расформирован. Код 410 прямо сообщает «ресурс удалён насовсем», и поисковые системы убирают такую страницу из индекса быстрее, чем при обычной 404.

Соблазн увести все удалённые страницы редиректом на главную велик, но это не помогает: переадресация на нерелевантную страницу обрабатывается как обычная ошибка «не найдено», вес не передаётся, а посетитель оказывается не там, где ожидал.

В конструкторе для этого не нужно выбирать код. Добавьте адрес в список постраничных правил и в самой строке выберите «удалена насовсем» — поле «куда» станет неактивным, потому что вести такой адрес некуда. Так же можно закрыть целый раздел: в маске выберите «удалён насовсем». В одном списке спокойно уживаются и переехавшие адреса, и удалённые.

При корректном 301 на страницу с тем же смыслом вес передаётся почти полностью, но временная просадка на несколько недель — обычное дело: поисковой системе нужно обойти новые адреса и переиндексировать их.

Настоящая потеря происходит в двух случаях: редирект ведёт на нерелевантную страницу (например, всё на главную) или выстроена длинная цепочка переходов. Чем короче путь от старого адреса к новому, тем меньше потери.

Ускорить процесс помогает свежая карта сайта с новыми адресами и обновлённые внутренние ссылки: оставлять их ведущими на старые адреса не стоит, даже если редирект работает.

Это когда адрес ведёт на второй, второй — на третий, и только потом открывается страница. Типичная цепочка после небрежной настройки: http://www.site.ru/old → https://www.site.ru/old → https://site.ru/old → https://site.ru/new.

Каждый лишний шаг — это дополнительный запрос: медленнее для посетителя и расточительно для обхода. Правильно настраивать переход сразу на конечный адрес. Инструмент находит такие цепочки в ваших правилах и предлагает их сократить.

Это циклический редирект: адрес прямо или через несколько шагов ведёт сам на себя, и браузер прерывает бесконечный круг сообщением ERR_TOO_MANY_REDIRECTS.

Самые частые причины — одновременно включённые правила «добавлять слэш» и «убирать слэш», переезд на домен, совпадающий со старым, или редирект на HTTPS на сервере, который сам возвращает запрос обратно на HTTP.

Конструктор строит граф переходов по вашим правилам, находит циклы и не добавляет их в готовый код — вместо этого показывает, какие именно строки образуют круг.

Это приведение всех вариантов адреса сайта — с www и без, по http и https — к одному каноническому через постоянный редирект. Без склейки поисковая система может считать версии разными сайтами и делить между ними вес.

Какой вариант выбрать главным — с www или без — значения не имеет, важно только выбрать один и не менять. Склейку настраивают один раз на уровне всего сайта, а не для отдельных страниц.

Если вы одновременно переезжаете на новый домен, склейку на старом лучше выключить: правило переезда и так покрывает оба варианта, а вместе они дадут лишний шаг в цепочке.

Выберите формат PHP: код вставляется в самое начало входного файла (обычно index.php) и отдаёт настоящий заголовок с нужным кодом ответа. Это полноценный редирект, ничем не хуже серверного.

Два условия. Первое: код должен идти до вывода любого текста — даже пробел перед <?php сломает отправку заголовков. Второе: правила сработают только для запросов, которые доходят до PHP; статические файлы сервер отдаёт мимо него.

На конструкторах вроде Тильды не сработает и это — там переадресации настраиваются штатными средствами платформы.

Технически да, но для переезда это плохой выбор, и в конструкторе таких форматов нет намеренно. Тег <meta http-equiv="refresh"> и переход через window.location отдают обычный код 200: для поисковой системы страница осталась на месте, просто её содержимое подменилось.

Последствия: вес на новый адрес не передаётся, старый остаётся в индексе, а посетитель успевает увидеть промежуточную страницу. Настоящий редирект — это ответ сервера, а не разметка страницы.

Потому что и RewriteRule в Apache, и location в Nginx сопоставляются только с путём адреса. Всё, что идёт после знака вопроса, в правило не попадает, поэтому строка вида /page?id=5 не совпадёт никогда.

Для таких адресов нужна отдельная проверка строки запроса: RewriteCond %{QUERY_STRING} в Apache или переменная $args в Nginx. Инструмент предупреждает, если находит вопросительный знак в исходном пути.

Откройте инструменты разработчика на вкладке «Сеть» и перейдите по старому адресу. Проверяйте три вещи: код ответа совпадает с задуманным, переход ровно один, а конечная страница отдаёт 200.

Проверяйте в режиме инкогнито: код 301 постоянный и надолго запоминается браузером, поэтому после правки правил легко увидеть старое поведение вместо нового.

Если правил много, после публикации стоит пройтись по списку выборочно — особенно по адресам, которые попадают под маски: именно там чаще всего обнаруживаются неожиданные совпадения.

Нет. Код собирается локально в браузере на JavaScript: домены, адреса страниц и правила никуда не передаются и нигде не сохраняются.

Файл для Apache скачивается как htaccess.txt — браузеры не сохраняют файлы с точкой в начале имени. Переименуйте его в .htaccess уже на сервере.