Jak szybko sprawdzić, jakie frazy “wypadły” z Google Search Console
Google Search Console w UI trzyma dane maks. ~16 miesięcy i często nie pozwala wygodnie porównywać okresów tak, jak chcesz. Jeśli masz eksport GSC do BigQuery, możesz analizować historię dłużej i robić porównania “tydzień do tygodnia” bez stresu.
Ten snippet odpowiada na proste pytanie: jakie zapytania (queries) były obecne w poprzednim tygodniu, ale nie pojawiły się w tygodniu bieżącym. Dodatkowo pokazuje kliki i wyświetlenia dla tych “utraconych” fraz w poprzednim tygodniu — dzięki temu od razu widzisz, które straty są istotne.
Co dokładnie robi ta logika
- bierze dane z tabeli
searchdata_url_impression, - wyciąga unikalne frazy z poprzedniego tygodnia,
- odejmuje (EXCEPT DISTINCT) unikalne frazy z bieżącego tygodnia,
- filtruje tylko te utracone frazy,
- sumuje clicks i impressions dla poprzedniego tygodnia,
- sortuje po impressions (żeby na górze były “większe” tematy).
Kiedy to ma sens biznesowo
- gdy widzisz spadki widoczności i chcesz szybko znaleźć “co zniknęło”,
- gdy podejrzewasz zmiany w SERP (np. AI Overviews), sezonowość lub update,
- gdy chcesz odsiać szum: utrata long taila bywa neutralna, ale utrata fraz z dużymi impressions często boli.
Na przykładzie porównania fraz tydzień do zeszłego tygodnia:
## See which queries you lost compared to last week
SELECT
last_week.query,
SUM(last_week.clicks) AS total_clicks_last_week,
SUM(last_week.impressions) AS total_impressions_last_week
FROM
`project_name.dataset_name.searchdata_url_impression` AS last_week
WHERE
DATE_TRUNC(last_week.data_date, WEEK) = DATE_SUB(DATE_TRUNC(CURRENT_DATE(), WEEK), INTERVAL 1 WEEK)
AND last_week.query IN (
SELECT
DISTINCT prev_week.query
FROM
`project_name.dataset_name.searchdata_url_impression` AS prev_week
WHERE
DATE_TRUNC(prev_week.data_date, WEEK) = DATE_SUB(DATE_TRUNC(CURRENT_DATE(), WEEK), INTERVAL 1 WEEK)
EXCEPT DISTINCT
SELECT
DISTINCT curr_week.query
FROM
`project_name.dataset_name.searchdata_url_impression` AS curr_week
WHERE
DATE_TRUNC(curr_week.data_date, WEEK) = DATE_TRUNC(CURRENT_DATE(), WEEK)
)
GROUP BY
last_week.query
ORDER BY
total_impressions_last_week DESC;
Jak to ulepszyć (praktycznie, bez przekombinowania)
1) Zmień okres porównania na bardziej “stabilny”
Porównanie tydzień do tygodnia jest szybkie, ale bywa szumne. Często lepiej:
- ostatnie 7 dni vs poprzednie 7 dni (rolling),
- albo ten tydzień vs ten sam tydzień rok temu (sezonowość).
2) Dodaj próg, żeby odsiać long tail
Jeśli chcesz skupić się na realnym wpływie:
- filtruj po
total_impressions_last_week >= X - albo
total_clicks_last_week >= Y
3) Rozszerz wynik o URL / stronę docelową
Jeśli analizujesz przyczynę spadków, zwykle chcesz wiedzieć:
- na jakich stronach te frazy działały,
- czy problem dotyczy konkretnej sekcji serwisu.
Wtedy dorzucasz do SELECT np. url i grupujesz po (query, url).
4) Pamiętaj o definicji “utraconej frazy”
To jest “utrata” w sensie: fraza nie wystąpiła w danych w danym tygodniu (0 impressions).
To nie musi oznaczać kary czy problemu technicznego — czasem to normalna fluktuacja.