Next.js teknik SEO kontrol listesi (App Router)
Yayın
Kısa cevap
Her sayfaya Metadata API ile benzersiz başlık, açıklama ve canonical adres ver, içeriği sunucuda üret, sitemap ve robots dosyası ekle, her dil için hreflang kullan, JSON-LD ile yapılandırılmış veri ekle, Core Web Vitals değerlerini sağlıklı tut ve her şeyi Google Search Console'da doğrula. SubmitApp'te frontend'i yeniden yapılandırmak Lighthouse SEO skorunu %50'den %98'e çıkardı; Harmoni Yazılım için teknik SEO ve Search Console çalışmalarını yürütüyorum.
1. Her sayfaya kendi başlığı, açıklaması ve canonical adresi
Metadata API ile her sayfa için benzersiz bir başlık ve açıklama üret. Aynı içeriğe birden çok adresle ulaşılabiliyorsa canonical ile asıl adresi belirt.
export async function generateMetadata({ params }) {
const { slug } = await params;
const post = await getPost(slug);
return {
title: post.title,
description: post.description,
alternates: { canonical: `/blog/${slug}` },
};
}2. İçeriği sunucuda üret
Arama motorlarının görmesini istediğin metni sunucuda ya da derleme zamanında üret. Yalnızca tarayıcıda yüklenen içerik geç ve eksik indekslenebilir. Statik sayfalar ayrıca hızlıdır.
3. Sitemap ve robots
App Router'da app/sitemap.ts ve app/robots.ts dosyaları bunları kod olarak üretir. Sitemap'e sadece indekslenmesini istediğin adresleri koy.
import type { MetadataRoute } from "next";
export default function sitemap(): MetadataRoute.Sitemap {
return [
{ url: "https://example.com/tr", lastModified: "2026-10-21" },
{ url: "https://example.com/en", lastModified: "2026-10-21" },
];
}4. Çok dilli sitelerde hreflang
Her dilin kendi adresi olsun (örneğin /tr ve /en) ve sayfalar birbirine alternates.languages ile bağlansın. Dil yalnızca çerezle seçiliyorsa arama motoru diğer dili hiç göremez.
alternates: {
canonical: "/tr",
languages: { tr: "/tr", en: "/en", "x-default": "/" },
}5. Yapılandırılmış veri
JSON-LD ile sayfanın ne olduğunu açıkça söyle: kişi ya da kuruluş için Person ve ProfessionalService, makaleler için BlogPosting, soru-cevap blokları için FAQPage. Yapılandırılmış veri sıralama garantisi vermez ama arama motorlarının ve yapay zekâ özetlerinin içeriği doğru anlamasına yardım eder.
6. Performans ve Core Web Vitals
- Mümkün olan sayfaları statik üret.
- Yazı tiplerini next/font ile yükle ve kullanmadığın ağırlıkları çıkar.
- Görselleri next/image ile boyutlandır ve boyut bilgisini ver ki yerleşim kaymasın.
- Gereksiz istemci JavaScript'inden kaçın.
7. Search Console ile doğrula
Siteyi Google Search Console'a ekle, sitemap'i gönder ve önemli adresleri URL denetimi aracıyla kontrol et. İndeksleme raporu hangi sayfaların neden dışarıda kaldığını gösterir.
Sık sorulanlar
- Next.js kendiliğinden SEO dostu mudur?
- Sunucuda üretilen içerik işe yarar ama yetmez. Başlık, açıklama, canonical, sitemap ve hreflang gibi ayarları sen yapmalısın.
- Çok dilli sitede dil neden çerezle seçilmemeli?
- Arama motoru çerez göndermez. Her dilin kendi adresi yoksa botlar yalnızca varsayılan dili görür.
- SEO sonuçları ne kadar sürede gelir?
- Sabit bir süre yok. Yeni siteler için genellikle haftalar ya da aylar sürer ve rekabete göre değişir.
Bu konuda çalışıyorum
Yazan: Mert Yılmaz, freelance fullstack geliştirici.