İç linkleme stratejisi ile önemli sayfaya güç aktarmak

Çoğu sitede en çok para kazandıran sayfa, en az iç link alan sayfalardan biridir. Ana menüde yoktur, blog yazıları ona değinmez, ancak dört beş tıklamayla ulaşılır. Sonra "neden sıralamıyor" diye içeriği üçüncü kez yeniden yazarız.

Oysa iç linkler, tamamen sizin kontrolünüzde olan tek link kaynağı. Dışarıdan link almak zaman ve şans işi; içeriden link vermek ise bir öğleden sonralık iş.

İç linkler ne aktarır?

Google'ın belgelerine göre linkler iki iş görür: yeni sayfaların keşfedilmesini sağlar ve sayfaların neyle ilgili olduğunu anlamaya yardım eder. Buna bir üçüncüsünü ekliyorum: site içindeki önem hiyerarşisini gösterir. Google, PageRank'in ilk yayımlandığı halinden çok uzaklaştı ama bir sayfaya ne kadar çok ve ne kadar güçlü sayfadan link geldiği fikri hâlâ geçerli bir sinyal.

Pratikte bu şu demek: ana sayfanız ve dışarıdan en çok link alan sayfalarınız sitenin "güç kaynaklarıdır". Bu sayfalardan hangi sayfalara link verdiğiniz, o gücün nereye aktığını belirler. Önemli sayfanıza hiçbir güçlü sayfadan link gitmiyorsa, Google'a "bu sayfa önemli değil" demiş olursunuz.

Tıklama derinliği

Tıklama derinliği, ana sayfadan bir sayfaya en kısa kaç tıklamayla ulaşıldığıdır. Derin sayfalar daha seyrek taranır ve genelde daha az iç sinyal alır. Benim kuralım: para kazandıran ve sıralanması gereken her sayfa en fazla üç tıklama uzakta olmalı. Bu Google'ın koyduğu bir sınır değil, yıllar içinde oturmuş bir çalışma kuralı.

Derinliği artıran tipik sebepler:

  • Uzun sayfalama zincirleri. Ürün veya yazı listesinin 20. sayfasındaki içerik, ana sayfadan 20'den fazla tıklama uzakta olabilir.
  • Sadece tarih bazlı arşivler. Eski yazılara yalnızca "önceki yazılar" linkleriyle ulaşılıyorsa derinlik hızla büyür.
  • Menüde yalnızca üst kategorilerin olması ve alt kategorilere başka hiçbir yerden link verilmemesi.

Çözüm genelde menüyü şişirmek değil, ara seviyede hub sayfalar kurmak ve içerik içinden bağlam linkleri vermektir.

Hub sayfalar

Hub sayfa, bir konunun tüm alt sayfalarını mantıklı bir sırayla bir araya getiren sayfadır: bir kategori sayfası, bir rehber sayfası, bir "başlangıç noktası" yazısı. İyi bir hub hem kullanıcıya yol gösterir hem de altındaki sayfaları ana sayfaya bir iki tıklama yaklaştırır.

Hub'ın değeri, çift yönlü linklemeden gelir. Hub alt sayfalara link verir, alt sayfalar da hub'a ve birbirine döner. Bu yapıyı içerik planlamasıyla birlikte nasıl kurduğumu konu kümeleri yazısında ayrıntılı anlattım.

Menü ve footer linkleri sitenin her sayfasında aynıdır. Keşif ve kullanıcı gezinmesi için gereklidirler, ama her sayfada tekrar ettikleri için bir sayfayı diğerlerinden ayırt etmeye pek yardım etmezler. Footer'a 80 link dizmek, o 80 sayfayı öne çıkarmaz.

Bağlamsal link ise metin içinde, konuyla ilgili bir cümlenin ortasında verilen linktir. Etrafındaki metin ve anchor text, hedef sayfanın neyle ilgili olduğunu açıkça anlatır. Önemli bir sayfaya güç aktarmak istediğimde önce ilgili yazıların ve kategori metinlerinin içine bağlamsal link eklerim; menü en son düşündüğüm yerdir.

Anchor text

Google'ın link rehberi anchor text için net: açıklayıcı, makul uzunlukta ve hedef sayfayla ilgili olmalı. "Buraya tıklayın", "devamı", "bu yazı" gibi ifadeler hiçbir şey anlatmaz.

Öte uç da sorunlu. Aynı sayfaya giden 200 linkin hepsinde birebir aynı hedef anahtar kelimeyi kullanmak doğal görünmez ve okuyana da bir şey katmaz. Benim yaklaşımım şöyle:

  • Anchor, hedef sayfanın konusunu tarif etsin: "kategori sayfalarında filtre yönetimi" gibi.
  • Varyasyon doğal olarak gelsin: bazen tam sorgu, bazen eş anlamlı ifade, bazen sayfanın başlığı.
  • Cümle anchor olmadan da anlamlı olsun. Link çıkarıldığında cümle bozuluyorsa link zorla yerleştirilmiştir.
  • Aynı sayfadan aynı hedefe birden fazla link vermeye gerek yok.

Yetim sayfalar

Yetim sayfa (orphan page), sitede hiçbir sayfadan iç link almayan sayfadır. Genelde site haritasında vardır, bazen dışarıdan link de alır, ama site içi gezinmeyle ulaşılamaz. Kampanya bittikten sonra menüden kaldırılan sayfalar, yeniden tasarımda kaybolan kategoriler ve eski landing sayfaları tipik örneklerdir.

Yetim sayfaları bulmanın en sağlam yolu üç listeyi karşılaştırmaktır: site haritasındaki URL'ler, bir tarayıcıyla siteyi gezerek bulunan URL'ler ve sunucu loglarında Googlebot'un istediği URL'ler. İlk listede olup ikincide olmayanlar yetimdir. Log tarafını Google'ın hiç ziyaret etmediği sayfaları loglarla bulmak yazısında anlattım; iki analiz birlikte çok iyi çalışır.

Search Console Bağlantılar raporu

Search Console'da Bağlantılar (Links) raporunda "Dahili bağlantılar" (Internal links) bölümündeki "Top linked pages" listesi, hangi sayfalarınızın en çok iç link aldığını gösterir. Bu listeyi "en önemli sayfalarım" listenizle yan yana koyun. Önemli bir sayfa listenin alt sıralarındaysa ya da hiç yoksa, iş çıkmış demektir. Listenin tepesinde gereksiz sayfalar varsa (etiket sayfaları, iletişim formu) link dağılımınız menü ve footer'a teslim olmuş demektir.

Performans raporu ile çaprazlama

Performans raporunda ortalama pozisyonu 4 ile 15 arasında olan sayfalar, iç linkle itilmeye en uygun adaylardır. Bu sayfaları iç link sayılarıyla eşleştirin: pozisyonu yakın ama iç linki az olanlar listenin başına geçer.

Kendi tarama verin

Ücretli tarayıcı kullanmıyorum; basit bir Python betiği tıklama derinliğini ve gelen iç link sayısını çıkarmaya yetiyor. Betik ana sayfadan başlayıp genişlik öncelikli (BFS) tarama yapar, her URL'nin en kısa derinliğini ve kaç farklı sayfadan link aldığını CSV'ye yazar. Site haritası verirseniz yetim adaylarını da listeler.

ic_link_derinlik.py
# Kullanım: python ic_link_derinlik.py https://www.ornek.com/ https://www.ornek.com/sitemap.xml
# Gerekli paketler: pip install requests beautifulsoup4
import csv, sys, time
import xml.etree.ElementTree as ET
from collections import deque
from urllib.parse import urljoin, urldefrag, urlparse
import requests
from bs4 import BeautifulSoup

BASLANGIC = sys.argv[1]
SITEMAP = sys.argv[2] if len(sys.argv) > 2 else None
LIMIT = 5000  # en fazla bu kadar sayfa indirilir
alan = urlparse(BASLANGIC).netloc
oturum = requests.Session()
oturum.headers["User-Agent"] = "ic-link-denetim/1.0"

derinlik = {BASLANGIC: 0}
gelen = {}  # URL -> link veren benzersiz sayfa sayısı
kuyruk = deque([BASLANGIC])
indirilen = 0

while kuyruk and indirilen < LIMIT:
    url = kuyruk.popleft()
    try:
        yanit = oturum.get(url, timeout=10)
    except requests.RequestException:
        continue
    indirilen += 1
    if "text/html" not in yanit.headers.get("Content-Type", ""):
        continue
    soup = BeautifulSoup(yanit.text, "html.parser")
    hedefler = set()
    for a in soup.find_all("a", href=True):
        hedef = urldefrag(urljoin(url, a["href"]))[0]
        if urlparse(hedef).netloc == alan and hedef != url:
            hedefler.add(hedef)
    for hedef in hedefler:
        gelen[hedef] = gelen.get(hedef, 0) + 1
        if hedef not in derinlik:
            derinlik[hedef] = derinlik[url] + 1
            kuyruk.append(hedef)
    time.sleep(0.3)  # sunucuyu yormamak için

with open("ic_linkler.csv", "w", newline="", encoding="utf-8") as f:
    yazici = csv.writer(f)
    yazici.writerow(["url", "derinlik", "gelen_ic_link"])
    for u, d in sorted(derinlik.items(), key=lambda x: (-x[1], x[0])):
        yazici.writerow([u, d, gelen.get(u, 0)])

if SITEMAP:
    kok = ET.fromstring(oturum.get(SITEMAP, timeout=10).content)
    ns = {"s": "http://www.sitemaps.org/schemas/sitemap/0.9"}
    haritadakiler = {loc.text.strip() for loc in kok.findall(".//s:loc", ns)}
    for u in sorted(haritadakiler - derinlik.keys()):
        print("Yetim adayı:", u)

Birkaç not: betik tek bir site haritası dosyası bekler, sitemap index için alt dosyaları ayrıca vermeniz gerekir. LIMIT sitenizin boyutundan küçükse taranmayan sayfalar yanlışlıkla yetim görünür. Parametreli URL'ler de ayrı sayfa sayılır; filtreli bir e-ticaret sitesinde önce parametreleri ayıklamak isteyebilirsiniz. CSV'yi derinliğe göre sıraladığım için en derin sayfalar en üstte çıkar.

Aylık rutin

Her ay yaklaşık bir saat ayırıp şunları yapıyorum:

  • Betiği çalıştırıp derinliği 3'ten büyük olan önemli sayfaları işaretle.
  • Site haritası ile tarama sonucunu karşılaştır, yetim adaylarını kontrol et.
  • Search Console'da "Top linked pages" listesini önceki ayla kıyasla.
  • Performans raporundan 4-15. sıradaki sayfaları çek, iç link sayısı az olanları seç.
  • Seçilen her sayfa için konuyla ilgili 3-5 mevcut yazı bul ve metin içine bağlamsal link ekle.
  • Yeni yayımlanan her yazının en az bir hub sayfadan ve iki ilgili yazıdan link aldığını doğrula.
  • Kırık iç linkleri ve yönlendirme zincirine giden linkleri düzelt; iç linkler doğrudan son URL'yi göstersin.

Özetle

İç linkleme bir kerelik proje değil, bakım işidir. Önemli sayfalar sığ tutulur, hub sayfalar konuları toparlar, güç menüden çok metin içindeki bağlamsal linklerle aktarılır. Anchor text sayfayı tarif eder ama her seferinde aynı kalıbı tekrar etmez. Ayda bir ölçüp düzeltmek, çoğu zaman yeni içerik yazmaktan daha hızlı sonuç verir.

Comments / questions

If you have a question about any topic or wish to contact me: Telegram or send an email to [email protected] Thanks!

Related pages