Analiza danych pochodzących z narzędzi SEO przy użyciu Pythona pozwala na głębokie zrozumienie zachowań użytkowników oraz mechanizmów działania wyszukiwarek. Wykorzystanie odpowiednich bibliotek i technik programistycznych umożliwia optymalizację procesów, automatyzację raportowania oraz szybkie podejmowanie decyzji na podstawie rzetelnych danych. Poniższy tekst przedstawia kompleksowe podejście do zbierania, przetwarzania i wizualizacji informacji z narzędzi SEO za pomocą języka Python.
Integracja z API narzędzi SEO
Pierwszym krokiem w procesie analizy jest uzyskanie dostępu do danych. Wiele popularnych narzędzi SEO — takich jak Ahrefs, SEMrush, Moz czy Google Search Console — udostępnia interfejsy API. Za ich pomocą można pozyskać dane dotyczące słów kluczowych, backlinków czy wydajności strony.
Pobrane dane z Google Search Console
Aby zacząć, trzeba założyć projekt w Google Cloud, włączyć usługę Search Console API i pobrać plik z kluczem JSON. W Pythonie używamy pakietu google-auth oraz google-api-python-client. Przykładowy fragment kodu:
from google.oauth2 import service_account
from googleapiclient.discovery import build
SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
KEY_FILE = 'credentials.json'
credentials = service_account.Credentials.from_service_account_file(KEY_FILE, scopes=SCOPES)
service = build('searchconsole', 'v1', credentials=credentials)
response = service.searchanalytics().query(
siteUrl='https://www.twojastrona.pl',
body={
'startDate': '2023-01-01',
'endDate': '2023-03-31',
'dimensions': ['query', 'page'],
'rowLimit': 25000
}
).execute()
W rezultacie otrzymamy surowe dane o zapytaniach, wyświetleniach i współczynniku CTR.
Pobieranie danych z SEMrush i Ahrefs
- SEMrush API — wymaga klucza dostępu z konta. Pakiet requests pozwala na wysyłanie zapytań HTTP i pobieranie JSON.
- Ahrefs API — do generowania raportów linków przychodzących. Odpowiedzi zwracane są w formacie CSV lub JSON, co ułatwia import.
Przetwarzanie i czyszczenie danych
Surowe dane często wymagają przygotowania przed dalszą analizą. Integracja wielu źródeł bywa wyzwaniem, dlatego ważne jest standaryzowanie formatów oraz usuwanie duplikatów.
Ujednolicanie struktur danych z Pandas
Biblioteka pandas to standard de facto w przetwarzaniu zestawów danych. Po wczytaniu JSON lub CSV do obiektów DataFrame możemy wykonać:
- usuwanie duplikatów za pomocą df.drop_duplicates(),
- parsowanie dat — konwersja kolumn do formatu datetime,
- usuwanie wartości null, np. df.dropna() lub df.fillna(’brak’).
Dzięki temu łączymy wyniki z Google Search Console, SEMrush i Ahrefs w jednorodną tabelę z kolumnami takimi jak: zapytanie (keyword), strona docelowa, liczba wyświetleń, linki zewnętrzne, średnia pozycja.
Normalizacja i agregacja metryk
Aby uzyskać pełny obraz, warto obliczyć dodatkowe wskaźniki:
- Współczynnik odrzuceń — z Google Analytics API połączony z danymi o ruchu organicznym.
- Średni czas na stronie — pozwala ocenić jakość treści.
- Liczba unikalnych backlinków — agregowanie z Ahrefs.
Wszystkie wartości można znormalizować w skali 0–1 lub wyrazić jako procenty, co ułatwia porównania między różnymi kampaniami.
Analiza statystyczna i wizualizacja
Po przygotowaniu danych przychodzi czas na ich eksplorację i prezentację wyników. W Pythonie do tego celu idealnie nadają się biblioteki matplotlib, seaborn oraz plotly.
Wykresy dystrybucji i korelacji
Analiza rozkładu pozycji słów kluczowych pomaga zidentyfikować grupy zapytań, które wymagają optymalizacji. Przykład z seaborn:
import seaborn as sns
import matplotlib.pyplot as plt
sns.histplot(df['average_position'], bins=20, kde=True)
plt.title('Rozkład pozycji słów kluczowych')
plt.xlabel('Średnia pozycja')
plt.ylabel('Liczba zapytań')
plt.show()
Korelacje między liczbą backlinków a pozycją w wynikach wyszukiwania również warto zobrazować przy pomocy heatmapy:
corr = df[['backlinks', 'average_position', 'clicks']].corr()
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.title('Korelacja metryk SEO')
plt.show()
Interaktywne dashboardy
Do tworzenia raportów online używamy plotly oraz Dash. Dzięki nim można przygotować dashboardy z:
- interaktywnymi mapami cieplnymi ruchu geograficznego,
- dynamicznymi wykresami trendów,
- filtrami pozwalającymi na szybkie sortowanie wg kampanii lub regionu.
Takie rozwiązanie ułatwia współpracę z klientem oraz śledzenie efektów pozycjonowania w czasie rzeczywistym.
Automatyzacja raportów i optymalizacja procesów
Ostatni etap to wdrożenie skryptów, które regularnie zbierają dane i generują raporty. Można to osiągnąć na kilka sposobów:
Planowanie zadań w cron lub Airflow
System Linux pozwala na zadania cykliczne w cron, ale bardziej rozbudowane workflowy warto organizować za pomocą Apache Airflow. Definiujemy tam DAG (Directed Acyclic Graph) z krokami:
- pobranie danych z API,
- przetworzenie i czyszczenie w Pandas,
- generowanie wykresów,
- wysłanie raportu e-mailem lub zapis do chmury.
Wysyłka raportów i powiadomień
Raport w formacie PDF lub HTML można wygenerować za pomocą bibliotek pdfkit lub Jinja2. Następnie narzędzia takie jak smtplib (e-mail) czy integracja z Slack umożliwiają automatyczne powiadomienia o wynikach. W ten sposób zespół SEO na bieżąco monitoruje:
- wzrost ruchu organicznego,
- zmiany w rankingu kluczowych fraz,
Ciągłe doskonalenie strategii
Dzięki zautomatyzowanym procesom zyskujemy czas, który można przeznaczyć na optymalizację treści i rozbudowę struktury strony. Warto okresowo weryfikować modele analityczne, testować nowe metody modelowania predykcyjnego oraz rozszerzać zestaw źródeł o dane z social media czy narzędzi do monitoringu wydajności (Core Web Vitals).