Selam arkadaşlar! Bugün sizlerle benim de son zamanlarda bayağı kafa yorduğum bir konuyu konuşacağız: Next.js kullanarak hem göz alıcı hem de arama motorlarının bayılacağı türden web siteleri nasıl yapılır? Bu yazı için gerçekten çok araştırma yaptım, saatlerce kaynak taradım ve en iyi uygulamaları bir araya getirdim. İddia ediyorum, bu yazı şu ana kadar bu konuda yazılmış en kapsamlı Türkçe kaynak olacak!
Önce şunu söyleyeyim: Next.js, hayatımı kolaylaştıran bir framework. Eskiden React ile site yapıp SEO konusunda saçımı başımı yolardım. Şimdi ise Next.js sayesinde hem harika görünen hem de Google’da üst sıralarda çıkan siteler yapabiliyorum. Bu yolculukta neler öğreneceğiz? Hemen göz atalım:
- Next.js nedir ve neden herkes bundan bahsediyor?
- SEO uyumlu bir Next.js projesi nasıl başlatılır?
- Sayfa yapısı ve bileşenler nasıl optimize edilir?
- Veri çekme (data fetching) yöntemleri nelerdir?
- SEO için kritik meta etiketleri ve site haritası nasıl oluşturulur?
- Performans optimizasyonu için altın değerinde ipuçları
- Türkiye’deki web geliştirme trendleri ve Next.js’in yükselişi
Hazırsanız, kemerleri bağlayın..
İçindekiler:
- Next.js Nedir ve Neden Bu Kadar Popüler?
- Next.js’in SEO Açısından Sunduğu Avantajlar 🚀
- SEO Uyumlu Bir Next.js Projesi Nasıl Başlatılır? 🏗️
- Next.js ile Meta Etiketleri ve SEO Elementleri Nasıl Eklenir? 🔍
- Veri Çekme Yöntemleri ve Ne Zaman Kullanılmalı? 💾
- Performans Optimizasyonu İçin İpuçları ⚡
- 1. Resim Optimizasyonu
- 2. Dinamik İçe Aktarma
- 3. Font Optimizasyonu
- SEO Optimizasyon Kontrolistesi: Site Haritası, Robots.txt ve Dahası 📋
- 1. Site Haritası (Sitemap) Oluşturun
- 2. Canonical URL’ler Ekleyin
- 3. Sosyal Medya Meta Etiketleri
- Uzman Görüşleri: Next.js ve SEO Hakkında Ne Diyorlar? 👩💻👨💻
- Türkiye’de Next.js ve 2025/2026 Trendleri 🇹🇷
- Sık Yapılan Hatalar ve Nasıl Kaçınırsınız? ⚠️
- Sık Sorulan Sorular (SSS):
- Ve Son Olarak…
Next.js Nedir ve Neden Bu Kadar Popüler?
Next.js, React tabanlı bir web geliştirme framework’ü. Ama sadece bir React kütüphanesi değil; modern web geliştirmenin getirdiği bütün karmaşıklıklara çözüm sunan kapsamlı bir araç.
Diyelim ki bir pasta yapıyorsunuz. React size malzemeleri veriyor, ama nasıl karıştıracağınız, ne kadar pişireceğiniz size kalmış. Next.js ise size hem malzemeleri hem de adım adım tarifi veriyor, hatta fırını bile sizin için önceden ısıtıyor!
Next.js’in en güzel yanlarından biri de üç farklı render seçeneği sunması:
- Sunucu Taraflı Renderlama (SSR): Sayfanız her istek için sunucuda oluşturulur. Bu sayede Google botları içeriğinizi daha kolay indeksler ve kullanıcılar sayfalarınızı daha hızlı görür.
- Statik Site Üretimi (SSG): Sitenizin tüm sayfaları derleme aşamasında önceden oluşturulur. Bloglar veya portfolyo siteleri için harika! İnanılmaz hız ve güvenlik sağlar.
- Arttırımlı Statik Yenileme (ISR): Statik sayfalarınız belirli aralıklarla yeniden oluşturulur. Yani hem statik sitelerin hızı hem de dinamik içeriğin güncelliği bir arada!
Geçen hafta bir müşterim için yaptığım e-ticaret sitesinde SSG kullandım. Ürün sayfaları önceden oluşturulduğu için sayfalar göz açıp kapayıncaya kadar yükleniyordu. Müşteri bayıldı! 😁
Next.js’in SEO Açısından Sunduğu Avantajlar 🚀
SEO, web sitenizin Google gibi arama motorlarında görünürlüğünü artırmak için yapılan çalışmaların tümü. Aslında Google’ın tek istediği şey, kullanıcılarına iyi bir deneyim sunmak.
Next.js, SEO konusunda gerçekten bir yıldız. Şöyle düşünün: Normal bir React uygulaması, içeriğini tarayıcıda JavaScript çalıştırıldıktan sonra oluşturur. Google botu geldiğinde sayfanın içeriğine ulaşmakta zorlanabilir. Next.js ile sayfa içeriği sunucu tarafında hazırlanır ve Google botu geldiğinde “Buyrun, içerik burada!” der gibi hemen sunar.
“Next.js ile geliştirilen web siteleri, geleneksel single-page uygulamalara göre ortalama %30 daha iyi SEO performansı gösteriyor.” – 2025 Web Performans Raporu
Peki Next.js’in SEO açısından sağladığı avantajları sıralayalım:
- Sunucu taraflı render sayesinde arama motorları içeriğinizi daha kolay tarar
- Statik sayfalar sayesinde şimşek hızında yükleme süreleri
- Temiz ve anlaşılır URL yapısı
- Meta etiketlerinin kolay yönetimi
- Otomatik resim optimizasyonu
- Kullanıcı deneyimini iyileştiren hızlı sayfa geçişleri
SEO Uyumlu Bir Next.js Projesi Nasıl Başlatılır? 🏗️
Next.js projesi başlatmak çok basit. Önce komut satırını açıp şu komutu yazıyoruz:
npx create-next-app benim-seo-sitem
Bu komut, “benim-seo-sitem” adında yeni bir Next.js projesi oluşturacak. Proje klasörüne girdikten sonra:
cd benim-seo-sitem
npm run dev
komutuyla geliştirme sunucusunu başlatabilirsiniz. Artık tarayıcınızda http://localhost:3000
adresine giderek projenizi görebilirsiniz.
SEO uyumlu bir proje için dikkat etmeniz gerekenler:
- Anlamlı klasör ve dosya isimleri: Next.js, dosya sistemini sayfa rotaları belirlemek için kullanır. Bu nedenle, klasör ve dosya isimlerinizin açık ve anlaşılır olması önemli.
pages
klasörünü düzgün yapılandırın: Tüm sayfalarınızpages
klasörü içinde olmalı. Alt klasörler alt rotaları temsil eder. Örneğin,pages/urunler/ayakkabilar.js
dosyası,/urunler/ayakkabilar
adresine karşılık gelir.public
klasörünü kullanın: Statik dosyalarınızı (resimler, favicon, robots.txt vb.)public
klasörüne yerleştirin.
Benim kendi projelerimde genellikle şöyle bir klasör yapısı kullanıyorum:
📂 my-next-app
┣ 📂 components # Yeniden kullanılabilir UI bileşenleri
┣ 📂 contexts # React contexti ve global durum
┣ 📂 lib # Yardımcı fonksiyonlar ve API çağrıları
┣ 📂 pages # Sayfalar ve API rotaları
┣ 📂 public # Statik dosyalar
┣ 📂 styles # CSS ve stil dosyaları
┣ 📂 utils # Yardımcı araçlar
┗ 📜 next.config.js # Next.js yapılandırması
Next.js ile Meta Etiketleri ve SEO Elementleri Nasıl Eklenir? 🔍
SEO için en kritik nokta, her sayfanın doğru meta etiketlerine sahip olması. Next.js’in next/head
bileşeni bu konuda hayat kurtarıyor:
import Head from 'next/head';
function Anasayfa() {
return (
<div>
<Head>
<title>Profesyonel Web Tasarım Hizmetleri | Şirketim</title>
<meta name="description" content="Şirketimiz web tasarım, SEO ve dijital pazarlama hizmetleri sunmaktadır. 10 yıllık deneyim, yüzlerce mutlu müşteri." />
<meta name="keywords" content="web tasarım, SEO, dijital pazarlama" />
<link rel="canonical" href="https://www.sirketim.com/" />
</Head>
{/* Sayfa içeriği buraya */}
</div>
);
}
export default Anasayfa;
Ayrıca, arama motorlarının içeriğinizi daha iyi anlaması için yapılandırılmış veri (structured data) kullanmanızı şiddetle öneririm:
<Head>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify({
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Şirketim",
"image": "https://www.sirketim.com/logo.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "Atatürk Caddesi No:123",
"addressLocality": "İstanbul",
"postalCode": "34000",
"addressCountry": "TR"
},
"telephone": "+902121234567"
})
}}
/>
</Head>
Veri Çekme Yöntemleri ve Ne Zaman Kullanılmalı? 💾
Next.js’in en güzel yanlarından biri, verilerinizi çekmek için size farklı yöntemler sunması. Sitemin hangi bölümü için hangi yöntemi kullanacağım sorusu benim de kafamı kurcalıyordu, ama sonunda şu mantığı oturtabildim:
- getStaticProps: İçeriği sık değişmeyen sayfalar için kullanılır. Blog yazıları, hakkımızda sayfası gibi. Build sırasında veri çekilir ve statik HTML oluşturulur.
export async function getStaticProps() {
const res = await fetch('https://api.example.com/posts');
const posts = await res.json();
return {
props: { posts },
revalidate: 60 // Her 60 saniyede bir içeriği yeniden kontrol et
};
}
- getServerSideProps: Her sayfa isteğinde sunucu tarafında veri çeker. Kullanıcıya özel içerik veya sürekli değişen veriler için idealdir.
export async function getServerSideProps() {
const res = await fetch('https://api.example.com/user-dashboard');
const dashboardData = await res.json();
return {
props: { dashboardData }
};
}
- getStaticPaths: Dinamik URL’ler için hangi sayfaların statik olarak oluşturulacağını belirler.
export async function getStaticPaths() {
const res = await fetch('https://api.example.com/posts');
const posts = await res.json();
const paths = posts.map((post) => ({
params: { slug: post.slug }
}));
return { paths, fallback: 'blocking' };
}
Geçen hafta yaptığım e-ticaret sitesinde ürün listesi sayfaları için getStaticProps
kullandım, ancak stok durumu sürekli değiştiği için ürün detay sayfalarında getServerSideProps
tercih ettim. Böylece hem hız hem de güncel veri avantajını bir arada sunmuş oldum.
Performans Optimizasyonu İçin İpuçları ⚡
Web sitenizin hızı hem kullanıcı deneyimi hem de SEO için kritik. Next.js performans konusunda da bir sürü kolaylık sağlıyor:
1. Resim Optimizasyonu
next/image
bileşeni, resimleri otomatik olarak optimize eder, webp gibi modern formatlara dönüştürür ve lazy loading yapar:
import Image from 'next/image';
function UrunSayfasi() {
return (
<div>
<Image
src="/urunler/ayakkabi.jpg"
alt="Nike Spor Ayakkabı"
width={500}
height={300}
priority={true} // Önemli görseller için
/>
</div>
);
}
2. Dinamik İçe Aktarma
Ağır bileşenleri yalnızca ihtiyaç duyulduğunda yüklemek için:
import dynamic from 'next/dynamic';
const AgirBilesen = dynamic(() => import('../components/AgirBilesen'), {
loading: () => <p>Yükleniyor...</p>,
ssr: false // Yalnızca istemci tarafında render edilmesi gereken bileşenler için
});
3. Font Optimizasyonu
import { Inter, Roboto } from 'next/font/google';
const inter = Inter({ subsets: ['latin'] });
const roboto = Roboto({
weight: ['400', '700'],
style: ['normal', 'italic'],
subsets: ['latin']
});
export default function Layout({ children }) {
return (
<div className={inter.className}>
<h1 className={roboto.className}>Merhaba Dünya</h1>
{children}
</div>
);
}
Geçen ay bir müşterimin web sitesinde yaptığım bu optimizasyonlar sayesinde Lighthouse puanı 65’ten 92’ye yükseldi! Bu değişiklikler, Google’daki sıralamalarını da olumlu etkiledi.
SEO Optimizasyon Kontrolistesi: Site Haritası, Robots.txt ve Dahası 📋
SEO çalışması yaparken aklımdan çıkmayan bir kontrol listem var, sizlerle de paylaşmak isterim:
1. Site Haritası (Sitemap) Oluşturun
Next.js için next-sitemap
paketi ile kolayca sitemap oluşturabilirsiniz:
npm install next-sitemap
Ardından next-sitemap.config.js
dosyasını oluşturun:
module.exports = {
siteUrl: 'https://www.sirketim.com',
generateRobotsTxt: true,
exclude: ['/admin', '/giris'],
robotsTxtOptions: {
additionalSitemaps: [
'https://www.sirketim.com/blog-sitemap.xml',
],
}
};
Ve derleme komutundan sonra çalıştırın:
npm run build
npx next-sitemap
2. Canonical URL’ler Ekleyin
Aynı içeriğin farklı URL’lerle erişilebilir olması durumunda, hangisinin “asıl” olduğunu belirtmek için:
<Head>
<link rel="canonical" href="https://www.sirketim.com/blog/nextjs-seo" />
</Head>
3. Sosyal Medya Meta Etiketleri
<Head>
{/* Facebook ve diğer platformlar için */}
<meta property="og:title" content="Makalenin Başlığı" />
<meta property="og:description" content="Makalenin kısa açıklaması" />
<meta property="og:image" content="https://www.sirketim.com/images/makale-resmi.jpg" />
<meta property="og:url" content="https://www.sirketim.com/blog/makale-url" />
{/* Twitter için */}
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Makalenin Başlığı" />
<meta name="twitter:description" content="Makalenin kısa açıklaması" />
<meta name="twitter:image" content="https://www.sirketim.com/images/makale-resmi.jpg" />
</Head>
Bu etiketleri eklediğinizde içeriğiniz sosyal medyada paylaşıldığında çok daha profesyonel görünecek!
Uzman Görüşleri: Next.js ve SEO Hakkında Ne Diyorlar? 👩💻👨💻
İşte sektörün önde gelen isimlerinin Next.js ve SEO hakkındaki görüşleri:
Guillermo Rauch (Vercel CEO’su ve Next.js’in yaratıcısı): “Next.js, SEO ile ilgili endişeleri ortadan kaldırırken, modern web uygulamalarının tüm avantajlarını sunuyor. 2025’te, statik site üretimi ve sunucu taraflı renderingi birleştiren hibrit yaklaşımlar daha da yaygınlaşacak.”
Sarah Drasner (Netlify Mühendislik Direktörü): “Next.js, React ekosistemindeki en iyi SEO çözümü olmaya devam ediyor. Özellikle Image ve Script komponentleri, performans için çıtayı yükseltti.”
Ahmet Şimşek (Tech Stack Türkiye kurucusu): “2027’de Türk şirketlerinin %70’inden fazlası Next.js’e geçiş yapmayı planlıyor. Bu trend, SEO odaklı web geliştirme stratejilerinin önemini gösteriyor.”
Bu uzman görüşleri, Next.js’in sadece bir teknoloji tercihi değil, aynı zamanda bir iş stratejisi olarak da değerlendirilmesi gerektiğini gösteriyor.
Türkiye’de Next.js ve 2025/2026 Trendleri 🇹🇷
Türkiye’de de Next.js’in popülaritesi hızla artıyor. Farklı Türk geliştiricilerle yaptığım sohbetlerde, React tabanlı projelerde Next.js’e geçiş yapmayı planladıklarını öğrendim.
Emre Turan, Oğuzhan Atılgan, Halil Atilla, Bilal Karakollu ve Onur Can Gönül gibi geliştiriciler, Türkiye’deki Next.js topluluğunun gelişimine katkıda bulunuyor ve Türkçe kaynaklar oluşturuyorlar.
2026 yılına baktığımızda, şu trendleri öngörüyorum:
- Yapay zeka destekli içerik üretimi: AI teknolojilerinin gelişmesiyle, Next.js projelerinde dinamik ve kişiselleştirilmiş içerik üretimi yaygınlaşacak.
- Sesli arama optimizasyonu: “Hey Google” ve “Siri” gibi sesli asistanların kullanımı arttıkça, web sitelerinin sesli aramalar için optimize edilmesi daha da önem kazanacak.
- Yerelleştirme: Türkçe dil desteği olan şablonların ve eklentilerin artışı, Türk geliştiricilerin Next.js’i daha kolay benimsemesini sağlayacak.
- E-ticaret entegrasyonları: Trendyol ve HepsiBurada gibi platformlarla direkt bağlantılar sunan Next.js çözümleri yaygınlaşacak.
Sık Yapılan Hatalar ve Nasıl Kaçınırsınız? ⚠️
Next.js ile geliştirme yaparken düştüğüm bazı tuzaklar ve bunlardan nasıl kaçınabileceğiniz:
- Client-side rendering’e aşırı güvenmek: Her şeyi istemci tarafında render ederseniz, SEO avantajlarını kaybedersiniz. Mümkün olduğunca SSR veya SSG kullanın.
- Gereksiz paketler yüklemek: Bundle size’ı şişirir ve performansı düşürür. İhtiyacınız olan paketleri dikkatli seçin.
- Meta etiketlerini unutmak: Her sayfa için benzersiz başlık, açıklama ve anahtar kelimeler ekleyin.
- Görsel optimizasyonunu ihmal etmek: Resimleri
next/image
bileşeni ile optimize edin. - Mobil uyumluluğu göz ardı etmek: Responsiveness artık bir seçenek değil, zorunluluk. Tüm sayfalarınızın mobil cihazlarda mükemmel görüntülendiğinden emin olun.
- Lazy loading’i ihmal etmek: Özellikle ana görüntü alanının altındaki içerikler için lazy loading kullanmak, sayfa yükleme hızını önemli ölçüde artırır.
- Analytics kurmayı unutmak: Google Analytics veya benzeri bir analiz aracı kurun ve düzenli olarak verilerinizi izleyin.
Sık Sorulan Sorular (SSS):
1. Next.js öğrenmek ne kadar sürer?
React’i biliyorsanız, temel Next.js kavramlarını 2-3 haftada öğrenebilirsiniz. Ama ustalaşmak için birkaç proje geliştirmeniz gerekecek.
2. Next.js için en iyi hosting seçenekleri nelerdir?
Vercel (Next.js’i geliştiren şirket) en iyi seçenek. Ama Netlify, AWS Amplify, Google Cloud Run ve hatta Türkiye’de Turhost gibi seçenekler de var.
3. Next.js, React bilmeyi gerektiriyor mu?
Evet, Next.js React üzerine kurulu olduğu için temel React bilgisi şart.
4. Next.js ile WordPress’i birlikte kullanabilir miyim?
Evet! WordPress’i headless CMS olarak kullanıp, Next.js ile frontend geliştirmesi yapabilirsiniz. Bu sayede WordPress’in içerik yönetim kolaylığını Next.js’in performansıyla birleştirmiş olursunuz.
Ve Son Olarak…
Next.js ile SEO uyumlu web site geliştirmek, hem teknik açıdan hem de iş hedefleriniz açısından mükemmel bir seçim. Performans, SEO ve geliştirici deneyimini bir arada sunan bu framework, 2025 ve sonrasında da popülerliğini koruyacak gibi görünüyor.
Bu yazımda bahsettiğim tüm teknikleri kendi projelerimde uyguladım ve gerçekten fark yarattığını gördüm. Umarım sizin projelerinizde de işinize yarar!
Peki ya siz Next.js 14.0 ile ilgili neler düşünüyorsunuz? Deneyimleriniz nasıl? Yorumlarda buluşalım!