Sayfa İçi SEO Rehberi: Arama Niyeti ve Semantik SEO
Google'ın içeriği nasıl anladığını öğrenin. Arama niyeti analizi, Entity SEO ve LSI keywords ile semantik optimizasyon stratejileri.
Sayfa İçi SEO Rehberi: Arama Niyeti ve Semantik SEO
Modern SEO artık "anahtar kelime yoğunluğu" hesaplamaktan çok daha karmaşık. Google'ın BERT, MUM ve yapay zeka güncellemeleri, arama motorlarının içeriği anlamsal olarak yorumlamasını sağladı. Bu yazıda, geliştiriciler için arama niyeti analizi, entity-based SEO ve semantik optimizasyon tekniklerini kod örnekleriyle inceliyoruz.
Bu yazı, 5 parçalık Sayfa İçi SEO Rehberi serisinin ilk bölümüdür.
İçindekiler
- Sayfa İçi SEO Neden Değişti?
- Arama Niyeti (Search Intent) Nedir?
- Dört Arama Niyeti Türü
- Arama Niyetini Programatik Analiz Etmek
- Entity SEO: Google'ın Varlık Grafiği
- LSI Keywords ve Semantik İlişkiler
- Pratik Checklist
- Sık Sorulan Sorular
- Sonuç
Sayfa İçi SEO Neden Değişti?
2019'da Google'ın BERT güncellemesi, arama sorgularının bağlamını anlamada devrim yarattı. 2021'deki MUM (Multitask Unified Model) ise 75 dilde anlam çıkarabilme yeteneği getirdi. Bu güncellemeler şu anlama geliyor:
- Anahtar kelime eşleştirmesi yetersiz: "JavaScript nedir" araması yapan kişi ile "JavaScript öğren" araması yapan kişi farklı içerik bekliyor
- Bağlam kritik: Aynı kelime farklı bağlamlarda farklı anlamlar taşıyor
- Kullanıcı niyeti belirleyici: Google, sorgunun arkasındaki amacı anlamaya çalışıyor
Geliştiriciler olarak bu değişimi anlamak, içerik stratejimizi doğru şekillendirmemiz için kritik.
Arama Niyeti (Search Intent) Nedir?
Arama niyeti, kullanıcının bir arama sorgusu yaparken ulaşmak istediği hedeftir. Google, her sorgu için en uygun niyet türünü belirler ve SERP'i (Search Engine Results Page) buna göre şekillendirir.
Niyet-içerik uyumsuzluğu = Sıralama başarısızlığı
Harika bir teknik makale yazabilirsiniz, ancak kullanıcı bir ürün arıyorsa Google sizi göstermeyecektir.
Dört Arama Niyeti Türü
1. Bilgisel (Informational) Niyet
Kullanıcı bir konuyu öğrenmek, anlamak istiyor.
Örnek sorgular:
- "React hooks nasıl çalışır"
- "JavaScript closure nedir"
- "Git rebase vs merge farkı"
İçerik formatı: How-to rehberleri, eğitim yazıları, kavram açıklamaları
Optimizasyon ipuçları:
- Soruyu doğrudan cevaplayan başlıklar kullanın
- İçindekiler tablosu ekleyin
- Kod örnekleri ve görsellerle destekleyin
2. Navigasyonel (Navigational) Niyet
Kullanıcı belirli bir siteye veya sayfaya ulaşmak istiyor.
Örnek sorgular:
- "Next.js documentation"
- "GitHub login"
- "Vercel dashboard"
Strateji: Bu tür sorgular için rekabet etmeyin (zaten hedef site kazanır). Kendi marka isminiz için optimize edin.
3. Ticari Araştırma (Commercial Investigation)
Kullanıcı satın alma öncesi araştırma yapıyor.
Örnek sorgular:
- "En iyi React UI kütüphaneleri"
- "Next.js vs Remix karşılaştırma"
- "Vercel fiyatlandırma 2025"
İçerik formatı: Karşılaştırma tabloları, inceleme yazıları, "en iyi X" listeleri
4. İşlemsel (Transactional) Niyet
Kullanıcı bir aksiyon almaya hazır.
Örnek sorgular:
- "Hosting satın al"
- "Next.js template indir"
- "Web sitesi yaptır İstanbul"
İçerik formatı: Landing page'ler, ürün sayfaları, fiyat sayfaları
Arama Niyetini Programatik Analiz Etmek
Geliştiriciler olarak niyet analizini otomatize edebiliriz. İşte TypeScript ile basit bir niyet sınıflandırma helper'ı:
type SearchIntent = 'informational' | 'navigational' | 'commercial' | 'transactional';
interface IntentPattern {
keywords: string[];
patterns: RegExp[];
contentFormat: string;
}
const intentPatterns: Record<SearchIntent, IntentPattern> = {
informational: {
keywords: ['nedir', 'nasıl', 'neden', 'ne zaman', 'örnek', 'rehber', 'eğitim'],
patterns: [/ne(dir|ler)/i, /nas[ıi]l/i, /rehber/i, /ö[gğ]ren/i],
contentFormat: 'Uzun form makale, kod örnekleri, adım adım rehber'
},
navigational: {
keywords: ['login', 'giriş', 'dashboard', 'docs', 'documentation'],
patterns: [/giri[şs]/i, /resmi site/i, /dokümantasyon/i],
contentFormat: 'Marka sayfası, yönlendirme'
},
commercial: {
keywords: ['en iyi', 'karşılaştırma', 'vs', 'alternatif', 'fiyat', 'inceleme'],
patterns: [/en iyi/i, /kar[şs][ıi]la[şs]t[ıi]r/i, /vs\.?/i, /alternatif/i],
contentFormat: 'Karşılaştırma tablosu, artı/eksi listesi'
},
transactional: {
keywords: ['satın al', 'indir', 'ücretsiz dene', 'fiyat', 'sipariş'],
patterns: [/sat[ıi]n al/i, /indir/i, /ücretsiz/i, /fiyat/i],
contentFormat: 'Landing page, CTA butonları, fiyat tablosu'
}
};
function classifyIntent(query: string): SearchIntent {
const normalizedQuery = query.toLowerCase();
for (const [intent, pattern] of Object.entries(intentPatterns)) {
// Keyword kontrolü
if (pattern.keywords.some(kw => normalizedQuery.includes(kw))) {
return intent as SearchIntent;
}
// Regex pattern kontrolü
if (pattern.patterns.some(p => p.test(normalizedQuery))) {
return intent as SearchIntent;
}
}
// Varsayılan olarak bilgisel
return 'informational';
}
// Kullanım
console.log(classifyIntent('React hooks nasıl kullanılır')); // informational
console.log(classifyIntent('en iyi JavaScript framework')); // commercial
console.log(classifyIntent('hosting satın al')); // transactionalBu helper, içerik stratejinizi planlarken hangi formatta içerik üretmeniz gerektiğini belirlemenize yardımcı olur.
Entity SEO: Google'ın Varlık Grafiği
Google artık kelimeleri değil, varlıkları (entities) anlıyor. Knowledge Graph, milyarlarca varlık ve bunlar arasındaki ilişkileri haritalıyor.
Entity Türleri
- Person: Yazarlar, geliştiriciler, ünlüler
- Organization: Şirketler, açık kaynak projeler
- Product: Yazılımlar, araçlar, kütüphaneler
- Article: Blog yazıları, makaleler
- WebSite: Web siteleri
- SoftwareApplication: Uygulamalar
Entity Markup ile İçerik Yapılandırma
Next.js'te entity-based içerik yapısı oluşturmak için:
// components/SemanticArticle.tsx
interface ArticleProps {
title: string;
author: {
name: string;
url: string;
};
datePublished: string;
children: React.ReactNode;
}
export function SemanticArticle({ title, author, datePublished, children }: ArticleProps) {
return (
<article itemScope itemType="https://schema.org/Article">
<header>
<h1 itemProp="headline">{title}</h1>
<address
itemProp="author"
itemScope
itemType="https://schema.org/Person"
>
<a href={author.url} itemProp="url">
<span itemProp="name">{author.name}</span>
</a>
</address>
<time itemProp="datePublished" dateTime={datePublished}>
{new Date(datePublished).toLocaleDateString('tr-TR')}
</time>
</header>
<div itemProp="articleBody">
{children}
</div>
</article>
);
}Bu yapı, Google'a içeriğinizin bir makale olduğunu, yazarının kim olduğunu ve ne zaman yayınlandığını açıkça söyler.
LSI Keywords ve Semantik İlişkiler
LSI (Latent Semantic Indexing) keywords, ana anahtar kelimenizle anlamsal olarak ilişkili terimlerdir. Google, bu terimlerin varlığını içeriğin derinliğini ölçmek için kullanır.
LSI Keywords Neden Önemli?
"React hooks" hakkında yazıyorsanız, Google şu terimleri de görmeyi bekler:
- useState, useEffect, useContext
- Component lifecycle
- State management
- Functional components
- Custom hooks
Bu terimler olmadan içeriğiniz yüzeysel görünür.
LSI Keyword Bulma Stratejileri
1. Google'ın "İlgili Aramalar" Bölümü
SERP'in altındaki ilgili aramalar, LSI keyword kaynağıdır.
2. Google Autocomplete
Arama kutusuna yazdığınızda çıkan öneriler semantik ilişkileri gösterir.
3. Rakip Analizi
İlk 10 sonuçta hangi terimler ortak kullanılıyor?
4. Programatik Yaklaşım
Daha gelişmiş bir yaklaşım için, içerikten entity ve keyword çıkaran bir fonksiyon:
// lib/semantic-analysis.ts
interface SemanticKeyword {
term: string;
relevance: number;
type: 'entity' | 'keyword' | 'topic';
}
interface ContentAnalysis {
mainTopic: string;
semanticKeywords: SemanticKeyword[];
suggestedAdditions: string[];
}
async function analyzeContentSemantics(content: string): Promise<ContentAnalysis> {
// Basit kelime frekans analizi
const words = content.toLowerCase()
.replace(/[^\w\sığüşöç]/g, '')
.split(/\s+/)
.filter(w => w.length > 3);
const frequency: Record<string, number> = {};
words.forEach(word => {
frequency[word] = (frequency[word] || 0) + 1;
});
// En sık kullanılan terimleri al
const topTerms = Object.entries(frequency)
.sort((a, b) => b[1] - a[1])
.slice(0, 20)
.map(([term, count]) => ({
term,
relevance: count / words.length,
type: 'keyword' as const
}));
return {
mainTopic: topTerms[0]?.term || '',
semanticKeywords: topTerms,
suggestedAdditions: [] // Daha gelişmiş analiz için NLP API kullanılabilir
};
}İçerikte LSI Keywords Kullanımı
LSI keywords'ü doğal şekilde içeriğe yerleştirin:
❌ Kötü (Anahtar kelime doldurma):
"React hooks React hooks kullanarak React hooks öğrenin..."
✅ İyi (Semantik zenginlik):
"React hooks, functional component'larda state yönetimi sağlar.
useState ile local state, useEffect ile side effect'ler,
useContext ile global state paylaşımı yapabilirsiniz..."Pratik Checklist
Her içerik üretiminde bu listeyi kontrol edin:
- Hedef anahtar kelimenin arama niyetini belirle
- SERP'te ilk 10 sonucu analiz et (format, uzunluk, yapı)
- En az 5-7 LSI keyword listesi oluştur
- Entity türlerini belirle (Article, Person, Product vb.)
- Semantik HTML yapısı kullan (article, section, header)
- itemScope/itemProp ile entity markup ekle
- Başlıklarda ve alt başlıklarda LSI keywords kullan
- İlk paragrafta ana anahtar kelimeyi doğal şekilde kullan
- İçerik boyunca semantik terimleri dağıt
Sık Sorulan Sorular
LSI keywords ile long-tail keywords arasındaki fark nedir?
Long-tail keywords daha uzun ve spesifik arama sorgularıdır ("React hooks ile form validation nasıl yapılır"). LSI keywords ise ana konuyla anlamsal olarak ilişkili terimlerdir (hooks, state, useEffect). Long-tail hedefleme stratejisi, LSI ise içerik zenginliği için kullanılır.
Entity SEO küçük siteler için gerekli mi?
Evet. Entity markup (Schema.org) Google'ın sitenizi anlamasını kolaylaştırır. Özellikle yerel işletmeler ve kişisel markalar için önemlidir. Küçük bir site bile doğru entity markup ile daha iyi anlaşılabilir.
Arama niyeti zamanla değişir mi?
Evet. Özellikle teknoloji konularında niyetler değişir. "ChatGPT" 2022'de navigasyonel (siteye ulaşma), 2023'te bilgisel (ne olduğunu öğrenme), 2024'te commercial (alternatifleri karşılaştırma) niyetler taşıdı. İçeriğinizi düzenli olarak güncelleyin.
Semantic SEO için hangi araçlar kullanılmalı?
- Google Search Console: Hangi sorgularda göründüğünüzü görün
- Ahrefs/Semrush: Rakip analizi ve keyword gap
- Surfer SEO: İçerik optimizasyonu önerileri
- Google NLP API: Programatik entity analizi
- Schema Markup Validator: Yapısal veri kontrolü
Her sayfa için ayrı arama niyeti mi belirlemeliyim?
Evet. Her sayfa tek bir ana niyet için optimize edilmeli. Bir sayfada hem bilgisel hem transactional içerik karıştırmak, Google'ın kafasını karıştırır ve sıralama şansınızı düşürür.
Sonuç
Semantik SEO, anahtar kelime odaklı yaklaşımdan anlam odaklı yaklaşıma geçiştir. Bu yazıda öğrendikleriniz:
- Arama niyeti içerik formatınızı belirler
- Entity SEO Google'ın sizi anlamasını sağlar
- LSI keywords içerik derinliğini artırır
- Programatik analiz süreçleri otomatize eder
Bir sonraki yazıda, Teknik Sayfa Yapısı ve Metadata Optimizasyonu konularını inceleyeceğiz: URL yapısı, başlık hiyerarşisi, meta tags ve görsel SEO.
Seri Navigasyonu:
- Arama Niyeti ve Semantik SEO (Bu yazı)
- Teknik Sayfa Yapısı ve Metadata
- İçerik Mimarisi ve Internal Linking
- Schema.org ve JSON-LD
- JavaScript SEO ve Performans
Projenizi Hayata Geçirelim
Web sitesi, mobil uygulama veya yapay zeka çözümü mü arıyorsunuz? Fikirlerinizi birlikte değerlendirelim.
Ücretsiz Danışmanlık Alın