Почему Google не индексирует ваш Next.js сайт - полный SEO гайд 2026
В 2026 году многие разработчики сталкиваются с одной и той же проблемой:
сайт на Next.js работает идеально… но страницы неделями висят в статусе «Обнаружена - не проиндексирована».
Особенно часто это происходит после перехода на App Router.
На первый взгляд всё выглядит нормально:
sitemap есть
robots.txt есть
SSR включён
Lighthouse показывает зелёные метрики
Но Google всё равно медленно индексирует страницы.
Разберём реальные причины и способы исправления.
Почему у Next.js возникают проблемы с индексацией
Основная проблема современных React-фреймворков - сложность рендеринга.
Хотя Next.js считается SEO-friendly, многие проекты случайно превращаются в почти SPA-приложения.
Чаще всего проблемы появляются из-за:
Client Components
плохого metadata API
отсутствия HTML-контента на сервере
неправильного SSR/ISR
JavaScript-heavy страниц
плохой внутренней перелинковки
1. Слишком много use client
Одна из главных ошибок.
Многие разработчики делают так:
'use client'
export default function Page() {
return (
<div>
<h1>Best AI Tools 2026</h1>
</div>
)
}Проблема:
страница становится Client Component
Google получает меньше SSR-контента
увеличивается JS bundle
замедляется индексация
Как правильно
По умолчанию страницы должны быть Server Components.
export default function Page() {
return (
<div>
<h1>Best AI Tools 2026</h1>
</div>
)
}Используйте use client только там, где реально нужен:
state
event handlers
browser APIs
2. Metadata API настроен неправильно
Очень частая проблема App Router.
Неправильно:
export const metadata = {
title: 'Home'
}Слишком слабый title.
Правильно:
export const metadata = {
title: 'Best AI Tools in 2026 - Complete Guide',
description:
'Discover the best AI tools for developers, creators and startups in 2026.'
}3. Нет canonical URL
Без canonical Google может считать страницы дублями.
export const metadata = {
alternates: {
canonical: 'https://example.com/blog/ai-tools'
}
}4. Страницы рендерятся только после hydration
Это критическая ошибка.
Плохо:
'use client'
import { useEffect, useState } from 'react'
export default function Page() {
const [posts, setPosts] = useState([])
useEffect(() => {
fetch('/api/posts')
.then(r => r.json())
.then(setPosts)
}, [])
return <div>{posts.length}</div>
}Google сначала получает почти пустой HTML.
Правильно - SSR
async function getPosts() {
const res = await fetch('https://api.example.com/posts', {
cache: 'no-store'
})
return res.json()
}
export default async function Page() {
const posts = await getPosts()
return (
<div>
{posts.map(post => (
<h2 key={post.id}>{post.title}</h2>
))}
</div>
)
}5. Неправильный sitemap.xml
В Next.js 16 sitemap можно генерировать автоматически.
// app/sitemap.ts
export default function sitemap() {
return [
{
url: 'https://example.com',
lastModified: new Date()
}
]
}6. Нет robots.txt
Создайте:
// app/robots.ts
export default function robots() {
return {
rules: {
userAgent: '*',
allow: '/'
},
sitemap: 'https://example.com/sitemap.xml'
}
}7. Google плохо видит внутренние ссылки
Очень распространённая проблема.
Если новые статьи:
не попадают на главную
не имеют related posts
не связаны между собой
Google считает их маловажными.
Что помогает
Добавьте:
related posts
breadcrumbs
категории
теги
HTML sitemap
8. Dynamic rendering убивает crawl budget
Плохо:
export const dynamic = 'force-dynamic'Если каждая страница рендерится динамически:
сервер медленнее отвечает
Google реже обходит сайт
Лучше использовать ISR
export const revalidate = 3600Это:
быстрее
дешевле
лучше для SEO
9. Слишком тяжёлый JavaScript
Многие Next.js сайты сейчас перегружены:
animation libraries
AI widgets
analytics
heavy UI kits
Googlebot ограничен по ресурсам.
Что делать
Используйте:
dynamic imports
lazy loading
Server Components
минимальный client-side JS
10. Отсутствует structured data
Для статей это очень важно.
Пример JSON-LD:
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify({
'@context': 'https://schema.org',
'@type': 'Article',
headline: post.title,
datePublished: post.createdAt
})
}}
/>Лучшие SEO практики для Next.js в 2026
Используйте:
App Router
Server Components
ISR
Metadata API
JSON-LD
semantic HTML
Избегайте:
full client rendering
excessive use client
пустого HTML
тяжёлых hydration
плохой перелинковки
Как проверить, что Google реально видит страницу
Проверяйте:
View Source
URL Inspection
Rich Results Test
Mobile-Friendly Test
Важно: Google должен видеть контент без выполнения сложного JS.
Почему молодые Next.js сайты индексируются медленно
Если домен новый:
crawl budget маленький
trust низкий
Google осторожнее относится к AI/IT контенту
Особенно если:
статьи публикуются массово
контент похож друг на друга
много AI-generated материалов
Что реально помогает ускорить индексацию
Рабочая схема 2026
После публикации статьи:
Добавьте её в sitemap
Дайте 2–3 внутренние ссылки
Добавьте ссылку с главной
Отправьте URL в Search Console
Получите хотя бы один внешний переход
Итог
Next.js сам по себе не ломает SEO.
Проблема обычно возникает из-за:
неправильной архитектуры
Client Components
слабого SSR
плохой перелинковки
тяжёлого frontend
В 2026 году выигрывают сайты, которые:
быстро отдают HTML
используют минимум JS
имеют хорошую структуру
регулярно обновляются
помогают Google легко обходить страницы.
Комментарии
Чтобы оставить комментарий, войдите в аккаунт.