LW IT Solutions
« Blog Overview /Digital Marketing/Tutorials / Tutorial: Dashboard widoczności SEO i GEO na...
This post in other languages:

Tutorial: Dashboard widoczności SEO i GEO na bazie Google Search Console API

Tutorial: Dashboard widoczności SEO i GEO na bazie Google Search Console API
Spis treści
  1. Co daje API, a czego nie daje interfejs
  2. Dwie reguły regexu, od których wszystko zależy
  3. Zamiana tematów w klastry
  4. Odczyt dashboardu
  5. Czego te dane nie powiedzą o wynikach generatywnych
  6. Pozostając w granicach

Interfejs Search Console odpowiada na jedno zapytanie naraz. Pokazuje górne wiersze, eksportuje ich tysiąc i nie daje sposobu, by zapytać, czy widoczność dla całego tematu rośnie, podczas gdy wyszukiwania markowe jedynie utrzymują poziom. To pytanie wymaga pogrupowanych zapytań, a grupowanie wymaga zarówno większej liczby wierszy, niż wydaje interfejs, jak i miejsca, w którym da się te grupy zdefiniować.

Poniższy przewodnik buduje dokładnie to: pobranie danych przez Search Console API, kategoryzację zapytań wyrażeniami regularnymi w Looker Studio i odczyt powstałych klastrów — wraz z uczciwym opisem tego, czego te dane nie pokażą o odpowiedziach generowanych wprost na stronie wyników.

Zapytania pobrane z Search Console API przechodza przez jedno pole obliczeniowe z regexem i wpadaja do czterech workow - marka, dwa klastry tematyczne i worek bez dopasowania - pokazanych jako poziomy wypelnienia
Klastry odpowiadają, po czym witryna jest znajdowana; w worku bez dopasowania chowa się kolejny klaster.

Co daje API, a czego nie daje interfejs

Raport skuteczności eksportuje do tysiąca wierszy. Metoda searchanalytics.query z API zwraca do 25 000 na żądanie i przechodzi przez resztę za pomocą startRow — to różnica między widzeniem czoła rozkładu a widzeniem długiego ogona, w którym nowe tematy pojawiają się najpierw.

POST https://searchconsole.googleapis.com/webmasters/v3/sites/
     https%3A%2F%2Fexample.com%2F/searchAnalytics/query

{
  "startDate": "2026-07-01",
  "endDate": "2026-07-31",
  "dimensions": ["query"],
  "rowLimit": 25000,
  "startRow": 0,
  "dimensionFilterGroups": [{
    "filters": [{
      "dimension": "query",
      "operator": "includingRegex",
      "expression": "(?i)(cena|koszt|licencj)"
    }]
  }]
}

Na potrzeby dashboardu natywny konektor Search Console w Looker Studio wywołuje to samo API bez żadnego kodu — praktyczna droga, o ile dane i tak nie trafiają do hurtowni. Jedno ograniczenie strukturalne warto znać przed jakimkolwiek projektowaniem: konektor oferuje tabelę na poziomie usługi, w której istnieje wymiar zapytania, oraz tabelę na poziomie adresu URL, w której istnieje strona docelowa, a zapytania i strony docelowej nie da się połączyć. To właściwość samych danych Search Console, a nie usterka konektora, i żadne pole obliczeniowe tego nie obejdzie.

Dwie reguły regexu, od których wszystko zależy

Oba miejsca, w których można napisać wyrażenie regularne, zachowują się inaczej, niż przywykli ludzie znający regex skądinąd.

Search Console używa RE2, bez lookahead i bez lookbehind. Znana sztuczka na non-brand — negatywny lookahead wykluczający nazwę marki — po prostu się nie skompiluje. Wspieranym podejściem jest odwrócenie samego filtra: własny filtr regex ustawiony na nie pasuje, z wzorcem marki jako wyrażeniem.

REGEXP_MATCH w Looker Studio wymaga, żeby wzorzec dopasował całą wartość pola, a nie jej fragment. Wzorzec acme trafi wyłącznie zapytanie będące dokładnie słowem acme; żeby trafić każde zapytanie je zawierające, trzeba wypisać symbole wieloznaczne:

-- Pole: marka vs non-brand
CASE
  WHEN REGEXP_MATCH(Query, '(?i).*(acme|acme corp|acmecorp|acme app).*')
    THEN 'Marka'
  ELSE 'Non-brand'
END

Flaga (?i) czyni dopasowanie niewrażliwym na wielkość liter w obu systemach, a alternatywę marki warto od początku wypełnić hojnie: literówki, zapis z odstępem i bez oraz nazwa produktu należą do worka marki, ponieważ każda pozostawiona poza nim zawyża liczbę non-brand o wyszukiwania, których nigdy nie wygrano treścią.

Zamiana tematów w klastry

Ta sama konstrukcja, rozbudowana, staje się wymiarem, na którym opiera się dashboard. Kolejność ma znaczenie — wygrywa pierwsza pasująca gałąź, więc marka należy na początek, inaczej markowe wyszukiwanie funkcji wyląduje w klastrze tej funkcji:

-- Pole: klaster zapytania
CASE
  WHEN REGEXP_MATCH(Query, '(?i).*(acme|acmecorp).*')             THEN 'Marka'
  WHEN REGEXP_MATCH(Query, '(?i).*(cena|koszt|ile kosztuje).*')   THEN 'Cennik'
  WHEN REGEXP_MATCH(Query, '(?i).*(integrac|api|webhook|sync).*') THEN 'Integracje'
  WHEN REGEXP_MATCH(Query, '(?i).*(vs |alternatyw|porownan).*')   THEN 'Porownania'
  ELSE 'Bez dopasowania'
END

Zachowanie wyraźnej gałęzi Bez dopasowania zamiast etykiety zbiorczej sprawia, że pole daje się utrzymywać. Ten worek jest listą roboczą: posortowany po wyświetleniach wypisuje popyt, którego taksonomia jeszcze nie ujmuje — i każdy klaster po pierwszych dwóch powstaje zwykle z lektury tej listy.

Odczyt dashboardu

Przy wymiarze klastra wystarczą trzy wykresy. Wyświetlenia według klastra w czasie pokazują, czy widoczność się poszerza, czy zawęża. Kliknięcia i CTR według klastra pokazują, czy ta widoczność zamienia się w wizyty. Tabela zapytań bez dopasowania zasila kolejną iterację taksonomii.

Pułapką tego widoku jest klaster marki. Wyszukiwania markowe rosną wraz z rozpoznawalnością, kampaniami i sezonowością, a konwertują znacznie lepiej niż cokolwiek innego — zdrowo wyglądająca suma może więc ukrywać pod sobą kurczące się klastry non-brand. Raportowanie marki i non-brand jako osobnych linii, zamiast jednej sumy widoczności, utrzymuje to na widoku.

Czego te dane nie powiedzą o wynikach generatywnych

Search Console nie ma wymiaru dla odpowiedzi generowanych przez AI. Wyświetlenia, które nastąpiły wewnątrz wyniku generatywnego, znajdują się w tych samych danych skuteczności co zwykłe wyniki i nie ma filtra, który by je oddzielił — każdy dashboard twierdzący, że mierzy z tego źródła widoczność generatywną, wnioskuje, a nie mierzy.

Tym, co dane rzeczywiście dają, jest wzorzec wart obserwacji: klaster informacyjny, którego wyświetlenia utrzymują się lub rosną, podczas gdy kliknięcia i CTR spadają, w okresie bez utraty pozycji, która by to tłumaczyła. Ten kształt jest zgodny z zaspokajaniem odpowiedzi już na stronie wyników — ale jest też zgodny ze zmienionym snippetem albo przesuniętym składem zapytań wewnątrz klastra. Dlatego należy do raportu jako pytanie do zbadania, a nie jako metryka do prezentowania.

Pozostając w granicach

Trzy właściwości danych źródłowych ograniczają to, co dashboard może uczciwie twierdzić. Rzadkie zapytania są w całości wstrzymywane ze względów prywatności, więc wiersze zapytań zawsze zsumują się do mniej niż wartości całej usługi — ta różnica nie jest usterką do uzgodnienia, a udziały klastrów należy czytać jako udziały w zapytaniach, które raportowane. Historia kończy się po szesnastu miesiącach, co umożliwia porównanie rok do roku, ale nie drugi taki rok; wszystko dłuższe wymaga własnego składowania. A średnia pozycja jest już średnią ważoną wyświetleniami w obrębie każdego wiersza; uśrednianie tych średnich w klastrze daje liczbę, która wygląda precyzyjnie i znaczy niewiele — dlatego wyświetlenia i kliknięcia niosą argument lepiej niż pozycja.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in Touch

Briefly describe your project or inquiry for a tailored response. This site is protected by reCAPTCHA.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

ALL ARTICLES & CATEGORIES

CCTV

Śledź tę kategorię przez RSS

Cloud & AI

Śledź tę kategorię przez RSS

Data Privacy

Śledź tę kategorię przez RSS

Digital Analytics

Śledź tę kategorię przez RSS

Digital Marketing

Śledź tę kategorię przez RSS

IT & Networks

Śledź tę kategorię przez RSS

Raspberry Pi

Śledź tę kategorię przez RSS

Smart Home

Śledź tę kategorię przez RSS

Tworzenie stron internetowych

Śledź tę kategorię przez RSS

Wordpress Hacks

Śledź tę kategorię przez RSS