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.

Hizmet kapsamı

nextjs 15 e-ticaret optimizasyonu için teklif ve kapsam

Bu rehber karar vermenize yardımcı olur. Proje kapsamı, başlangıç paketi, fiyat aralığı ve teklif akışı için ilgili çözüm sayfasına geçebilirsiniz.

Kapsamı incele
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

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.