E-Ticaret14 Ocak 202516 dk okumaEnextware Ekibi

Next.js 15 ile Modern E-Ticaret: Performans ve SEO Optimizasyonu

Next.js 15'in yeni özellikleri ile e-ticaret sitelerinde performans ve SEO optimizasyonu. Server Components, Streaming SSR ve Image Optimization teknikleri.

Next.js 15 ile Modern E-Ticaret: Performans ve SEO Optimizasyonu kapak görseli

E-ticaret siteleri için performans ve SEO, satışların anahtarıdır. Next.js 15, bu iki alanda da çığır açan özellikler sunuyor. Bu yazıda, modern e-ticaret sitelerinde Next.js 15'i nasıl kullanacağınızı detaylıca inceleyeceğiz.

Next.js 15 Yeni Özellikler

1. Turbopack ile Lightning-Fast Development

Performans Karşılaştırması:

Webpack: 5.2 saniye
**Turbopack: 0.8 saniye** (%85 daha hızlı!)
Hot Module Replacement: 10x daha hızlı
// package.json
{
  "scripts": {
    "dev": "next dev --turbopack",
    "build": "next build --turbopack"
  }
}

2. Server Components ile Performance Boost

Avantajlar:

JavaScript bundle %40 daha küçük
Time to Interactive (TTI): %30 iyileşme
SEO için server-side rendering
Automatic code splitting
// app/products/[id]/page.tsx
async function ProductPage({ params }: { params: { id: string } }) {
  // Server-side data fetching
  const product = await fetchProduct(params.id);

  return (
    <div>
      <ProductInfo product={product} />
      {/* Client component for interactivity */}
      <AddToCartButton productId={product.id} />
    </div>
  );
}

3. Streaming SSR ile Gradual Rendering

Kullanıcı Deneyimi:

İlk içerik görünümü: <0.5 saniye
Skeleton screens ile smooth loading
Priority-based rendering
import { Suspense } from 'react';

export default function ProductList() {
  return (
    <div>
      <Suspense fallback={<ProductsSkeleton />}>
        <Products />
      </Suspense>

      <Suspense fallback={<ReviewsSkeleton />}>
        <Reviews />
      </Suspense>
    </div>
  );
}

4. Image Optimization 2.0

Next.js Image Component:

Automatic WebP/AVIF conversion
Lazy loading by default
Responsive images with srcset
Blur placeholder support
import Image from 'next/image';

<Image
  src="/products/product-1.jpg"
  alt="Ürün Adı"
  width={800}
  height={600}
  quality={85}
  loading="lazy"
  placeholder="blur"
  blurDataURL="data:image/jpeg;base64,..."
/>

Sonuç: %60 daha küçük dosya boyutu, %40 daha hızlı yükleme

E-Ticaret için SEO Optimizasyonu

1. Metadata ve Open Graph

// app/products/[slug]/page.tsx
import type { Metadata } from 'next';

export async function generateMetadata(
  { params }: { params: { slug: string } }
): Promise<Metadata> {
  const product = await fetchProduct(params.slug);

  return {
    title: `${product.name} - En Uygun Fiyat | Mağaza Adı`,
    description: product.description,
    openGraph: {
      title: product.name,
      description: product.description,
      images: [product.image],
      type: 'product',
    },
    twitter: {
      card: 'summary_large_image',
      title: product.name,
      description: product.description,
      images: [product.image],
    },
  };
}

2. Structured Data (JSON-LD)

Google için zengin snippet'ler:

export default function ProductPage({ product }) {
  const structuredData = {
    "@context": "https://schema.org",
    "@type": "Product",
    "name": product.name,
    "image": product.image,
    "description": product.description,
    "sku": product.sku,
    "offers": {
      "@type": "Offer",
      "price": product.price,
      "priceCurrency": "TRY",
      "availability": "https://schema.org/InStock",
      "seller": {
        "@type": "Organization",
        "name": "Mağaza Adı"
      }
    },
    "aggregateRating": {
      "@type": "AggregateRating",
      "ratingValue": product.rating,
      "reviewCount": product.reviewCount
    }
  };

  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
      />
      {/* Product content */}
    </>
  );
}

3. Dynamic Sitemap Generation

// app/sitemap.ts
import { MetadataRoute } from 'next';

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
  const products = await fetchAllProducts();

  const productUrls = products.map((product) => ({
    url: `https://example.com/products/${product.slug}`,
    lastModified: product.updatedAt,
    changeFrequency: 'weekly' as const,
    priority: 0.8,
  }));

  return [
    {
      url: 'https://example.com',
      lastModified: new Date(),
      changeFrequency: 'daily',
      priority: 1,
    },
    ...productUrls,
  ];
}

Performans Optimizasyonları

1. Database Query Optimization

Prisma ile Efficient Queries:

// lib/db/products.ts
import { prisma } from '@/lib/prisma';

export async function getProductWithRelations(slug: string) {
  return await prisma.product.findUnique({
    where: { slug },
    include: {
      category: true,
      images: true,
      reviews: {
        take: 10,
        orderBy: { createdAt: 'desc' },
        include: { user: true }
      },
      variants: true,
    },
  });
}

2. Redis Caching Strategy

import { Redis } from '@upstash/redis';

const redis = new Redis({
  url: process.env.UPSTASH_REDIS_URL,
  token: process.env.UPSTASH_REDIS_TOKEN,
});

export async function getCachedProduct(id: string) {
  // Check cache first
  const cached = await redis.get(`product:${id}`);
  if (cached) return cached;

  // Fetch from database
  const product = await fetchProduct(id);

  // Cache for 1 hour
  await redis.setex(`product:${id}`, 3600, JSON.stringify(product));

  return product;
}

3. CDN ve Edge Functions

Vercel Edge Functions:

Global dağıtım: <50ms response time
Automatic scaling
Zero cold starts
// middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';

export function middleware(request: NextRequest) {
  const country = request.geo?.country || 'US';

  // Redirect based on country
  if (country === 'TR' && !request.nextUrl.pathname.startsWith('/tr')) {
    return NextResponse.redirect(new URL('/tr', request.url));
  }

  return NextResponse.next();
}

Conversion Rate Optimization (CRO)

1. A/B Testing with Middleware

export function middleware(request: NextRequest) {
  const bucket = Math.random() < 0.5 ? 'a' : 'b';
  const response = NextResponse.next();
  response.cookies.set('bucket', bucket);

  return response;
}

2. Analytics Integration

Google Analytics 4:

// app/layout.tsx
import Script from 'next/script';

export default function RootLayout({ children }) {
  return (
    <html>
      <head>
        <Script
          src={`https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX`}
          strategy="afterInteractive"
        />
        <Script id="google-analytics" strategy="afterInteractive">
          {`
            window.dataLayer = window.dataLayer || [];
            function gtag(){dataLayer.push(arguments);}
            gtag('js', new Date());
            gtag('config', 'G-XXXXXXX');
          `}
        </Script>
      </head>
      <body>{children}</body>
    </html>
  );
}

Başarı Metrikleri

Gerçek Dünya Sonuçları:

Page Load Time: 5.2s → 1.1s (%79 iyileşme)
Conversion Rate: 2.3% → 4.1% (%78 artış)
SEO Ranking: Ortalama +12 sıra
Mobile Performance Score: 68 → 94

Enextware E-Ticaret Çözümleri

Next.js 15 ile e-ticaret sitenizi geliştirmek için bizimle çalışın:

Tam stack development (Frontend + Backend)
Payment gateway entegrasyonları
Admin panel ve dashboard
Mobil app geliştirme
SEO ve performans optimizasyonu

Ücretsiz Danışmanlık: +90 536 628 0007

Ilgili Yazilar

Tum yazilar
Alanya E-Ticaret Sitesi Fiyatları 2026
E-Ticaret

Alanya E-Ticaret Sitesi Fiyatları 2026

Alanya'da e-ticaret sitesi kurmak isteyen markalar için 2026 fiyat aralıkları, başlangıç paketleri ve ödeme, ürün, kargo gibi kapsam farkları.

22 Nisan 2026Oku

Web sitesi ve e-ticaret projenizi doğru kapsamla planlayalım

Ürün yapısı, ödeme akışı, kategori mimarisi ve genel web kurgusunu iş modelinize uygun şekilde netleştirelim.