Google Trends to potężne narzędzie SEO, które umożliwia analizę popularności konkretnych słów kluczowych na przestrzeni czasu. Wykorzystując dane z tego narzędzia, można zrozumieć, jakie słowa kluczowe są najbardziej istotne dla określonej publiczności, a także jakie tematy są obecnie najpopularniejsze. W tym artykule przedstawię skrypt napisany w Pythonie, który umożliwia automatyczną analizę trendów dla danych słów kluczowych i generowanie szczegółowych raportów, które mogą być używane do optymalizacji SEO.
Google Trends – czym konkretnie jest?
Google Trends to darmowe narzędzie dostępne publicznie, które umożliwia przeglądanie trendów związanych z wyszukiwaniami w Google, pomagając firmom w prowadzeniu kampanii marketingowych. Daje to wgląd w to, jak zmienia się zainteresowanie określonymi słowami kluczowymi w czasie. Narzędzie to pozwala użytkownikom zobaczyć, jakie słowa kluczowe są najpopularniejsze, jakie tematy są najczęściej wyszukiwane, a także jakie są trendy związane z wyszukiwaniami w różnych regionach świata.
Korzyści z wykorzystania Google Trends w SEO
Ta platforma to skarbnica informacji dla specjalistów SEO. Daje możliwość identyfikacji aktualnych trendów, co pozwala na dostosowanie strategii SEO do zmieniających się preferencji użytkowników. Dodatkowo, pomaga zrozumieć sezonowość wyszukiwań – niektóre frazy mogą być popularne tylko w określonym czasie w danym roku, co jest szczególnie istotne w branżach takich jak turystyka czy e-commerce. Na koniec, umożliwia analizę regionalnych trendów, co jest niezwykle przydatne dla firm działających na różnych rynkach.
Skrypt do analizy Google Trends
Przedstawiam skrypt napisany w języku Python. Zanim go użyjesz, upewnij się, że masz poprawnie skonfigurowane środowisko Pythona na swoim komputerze. Jeśli jednak nigdy nie instalowałeś ani nie konfigurowałeś Pythona, to zachęcam Cię do zerknięcia na te poradniki – instalacja na Windows oraz na MacOS – pamiętaj tylko, aby to była wersja od 3 w górę.
Ten skrypt umożliwia wczytywanie wielu słów kluczowych z arkusza Excel lub z tablicy zdefiniowanej w kodzie, co jest niezwykle przydatne dla firm, które chcą skorzystać z automatyzacji w swoim biznesie, a następnie pobiera z Google Trends dane na temat popularności tych słów w określonym czasie i regionie. Skrypt generuje także raport (plik .xlsx), który zawiera informacje o średniej popularności danego słowa kluczowego, jego wartości maksymalnej, najpopularniejszym kwartale i miesiącu, a także powiązanych słowach i tematach. Skrypt sprawdza również czy występuje trend (wzrostowy, spadkowy lub brak trendu) dla danego słowa kluczowego na przestrzeni ustawionego czasu.
import pandas as pd
import time
import xlsxwriter
import math
from pytrends.request import TrendReq
import numpy as np
# Ustawienia
range_of_dates = "2020-06-06 2023-06-06" # Zakres dat dla którego chcemy pobrać dane z Google Trends (format: ROK-MIESIĄC-DZIEŃ).
code_of_country = "PL" # Kraj, dla którego chcemy pobrać dane (tutaj: Polska).
id_of_category = 0 # Kategoria dla słów kluczowych (0 oznacza wszystkie kategorie).
zone_of_time = 360 # Strefa czasowa dla pobieranych danych (360 to UTC+1, czyli czas środkowoeuropejski).
input_xlsx = "keywords.xlsx" # Nazwa pliku Excel z którego będą wczytane słowa kluczowe, gdy keyword_source = 'excel'.
output_xlsx = "report.xlsx" # Nazwa pliku Excel, do którego zostanie zapisany raport.
source_of_keywords = "array" # Źródło słów kluczowych, może być 'array' (tablica w kodzie) lub 'excel' (plik Excel).
delay = 2 # Opóźnienie w sekundach mające zapobiegać blokadom przez Google - optymalnie 5-15 sekund.
set_of_keywords = [
"grill",
"wakacje",
"owoce",
"moda plażowa",
"piłka nożna",
] # Lista słów kluczowych do analizy, gdy keyword_source = 'array'.
# Definiowanie funkcji do obliczania średniej
def average_calculation(array):
return sum(array) / len(array)
# Definiowanie funkcji do obliczania kwartału
def quarter_calculation(value):
return math.ceil(float(value) / 3)
# Definiowanie funkcji do ładowania słów kluczowych z pliku Excela
def excel_keywords_loading():
dataframe = pd.read_excel(input_xlsx)
return dataframe.iloc[:, 0].tolist()
if source_of_keywords == "excel":
set_of_keywords = excel_keywords_loading()
writing_book = xlsxwriter.Workbook(output_xlsx)
writing_sheet = writing_book.add_worksheet()
start_row = 0
start_col = 0
headers_status = False # Flaga do śledzenia, czy nagłówki zostały już napisane
for keyword in set_of_keywords:
google_trends = TrendReq(hl=code_of_country, tz=zone_of_time)
list_of_keywords = [keyword]
google_trends.build_payload(
list_of_keywords,
cat=id_of_category,
timeframe=range_of_dates,
geo=code_of_country,
)
queries_related = google_trends.related_queries()
topics_related = google_trends.related_topics()
interest_time_series = google_trends.interest_over_time().reset_index()
data_dict = {}
if hasattr(interest_time_series, "date"):
data_dict["Słowo kluczowe"] = keyword
for day in range(interest_time_series.date.size):
date_string = (
str(interest_time_series["date"][day].month),
"-",
str(interest_time_series["date"][day].year),
)
date_key = "".join(date_string)
data_dict[date_key] = []
present_month = interest_time_series["date"][0].month
data_for_month = []
for day in range(interest_time_series.date.size):
if present_month != interest_time_series["date"][day].month:
max_month_value = max(data_for_month)
data_for_month.append(average_calculation(data_for_month))
data_for_month.append(quarter_calculation(present_month))
data_for_month.append(max_month_value)
date_string = (
str(interest_time_series["date"][day - 1].month),
"-",
str(interest_time_series["date"][day - 1].year),
)
date_key = "".join(date_string)
data_dict[date_key] = round(data_for_month[-3])
data_for_month = []
present_month = interest_time_series["date"][day].month
data_for_month.append(interest_time_series[keyword][day])
date_string = (
str(interest_time_series["date"][day].month),
"-",
str(interest_time_series["date"][day].year),
)
date_key = "".join(date_string)
data_dict[date_key] = data_for_month
max_month_value = max(data_for_month)
data_for_month.append(average_calculation(data_for_month))
data_for_month.append(quarter_calculation(present_month))
data_for_month.append(max_month_value)
data_dict[date_key] = round(data_for_month[-3])
data_dict["Średnia"] = round(
average_calculation(list(data_dict.values())[1:-1])
)
data_dict["Wartość maksymalna"] = round(max(list(data_dict.values())[1:-1]))
data_dict["Najlepszy kwartał"] = quarter_calculation(
int(
list(data_dict.keys())[
list(data_dict.values()).index(max(list(data_dict.values())[1:-1]))
].split("-")[0]
)
)
data_dict["Najlepszy miesiąc"] = list(data_dict.keys())[
list(data_dict.values()).index(max(list(data_dict.values())[1:-1]))
]
try:
data_dict["Powiązane słowa"] = ",".join(
list(queries_related.values())[0]["top"]["query"]
)
data_dict["Powiązane tematy"] = ",".join(
list(topics_related.values())[0]["top"]["topic_title"]
)
except:
data_dict["Powiązane słowa"] = "Brak"
data_dict["Powiązane tematy"] = "Brak"
# Obliczanie współczynnika kierunkowego prostej regresji liniowej
x = np.array(range(len(data_for_month)))
y = np.array(data_for_month)
a = (len(x) * np.sum(x * y) - np.sum(x) * np.sum(y)) / (
len(x) * np.sum(x * x) - np.sum(x) ** 2
)
# Określenie trendu na podstawie współczynnika kierunkowego
if a > 0:
data_dict["Trend"] = "Wzrostowy"
elif a < 0:
data_dict["Trend"] = "Spadkowy"
else:
data_dict["Trend"] = "Brak trendu"
start_row += 1
time.sleep(delay)
for value in data_dict.values():
writing_sheet.write(start_row, start_col, value)
start_col += 1
start_col = 0
if not headers_status:
for header, _ in data_dict.items():
writing_sheet.write(0, start_col, header)
start_col += 1
headers_status = True # uaktualnienie flagi po napisaniu nagłówków
start_col = 0
print(keyword)
else:
start_row += 1
writing_sheet.write(start_row, start_col, keyword)
writing_sheet.write(start_row, start_col + 1, "Brak wartości w Google Trends")
print(keyword)
writing_book.close()
print(f"Raport został zapisany w pliku {output_xlsx}.")
Konfiguracja skryptu – krok po kroku
Przed rozpoczęciem konfiguracji, należy najpierw zainstalować odpowiednie paczki do Pythona. Uruchom poniższe komendy w terminalu, aby wszystko działało poprawnie (jeśli masz jakieś problemy, to zachęcam do kontaktu ze mną).
pip install pandas
pip install xlsxwriter
pip install pytrends
pip install numpy
Jeśli wszystko już masz zainstalowane, to możemy przejść dalej.
Skonfigurowanie skryptu do własnych potrzeb jest prostsze, niż mogłoby się wydawać. W pierwszej części skryptu, w sekcji “Ustawienia”, dostępne są różne parametry, które można dostosować do indywidualnych wymagań. Oto co oznaczają poszczególne zmienne:
- range_of_dates: Zakres dat, dla którego chcemy pobrać dane z Google Trends. Format daty to “ROK-MIESIĄC-DZIEŃ ROK-MIESIĄC-DZIEŃ”. Na przykład:
"2012-12-12 2023-06-06". - code_of_country: Ta zmienna reprezentuje kraj, dla którego chcemy pobrać dane z omawianego narzędzia. Jest to kod dwuznakowy według standardu ISO 3166-1. Dla Polski jest to “PL”. Wykorzystanie odpowiedniego kodu kraju pozwala na skoncentrowanie się na trendach i zapytaniach specyficznych dla danego obszaru geograficznego, co jest szczególnie przydatne w międzynarodowych strategiach SEO.
- id_of_category: Kategoria dla słów kluczowych. Domyślnie ustawiona na 0, co oznacza wszystkie kategorie. Jeśli potrzebujesz konkretnej kategorii, to odsyłam do świetnego ich zbioru na GitHubie.
- zone_of_time: Ta zmienna to wyznacznik strefy czasowej, który wskazuje na różnicę (w minutach) pomiędzy czasem lokalnym a czasem uniwersalnym koordynowanym (UTC). Oto kilka przykładów:
- Jeżeli chcielibyśmy wybrać czas lokalny dla Londynu (czasu Greenwich, GMT), ustawilibyśmy
zone_of_timena 0, ponieważ GMT nie ma różnicy względem UTC. - Jeżeli interesowałaby nas strefa czasowa Nowego Jorku (czas wschodnioamerykański, EST),
zone_of_timewynosiłby -300, ponieważ EST to UTC-5. - Gdybyśmy chcieli analizować dane dla Tokio (czas standardowy Japonii, JST),
zone_of_timewynosiłby 540, ponieważ JST to UTC+9.
- Jeżeli chcielibyśmy wybrać czas lokalny dla Londynu (czasu Greenwich, GMT), ustawilibyśmy
- input_xlsx: Nazwa pliku Excel, z którego będą wczytane słowa kluczowe, gdy źródło słów kluczowych (
source_of_keywords) ustawione jest na ‘excel’. - output_xlsx: Nazwa pliku Excel, do którego zostanie zapisany raport.
- source_of_keywords: Źródło słów kluczowych. Może być ‘array’ (tablica w kodzie) lub ‘excel’ (plik Excel).
- delay: Opóźnienie w sekundach mające zapobiegać blokadom przez Google. Optymalny czas opóźnienia to 5-15 sekund.
- set_of_keywords: Lista słów kluczowych do analizy, gdy źródło słów kluczowych ustawione jest na ‘array’.
Należy pamiętać, że zmiany w tych ustawieniach powinny odzwierciedlać Twoje indywidualne potrzeby i cele. Po dostosowaniu tych ustawień, skrypt będzie gotowy do użycia.
Przykłady zastosowania dla tego skryptu w SEO
Dla pokazania możliwości użyłem omawianego skryptu na tych 5 słowach kluczowych: grill, wakacje, owoce, moda plażowa, piłka nożna. Tak przedstawiają się wyniki:


Jak widzisz, skrypt działa i do tego dostarcza niesamowicie ważnych informacji – szczególnie dla osób, które robią analizę słów kluczowych dla swoich kampanii marketingowych. Dzięki temu możesz wykorzystać skrypt np. do takich czynności:
- Identyfikacja trendów: Skrypt umożliwia identyfikację trendów w popularności określonych słów kluczowych. Dzięki temu można dostosować strategię SEO do aktualnych trendów.
- Analiza sezonowości: Jest to niezwykle przydatne w przypadku słów kluczowych, które są popularne tylko w określonym czasie roku.
- Analiza regionalna: Skrypt pozwala na analizę regionalnych trendów, co jest szczególnie przydatne dla firm działających na różnych rynkach.
- Odkrywanie nowych słów kluczowych: Dzięki analizie powiązanych słów i tematów, jesteś w stanie odkrywać nowe słowa kluczowe, które mogą przyciągnąć ruch na Twoją stronę.
- Prognozowanie trendów: Dzięki analizie trendów możesz przewidzieć, które słowa kluczowe mogą zyskać na popularności w przyszłości, co pozwoli Ci zareagować na te zmiany z wyprzedzeniem.
- Optymalizacja treści: Skrypt może pomóc Ci optymalizować treści na swojej stronie, poprzez identyfikację tych słów kluczowych, które są najbardziej popularne w danym czasie.
Podsumowanie
Google Trends jest potężnym narzędziem, które może znacznie przyczynić się do sukcesu strategii SEO. Bez względu na to, czy jesteś specjalistą SEO, czy właścicielem strony internetowej, skrypt ten może okazać się dla Ciebie niezwykle użyteczny, aby osiągnąć wysokie wyniki wyszukiwania w Google.