Автопроверка 301-редиректов в браузере: зачем нужен скрипт и как он экономит часы рутины

Когда URL-структура меняется, на сайте быстро копится «наследие» из 301-редиректов. Часть ведёт не туда, часть — на 404, где-то редиректа нет вовсе. Итог — потерянный трафик и проседание SEO. Этот однофайловый PHP-скрипт запускается прямо в браузере и массово проверяет ваши правила, показывая статусы и генерируя исправленный .htaccess-блок там, где цели устарели.

Что делает скрипт

  • Принимает списки редиректов:
    • Apache-вид: Redirect 301 /old /new
    • CSV/таб: /old,/new или https://site.ru/old,https://site.ru/new
  • Для каждого источника:
    • выполняет HTTP-запрос и шагает по цепочке Location,
    • фиксирует первый код (ожидается 301), финальный код (200/404/…), количество хопов и финальный URL.
  • Выставляет статусы: OK MISMATCH FINAL_404 NO_REDIRECT BAD_CODE ERROR
  • Генерирует отчёты:
    • таблица в браузере,
    • детальный CSV-лог,
    • исправленный .htaccess-блок: в строках со статусом MISMATCH ожидаемая цель заменяется на фактический финальный URL; пустые цели тоже заполняются.

Почему это важно

Передача веса и видимость

301 сигнализирует «перенос навсегда». Если цепочка рвётся или ведёт не туда, сигнал веса не доезжает до нужной страницы. Статусы MISMATCH и FINAL_404 сразу показывают потери.

Пользовательский опыт

Старые ссылки из закладок и внешних площадок должны приводить к релевантной странице. 404 и лишние прыжки — это отказы и падение конверсии.

Краулинговый бюджет

Чем короче цепочки, тем меньше робот тратит ресурсов. Счётчик Hops помогает найти и убрать лишние звенья.

Контроль релизов

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

Как пользоваться

  1. Загрузите PHP-файл скрипта на сервер и откройте его в браузере.
  2. Вставьте правила в одном из форматов (можно смешивать):
    Redirect 301 /login /company/
    Redirect 301 /stati?news_id=54 /articles/
    # или
    /old-page,/new-page
    https://example.com/old,https://example.com/new
  3. Если указываете относительные пути, заполните поле Base URL (например, https://example.com).
  4. Нажмите «Проверить» — получите таблицу статусов, детальный CSV и исправленный .htaccess-блок.

Что означают статусы

  • OK — первый ответ 301, финал не 404, финальный URL совпадает с ожидаемым.
  • MISMATCH — редирект жив, но ведёт не на ожидаемую цель. Скрипт автоматически подставит фактический Final URL в исправленный файл.
  • FINAL_404 — конечная страница отсутствует; правило требует правки или удаления.
  • NO_REDIRECT — редирект не сработал (страница ответила напрямую).
  • BAD_CODE — первый код не 301 (например, 302/307/200).
  • ERROR — сетевая ошибка или таймаут.

Примеры вывода

✅ https://example.com/old  →  https://example.com/new | OK (first=301, final=200, hops=1)
❌ https://example.com/x    →  https://example.com/y   | MISMATCH (first=301, final=200, hops=2)
❌ https://example.com/404  →  https://example.com/z   | FINAL_404 (first=301, final=404, hops=1)

Автокоррекция «исправленного файла»

Скрипт формирует два артефакта для быстрого внедрения:

  • .htaccess-блок c Redirect 301 — строки с MISMATCH получают новую цель (финальный URL), а относительно домена из Base URL сохраняются относительные пути.
  • CSV с колонками source,expected — также с автозаменой ожидаемых целей на фактические финальные.
Подход «сначала проверить, потом автоматически скорректировать» снижает риск ручных ошибок и сокращает время правок до минут.

Лучшие практики

  • Ставьте конкретные правила выше общих (в .htaccess обработка идёт сверху вниз).
  • Сокращайте цепочки до 1–2 хопов — это экономит краулинговый бюджет.
  • Используйте единый стиль слэшей (обычно со слэшем на конце), чтобы не плодить дубли.
  • Держите правило «схлопывания двойных слэшей» первым среди редиректов, если оно нужно.
  • Помните: браузеры кэшируют 301 — проверяйте в режиме инкогнито.

FAQ

Можно ли скормить фрагмент .htaccess напрямую?
Да, строки вида Redirect 301 /old /new распознаются, как и CSV/таб-формат. Можно смешивать.

Что делать с 302/307?
Скрипт пометит BAD_CODE. Для SEO-переноса чаще нужен 301 — поправьте правило.

Как понять, что цепочка длинная?
Смотрите колонку Hops. Значение > 1 — повод упростить маршрут.

Готовы внедрить скрипт в рабочий процесс? Добавьте кнопку скачивания исправленного CSV/.htaccess, авторизацию для служебного доступа и фильтры по статусам — это делается в несколько строк.

Прикреплённые файлы:


< Возврат к списку

Контакты
ИП Мироненко О.В.
г. Москва,
ул. Озерная, д. 2, к. 2
Пн-Вс круглосуточно
Работаем удалённо!
Задать вопрос

Нажимая на кнопку «Отправить», Вы даете согласие на обработку своих персональных данных и получение информационных сообщений.