Teknik rehber

Teknik SEO: Canonical, Yapılandırılmış Veri ve Sayfa Performansı

Canonical etiketleri, yapılandırılmış veri ve sayfa performansı ile teknik SEO'nun temellerini öğrenin. Laravel 13 ve PHP 8.3 uyumlu kod örnekleriyle uygulamalı rehber.

Yazılım geliştirme ve kodlama görseli
Görsel: Unsplash · Görsel kaynağı
Teknik SEO: Canonical, Yapılandırılmış Veri ve Sayfa Performansı

Teknik SEO, arama motorlarının sitenizi doğru anlamasını ve sıralamasını sağlayan altyapısal çalışmalar bütünüdür. Bu yazıda, canonical etiketleri, yapılandırılmış veri (structured data) ve sayfa performansı konularını ele alacak; Laravel 13 ve PHP 8.3 ile uygulanabilir örnekler sunacağız. Resmi dokümantasyonlara dayanarak, doğrulanmış bilgilerle ilerleyeceğiz.

Canonical Etiketi Nedir ve Neden Önemlidir?

Canonical etiketi, bir sayfanın tercih edilen (kanonik) sürümünü belirtir. Aynı içeriğe sahip birden fazla URL varsa (örneğin, parametreli URL'ler, www ve www olmayan sürümler), arama motorlarına hangisinin dizine eklenmesi gerektiğini söyler. Bu, yinelenen içerik sorununu önler ve sıralama sinyallerinin tek bir URL'de toplanmasını sağlar.

Laravel'de canonical etiketi eklemek için genellikle bir yardımcı fonksiyon veya Blade bileşeni kullanılır. Örneğin, bir app/Helpers/SeoHelper.php dosyası oluşturarak dinamik canonical URL'ler üretebilirsiniz:

if (!function_exists('canonical_url')) {
    function canonical_url(): string
    {
        $url = url()->current();
        $query = request()->query();
        // İzleme parametrelerini kaldır
        unset($query['utm_source'], $query['utm_medium'], $query['utm_campaign']);
        if (!empty($query)) {
            $url .= '?' . http_build_query($query);
        }
        return $url;
    }
}

Ardından Blade şablonunuzda <link rel="canonical" href="{{ canonical_url() }}"> şeklinde kullanabilirsiniz. Bu, her sayfa için doğru canonical URL'yi üretir.

Resmi kaynak: Google Canonical URL Dokümantasyonu

Yapılandırılmış Veri (Structured Data) ile Zengin Sonuçlar

Yapılandırılmış veri, içeriğinizin türünü (makale, ürün, etkinlik vb.) arama motorlarına tanımlar. JSON-LD formatı, Google tarafından önerilen yöntemdir. Laravel'de JSON-LD çıktısını yönetmek için bir servis sınıfı oluşturabilirsiniz.

Örneğin, bir blog yazısı için Article şeması:

namespace App\Services;

class StructuredDataService
{
    public function articleSchema(array $data): string
    {
        $schema = [
            '@context' => 'https://schema.org',
            '@type' => 'Article',
            'headline' => $data['title'],
            'description' => $data['excerpt'],
            'author' => [
                '@type' => 'Person',
                'name' => $data['author'],
            ],
            'datePublished' => $data['published_at'],
            'dateModified' => $data['updated_at'],
            'mainEntityOfPage' => [
                '@type' => 'WebPage',
                '@id' => $data['canonical_url'],
            ],
        ];
        return json_encode($schema, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
    }
}

Blade'de: <script type="application/ld+json">{!! $structuredData !!}</script>

Resmi kaynak: Google Yapılandırılmış Veri Dokümantasyonu

Hangi Şemaları Kullanmalısınız?

İçerik türüne göre Article, Product, FAQPage, BreadcrumbList gibi şemalar kullanabilirsiniz. Google'ın zengin sonuçlar galerisinden ilham alabilirsiniz: Rich Results Gallery.

Sayfa Performansı: Core Web Vitals ve Optimizasyon

Sayfa performansı, hem kullanıcı deneyimi hem de SEO için kritiktir. Google'ın Core Web Vitals metrikleri (LCP, FID, CLS) doğrudan sıralamayı etkiler. Laravel'de performansı artırmak için şu adımları izleyebilirsiniz:

  • Önbellekleme: Laravel'in cache() yardımcısı veya Redis ile veritabanı sorgularını ve görünümleri önbelleğe alın.
  • Varlık Optimizasyonu: CSS/JS dosyalarını minimize edin, görselleri WebP formatına dönüştürün ve lazy-load kullanın.
  • Sunucu Yanıt Süresi: PHP OPcache ve JIT (PHP 8.0+) etkinleştirin. Laravel Octane ile uygulamanızı hızlandırın.

Örnek bir görsel optimizasyonu için intervention/image paketi kullanılabilir:

use Intervention\Image\ImageManager;

$manager = new ImageManager(['driver' => 'gd']);
$image = $manager->make('public/uploads/photo.jpg');
$image->resize(800, null, function ($constraint) {
    $constraint->aspectRatio();
})->save('public/uploads/photo-optimized.webp', 80, 'webp');

Resmi kaynak: Web Vitals ve Laravel Octane Dokümantasyonu.

Laravel'de Önbellekleme Örneği

Veritabanı sorgularını önbelleğe almak için:

$posts = Cache::remember('homepage_posts', 3600, function () {
    return Post::with('author')->latest()->take(10)->get();
});

Bu, sayfa yüklenme süresini önemli ölçüde azaltır.

Sonuç

Teknik SEO, canonical etiketleri, yapılandırılmış veri ve sayfa performansı gibi unsurları doğru uygulamakla başlar. Laravel 13 ve PHP 8.3, bu konularda size güçlü araçlar sunar. Resmi dokümantasyonları takip ederek, doğrulanmış ve güncel yöntemlerle sitenizin arama motoru görünürlüğünü artırabilirsiniz. Unutmayın, teknik SEO sürekli izleme ve iyileştirme gerektirir.

🍪
Çerez Kullanımı

Kodumun Hatası, web sitesinin çalışmasını sağlamak ve kullanıcı deneyimini geliştirmek için çerezler kullanabilir. Zorunlu olmayan çerezler için tercihlerinizi belirleyebilir, ayrıntılı bilgiye Çerez Politikamızdan ulaşabilirsiniz.