Google Search Console web arayüzü, performans raporlarında tek seferde en fazla 1.000 satırlık veri indirmeye izin verir. Yüksek trafik alan sitelerde bu kısıtlama, uzun kuyruklu (long-tail) anahtar kelimelerin önemli bir kısmının tablolarda görünmemesine yol açabilir.
Python ile Google Search Console Search Analytics API’sine bağlanarak; 25.000 satırlık bloklar halinde veri çekebilir, sayfa-sorgu eşleşmelerini veri tabanına aktarabilir ve anahtar kelime yamyamlığını (Keyword Cannibalization) analiz edebilirsiniz.
1. Google Cloud Console ve Servis Hesabı (Service Account) Kurulumu
GSC API’sine sürekli erişim sağlamak için bir Google Cloud Servis Hesabı oluşturulmalıdır:
- Google Cloud Console’da yeni bir proje açın ve
Google Search Console API’yi etkinleştirin. - IAM ve Yönetim > Hizmet Hesapları alanından bir servis hesabı oluşturup JSON formatında özel anahtarını (
credentials.json) indirin. - İndirilen JSON içindeki
client_emailadresini (örn:seo-bot@proje.iam.gserviceaccount.com) kopyalayın. - Google Search Console > Ayarlar > Kullanıcılar ve İzinler sekmesine giderek bu e-postaya Salt Okunur veya Kısıtlı izin tanımlayın.
2. Python ile 25.000 Satırlık Veri Çekme Betiği
Gerekli kütüphaneleri kurun:
pip install google-api-python-client google-auth pandas
Aşağıdaki Python kodu, belirlenen tarih aralığındaki tüm anahtar kelimeleri ve hedef sayfaları CSV’ye aktarır:
from google.oauth2 import service_account
from googleapiclient.discovery import build
import pandas as pd
KEY_FILE_LOCATION = 'credentials.json'
SITE_URL = 'sc-domain:seobify.com' # Domain mülkleri için sc-domain: ön eki zorunludur
credentials = service_account.Credentials.from_service_account_file(
KEY_FILE_LOCATION,
scopes=['https://www.googleapis.com/auth/webmasters.readonly']
)
service = build('searchconsole', 'v1', credentials=credentials)
request = {
'startDate': '2026-06-01',
'endDate': '2026-08-20',
'dimensions': ['query', 'page', 'device', 'country'],
'rowLimit': 25000,
'startRow': 0
}
response = service.searchanalytics().query(siteUrl=SITE_URL, body=request).execute()
rows = response.get('rows', [])
data = []
for row in rows:
data.append({
'Query': row['keys'][0],
'Page': row['keys'][1],
'Device': row['keys'][2],
'Country': row['keys'][3],
'Clicks': row['clicks'],
'Impressions': row['impressions'],
'CTR': round(row['ctr'] * 100, 2),
'Position': round(row['position'], 1)
})
df = pd.DataFrame(data)
df.to_csv('gsc_full_search_analytics.csv', index=False, encoding='utf-8-sig')
print(f"Toplam {len(df)} satırlık veri başarıyla kaydedildi.")
İpucu (Sayfalama - Pagination): 25.000 satırdan fazla verisi olan büyük web sitelerinde, bir
whiledöngüsü kurularakstartRowdeğeri her adımda 25.000 artırılabilir (0, 25000, 50000...). Böylece API’deki tüm ham veri bloklar halinde eksiksiz çekilir.
3. Python pandas ile Otomatik Kanibalizasyon Analizi
Aynı sorguda birden fazla URL’nin sıralama yarışı yapıp yapmadığını tespit eden filtreleme:
# Aynı anahtar kelimede 1'den fazla benzersiz sayfa sıralanmış mı?
cannibalization = df.groupby('Query').filter(lambda x: x['Page'].nunique() > 1)
# En çok gösterim alan çatışmalı kelimeleri özetle
summary = cannibalization.groupby(['Query', 'Page'])[['Clicks', 'Impressions', 'Position']].sum().reset_index()
print(summary.head(20))
Bu çıktı; iki farklı sayfanın aynı arama niyetinde birbirinin sıralamasını aşağı çektiği durumları net olarak listeler.
Sıkça Sorulan Sorular
Search Console API günlük istek limiti nedir?
Google Cloud standart projelerinde günlük 100.000.000 QPD (Queries Per Day) kotası bulunur; bu da büyük siteler için fazlasıyla yeterlidir.
Regex filtreleri API çağrısına eklenebilir mi?
Evet. API isteği içine dimensionFilterGroups eklenerek yalnızca belirli alt dizinler (/blog/) veya belirli regex kalıpları filtrelenebilir.
Stratejik Sonuç
GSC API’sini Python ile entegre etmek, SEO analizlerinizi sınırlı tablolardan kurtarıp kurumsal seviyede bir veri ambarına dönüştürür. İleri düzey analiz ve optimizasyon süreçleri için SEO danışmanlığı çözümlerimizi inceleyin.
İlgili Yazılar
- Google Search Console: Kapsamlı Kullanım ve Performans Analizi
- Google Search Console ile Instagram ve YouTube Performansı Nasıl İzlenir?
- How to Track Instagram and YouTube in Google Search Console
- Google Search Console Performans Raporu Okuma Rehberi
- Google Search Console ile Bağlantı Analizi ve Link Denetimi
Daha kapsamlı destek için: SEO Danışmanlığı hizmetimize göz atın.