Wzorzec · TypeScript
robots.txt i metadane robots w Next.js App Router
Statyczny robots przez app/robots.ts i punktowy noindex przez generateMetadata.
Poziom: podstawowySzacunek czasu: ~25 min
Reguły globalne — w robots.ts; zakaz indeksowania szkiców — w metadata konkretnej trasy.
- Nie duplikuj sprzecznych sygnałów między robots.txt a meta robots
- sitemap w robots musi być kanoniczny
- dla preview często potrzebny pełny noindex
Robot indeksujący czyta zarówno
robots.txt, jak i<meta name="robots">. Rozdzielaj: plik — ogólne zasady, meta — strony, które nie powinny trafić do indeksu.
Kod
app/robots.ts w tym projekcie:
import type { MetadataRoute } from 'next'
import { getSiteUrl } from '@/lib/site'
const host = getSiteUrl().replace(/\/$/, '')
export default function robots(): MetadataRoute.Robots {
return {
rules: [
{ userAgent: '*', allow: '/' },
{ userAgent: 'GPTBot', allow: '/' },
{ userAgent: 'Google-Extended', allow: '/' },
{ userAgent: 'CCBot', allow: '/' },
{ userAgent: 'anthropic-ai', allow: '/' },
{ userAgent: 'Claude-Web', allow: '/' },
{ userAgent: 'ClaudeBot', allow: '/' },
{ userAgent: 'PerplexityBot', allow: '/' },
{ userAgent: 'Applebot-Extended', allow: '/' },
],
sitemap: `${host}/sitemap.xml`,
host,
}
}
Punktowy noindex w generateMetadata szkicu lub strony pomocniczej:
import type { Metadata } from 'next'
export async function generateMetadata(): Promise<Metadata> {
return {
title: 'Szkic',
robots: { index: false, follow: false },
}
}
Weryfikacja
GET /robots.txtzwraca odpowiedź tekstową: regułyUser-agent, ewentualnieDisallow, jedna liniaSitemap:z kanonicznym HTTPS-URL mapy witryny.- Na zamkniętych stronach w HTML jest
noindexi nie trafiają do sitemap (jeśli polityka to pełne wykluczenie z indeksu).
Źródła
Inne wzorce
- Next.js
Kanoniczny URL i metadane strony w Next.js App Router
Wzorzec generateMetadata z canonical i Open Graph — podstawa higieny SEO.
Otwórz wzorzec - Indeksacja
Dynamiczny sitemap.xml w Next.js (app/sitemap.ts)
Jedna mapa witryny ze ścieżkami statycznymi i treściowymi; zgodność z collectIndexableUrls i adresem kanonicznym.
Otwórz wzorzec
Wpisy na blogu
- SEO
Architektura SEO: dlaczego strona nie sprzedaje bez struktury
Jak właściwa struktura strony wpływa na sprzedaż i pozycje. Dlaczego design jest drugorzędny, a semantyka pierwsza.
Czytaj artykuł - Proces
Checklista odbioru strony: szybkość, dostępność i podstawowe techSEO przed podpisaniem aktu
Dlaczego przed aktem warto spojrzeć na PageSpeed Insights i WAVE, czym metryki laboratoryjne różnią się od polowych i jaki minimalny techSEO obniża niespodzianki po starcie.
Czytaj artykuł
Wdrożyć pod Twoją domenę i stack?
Krótki formularz: imię, telefon, strona. Po wysłaniu — odpowiedź z kolejnością prac i orientacją etapów; szczegóły doprecyzujemy na kontakcie.