İçeriğe geç
SEO

Python ile Google Search Console API Veri Çekimi ve Analizi

27 Ağustos 2026 Kerem Kırbıyık 3 dk okuma
Python ile Google Search Console API bağlantısı ve veri analitiği komut satırı arayüzü

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:

  1. Google Cloud Console’da yeni bir proje açın ve Google Search Console API’yi etkinleştirin.
  2. IAM ve Yönetim > Hizmet Hesapları alanından bir servis hesabı oluşturup JSON formatında özel anahtarını (credentials.json) indirin.
  3. İndirilen JSON içindeki client_email adresini (örn: seo-bot@proje.iam.gserviceaccount.com) kopyalayın.
  4. 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 while döngüsü kurularak startRow değ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

Daha kapsamlı destek için: SEO Danışmanlığı hizmetimize göz atın.

Bu yazı faydalı oldu mu?