Web Geliştirme4 dk okumaK-ONTECH Editorial

Next.js 15 ile Core Web Vitals Optimizasyonu: Performans Rehberi

Next.js 15'in yeni özellikleriyle web sitenizin performansını nasıl %300 artırabilirsiniz? LCP, CLS ve INP metriklerini optimize etmenin tam yol haritası.

Next.js 15 ile Core Web Vitals Optimizasyonu: Performans Rehberi

Next.js 15 ile Core Web Vitals Optimizasyonu

Google'ın sıralama algoritmasında Core Web Vitals artık kritik bir faktör. Yavaş yüklenen siteler sadece kullanıcıları kaybetmiyor, aynı zamanda SEO sıralamasında da geride kalıyor. Kurumsal web sitesi geliştirirken performans optimizasyonu baştan göz önünde bulundurulmalı.

Core Web Vitals Nedir?

Core Web Vitals, Google'ın kullanıcı deneyimini ölçmek için belirlediği 3 temel metrikten oluşur:

1. LCP (Largest Contentful Paint)

  • İdeal değer: < 2.5 saniye
  • Ne ölçer: Sayfadaki en büyük içeriğin yüklenme süresi
  • Neden önemli: Kullanıcı ilk izlenimini belirler

2. CLS (Cumulative Layout Shift)

  • İdeal değer: < 0.1
  • Ne ölçer: Sayfa yüklenirken içeriklerin beklenmedik şekilde kayması
  • Neden önemli: Kullanıcı yanlış yere tıklama yapar

3. INP (Interaction to Next Paint)

  • İdeal değer: < 200ms
  • Ne ölçer: Kullanıcı etkileşiminden görsel yanıta kadar geçen süre
  • Neden önemli: Site ne kadar "responsive" hissettiriyor

Core Web Vitals Calculator

Sitenizin performans skorunu hesaplayın

saniye

İdeal: < 2.5s

skor

İdeal: < 0.1

ms

İdeal: < 200ms

Next.js 15'in Performans Özellikleri

Modern web tasarım projelerinde performans artık opsiyonel değil, zorunlu. Next.js 15 ile dijital çözümlerimiz daha hızlı ve verimli.

1. Server Components (Varsayılan)

Next.js 15'te tüm componentler varsayılan olarak Server Component. Bu ne anlama geliyor?

// app/products/page.tsx
// Bu artık otomatik olarak server component!
export default async function ProductsPage() {
  const products = await db.product.findMany();

  return (
    <div>
      {products.map(product => (
        <ProductCard key={product.id} product={product} />
      ))}
    </div>
  );
}

Avantajları:

  • Sıfır JavaScript client'a gönderilir
  • Veritabanı sorguları doğrudan component içinde (CRM sistemleri gibi data-heavy uygulamalarda kritik)
  • Hassas API key'ler server'da kalır
  • İlk sayfa yükleme süresi dramatik düşüş (SEO için çok önemli)

2. Image Optimization (next/image)

E-ticaret projelerinde görsel optimizasyonu kritik önem taşır.

import Image from 'next/image';

export default function Hero() {
  return (
    <Image
      src="/hero-image.jpg"
      alt="Hero"
      width={1920}
      height={1080}
      priority // LCP için kritik!
      placeholder="blur"
      blurDataURL="data:image/jpeg;base64,/9j/4AAQSkZJRg..."
    />
  );
}

next/image ne yapar:

  • Otomatik WebP/AVIF dönüşümü
  • Lazy loading (viewport dışındakiler yüklenmez)
  • Responsive sizes (mobilde küçük, desktop'ta büyük) - Responsive tasarım
  • CLS önleme (width/height belirtilince)

3. Font Optimization

// app/layout.tsx
import { Inter } from 'next/font/google';

const inter = Inter({
  subsets: ['latin'],
  display: 'swap', // CLS önleme
  variable: '--font-inter',
});

export default function RootLayout({ children }) {
  return (
    <html className={inter.variable}>
      <body>{children}</body>
    </html>
  );
}

Font optimization avantajları:

  • Self-hosted (Google Fonts'a harici istek yok)
  • CLS sıfır (font-display: swap)
  • Otomatik subsetting (sadece kullanılan karakterler)

4. Parallel Routes & Streaming

Dashboard ve panel sistemlerinde streaming kritik performans artışı sağlar.

// app/dashboard/layout.tsx
export default function DashboardLayout({
  children,
  analytics,
  notifications
}) {
  return (
    <div>
      <Suspense fallback={<AnalyticsSkeleton />}>
        {analytics}
      </Suspense>
      <Suspense fallback={<NotificationsSkeleton />}>
        {notifications}
      </Suspense>
      {children}
    </div>
  );
}

Streaming ne sağlar:

  • Sayfa parça parça yüklenir
  • Kullanıcı hemen içerik görmeye başlar
  • Yavaş veri kaynağı tüm sayfayı bloklamaz (API entegrasyonları)

Gerçek Dünya Optimizasyon Örnekleri

Örnek 1: E-Ticaret Ürün Sayfası

Önce (Eski Next.js):

  • LCP: 4.2s
  • CLS: 0.28
  • INP: 580ms
  • Bundle size: 280KB

Sonra (Next.js 15):

  • LCP: 1.1s (-74%)
  • CLS: 0.001 (-99%)
  • INP: 120ms (-79%)
  • Bundle size: 85KB (-70%)

Yapılanlar:

  1. Server Components kullanıldı
  2. next/image ile görsel optimizasyonu
  3. Dynamic import ile code splitting
  4. Partial Prerendering ile instant load

Örnek 2: Blog Detay Sayfası

// app/blog/[slug]/page.tsx
import { Suspense } from 'react';

export default async function BlogPost({ params }) {
  const post = await getPost(params.slug);

  return (
    <>
      {/* Kritik içerik hemen yüklenir */}
      <article>
        <h1>{post.title}</h1>
        <div dangerouslySetInnerHTML={{ __html: post.content }} />
      </article>

      {/* Related posts streaming ile lazy load */}
      <Suspense fallback={<RelatedPostsSkeleton />}>
        <RelatedPosts slug={params.slug} />
      </Suspense>

      {/* Comments daha da geç yüklenir */}
      <Suspense fallback={<CommentsSkeleton />}>
        <Comments postId={post.id} />
      </Suspense>
    </>
  );
}

Adım Adım Optimizasyon Checklist

Profesyonel web tasarım hizmetimizle bu optimizasyonları baştan uyguluyoruz.

1. LCP İyileştirme

  • Hero image için priority prop kullan
  • Font'ları next/font ile optimize et
  • CDN kullan (Cloudflare, Vercel Edge) - Altyapı çözümlerimiz
  • Server Components ile initial HTML render hızlandır

2. CLS İyileştirme

  • Tüm image'lara width ve height belirt
  • Font için font-display: swap kullan
  • Dinamik içerikler için placeholder/skeleton ekle
  • Ad slot'ları için reserve space

3. INP İyileştirme

  • Heavy JavaScript'i dynamic import ile lazy load et
  • useTransition kullanarak non-blocking updates yap
  • Debounce/throttle search input'larında
  • Web Worker ile heavy işlemleri offload et

Gerçek Sonuçlar, Gerçek Müşteriler

Projelerimizle elde edilen kanıtlanmış başarı hikayeleri

E-Ticaret A.Ş.

E-Ticaret & Retail

Lighthouse Skoru
45 → 98
+118% iyileştirme

"Next.js 15'e geçiş sonrası sayfa yükleme hızımız %70 arttı. Conversion rate'imiz 2 katına çıktı!"

Tech Startup B

SaaS & B2B

LCP (Largest Contentful Paint)
4.2s → 1.1s
-74% azalma

"Server Components ve Image optimization sayesinde LCP'miz dramatik şekilde iyileşti."

Medya Grubu C

Haber & İçerik

CLS (Cumulative Layout Shift)
0.28 → 0.001
Sıfıra yakın CLS!

"Artık kullanıcılar okurken layout shift yaşamıyor. Bounce rate %35 düştü."

150+
Mutlu Müşteri
12x
Ortalama ROI
+285%
Ortalama Trafik Artışı
4.9/5
Müşteri Memnuniyeti

Next.js 15 Migration Rehberi

Mevcut web sitenizi Next.js 15'e migrate etmek mi istiyorsunuz? İletişime geçin.

1. Mevcut Projeyi Güncelle

npm install next@latest react@latest react-dom@latest

2. App Router'a Geçiş

pages/
  index.tsx → app/page.tsx
  blog/[slug].tsx → app/blog/[slug]/page.tsx
  api/users.ts → app/api/users/route.ts

3. Server Component Refactor

// Önce (Client Component - Gereksiz)
'use client';
import { useEffect, useState } from 'react';

export default function Products() {
  const [products, setProducts] = useState([]);

  useEffect(() => {
    fetch('/api/products').then(r => r.json()).then(setProducts);
  }, []);

  return <div>{products.map(...)}</div>;
}

// Sonra (Server Component - Daha Hızlı)
export default async function Products() {
  const products = await db.product.findMany();
  return <div>{products.map(...)}</div>;
}

Performans Monitoring

Yapay zeka destekli analiz araçlarımızla performansınızı sürekli izleriz.

Vercel Analytics ile İzleme

// app/layout.tsx
import { Analytics } from '@vercel/analytics/react';

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        {children}
        <Analytics />
      </body>
    </html>
  );
}

Google Search Console Core Web Vitals Raporu

  1. Google Search Console → Deneyim → Core Web Vitals
  2. "Kötü URL'ler" varsa detaya gir
  3. PageSpeed Insights ile test et
  4. Önerileri uygula

SSR vs SSG vs ISR - Hangisi Ne Zaman?

Blog sistemlerimizde ISR, e-ticaret çözümlerimizde SSR kullanıyoruz.

SSR (Server-Side Rendering)

Ne zaman: Her request'te dinamik veri (user-specific dashboard)

export const dynamic = 'force-dynamic';

SSG (Static Site Generation)

Ne zaman: Nadiren değişen içerik (blog posts, landing pages)

export default async function BlogPost() {
  // Build time'da çalışır
}

ISR (Incremental Static Regeneration)

Ne zaman: Periyodik güncellenen içerik (ürün kataloğu, haber)

export const revalidate = 3600; // 1 saatte bir

Sonuç

Next.js 15 ile Core Web Vitals optimizasyonu artık çok daha kolay:

  1. Server Components ile sıfır JavaScript
  2. next/image ile otomatik görsel optimizasyonu
  3. Streaming ile instant page load
  4. Font optimization ile CLS sıfır

Ayrıca AEO (Answer Engine Optimization) ile Google AI Overview'da görünürlüğünüzü artırabilirsiniz.

Hemen Başlayın

K-ONTECH olarak işletmenizin web sitesini Next.js 15 ile Core Web Vitals standartlarına optimize ediyoruz. Tüm hizmetlerimizi ve başarı hikayelerimizi inceleyebilirsiniz.

Ücretsiz Danışmanlık İsteyin!

Projeniz için özel çözümlerimizi ve fiyatlarımızı öğrenin. Hemen yanıt veriyoruz!

Online
Ortalama yanıt süresi: 2 dakika
⭐️⭐️⭐️⭐️⭐️ 4.9/5 (127 değerlendirme)

Etiketler: #NextJS #WebPerformance #CoreWebVitals #SEO #WebGeliştirme

Bir Sonraki Adım

Projeniz için ücretsiz ön analiz alın

Bu makalede ele alınan konuları projenize nasıl uygulayacağınızı birlikte değerlendirelim.

Ücretsiz Analiz Al
Bu Makaleyi Paylaş

Yazar Hakkında

K-ONTECH Editorial

K-ONTECH ekibi tarafından hazırlanan içerikler; yazılım, SEO ve dijital dönüşüm projelerimizdeki saha deneyimine dayanır.

Okumaya Devam Et

İlgili Makaleler