Kullanım alanı

SERP Takibi için Rotating Proxy

Sıralama sorgularını IP havuzuna ve ülke bazında dağıtmak için rotating proxy kullanımı.

Düzenli SERP toplamada çok sayıda sorgu aynı kaynaktan gönderilirse hız sınırına takılmak kolaylaşır. Rotating proxy, sorguları IP havuzuna dağıtır; ülke seçimiyle ölçümlerinizi hedef pazarın coğrafyasına yaklaştırabilirsiniz.

Residential rotating, özellikle ülkeler arası SERP farklarının kritik olduğu senaryolarda tercih edilir. Kota planlaması, tarama sıklığı ve anahtar kelime hacmine göre yapılmalıdır.

SERP Takibi rehberi

SERP takibi için rotating proxy, sıralama sorgularını tek bir çıkış adresine yüklemek yerine bir IP havuzuna yayar ve her pazarı kendi ülkesinden ölçmenizi sağlar. Doğru kurulumda bir sorgu biriminin sayfaları aynı oturumda kalır, birimler arasında IP değişir, hız bütçesi hedefin sınırlarına göre ayarlanır. Rotasyon hız sınırını büyütmez; tutarlılık örnekleme ve kayıtla sağlanır.

Sorgu birimi: rotasyonun SERP verisindeki karşılığı

Rotasyonu konuşmadan önce neyin döndüğünü netleştirmek gerekir. Proxy tarafında dönen şey çıkış IP’sidir; ama SERP verisinde anlam taşıyan en küçük parça tek bir HTTP isteği değil, sorgu birimidir. Sorgu birimi dört değişkenin birleşimidir: anahtar kelime, pazar (ülke ve dil), cihaz profili ve derinlik, yani kaçıncı sonuca kadar bakıldığı. Sayfa başına kaç sonuç döndüğü kaynağa göre değişir; derinlik arttıkça aynı sorgu birimi birden fazla sayfa isteğine bölünür.

Bu ayrımın önemi şuradadır: bir sorgu biriminin sayfaları farklı çıkış IP’lerinden toplanırsa, birinci ve ikinci sayfa aslında iki ayrı ölçümün parçaları olur. Arama motorları aynı sorguya kısa aralıklarla bile küçük farklarla yanıt verebildiği için, bir URL iki sayfada birden görünebilir ya da iki sayfanın arasında kaybolabilir. Sıralama hesabı bu durumda sessizce bozulur: 11. sırada görünen sonuç, aslında başka bir ölçümün 9. sırasıdır ve raporda bunu ayırt etmenin yolu kalmaz.

Bu nedenle SERP toplamada rotasyon aralığı tek bir kuralla özetlenebilir: sorgu biriminin içinde sabit, sorgu birimleri arasında dönen çıkış. Aşağıdaki tablo üç farklı rotasyon aralığının veri üzerindeki etkisini karşılaştırır.

Rotasyon aralığının SERP verisine etkisi
Rotasyon aralığıSayfalar arası tutarlılıkYükün dağılımıUygun olduğu durum
Her istekte yeni IPDüşük: aynı sorgunun sayfaları farklı çıkışlardan gelirEn genişYalnız tek sayfalık sorgu birimleri, örneğin yalnız ilk sayfaya bakılan kelimeler
Sorgu birimi başına oturumYüksek: birimin bütün sayfaları aynı çıkıştan gelirGeniş: her yeni birim ya da örnek yeni IP alırÇok sayfalı derinlik ve öncelikli kelimelerde çoklu örnek
Bütün tur boyunca aynı IPYüksek, ama tek bir noktaya bağlıDar: bütün yük tek çıkışta toplanırSERP toplamada önerilmez; tek IP’nin yaşadığı sorun bütün turu etkiler

Ürün tarafında bu aralıkların nasıl açıldığı farklıdır. Katalogda Rotating IPv4 Residential ve Rotating Mobile için sticky ve rotating oturum seçenekleri, Rotating IPv4 Datacenter için istek başına veya oturum bazlı rotasyon, IPv6 ürünleri için oturum yapılandırmalı rotasyon yazar. Oturumun hangi parametreyle açıldığı ve aynı IP’nin ne kadar süre korunduğu ürün belgelerinde ve panelde tanımlıdır; sorgu biriminin bu süreden kısa sürede tamamlandığından emin olun.

Rotasyon modu ve faturalama: dört ürünün SERP toplamadaki yeri

RotatingProxy kataloğunda bu kullanım alanıyla doğrudan ilişkili dört ürün vardır. Hepsi HTTP, HTTPS ve SOCKS5 destekler; ayrıştıkları nokta IP türü, rotasyon modu ve faturalama modelidir. IPv4 ürünleri tek seferlik GB paketleriyle satılır ve süre sınırı yoktur, kota bitene kadar kullanılır. IPv6 ürünleri port başına aylık faturalanır. Tablodaki birim fiyatlar katalog paketlerinden türetilmiştir.

SERP toplamada ürün, rotasyon modu ve birim maliyet
ÜrünRotasyon modu (katalog)Faturalama ve birim fiyatSERP toplamadaki rolü
Rotating IPv4 ResidentialSticky ve rotating oturumGB bazlı; 10–200 GB paketlerde 1,20 USD/GB, 500 GB’de 1,10, 1000 GB’de 0,90 USD/GBAna masaüstü toplama; sorgu birimi başına oturumla çok sayfalı derinlik
Rotating Mobile (LTE/5G)Sticky ve rotating oturumGB bazlı; 10–50 GB paketlerde 2,50 USD/GB, 100–200 GB’de 2,25 USD/GBMobil sonuçların seçici örneklemi; trafik maliyeti yüksek olduğu için dar tutulur
Rotating IPv4 Datacenterİstek başına veya oturum bazlıGB bazlı; 10–500 GB paketlerde 0,60 USD/GB, 2 GB ve 1000 GB’de 0,50 USD/GBHedefin datacenter trafiğini kabul ettiği pilotla doğrulanmışsa düşük öncelikli, hacimli set
Rotating IPv6 ResidentialOturum yapılandırmalıPort/aylık: 1 port 29, 5 port 80, 10 port 175 USDHedef IPv6 üzerinden yanıt veriyorsa, listelenen 9 ülkede port başına aylık faturalama

Tablodan iki pratik sonuç çıkar. Birincisi, IPv4 Residential’da birim fiyat 10 GB’tan 200 GB’a kadar sabittir; bu aralıkta büyük paket almak GB başına tasarruf sağlamaz, yalnız daha uzun süre yeter. Süre sınırı olmadığı için paketi aylık tüketiminizin katlarına göre değil, nakit akışınıza ve bir sonraki gözden geçirme tarihine göre seçebilirsiniz. İkincisi, IPv6 port paketlerinde port başına en düşük fiyat 5 portluk pakettedir (port başına 16 USD); 10 portluk pakette bu tutar 17,5 USD’ye çıkar. “Büyük paket her zaman ucuzdur” varsayımı burada geçerli değildir.

Rotating IPv6 Datacenter da IPv6 kabul eden hedeflerde hacim için katalogda yer alır. SERP toplamada ise coğrafi doğruluk ve hedef uyumu genellikle önce gelir; bu ürünü ancak hedefin IPv6 üzerinden yanıt verdiği ve datacenter kaynaklı trafiğe olumsuz tepki vermediği bir pilotla doğrulandıktan sonra değerlendirin. Ürünlerin genel karşılaştırması ürün sayfalarında yer alıyor; bu rehber yalnız rotasyon davranışının SERP verisinin kalitesine etkisine odaklanır.

SERP takibi için rotating proxy ile sorguları havuza dağıtmak

Gateway üzerinden çalışan bir rotating üründe size hangi IP’nin verileceğini siz seçmezsiniz; havuz bunu kendi kurallarıyla yapar. Sizin kontrolünüzde dört şey vardır: aynı anda kaç sorgu biriminin çalıştığı, birimlerin kuyruğa hangi sırayla girdiği, iki istek arasındaki aralık ve bir hata geldiğinde ne yapıldığı. Dağıtımın kalitesi bu dört kararın toplamıdır; hangi adresin geleceği bu kararların arasında yer almaz.

Sıra: aynı kelimenin örneklerini birbirinden uzaklaştırın

Bir kelimeyi üç örnekle ölçecekseniz, üç isteği arka arkaya göndermek en kötü sıralamadır. Hedef açısından aynı sorgunun saniyeler içinde üç kez gelmesi doğal bir kullanım örüntüsüne benzemez. Veri açısından da üç örnek aynı anlık durumun kopyası olur ve bağımsız ölçüm sayılmaz. Daha sağlıklı yöntem kuyruğu geçişlere bölmektir: birinci geçişte her öncelikli kelimenin ilk örneği, ikinci geçişte ikinci örneği, üçüncü geçişte üçüncü örneği toplanır. Öncelikli olmayan kelimeler bu geçişlerin arasına paylaştırılır. Böylece aynı kelimenin iki örneği arasında kendiliğinden birkaç saat oluşur.

Pazarları da aynı mantıkla birbirinden ayırın. Dört pazarın kuyruğunu sırayla bitirmek yerine her pazar için ayrı bir çalışan açıp bunları paralel yürütmek, her pazarın kendi hız bütçesini korumasını ve bir pazarda çıkan sorunun diğerlerini durdurmamasını sağlar.

Eşzamanlılık: kanal sayısını hız bütçesinden türetin

Eşzamanlı bağlantı sayısı çoğu zaman “ne kadar çok, o kadar hızlı” mantığıyla seçilir. SERP toplamada doğru sıra tersidir: önce hedef için kabul edilebilir saatlik istek sayısını belirlersiniz, sonra bu sayıyı bir isteğin ortalama süresiyle karşılaştırıp kaç kanala gerçekten ihtiyaç olduğunu hesaplarsınız. Saatte 72 istek planlanan bir pazarda iki istek arasındaki ortalama aralık 50 saniyedir; isteğin tamamlanma süresi bu aralığın yanında kısa kaldığı sürece tek kanal o pazarı taşır. Kanal sayısını artırmak bu durumda toplama süresini kısaltmaz, yalnız yükü kısa anlara yoğunlaştırır.

Eşzamanlı kanal kapasitesi ürüne göre farklı tanımlanır: IPv6 ürünlerinde port sayısı eşzamanlı kanal kapasitesini belirler, IPv4 GB paketlerindeki koşulları ise panelde kontrol edin. Her iki durumda da kanal sayısını paketin izin verdiği üst sınıra göre değil, hız bütçesine göre belirleyin.

IP tekrarını kaydedin, varsaymayın

Rotasyon, her istekte daha önce hiç kullanılmamış bir IP geleceği anlamına gelmez; havuzdaki adresler zaman içinde size yeniden düşebilir. Bu tek başına sorun değildir, ama veriyi yorumlarken bilmeniz gerekir. Her ölçüm satırına çıkış IP’sini yazarsanız, bir günde kaç farklı adres kullandığınızı ve aynı kelimenin örneklerinin gerçekten farklı çıkışlardan gelip gelmediğini sonradan görebilirsiniz.

Çıkış IP’sini öğrenmenin en temiz yolu, kendi kontrol ettiğiniz basit bir IP yankı servisine sorgu biriminin başında tek bir hafif istek atmaktır. Oturumla sabitlenmiş birimlerde bu istek birimin geri kalanıyla aynı çıkıştan geçer; istek başına rotasyonda ise yalnız o anki çıkışı gösterir, birimin sonraki isteklerini değil. Yankı isteği hedefe gitmediği için hedefin hız bütçesine sayılmaz, kotadan düşen trafiği ise ihmal edilebilir düzeyde artırır.

Ülke seçimi: çıkış ülkesi, dil profili ve kapsam listesi

SERP toplamada ülke seçimi aslında iki ayrı karardır ve bunlar sık karıştırılır. Çıkış ülkesi, isteğin hangi ülkeden geldiğini belirler. Dil profili ise sorgu dilini ve arayüz dilini belirler; Accept-Language başlığıyla ve kaynağın dil parametresiyle verilir. Almanya’daki Türkçe konuşan kullanıcıların gördüğü sonuçları ölçmek istiyorsanız çıkış Almanya, dil Türkçe olur. İki kararı ayrı alanlarda tanımlamak, raporda “Almanya” etiketinin hangi kombinasyonu ifade ettiğini netleştirir.

Katalogda IPv4 ürün aileleri (Datacenter, Residential, Mobile) için kapsam notu 180+ ülkedir ve bunların 15’i doğrulanmış öne çıkan lokasyon olarak listelenir. IPv6 Residential için 9, IPv6 Datacenter için 8 ülke listelidir. Aşağıdaki tablo, öne çıkan 15 ülkenin hangi ürün ailesinde listelendiğini gösterir. Listede görmediğiniz bir ülke için siparişten önce güncel kapsamı panelden ya da destekten doğrulayın.

Öne çıkan ülkelerin ürün ailelerine göre listelenmesi
ÜlkeIPv4 aileleri (Datacenter, Residential, Mobile)IPv6 ResidentialIPv6 Datacenter
Amerika Birleşik DevletleriVarVarVar
Birleşik KrallıkVarVarVar
AlmanyaVarVarVar
FransaVarVarVar
TürkiyeVarVarVar
HollandaVarVarVar
KanadaVarVarVar
PolonyaVarVarVar
AvusturyaVarVarListede yok
BrezilyaVarListede yokListede yok
AvustralyaVarListede yokListede yok
JaponyaVarListede yokListede yok
HindistanVarListede yokListede yok
PortekizVarListede yokListede yok
İspanyaVarListede yokListede yok

Tablo bir pratik kuralı görünür kılar: ölçtüğünüz pazarlardan biri yalnız IPv4 sütununda yer alıyorsa, bütün pazarları aynı ürünle ölçmek raporun karşılaştırılabilirliği açısından genellikle daha temizdir. Bir pazarı IPv6 Residential, diğerini IPv4 Residential ile ölçmek mümkündür; ama iki pazar arasındaki farkın ne kadarının ürün farkından geldiğini ayırmak zorlaşır.

Çıkış ülkesini her sorgu biriminde doğrulayın

Ülke seçimi bir kez yapılıp unutulacak bir ayar değildir. Kimlik bilgisinde ya da yapılandırmada yapılan küçük bir değişiklik, bir pazarın kuyruğunu fark ettirmeden başka bir ülkeden çalıştırabilir. En basit önlem, yukarıdaki yankı isteğinden dönen ülke kodunu her sorgu biriminin başında profildeki beklenen ülkeyle karşılaştırmaktır. Uyuşmayan birim hedefe hiç gönderilmez, kayda “ülke uyuşmazlığı” olarak geçer ve hata oranına sayılır. Uyuşmazlıklar birikirse devre kesici o pazarı durdurur.

Eksik bir ölçüm günü, yanlış ülkeden toplanmış bir günden her zaman daha az zararlıdır; çünkü yanlış veri raporda gerçek bir sıralama hareketi gibi görünür. Ayrıca IP konum veritabanlarının birbirinden farklı sonuç verebildiğini unutmayın: bir adres bir veritabanında beklenen ülkede, diğerinde komşu ülkede görünebilir. Doğrulamada tek bir kaynağa bağlı kalın ve uyuşmazlık oranı yükseldiğinde örnek IP’lerle birlikte destekle paylaşın.

Kararları tek bir profil dosyasında toplayın

Pazar başına kararları tek bir profil dosyasında tutmak, ülke, dil, ürün ve hız bütçesinin kodun içine dağılmasını önler. Aşağıdaki örnek, senaryo bölümündeki dört pazardan ikisini gösterir; saatlik istek değerleri hız planı tablosundaki ihtiyacın yukarı yuvarlanmış halidir.

YAML: pazar başına sabit ölçüm profili
# serp-profilleri.yaml: her pazar için değişmeyen ölçüm kararları
varsayilan:
  cihaz: masaustu
  derinlik_sayfa: 2            # ilk 20 sonuç (sayfa başına 10 sonuç varsayımı)
  pencere: "07:00-23:00"       # pazarın yerel saatiyle 16 saatlik toplama penceresi
  tekrar_payi: 0.10
  izlenen_alan: example.com

pazarlar:
  - kod: TR
    cikis_ulkesi: tr
    dil: "tr-TR,tr;q=0.9"
    urun: rotating-ipv4-residential
    proxy_env: PROXY_TR        # değer panelden alınır, depoya yazılmaz
    rotasyon: sorgu_birimi     # sayfalar aynı oturumda, her örnek yeni oturumda
    saatlik_istek: 72
    oncelikli_ornek: 3

  - kod: ES
    cikis_ulkesi: es
    dil: "es-ES,es;q=0.9"
    urun: rotating-ipv4-residential   # İspanya IPv6 Residential listesinde yok
    proxy_env: PROXY_ES
    rotasyon: sorgu_birimi
    saatlik_istek: 33
    oncelikli_ornek: 3

Profil yüklenirken varsayilan alanları her pazarın kaydına birleştirilir; aşağıdaki iskelet birleşmiş sözlüğü bekler. Profilde proxy adresinin kendisi değil, adresi tutan ortam değişkeninin adı yer alır; böylece kimlik bilgileri depoya girmez. Ülke seçiminin kimlik bilgisinin içinde mi, ayrı bir parametrede mi yapıldığı ürüne göre değişebilir; doğru yazımı panelde kontrol edin ve profildeki cikis_ulkesi alanını yalnız doğrulama için kullanın.

Rotasyon ölçüm tutarlılığını bozar mı? Örnekleme ile gürültüyü ölçmek

Rotasyona yöneltilen en yaygın itiraz, her ölçümün başka bir IP’den gelmesinin sıralama verisini oynak hale getireceğidir. İtirazın haklı bir yanı var: aynı ülke içinde bile çıkış adresinin bulunduğu ağ, kişiselleştirme sinyalleri ve arama motorunun o anki deneyleri aynı sorguya küçük farklarla yanıt dönmesine yol açabilir. Ama bu farklar rotasyon olmasa da vardır. Sabit tek bir IP onları ortadan kaldırmaz, yalnız görünmez kılar; tek çıkıştan alınan ölçüm, o çıkışın gördüğü sonucu kesin değer gibi raporlar.

Rotasyonu gürültü kaynağı olarak değil, örnekleme aracı olarak kullanmak tabloyu tersine çevirir. Öncelikli bir kelimeyi gün içinde farklı çıkışlardan üç kez ölçerseniz elinizde bir nokta değil, bir dağılım olur. Üç örneğin medyanı rapordaki sıra olur; en iyi ve en kötü örnek arasındaki fark, yani yayılım, o kelimenin ölçümünün ne kadar güvenilir olduğunu gösterir. Yayılımı sıfır ya da bir olan bir kelimede iki sıralık düşüş anlamlı bir harekettir; yayılımı altı olan bir kelimede aynı düşüş büyük olasılıkla gürültüdür.

Örnek sayısının maliyeti

Örnekleme ücretsiz değildir; her örnek sorgu biriminin bütün sayfalarını yeniden toplar. Aşağıdaki tabloda senaryo bölümündeki öncelikli set kullanılmıştır: 300 anahtar kelime, günlük ölçüm, sorgu birimi başına 2 sayfa, yüzde 10 tekrar payı ve istek başına 150 KB veri. Son üç değer varsayımdır; fiyatlar katalogdaki birim fiyatlardan türetilmiştir.

Öncelikli sette örnek sayısına göre aylık trafik ve maliyet (varsayımsal hacim)
Örnek sayısıAylık istek (payla)Aylık veriIPv4 Residential (1,20 USD/GB)IPv4 Datacenter (0,60 USD/GB)
119.800≈ 2,97 GB≈ 3,56 USD≈ 1,78 USD
239.600≈ 5,94 GB≈ 7,13 USD≈ 3,56 USD
359.400≈ 8,91 GB≈ 10,69 USD≈ 5,35 USD
599.000≈ 14,85 GB≈ 17,82 USD≈ 8,91 USD

Maliyet örnek sayısıyla doğrusal artar; asıl karar, hangi kelimenin bu maliyete değdiğidir. Gelir ya da marka açısından kritik kelimelerde üç örnek iyi bir başlangıçtır, çünkü tek bir uç değer medyanı değiştirmez. İki örnek yayılımı gösterir ama hangi örneğin uç olduğunu söylemez. Beş örnek ise yalnız yayılımı sürekli geniş çıkan ve iş açısından önemli birkaç kelimede anlamlıdır.

Örnekleri birleştirmenin kuralları

  • Yalnız aynı pazar, aynı dil profili, aynı cihaz ve aynı ürünle toplanmış örnekler birleştirilir. Ürün ya da çıkış ülkesi değiştirdiğiniz gün yeni bir seri başlar.
  • Sonucun ilk 20’de bulunmaması bir ölçümdür ve derinliğin bir fazlası, yani 21 olarak sayılabilir. Başarısız bir istek ise ölçüm değildir ve medyana hiç girmez.
  • Geçerli örnek sayısı ikinin altına düşen kelime-gün değerleri raporda “düşük güven” etiketiyle gösterilir.
  • Örneklerin farklı çıkış IP’lerinden geldiği kayıttan kontrol edilir; aynı IP’den gelen örnekler bağımsız sayılmaz ve işaretlenir.
SQL (PostgreSQL): günlük medyan sıra ve örnekler arası yayılım
-- Öncelikli kelimelerde günlük medyan sıra ve örnekler arası yayılım.
-- sira NULL ise sonuç ilk 20 içinde yok demektir; 21 olarak sayılır.
SELECT
  olcum_gunu,
  pazar,
  kelime,
  COUNT(*)                                           AS gecerli_ornek,
  COUNT(DISTINCT cikis_ip)                           AS farkli_ip,
  PERCENTILE_CONT(0.5) WITHIN GROUP
    (ORDER BY COALESCE(sira, 21))                    AS medyan_sira,
  MAX(COALESCE(sira, 21)) - MIN(COALESCE(sira, 21))  AS yayilim
FROM serp_olcum
WHERE durum = 'ok'
  AND oncelikli = TRUE
GROUP BY olcum_gunu, pazar, kelime
HAVING COUNT(*) >= 2
ORDER BY yayilim DESC;

Sorgu, geçerli örneği ikiden az olan kelime-gün satırlarını dışarıda bırakır ve yayılımı en geniş kelimeleri listenin başına getirir. farkli_ip değeri gecerli_ornek değerinden küçükse o kelimenin örneklerinden en az ikisi aynı çıkıştan gelmiştir; bu satırların medyanı, bağımsız örneklerden hesaplanmış gibi yorumlanmamalıdır.

Hız planı: hata ve CAPTCHA oranını düşürmenin meşru yolu

Rotating proxy hakkında yaygın bir yanlış inanç, IP değiştiği sürece istek hızının önemsiz olduğudur. Oysa hedef, gelen trafiği yalnız tek tek IP adresleri üzerinden değerlendirmek zorunda değildir; istek örüntüsüne, zamanlamaya ve toplam yüke de bakabilir. Rotasyon, hedefin size tanıdığı hızı büyütmez. Hata ve doğrulama sayfası oranını düşürmenin sürdürülebilir yolu, toplam yükü hedefin kabul ettiği düzeyde tutmak ve hata sinyali geldiğinde yavaşlamaktır.

Hız planının üç parçası vardır:

  • Bütçe: Her pazar için saatlik en fazla istek sayısı ve günlük toplama penceresi. Bütçe, işin gerektirdiği hızdan değil, hedefin koşullarından ve gözlemlediğiniz hata oranından türetilir.
  • Aralık: İki istek arasındaki bekleme bütçeden hesaplanır ve her seferinde küçük bir rastgele sapma eklenir; böylece pazarların istekleri aynı anlara yığılmaz, yük gün boyunca dengeli kalır.
  • Tepki: 429 yanıtında Retry-After süresine uyulur, birim ertelenir ve o pazarın aralığı büyütülür. Doğrulama sayfası geldiğinde o pazarın kuyruğu o gün için kapanır. Hata alan istek başka bir IP’den hemen tekrarlanmaz.

Senaryo bölümündeki dört pazar için günlük yük ve 16 saatlik bir toplama penceresi varsayıldığında bütçe aşağıdaki gibi hesaplanır. Günlük istek sütunu, öncelikli setin (kelime × 3 örnek × 2 sayfa) ve üç günde bir ölçülen diğer kelimelerin günlük diliminin (üçte biri × 2 sayfa) toplamıdır.

Pazar başına günlük yük ve hız bütçesi (16 saatlik pencere varsayımı)
PazarGünlük istekYüzde 10 paylaSaatlik ihtiyaçOrtalama aralık
Türkiye1.0401.144≈ 71,5≈ 50 sn
Almanya780858≈ 53,6≈ 67 sn
İspanya468≈ 515≈ 32,2≈ 112 sn
Polonya312≈ 343≈ 21,5≈ 168 sn
Toplam2.6002.860≈ 178,8≈ 20 sn (dört pazar birlikte)

Bu tablo bir kontrol aracıdır. Saatlik ihtiyaç, hedef için belirlediğiniz bütçeyi aşıyorsa yapılacak şey hızı artırmak değil, işi küçültmektir: derinliği azaltmak, öncelikli setteki kelime sayısını daraltmak ya da diğer kelimelerin ölçüm sıklığını seyreltmek. Pencereyi genişletmek de bir seçenektir; ama ölçümün günün çok farklı saatlerine yayılması gün içi değişimi veriye kattığı için raporda not edilmelidir. Haftalık mobil örneklem bu tabloya dahil değildir; çalıştığı gün pazar başına en fazla 264 istek (Türkiye: 120 kelime × 2 sayfa × 1,10) ek yük getirir ve o günün bütçesinde hesaba katılmalıdır.

Devre kesici: hata oranı yükselince durmak

Tepki kuralının en önemli parçası, tek tek hatalara değil hata oranına bakmaktır. Her pazar için son 50 sonucu tutan bir pencere düşünün. Pencere içinde başarısız sonuçların oranı belirlediğiniz eşiği, örneğin yüzde 10’u aşarsa, o pazarın kuyruğu örneğin 30 dakika boyunca tamamen durur. Mola bittiğinde aralık iki katına çıkarılmış olarak devam edilir. Aynı gün içinde devre ikinci kez açılırsa pazar o gün için kapanır ve tur raporda eksik işaretlenir. Pencere, eşik ve mola süresi varsayımdır; kendi pilot verinizle ayarlayın.

Bu yaklaşımın iki faydası vardır. Hedefe giden yük, sorun büyümeden kendiliğinden azalır. Ayrıca hatalı yanıtlar ölçüm verisine karışmaz: doğrulama sayfasından sıra çıkarmaya çalışan bir ayrıştırıcı boş sonuç üretir ve bu, raporda yapay bir düşüş olarak görünür.

Python iskeleti: pazar kuyruğu, hız bütçesi ve devre kesici

Aşağıdaki iskelet önceki bölümlerdeki kararları bir araya getirir: her pazar için ayrı bir asenkron çalışan, pazar başına aralık üreten bir bütçe, hata oranına bakan bir devre kesici ve sorgu biriminin sayfalarını tek istemcide toplayan bir fonksiyon. HTTP istemcisi olarak httpx kullanılır; örnek, proxy parametresini destekleyen güncel httpx sürümleri için yazılmıştır ve SOCKS5 kullanacaksanız httpx’in SOCKS ekini ayrıca kurmanız gerekir. Hedef adres HEDEF_URL yer tutucusuyla bırakılmıştır; buraya kullanım koşullarının izin verdiği bir kaynağı ya da lisanslı bir veri sağlayıcısının uç noktasını koyarsınız. Ayrıştırma, doğrulama sayfası tespiti ve IP yankısı kaynağa özel olduğu için bu fonksiyonlar bilinçli olarak boş bırakılmıştır.

Python (asyncio + httpx): pazar başına kuyruk, bütçe ve devre kesici
import asyncio
import os
import random
import time

import httpx

HEDEF_URL = "HEDEF_URL"  # izinli ölçüm kaynağı (yer tutucu)


class Butce:
    """Saatlik istek bütçesinden, sapmalı bir bekleme aralığı üretir."""

    def __init__(self, saatlik, derinlik, sapma=0.25):
        # Bütçe sorgu birimi başınadır: birim = derinlik kadar sayfa isteği.
        self.aralik = 3600 / (saatlik / derinlik)
        self.sapma = sapma
        self.sonraki = time.monotonic()

    async def sira_bekle(self):
        simdi = time.monotonic()
        if self.sonraki > simdi:
            await asyncio.sleep(self.sonraki - simdi)
        kat = random.uniform(1 - self.sapma, 1 + self.sapma)
        self.sonraki = max(simdi, self.sonraki) + self.aralik * kat

    def yavasla(self, kat):
        self.aralik *= kat


class DevreKesici:
    """Son N sonuçta hata oranı eşiği aşarsa açılır (değerler varsayımdır)."""

    def __init__(self, pencere=50, esik=0.10, mola_sn=1800, gunluk_hak=2):
        self.sonuclar = []
        self.pencere, self.esik = pencere, esik
        self.mola_sn, self.kalan_hak = mola_sn, gunluk_hak

    def kaydet(self, basarili):
        self.sonuclar = (self.sonuclar + [basarili])[-self.pencere:]

    def acilmali_mi(self):
        if len(self.sonuclar) < 10:
            return False
        return self.sonuclar.count(False) / len(self.sonuclar) > self.esik


def oturum_proxy_url(pazar, ornek_no):
    # Ortam değişkeni, panelden alınan KULLANICI, ŞİFRE, GATEWAY ve PORT
    # bilgileriyle kurulmuş proxy adresini tutar. Sticky oturumun nasıl
    # açıldığı ürüne göre değişir. Bu satır olduğu gibi bırakılırsa bütün
    # örnekler aynı oturumu paylaşır; ürünün oturum parametresiyle pazar,
    # kelime ve ornek_no değerlerine özgü bir oturum kimliği üretin.
    return os.environ[pazar["proxy_env"]]


async def cikis_bilgisi(istemci):
    # Kendi IP yankı servisinize aynı istemciyle hafif bir istek atıp
    # (ip, ulke_kodu) döndürün. Bu istek hedefe gitmez, bütçeye sayılmaz.
    raise NotImplementedError


def dogrulama_sayfasi_mi(html):
    # Kaynağa özel: doğrulama veya CAPTCHA sayfasını tanıyan kural.
    raise NotImplementedError


def sira_bul(sayfalar, alan):
    # Kaynağa özel: sayfaları sırayla ayrıştırın; alan yoksa None döndürün.
    raise NotImplementedError


async def sorgu_birimi(pazar, kelime, ornek_no, butce):
    """Bir kelimenin tek örneği; bütün sayfalar aynı istemciden gider."""
    sayfalar, bayt = [], 0
    await butce.sira_bekle()  # bütçe aralığı birimin başında, sayfalar arasında değil
    async with httpx.AsyncClient(
        proxy=oturum_proxy_url(pazar, ornek_no),
        timeout=httpx.Timeout(20.0, connect=8.0),
        headers={"Accept-Language": pazar["dil"]},
    ) as istemci:
        try:
            ip, ulke = await cikis_bilgisi(istemci)
        except httpx.HTTPError:
            return "ag_hatasi", None, None, bayt
        if ulke.upper() != pazar["cikis_ulkesi"].upper():
            return "ulke_uyusmazligi", None, ip, bayt
        for sayfa in range(pazar["derinlik_sayfa"]):
            if sayfa > 0:
                await asyncio.sleep(random.uniform(3, 6))  # sayfalar kısa aralıkla
            try:
                yanit = await istemci.get(HEDEF_URL, params={"q": kelime, "sayfa": sayfa})
            except httpx.HTTPError:
                return "ag_hatasi", None, ip, bayt
            bayt += yanit.num_bytes_downloaded
            if yanit.status_code == 429:
                deger = yanit.headers.get("Retry-After", "")
                await asyncio.sleep(int(deger) if deger.isdigit() else 120)
                butce.yavasla(1.5)
                return "ertelendi", None, ip, bayt
            if dogrulama_sayfasi_mi(yanit.text):
                return "dogrulama", None, ip, bayt
            if yanit.status_code != 200:
                return f"http_{yanit.status_code}", None, ip, bayt
            sayfalar.append(yanit.text)
    return "ok", sira_bul(sayfalar, pazar["izlenen_alan"]), ip, bayt


def is_sirasi(oncelikli, diger, ornek_sayisi):
    """Aynı kelimenin örneklerini ayrı geçişlere dağıtır."""
    diger = random.sample(diger, len(diger))
    sira = []
    for n in range(ornek_sayisi):
        gecis = [(k, n) for k in oncelikli]
        gecis += [(k, 0) for k in diger[n::ornek_sayisi]]
        random.shuffle(gecis)
        sira += gecis
    return sira


async def pazar_calisani(pazar, oncelikli, diger, kayit):
    await asyncio.sleep(random.uniform(0, 300))  # pazarlar aynı anda başlamasın
    butce, kesici = Butce(pazar["saatlik_istek"], pazar["derinlik_sayfa"]), DevreKesici()
    for kelime, ornek_no in is_sirasi(oncelikli, diger, pazar["oncelikli_ornek"]):
        durum, sira, ip, bayt = await sorgu_birimi(pazar, kelime, ornek_no, butce)
        kayit(pazar["kod"], kelime, ornek_no, durum, sira, ip, bayt)
        if durum == "dogrulama":
            kayit(pazar["kod"], "-", 0, "gun_kapandi", None, None, 0)
            return  # doğrulama sayfası: bu pazar bugün için kapanır
        kesici.kaydet(durum == "ok")
        if kesici.acilmali_mi():
            kesici.kalan_hak -= 1
            if kesici.kalan_hak == 0:
                kayit(pazar["kod"], "-", 0, "gun_kapandi", None, None, 0)
                return
            kesici.sonuclar.clear()
            butce.yavasla(2.0)
            await asyncio.sleep(kesici.mola_sn)


async def ana(profil, kelimeler):
    satirlar = []
    # varsayilan alanları her pazarın kaydına birleştir
    profiller = [{**profil["varsayilan"], **p} for p in profil["pazarlar"]]

    def kayit(*alanlar):
        satirlar.append((time.strftime("%Y-%m-%d %H:%M:%S"),) + alanlar)

    await asyncio.gather(*(
        pazar_calisani(p, kelimeler[p["kod"]]["oncelikli"],
                       kelimeler[p["kod"]]["diger"], kayit)
        for p in profiller
    ))
    return satirlar

İskelette dikkat edilmesi gereken üç ayrıntı var. Birincisi, sorgu biriminin bütün sayfaları aynı istemci nesnesinden gönderilir; oturum ürün tarafında sticky olarak açıldığında bu, sayfaların aynı çıkıştan gelmesini sağlar. İkincisi, 429 yanıtında istek tekrarlanmaz: birim “ertelendi” olarak kaydedilir, pazarın aralığı büyütülür ve ertelenen birimler bir sonraki çalıştırmada, günde en fazla bir kez olmak üzere yeniden kuyruğa alınır. Üçüncüsü, her satıra yanıtın aktarılan bayt sayısı yazılır.

Bu son sütun pilot haftasında varsayımla yapılan trafik hesabını gerçek veriyle değiştirmenizi sağlar. httpx’in saydığı değer sıkıştırılmış yanıt gövdesidir; başlıklar ve şifreleme yükü dahil değildir. Kotadan düşen trafik bu nedenle biraz daha yüksek çıkabilir. İki değeri birkaç gün yan yana izleyip bir düzeltme katsayısı belirlemek, paket hesabını sağlam bir zemine oturtur.

Senaryo: dört pazar, 1.500 anahtar kelime, üç örnekli öncelik seti

Bir B2B yazılım şirketinin pazarlama ekibini düşünelim. Ürün Türkiye, Almanya, İspanya ve Polonya’da satılıyor; ekip bu dört pazarda toplam 1.500 anahtar kelimenin masaüstü sıralamasını izlemek, öncelikli kelimelerde ise mobil sonuçlara haftalık bir göz atmak istiyor. Fiyatlar RotatingProxy kataloğundan alınmıştır; kelime sayıları, sıklıklar, sayfa derinliği, istek başına veri miktarı ve tekrar payı varsayımdır.

  • Varsayım 1: Kelimeler pazarlara şöyle dağılır: Türkiye 600, Almanya 450, İspanya 270, Polonya 180. Her pazarda kelimelerin yüzde 20’si öncelikli settedir; toplam 300 kelime.
  • Varsayım 2: Öncelikli set her gün üç örnekle ölçülür. Diğer 1.200 kelime üç günde bir, tek örnekle ölçülür; 30 günlük bir ayda bu 10 tur eder.
  • Varsayım 3: Derinlik ilk 20 sonuçtur ve sorgu birimi başına 2 sayfa isteği gerekir.
  • Varsayım 4: İstek başına aktarılan veri, sıkıştırma açık ve yalın bir HTTP istemcisiyle 150 KB’tır; tekrar ve ertelemeler için yüzde 10 pay eklenir. GB’a çevirirken 1.000.000 KB = 1 GB kabul edilmiştir.
  • Varsayım 5: Mobil örneklem yalnız öncelikli 300 kelimeyi kapsar ve haftada bir, tek örnek ve 2 sayfa olarak ayda 4 tur çalışır.

Masaüstü toplama için Rotating IPv4 Residential seçilir: dört pazarın hepsi IPv4 ailesinde listelidir ve sticky oturum, sorgu birimi başına oturum kuralını uygulamaya izin verir. İspanya IPv6 Residential listesinde bulunmadığı için, dört pazarı tek ürünle ölçme ilkesi gereği IPv6 seçeneği bu senaryoda devre dışı kalır.

Senaryonun aylık trafik ve maliyet hesabı (katalog fiyatları, varsayımsal hacim)
KalemHesapSonuç
Öncelikli set, masaüstü300 kelime × 30 gün × 3 örnek × 2 sayfa54.000 istek
Diğer kelimeler, masaüstü1.200 kelime × 10 tur × 1 örnek × 2 sayfa24.000 istek
Masaüstü toplamı, payla78.000 × 1,1085.800 istek
Masaüstü aylık veri85.800 × 150 KB≈ 12,87 GB
Rotating IPv4 Residential12,87 GB × 1,20 USD/GB≈ 15,44 USD/ay eşdeğeri
Mobil örneklem300 × 4 tur × 2 sayfa × 1,10 = 2.640 istek; × 150 KB≈ 0,40 GB
Rotating Mobile0,40 GB × 2,50 USD/GB (10 GB paketin birim fiyatı)≈ 0,99 USD/ay eşdeğeri
Toplam15,44 + 0,99≈ 16,43 USD/ay eşdeğeri

“Aylık eşdeğer” ifadesi bilinçli olarak seçildi. IPv4 paketleri tek seferliktir ve süre sınırı yoktur; gerçek harcama paket alımlarıyla gerçekleşir. Senaryoda 20 GB’lık Residential paket (24 USD) bu tüketimle yaklaşık 46 gün yeter (20 / 12,87 ≈ 1,55 ay). Mobil tarafta 2 GB’lık giriş paketi (4 USD), aylık 0,40 GB tüketimle yaklaşık beş ay dayanır; giriş paketinin koşulları sipariş adımında görünür.

Hesabın en öğretici satırı öncelikli settir. Üç örnekli ölçüm, 12,87 GB’ın 8,91 GB’ını tek başına oluşturur. Öncelikli seti tek örnekle ölçseydiniz masaüstü trafiği 6,93 GB’a, aylık eşdeğer maliyet de yaklaşık 8,32 USD’ye inerdi. Aradaki yaklaşık 7,13 USD, örnekleme ile satın aldığınız şeyin fiyatıdır: her öncelikli kelime için bir yayılım değeri ve tek bir uç ölçümün rapora yansımaması. Bu bedel 300 kelimenin iş değeri yanında küçükse örnekleme korunur; büyükse örnek sayısını düşürmek yerine öncelikli seti daraltmak, ölçüm güvenilirliğini korumanın daha iyi yoludur.

Aynı masaüstü hacmini Rotating IPv4 Datacenter ile toplamak birim fiyat açısından yarı maliyetlidir (12,87 × 0,60 ≈ 7,72 USD). Ancak bu karar fiyattan değil, hedefin datacenter kaynaklı trafiğe verdiği tepkiden alınmalıdır. Pratik bir yol, pilot haftasında tek bir pazarın öncelikli olmayan kelimelerini hem datacenter hem residential ile ölçüp geçerli ölçüm oranını ve sıralamaların uyumunu karşılaştırmaktır. Fark kabul edilebilir düzeydeyse öncelikli olmayan set datacenter’a taşınabilir; öncelikli set ise karşılaştırılabilirlik için tek üründe kalır.

Pilot turdan düzenli toplamaya: adım adım geçiş

Aşağıdaki sıra, hesaplanmış bir planı gerçek veriyle sınamak ve ancak ondan sonra ölçeklemek için tasarlandı. Her adımın çıktısı bir sonraki adımın girdisidir.

  1. Pazar profillerini yazın: Her pazar için çıkış ülkesi, dil profili, cihaz, derinlik, ürün ve ortam değişkeni adını profil dosyasına girin. Profilde olmayan hiçbir ayar kodda sabit değer olarak durmamalıdır.
  2. Küçük bir paketle başlayın: Pilot için giriş paketleri yeterlidir. 2 GB’lık Residential paketi (2,50 USD), senaryodaki 150 KB varsayımıyla yaklaşık 13.000 isteği karşılar.
  3. Çıkışı sınayın: Her pazar için 20–30 hafif yankı isteği gönderin; gelen ülke kodlarını ve farklı IP sayısını kaydedin. Ülke uyuşmazlığı varsa ölçüme geçmeden yapılandırmayı düzeltin.
  4. Oturum davranışını doğrulayın: Sticky açılmış bir istemciden art arda birkaç yankı isteği atıp IP’nin sabit kaldığını, yeni oturumda değiştiğini görün. Oturumun ne kadar süre korunduğunu panelde ve bu testte kontrol edin; sorgu biriminin süresi bundan kısa olmalıdır.
  5. Bütçenin dörtte biriyle başlayın: İlk iki gün saatlik istek değerlerini planlanan bütçenin dörtte biri olarak ayarlayın ve yalnız öncelikli olmayan kelimelerden küçük bir dilimle çalışın.
  6. Üç göstergeyi okuyun: Geçerli ölçüm oranı, doğrulama sayfası ve 429 sayısı, istek başına ortalama bayt. Doğrulama sayfası görüldüyse bütçeyi artırmayın, önce nedenini bulun.
  7. Trafik varsayımını güncelleyin: Pilotta ölçülen istek başına baytı 150 KB varsayımının yerine koyup aylık hesabı yeniden yapın; kendi kaydınızı kota düşümüyle karşılaştırıp düzeltme katsayısını belirleyin.
  8. Örneklemeyi açın: Öncelikli sette üç örneğe geçin ve ilk hafta yayılım dağılımına bakın. Yayılımı sürekli geniş olan kelimeleri ayrı bir listede not edin.
  9. Bütçeyi kademeli büyütün: Hata oranı eşiğin altında kaldıkça saatlik değeri birkaç günde bir artırarak planlanan düzeye çıkın; her artıştan sonra en az bir tam tur gözlemleyin.
  10. Paketi seçin: Ölçülen aylık tüketime göre paket boyutunu belirleyin. Birim fiyatın sabit olduğu aralıkta büyük paket yalnız daha uzun süre yeter, daha ucuza gelmez.

Beşinci ve dokuzuncu adımlar birlikte düşünülmelidir. Pilotun amacı, hedefin hangi yük düzeyinde sorunsuz yanıt verdiğini öğrenmektir ve bu bilgi en düşük yükten başlayıp yukarı çıkarak edinilir. Tersi, yani planlanan hızla başlayıp sorun çıkınca yavaşlamak, hem hedefi gereksiz yere yorar hem de pilot verisini doğrulama sayfalarıyla kirletir; ilk haftanın verisi bu durumda karşılaştırma için kullanılamaz.

Hata, neden, çözüm: rotasyonlu SERP toplamada sık sorunlar

Rotasyonlu bir toplama hattında sorunların önemli bir kısmı proxy bağlantısının kopmasından değil, rotasyonun yanlış birimde ya da yanlış hızda uygulanmasından doğar. Aşağıdaki tablo her sorun için kayıtta hangi alana bakmanız gerektiğini de gösterir; yukarıdaki iskeletin ürettiği satırlar bu teşhis için yeterlidir.

Rotasyonlu SERP toplamada hata → neden → çözüm
HataNedenÇözümKayıtta bakılacak alan
Aynı URL hem 1. hem 2. sayfada görünüyor ya da sayfalar arasında kayboluyorSorgu biriminin sayfaları farklı çıkışlardan toplandıBirimi tek oturumda toplayın; ürününüzde yalnız istek başına rotasyon kullanıyorsanız derinliği tek sayfaya indirinBirim içindeki yinelenen URL sayısı
Bir pazarda “bulunamadı” oranı bir gecede sıçradıDil profili kayboldu ya da çıkış başka ülkeye kaydıPazar kuyruğunu durdurun, son yapılandırma değişikliğini geri alın, dil başlığını ve ülke doğrulamasını kontrol edinulke_uyusmazligi satırları ve o günkü profil sürümü
429 yanıtlarının ardından hata oranı katlanarak artıyorHer hatadan sonra istek yeni IP ile hemen tekrarlanıyor; yük azalmak yerine artıyorRetry-After süresine uyun, birimi ertelemeye alın, pazarın aralığını büyütünertelendi satırlarının saatlere dağılımı
Doğrulama sayfaları her gün aynı saatlerde yoğunlaşıyorPazar kuyrukları aynı anda başlıyor ya da ertelenen işler pencerenin başına yığılıyorBaşlangıç kaydırmasını açın, ertelenen işleri pencereye yayın, o saatlerdeki bütçeyi düşüründogrulama ve gun_kapandi satırlarının saatleri
Öncelikli kelimelerde yayılım beklenenden genişÖrnekler farklı ürünlerden ya da cihaz profillerinden geliyor; aynı IP birden fazla örnek üretmiş olabilirBir pazarda tek ürün ve tek profil kullanın; örneklerin farklı IP’lerden geldiğini doğrulayınfarkli_ip ve gecerli_ornek sütunları
Sticky oturum birimin ortasında değişiyorOturumun korunma süresi, bütçe aralığıyla uzayan sorgu biriminin süresinden kısaDerinliği azaltın ya da bütçeyi birim düzeyinde uygulayın: sayfalar kısa ve sabit aralıkla, birimler bütçe aralığıyla gönderilsinBirimin ilk ve son isteği arasındaki süre
Yalnız yeni eklenen pazarda 407 ya da bağlantı hatasıO pazarın ortam değişkeninde kimlik bilgisi eksik ya da hatalı; IP whitelist kullanılıyorsa toplayıcı sunucunun adresi listede yokDeğeri panelden yeniden kopyalayın, özel karakterleri URL kodlamasıyla yazın, whitelist’i güncelleyinag_hatasi ve http_407 satırlarının pazar kodu
Kota hesaplanandan hızlı tükeniyorDerinlik ya da örnek sayısı artırıldı ama trafik hesabı güncellenmedi; ertelenen işler defalarca deneniyorHesabı derinlik ve örnek çarpanıyla yeniden yapın; ertelenen birimi günde en fazla bir kez kuyruğa alınbayt sütununun gün ve pazar bazında toplamı

Sorun çıktığında ilk refleks daha fazla IP ya da daha sık rotasyon istemektir. Oysa tablodaki hataların hiçbiri bu yolla çözülmez; belirleyici olan, rotasyonun hangi birimde uygulandığı, yükün güne nasıl yayıldığı ve hata sinyallerine nasıl tepki verildiğidir. Teşhisi hızlandırmanın yolu da her satırda durum, pazar, örnek numarası, çıkış IP’si ve bayt alanlarının eksiksiz kaydedilmesidir.

Sınırlar: kullanım koşulları, izinli kaynaklar ve kişisel veri

SERP verisi toplamak meşru bir pazarlama ve analiz faaliyetidir, ama nasıl topladığınız önemlidir. Arama motorlarının ve diğer web sitelerinin kullanım koşulları otomatik sorguları kısıtlayabilir; robots.txt dosyaları hangi yolların otomatik erişime açık olduğunu belirtir. Koşullar kaynaktan kaynağa değişir ve zamanla güncellenir. Proxy, rotating olsun ya da olmasın, bu koşulların dışına çıkma izni vermez; yükümlülük isteği gönderen taraftadır. RotatingProxy hizmeti de yalnız yasal ve meşru amaçlar için kullanılabilir; ayrıntılar Kabul Edilebilir Kullanım sayfasında yer alır.

Toplamaya başlamadan önce üç soruyu yanıtlamak çoğu belirsizliği giderir. Birincisi, bu veriyi zaten resmi bir kanaldan alabiliyor musunuz? Kendi siteniz için gösterim ve ortalama konum verisi arama motorlarının web yöneticisi araçlarında vardır ve proxy gerektirmez; rakip görünürlüğü için resmi API’ler ya da lisanslı SERP veri sağlayıcıları değerlendirilebilir. İkincisi, kaynağın koşulları otomatik sorguya izin veriyor mu ve hangi hızda? Yanıt hayırsa hız planı ya da rotasyon bu durumu değiştirmez. Üçüncüsü, topladığınız alanlarda kişisel veri var mı?

Son soru sanıldığından sık atlanır. SERP takibinde ihtiyaç duyduğunuz alanlar anahtar kelime, pazar, sıra, URL, sonuç türü ve ölçüm meta verisidir. Sonuç parçacıklarında görünebilecek kişi adları, kullanıcı yorumları ya da iletişim bilgileri bu amaç için gerekli değildir. KVKK ve benzeri düzenlemelerin ortak ilkesi olan amaçla sınırlılık ve veri en aza indirme, ayrıştırıcının yalnız gereken alanları saklamasını gerektirir. Ham HTML’yi hata ayıklama için saklıyorsanız saklama süresini kısa tutun ve süre dolunca silin.

Haftalık sağlık kontrol listesi

Toplama hattı kurulduktan sonra sorunlar genellikle sessizce birikir. Aşağıdaki listeyi haftada bir, raporu paylaşmadan önce gözden geçirin. Her madde, bu sayfada anlatılan hata türlerinden birinin erken belirtisini yakalar.

  • Her pazarın bütün turları beklenen çıkış ülkesinden toplandı; ulke_uyusmazligi satırı yok ya da nedeni biliniyor.
  • Doğrulama sayfası nedeniyle kapanan pazar günleri sayıldı; aynı pazarda tekrarlıyorsa o pazarın bütçesi düşürüldü.
  • 429 ve erteleme sayıları geçen haftayla karşılaştırıldı; artış varsa nedeni (yeni kelimeler, derinlik artışı, saat yığılması) bulundu.
  • Öncelikli sette geçerli örnek sayısı ikinin altına düşen kelime-gün oranı kontrol edildi.
  • Farklı IP sayısı geçerli örnek sayısından düşük kalan kelimeler işaretlendi.
  • Yayılımı sürekli geniş olan kelimeler listelendi ve raporda bu kelimeler için tek değer yerine aralık gösteriliyor.
  • Haftalık toplam bayt, plandaki trafik hesabıyla ve kota düşümüyle karşılaştırıldı; sapma belirlediğiniz eşiği, örneğin yüzde 20’yi aşıyorsa hesap güncellendi.
  • Kalan kotanın mevcut tüketim hızıyla kaç gün yeteceği hesaplanıp not edildi.
  • Profil dosyasındaki her değişiklik tarihiyle birlikte değişiklik günlüğüne işlendi; ürünü ya da ülkesi değişen pazarlarda yeni seri başlatıldı.
  • Ayrıştırıcının kaydettiği alanlar gözden geçirildi; kişisel veri içeren alan yok, ham HTML saklama süresi aşılmadı.
  • Ölçüm kaynağının kullanım koşullarında ve robots.txt dosyasında değişiklik olup olmadığına bakıldı.

Liste kısa görünse de rotasyonlu SERP toplamanın asıl işini özetler: rotasyonu doğru birimde uygulamak, ülkeyi her birimde doğrulamak, gürültüyü örneklemeyle ölçmek ve hızı hedefin sınırına göre ayarlamak. Bu dört alışkanlık yerleştiğinde IP havuzu bir engel atlatma aracı değil, sıralama verinize güvenle dayanabileceğiniz bir ölçüm altyapısı olur.

İlgili rehberler

Doğru rotasyonu seçin

Ürünleri karşılaştırın, küçük bir paketle deneyin ve ölçtükten sonra ölçekleyin.