SEO для сайта на Nuxt: практические советы
Почему SEO в Nuxt — это и просто, и сложно?
Nuxt 3 из коробки поддерживает SSR — страницы рендерятся на сервере и приходят к пользователю уже с содержимым. Это идеально для SEO: поисковые роботы видят готовый HTML без необходимости выполнять JavaScript.
Однако правильная настройка мета-тегов, canonical URL и структурированных данных требует понимания нескольких нюансов.
useSeoMeta — главный инструмент
Composable useSeoMeta позволяет задавать мета-теги типобезопасно:
useSeoMeta({
title: 'Название страницы — NWCD Studio',
description: 'Описание не более 160 символов',
ogTitle: 'Название для соцсетей',
ogImage: 'https://example.com/og-image.jpg',
twitterCard: 'summary_large_image'
})
Вызывайте его в каждом компоненте страницы с уникальными данными. Никогда не дублируйте одинаковые title и description на разных страницах.
Sitemap и robots.txt
Модуль @nuxtjs/sitemap автоматически генерирует sitemap.xml на основе ваших маршрутов. Для динамических страниц (блог, портфолио) добавьте источники данных через конфигурацию модуля.
Robots.txt через nuxt.config.ts:
routeRules: {
'/admin/**': { robots: false },
}
Структурированные данные Schema.org
Для статей блога добавьте разметку Article, для организации — LocalBusiness или Organization. Это даёт расширенные сниппеты в поисковой выдаче.
useHead({
script: [{
type: 'application/ld+json',
innerHTML: JSON.stringify({
'@context': 'https://schema.org',
'@type': 'Article',
headline: article.title,
datePublished: article.createdAt
})
}]
})
Canonical URL
Для пагинированных страниц и страниц с параметрами фильтрации всегда указывайте canonical URL, чтобы избежать дублирования контента:
useHead({
link: [{ rel: 'canonical', href: 'https://example.com/blog/article-slug' }]
})
Проверка результата
После настройки проверьте: Google Search Console (Coverage и Enhancements), Rich Results Test для структурированных данных, просмотр исходного кода страницы — мета-теги должны быть в HTML без JavaScript.