Eğer binlerce sayfayı yönetiyorsanız (Programatik SEO projesinde olduğu gibi) veya devasa veri kümelerini analiz ediyorsanız, Excel sonunda çökecektir. Python, bu sınırları aşmak için endüstri standardıdır. Tekrarlayan görevleri otomatikleştirmenize, API'lere bağlanmanıza ve milyonlarca satır veriyi saniyeler içinde analiz etmenize olanak tanır.
SEO için Python kullanmak için yazılım mühendisi olmanıza gerek yoktur. Saatlerce süren manuel çalışmayı tek bir komut dosyasıyla değiştirmek için yalnızca birkaç özel kütüphaneyi bilmeniz yeterlidir.
1. SEO Python Yığını
Python'un binlerce kütüphanesi থাকলেও, SEO uzmanları öncelikle şu dördünü kullanır:
- Pandas: "Excel Katili." Milyonlarca satıra sahip veri tablolarını (DataFrames) anında değiştirmenize olanak tanır.
- Requests: Komut dosyanızın, durum kodlarını kontrol etmek veya HTML indirmek için bir tarayıcı gibi web sayfalarını ziyaret etmesini sağlar.
- BeautifulSoup: HTML kodunu okuyan ve belirli öğeleri (H1 etiketleri, meta açıklamaları veya fiyatlar gibi) çıkarmanıza izin veren bir ayrıştırıcıdır.
- Advertools: SERP'leri analiz etmek, siteleri taramak ve GSC verilerini yönetmek için oluşturulmuş özel bir SEO kütüphanesi.
2. Pratik Kullanım Durumu: "Toplu Durum Denetleyicisi"
10.000 URL'lik bir listeniz olduğunu ve hangilerinin bozuk (404) olduğunu bilmeniz gerektiğini hayal edin. Bunları manuel olarak kontrol etmek imkansızdır.
Bunu otomatikleştirmek için requests kütüphanesini kullanan basit bir komut dosyası:
import requests
import pandas as pd
# 1. Kontrol edilecek URL listesi
urls = [
"https://example.com",
"https://example.com/broken-page",
"https://example.com/about"
]
results = []
# 2. Her URL'de döngü
for url in urls:
try:
response = requests.get(url, timeout=5)
# Verileri sakla
results.append({
"URL": url,
"Status Code": response.status_code,
"Redirect": response.url if response.history else "No Redirect"
})
except:
results.append({"URL": url, "Status Code": "Error", "Redirect": "-"})
# 3. Okunabilir bir tabloya kaydet (DataFrame)
df = pd.DataFrame(results)
print(df)
# Çıktı örneği:
# URL Status Code Redirect
# 0 https://example.com 200 No Redirect
# 1 https://example.com/broken 404 No Redirect3. Pratik Kullanım Durumu: Meta Veri Çıkarma (Scraping)
Kalıpları bulmak için rakiplerinizin en iyi 100 sayfasının Başlık Etiketlerini analiz etmeniz gerekiyorsa, BeautifulSoup kullanabilirsiniz.
from bs4 import BeautifulSoup
import requests
url = "https://example.com/blog-post"
response = requests.get(url)
# HTML içeriğini ayrıştır
soup = BeautifulSoup(response.content, 'html.parser')
# Belirli öğeleri çıkar
title = soup.title.string
h1 = soup.find('h1').text
meta_desc = soup.find('meta', attrs={'name': 'description'})['content']
print(f"Title: {title}")
print(f"H1: {h1}")
print(f"Description: {meta_desc}")4. Pratik Kullanım Durumu: API'lerle Çalışma (GSC)
Her gün Google Search Console'da (GSC) "Dışa Aktar"ı tıklamak yerine, verileri otomatik olarak çekmek için Python kullanabilirsiniz. GSC yalnızca 16 aylık geçmişi sakladığından, verilerinizi yedeklemek için bu çok önemlidir.
İş Akışı:
- Google Cloud Platform'da Google Search Console API'sini etkinleştirin.
credentials.jsondosyanızı indirin.- Kimlik doğrulamasını basitleştirmek için
git+https://github.com/joshcarty/google-searchconsolegibi bir sarmalayıcı kütüphane kullanın.
import searchconsole
# Kimlik Doğrulama
account = searchconsole.authenticate(client_config='credentials.json')
webproperty = account['https://www.example.com/']
# Veri İste
report = webproperty.query.range('today', days=-30).dimension('query').get()
# En İyi 5 Sorguyu Yazdır
for row in report[:5]:
print(row.query, row.clicks, row.impressions)5. Pandas ile Veri Analizi
pSEO'da, genellikle veri kümelerini birleştirmeniz gerekir (örneğin, bir "Şehirler" listesini bir "Nüfus Verileri" listesiyle birleştirmek). Excel'de bu yavaş bir DÜŞEYARA (VLOOKUP) gerektirir. Python'da ise anlıktır.
import pandas as pd
# İki CSV dosyasını yükle
df_cities = pd.read_csv("cities.csv") # Sütunlar: [City, State]
df_stats = pd.read_csv("population.csv") # Sütunlar: [City, Population]
# Onları birleştir (VLOOKUP)
df_merged = pd.merge(df_cities, df_stats, on="City", how="left")
# Filtrele: Sadece nüfusu 100.000'den fazla olan şehirleri göster
df_big_cities = df_merged[df_merged['Population'] > 100000]
# pSEO aracınız için yeni CSV'ye aktar
df_big_cities.to_csv("pseo_ready_data.csv", index=False)Sonuç
Python, sizi bir SEO uzmanından bir SEO mühendisine dönüştürür. Excel'i kilitleyecek veri kümelerini yönetmenize ve aksi takdirde saatler sürecek günlük kontrolleri otomatikleştirmenize olanak tanır. Programatik SEO ile ilgilendiğiniz için, veri temizliği için pandas'ta ustalaşmak, öğrenebileceğiniz tek ve en yüksek kaldıraçlı beceridir.