Przejdź do treści

Dlaczego Google nie indeksuje moich stron Next.js?

Witryny Next.js tracą strony przez noindex pozostawiony z wersji testowej, jeden tag kanoniczny w układzie głównym, strumieniowane błędy 404 i mapy witryny ze starymi adresami.

Platforma:Next.js

Autor: Bruno Amorim · ·

Czytaj w innym języku: English · Português (Brasil) · Español · Deutsch · Français · Italiano · 日本語 · 한국어

Najczęstsze przyczyny, po kolei

  1. Witryna jest nowa. Google potrzebuje czasu, żeby znaleźć nową witrynę. Według Google skanowanie może trwać od kilku dni do kilku tygodni. Wpisz w Google site: i swoją domenę, na przykład site:example.com. Jeśli nic się nie pokaże, Google prawdopodobnie nie ma jeszcze żadnej Twojej strony. Narzędzie do sprawdzania adresów URL w Search Console da dokładną odpowiedź dla każdej strony.
  2. Domena serwuje wersję podglądową. Vercel dodaje X-Robots-Tag: noindex do wdrożeń podglądowych. Jeśli domena wskazuje takie wdrożenie albo nagłówek trafił do next.config, Google pomija każdą stronę. Uruchom curl -I i poszukaj X-Robots-Tag.
  3. Metadane dodają noindex. Szukaj robots: { index: false } w metadata albo generateMetadata. Wywołanie notFound() po rozpoczęciu strumieniowania też dodaje noindex.
  4. robots.ts blokuje witrynę. app/robots.ts tworzy /robots.txt. Reguła disallow: '/' z wersji testowej blokuje każdą stronę.
  5. Brak mapy albo Search Console jej nie ma. Next.js nie ma mapy, dopóki nie dodasz app/sitemap.ts. Podawaj tylko adresy, które zwracają 200, w stylu ukośnika używanym przez witrynę.
  6. Treść ładuje się tylko w przeglądarce albo wszystkie strony mają jeden tag kanoniczny. Pobieraj główną treść na serwerze. Ustaw alternates.canonical w metadanych każdej strony, bo adres kanoniczny z układu głównego dotyczy wszystkich stron pod nim.
  7. Linki nie są prawdziwymi linkami. Używaj <Link href>. Google podąża za linkami <a href>, nie za obsługą kliknięć z router.push().

Mapa witryny i robots.txt

W App Routerze app/sitemap.ts tworzy /sitemap.xml, a app/robots.ts tworzy /robots.txt. Nie masz żadnego z nich, dopóki ich nie dodasz.

Co pokaże Search Console

  • Pozorny błąd 404: trasa dynamiczna, na przykład [slug], która pokazuje komunikat „nie znaleziono” bez notFound(), zwraca 200. Tak samo notFound() po rozpoczęciu strumieniowania. Wywołuj notFound() przed strumieniowaniem, poza <Suspense> i loading.tsx, albo sprawdzaj adres w Proxy.
  • Strona zindeksowana bez zawartości: gdy strona ładuje treść w przeglądarce, Google najpierw widzi pustą stronę albo kółko ładowania. Buduj główną treść na serwerze.
  • Strona zawiera przekierowanie: Proxy (middleware) i trailingSlash kierują pod inny adres niż ten w mapie. Podawaj w mapie dokładnie ten adres, którego używa witryna.
// app/robots.ts
export default function robots() {
  return {
    rules: { userAgent: '*', allow: '/' },
    sitemap: 'https://example.com/sitemap.xml',
  }
}

Jak pomaga CrawlCoach

Zobacz, które strony Twojej aplikacji Next.js Google pominął. Darmowy raport CrawlCoach sprawdza do 500 stron i pokazuje poprawkę dla każdego problemu.

Częste pytania

Dlaczego moja strona 404 w Next.js zwraca 200?

Strona zaczęła się strumieniować, zanim wywołano notFound(), więc status 200 był już wysłany. Next.js dodaje wtedy noindex. Przenieś sprawdzenie przed <Suspense> albo loading.tsx, albo do Proxy, żeby zwrócić prawdziwe 404.

Czy Google renderuje strony Next.js budowane w przeglądarce?

Google uruchamia JavaScript, ale później i rzadziej. Strony budowane na serwerze trafiają do Google szybciej i częściej.

Czy potrzebuję i sitemap.ts, i robots.ts?

Tak. robots.ts powinien podawać adres mapy, a sitemap.ts tylko adresy, które zwracają 200.

Źródła

Sprawdzone 8 października 2026. Google co jakiś czas zmienia Search Console i pomoc. Jeśli na Twoim ekranie coś wygląda inaczej, zajrzyj do źródła.

Zobacz, których stron Twojej witryny brakuje w Google

Zaloguj się przez Google. CrawlCoach bezpłatnie sprawdzi do 500 stron i pokaże poprawkę dla każdego problemu.

Odbierz darmowy raport

Bezpłatnie do 500 stron. Bez karty płatniczej. Zaloguj się kontem Google, którego używasz w Search Console.

Aplikacja i raporty CrawlCoach są po angielsku.

Inne platformy

Więcej poradników (po angielsku)