Паттерн · TypeScript
Канонический URL и метаданные страницы в Next.js App Router
Паттерн generateMetadata с canonical и Open Graph — основа SEO-гигиены.
·
Уровень: базовыйОценка времени: ~20 мин
Один источник базового URL сайта и явный canonical на каждой странице убирают дубли в индексе.
- metadataBase задаётся один раз
- canonical совпадает с тем, что отдаёт сервер
- OG url не должен расходиться с canonical
Фрагмент показывает, как задать
metadataBase,canonicalи Open Graph для страницы услуги или лендинга.
Код
import type { Metadata } from 'next'
import { getSiteUrl } from '@/lib/site'
const site = getSiteUrl()
export async function generateMetadata(): Promise<Metadata> {
const path = '/uslugi/example/'
return {
title: 'Заголовок страницы',
description: 'Уникальное описание для сниппета.',
alternates: { canonical: `${site}${path}` },
openGraph: {
title: 'Заголовок для соцсетей',
description: 'Кратко о странице.',
url: `${site}${path}`,
type: 'website',
locale: 'ru_RU',
},
}
}
Проверка
- В HTML есть один
link rel="canonical"на ожидаемый URL. - Копирование URL из адресной строки совпадает с canonical (без лишних UTM в индексной версии).
Первоисточники
Другие паттерны
Материалы блога
- SEO
SEO-архитектура: почему сайт не продает без структуры
Разбираем, как правильная структура сайта влияет на продажи и позиции в поиске. Почему дизайн вторичен, а семантика первична.
Читать статью - Процесс
Чеклист приёмки сайта: скорость, доступность и базовый техSEO до подписания акта
Зачем до акта смотреть PageSpeed Insights и WAVE, чем лабораторные метрики отличаются от полевых, и какой минимум техSEO снижает сюрпризы после запуска.
Читать статью
Нужно внедрить под ваш домен и стек?
Короткая форма: имя, телефон и сайт. После отправки — ответ с порядком работ и ориентиром по этапам; задачу уточняют при контакте.