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.
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.