CMS taşımasından sonra kaybolan URL'leri curl ile bulmak

Site taşımalarında en sık gördüğüm hata şu: yeni site güzel, hızlı, her şey yerinde görünüyor. Ama eski sitede trafik getiren sayfaların bir kısmı hiçbir yere yönlenmiyor. Sonuç: iki ay sonra "trafik neden düştü?" toplantısı.

Bunu önceden yakalamanın en ucuz yolu, eski sitenin arşivdeki URL'lerini alıp yenisinde tek tek denemek.

Arşivden URL listesi

Wayback Machine'in CDX API'si, bir alan adı için arşivlenen bütün URL'leri veriyor. Sadece 200 dönen HTML sayfalarını alıp parametreleri temizliyorum:

curl -s "http://web.archive.org/cdx/search/cdx?url=ornek.com*&output=txt&from=20250101&to=20250331" \
  | awk '$5 == 200 && $4 ~ /text\/html/ {print $3}' \
  | sed 's/[?#].*//' | sort | uniq -c | sort -rn \
  | awk '{print $2}' | head -n 200 > eski-urller.txt

uniq -c | sort -rn kısmı, arşivde en çok görülen URL'leri başa alıyor. Kesin bir ölçü değil ama "önemli" sayfalar için iyi bir tahmin.

Yeni sitede kontrol

xargs -P 8 -I {} curl -s -o /dev/null -w "%{http_code} {}\n" {} < eski-urller.txt \
  | grep -v "^[23]" | sort

-P 8 ile 8 istek paralel gidiyor. Çıktıda sadece 2xx ya da 3xx olmayanlar kalıyor, yani ne içerik veren ne de yönlenen URL'ler.

Sonra ne yapmalı?

DurumNe yapılır
Yeni sitede karşılığı var301 ile yeni adrese yönlendir
İçerik tamamen kaldırıldı404 ya da 410 kalsın, sorun değil
Benzer bir sayfa varGerçekten benzerse yönlendir, değilse zorlama

Her 404 kötü değildir. Kötü olan, ziyaretçisi ve bağlantısı olan bir sayfanın habersizce kaybolması.

Comments / questions

There's no comment section here. If you have a question or want to add something, message me on Telegram or send an email to [email protected]. Thanks!

Related pages