Редирект меняет путь, но не исходную ссылку
Обратная ссылка — это HTML-ссылка на исходной странице. Если её цель возвращает 301, клиент может перейти по Location; href у издателя автоматически не меняется. Отдельно учитывайте ссылку, перенаправляющий URL и конечный документ. Переезд может сохранить доступ к нужному материалу, но дополнительный промежуточный адрес не равен новой редакционной рекомендации.
RFC 9110 · 301 / 302 / 307 / 308
Уточните, какие URL вы контролируете
Изменить маршрутизацию можно только на подконтрольном хосте или в приложении. Внешний издатель управляет страницей-источником. Зафиксируйте обе зоны ответственности. Обновите внутренние ссылки и при необходимости попросите издателя исправить адрес, сохранив старый путь для посетителей. Руководство не создаёт ссылки через адреса Google, не покупает просроченные домены и не отправляет сообщения.
Сопоставьте адреса по содержанию и назначению
Запишите старый URL, его назначение, замену и подтверждение соответствия материалов. Используйте свои записи, навигацию и sitemap; экспорт может быть неполным. Сохраняйте значимые варианты языка, товара и параметров. Перенаправлять всё на главную — не значит составить карту. Для окончательно удалённого материала без аналога уместен ответ об отсутствии ресурса. Соответствие в лаборатории задано условием, а не автоматической оценкой качества.
Различайте постоянный и временный переезд
Для постоянного переезда используйте 301 или 308, для временного — 302 или 307. Google описывает разные сигналы канонизации; локальный тест не показывает его окончательный выбор. Здесь используется GET. Для POST и других методов нужно отдельно проверить сохранение метода. Старые постоянные перенаправления могут остаться в кеше браузера или прокси; лаборатория отправляет no-store для повторяемой проверки.
Повторите семь примеров до и после
Набор запускает настоящий HTTP-сервер на loopback. Исходные страницы сохраняют одинаковые ссылки в обеих конфигурациях; меняются правила цели. Выберите пример и фазу, затем изучите каждый ответ. Цикл прекращается до повторного запроса. Исправный контрольный случай остаётся прежним. Это воспроизводимое упражнение, а не обход вашего сайта или модель поисковика.
| ID | Ожидаемый результат | До | После |
|---|---|---|---|
| R01 | Для старого руководства есть подходящий /guide, но URL возвращает 404. | 404 /r1/old-guide | 301 /r1/old-guide → 200 /guide |
| R02 | Руководство открывается через /middle; промежуточный переход устраним. | 301 /r2/old-guide → 301 /middle → 200 /guide | 301 /r2/old-guide → 200 /guide |
| R03 | Старый адрес и /r3/loop направляют друг к другу без конечного документа. | 301 /r3/old-guide → 301 /r3/loop · URL повторился: остановка до нового запроса | 301 /r3/old-guide → 200 /guide |
| R04 | Читатель ждёт руководство, а /home содержит общую навигацию. Обе фазы заканчиваются 200. | 301 /r4/old-guide → 200 /home | 301 /r4/old-guide → 200 /guide |
| R05 | Материал окончательно удалён; /home не отвечает его назначению. | 301 /r5/old-guide → 200 /home | 410 /r5/old-guide |
| R06 | Исходный сервис вернётся; /holding — временное уведомление. | 301 /r6/old-guide → 200 /holding | 302 /r6/old-guide → 200 /holding |
| R07 | Старое руководство уже достигает подходящей замены через один 301. | 301 /r7/old-guide → 200 /guide | 301 /r7/old-guide → 200 /guide |
R01 · Перенесённая страница без правила
Добавьте одно постоянное перенаправление на заданную замену.
Тот же старый URL отвечает 301, затем /guide — 200 с нужным материалом.
R02 · Рабочая цепочка с лишним шагом
Направьте сразу на /guide, сохранив ещё нужные промежуточные правила.
Три запроса превращаются в два; материал и исходная ссылка не меняются.
R03 · Два URL образуют цикл
Замените начальное правило прямым переходом на /guide.
Остановка по циклу исчезает; наблюдаются ответы 301 и 200.
R04 · Главная доступна, но цель неверна
Укажите подходящий /guide вместо произвольной доступной страницы.
Проверьте путь и тело ответа. Это не наблюдённая классификация soft 404 в Google.
R05 · Удалённый материал без замены
Верните 410 для этого случая и уберите устаревшие внутренние ссылки.
Старый URL отвечает 410; замена и восстановление позиций не выдумываются.
R06 · Временный переезд помечен постоянным
Используйте 302 для данного GET и запланируйте восстановление.
То же уведомление открывается через 302 вместо 301; старый кеш и поисковую обработку проверяют отдельно.
R07 · Правильное постоянное правило сохраняется
Оставьте рабочее правило как контроль.
Доказательства до и после идентичны; ненужная правка не предлагается.
Проверьте весь путь после публикации
После разрешённого развёртывания проверьте публичный URL через реальный прокси или CDN. Сохраните первый статус, все Location, конечный адрес, ответ и ожидаемый материал. Проверьте важные параметры, протоколы и варианты хоста. Доступ для обхода, canonical и директивы индексации оценивайте отдельно. Запишите циклы, промежуточные пути и ответственного. Успешный запрос не доказывает повторную обработку изменения Google.
Индексация, выбор канонического адреса, трафик и позиции не измеряются. Процент переданного авторитета не рассчитывается.
Поддерживайте карту перенаправлений
Храните датированную карту и повторяйте проверки после изменений CMS или маршрутизации. Google советует сохранять редиректы миграции как можно дольше, обычно минимум год. Использование старых ссылок посетителями может потребовать большего срока. Обновляйте внутренние ссылки и sitemap, наблюдайте известные пары источник–цель и доступные авторизованные поисковые данные. Запаздывание счётчика провайдера с иным охватом само по себе не означает сбой.
Нужен Python 3.10 или новее. Распакуйте ZIP локально. Проверка запускает временный loopback-сервер, тестирует все случаи, выводит JSON и завершается. Внешние сайты не запрашиваются.