Часть 9 из 22

Редиректы, 404 и коды ответов

Поисковики читают HTTP-коды как инструкции. Неправильные коды сливают ссылочный вес или держат мёртвые страницы в индексе.

Постоянные переезды — в next.config.mjs (возвращает 308, для Google эквивалент 301):

// next.config.mjs
export default {
  async redirects() {
    return [
      {
        source: "/old-blog/:slug",
        destination: "/blog/:slug",
        permanent: true,
      },
    ];
  },
};

Редиректы внутри приложения — выбирайте функцию по смыслу:

import { redirect, permanentRedirect, notFound } from "next/navigation";

// 307 — временный (логин-гейты, A/B-роутинг)
redirect("/login");

// 308 — постоянный (слаг изменился, старый URL должен передать вес)
permanentRedirect(`/blog/${post.newSlug}`);

// Настоящий 404 с вашим UI из not-found.tsx
if (!post) notFound();

Правила чистого индекса:

  • Никаких цепочек редиректов: старый → постарше → актуальный тратит краул-бюджет и размывает сигналы. Всегда редиректьте сразу на конечный URL.
  • Отсутствующий контент возвращает 404, а не страницу «ничего не найдено» с кодом 200 (soft 404 — Google помечает такие в Search Console).
  • Выберите одну форму URL и соблюдайте её: со слэшем или без (trailingSlash в конфиге), нижний регистр, без дублей www/без-www (редирект на уровне edge/DNS).
  • Меняете слаг — добавляйте редирект в том же PR. Ретроспективная археология редиректов не случается никогда.

Переезжаете на новую платформу? Полный плейбук — инвентарь, карта редиректов, проверка паритета и мониторинг запуска — в теме SEO-миграция.

Чеклист:

  • Все старые URL редиректятся 308/301 сразу на конечные (без цепочек)
  • Кастомный not-found.tsx, который действительно возвращает 404
  • Одна каноническая форма URL (слэш, регистр, хост) по всему сайту
  • Смена слага всегда едет в проде вместе со своим редиректом

01—22

Все темы гайда

  1. 01Стратегия рендеринга: что на самом деле видит краулер?
  2. 02Metadata API: тайтлы, описания и паттерн с шаблоном
  3. 03Canonical и hreflang: одна страница — один адрес
  4. 04Open Graph и динамические OG-картинки
  5. 05sitemap.ts и robots.ts: файловые конвенции вместо рукописного XML
  6. 06Структурированные данные: JSON-LD, который приносит rich results
  7. 07Картинки, шрифты и скрипты: классическое трио производительности
  8. 08Core Web Vitals: три числа, которые измеряет Google
  9. 09Редиректы, 404 и коды ответов
  10. 10Кеширование и свежесть контента
  11. 11AEO/GEO: как попасть в ответы ChatGPT, Perplexity и Google AI Overviews
  12. 12Мониторинг: SEO — это цикл, а не задача на запуск
  13. 13Траст и E-E-A-T: как сделать сайт заслуживающим доверия
  14. 14Image SEO: как превратить картинки в трафик
  15. 15Внутренняя перелинковка и архитектура сайта
  16. 16Поисковые интенты: страницы под то, что люди реально ищут
  17. 17Programmatic SEO в Next.js: страницы в масштабе без спама
  18. 18SEO-миграция: переезд на Next.js без потери трафика
  19. 19Пагинация и фасетная навигация без раздувания индекса
  20. 20Доступность и SEO: одна работа — две награды
  21. 21Угасание контента: обновить, склеить или удалить
  22. 22Off-page для разработчиков: ссылки, которые не покупают

Нужно, чтобы это сделали за вас?

Я провожу аудит и чиню техническое SEO на сайтах Next.js — индексация, скорость, hreflang и видимость в AI.

Услуга «Техническое SEO»