ETL pro SEO jako datový produkt
V moderním SEO již nestačí ad-hoc export z Google Search Console nebo jednorázový crawl. Potřebujeme opakovatelný, auditovatelný a škálovatelný ETL (Extract–Transform–Load) proces, který sjednotí signály z vyhledávačů, analytiky, serverových logů a nástrojů na crawling do jednoho modelu pravdy. Tato architektura stojí na třech pilířích: BigQuery (datové jezero/warehouse a výpočetní engine), dbt (transformace, testy a dokumentace) a Looker (semantická vrstva a vizualizace pro rozhodování). Cílem je učinit ze SEO dat produkt s jasnými SLA, metrikami a CI/CD procesem, nikoliv jen „dataset na požádání“.
Architektura: logická vrstva a datové zóny
Doporučená architektura rozděluje pipeline na zóny s jasnou odpovědností a politikou změn:
- Landing/Raw: surová data ze zdrojů (GSC, GA4, logy, SERP API, crawl). Bez zásahu, pouze minimální normalizace typů.
- Staging: lehké čištění, deduplikace, unifikace názvů polí, primární klíče a indexy. Zde začíná dbt.
- Core: business logika – mapování entit (URL → kanonická stránka → topic cluster), výpočty metrik (imprese, CTR, share of voice), propojení s obsahovým CMS a CRM.
- Marts: účelové datové martiny pro persony (SEO stratég, technický SEO, content lead, product manager) a use-case (programmatic SEO, interní linkování, monitoring regresí).
Zdroj SEO dat a jejich specifika
- Google Search Console: metriky na úrovni dotazu a stránky (imprese, kliknutí, pozice). Omezené samplingem a zpožděním; vyžaduje agregaci a denní snapshoty.
- GA4: session/user eventy pro organický provoz; nutné filtrovat zdroj/medium a definovat vlastní dimenze (landing page kanonická, obsahový typ, clustery).
- Serverové logy: hity crawlerů (Googlebot, Bingbot), HTTP kódy, latence, velikost odpovědi; klíčové pro crawl budget a technické anomálie.
- Crawl data: on-page signály (status, title, H1, canonical, robots, meta robots, schema.org), hluboké paginace a facety.
- SERP a konkurence: pozice, pixel features (People Also Ask, Top Stories), odhad viditelnosti, entity extrahované z výsledků.
- CMS/produkt: datové dimenze (kategorie, autor, jazyk, datum publikace), šablony a komponenty pro programmatic SEO.
Ingestion do BigQuery: spolehlivost, schéma a idempotence
- Batch vs. streaming: GSC/GA4 postačuje batch (denně/hodiny); logy a SERP mohou jít streamingem přes Pub/Sub → BigQuery.
- Particionování: podle data události (
_PARTITIONDATE) nebo timestampu; snižuje náklady a zlepšuje průtok. - Klastrování: podle
url_host,canonical_id,query_hash; urychluje dotazy ve velkých tabulkách. - Idempotence: deduplikace klíče (např.
date, country, device, query_hash, url_hash) a MERGE operace, aby opakované nahrávání nezduplikovalo data. - Data Contracts: popis schémat (typy, povinná pole, povolené hodnoty), verzování a zpětná kompatibilita.
dbt jako srdce transformací a kvality dat
dbt překládá SQL logiku na version-controlled modely s testy, dokumentací a lineage. Klíčové praktiky:
- Modelová vrstva: stg_* (staging), int_* (intermediate joiny), dim_*/fct_* (dimenze a fakty), mart_* (spotřební modely).
- Inkremetální modely: insert_overwrite podle datového partitionu pro GSC/GA4; výrazně šetří výpočetní výkon.
- SCD a snapshoty: sledování změn kanonických URL, meta tagů a šablon (SCD2), historizace pro audit regresí.
- Testy: unique, not_null, accepted_values, relationships; vlastní testy (např. „CTR <= 1“, „status_code ∈ {200,301,302,404,410,500}“).
- Makra: normalizace URL, parsování parametrických stránek, extrakce domény, UTM sanitace, hashování dlouhých klíčů.
- Exposures a sources freshness: definujte závislosti pro Looker dashboardy a nastavte čerstvost (SLA) pro landing data.
Modelování SEO metrik v Core vrstvě
- Dimenze: dim_url (kanonická URL, šablona, jazyk), dim_query (lemmatizovaná fráze, intent, entita), dim_content (autor, obsahový typ), dim_serp_feature.
- Fakty: fct_gsc_daily (kliknutí, impresie, pozice), fct_log_hits (hity botů, kódy), fct_crawl (statusy elementů), fct_serp (pozice, presence feature), fct_ga4_sessions.
- Odvozené metriky: visibility_index (vážené impresie/podíl), health_score (kombinace technických signálů), content_score (kompletnost a čitelnost), internal_link_rank (PageRank-like metrika na grafu interních odkazů).
BigQuery výkonnost a náklady
- Dotazy s průnikem: vždy filtrovat na
_PARTITIONTIME/datea relevantní klustry. - Materializované pohledy: na agregace GSC a GA4 pro 7/28-denní okna; úspora nákladů při Looker exploracích.
- Storage třídy: time-travel na 7 dní, dlouhodobé archívy přesunout do levnější třídy; snapshoty v samostatných datasetech.
- Kvóty a cost guardrails: limity na sloty, upozornění při překročení skenovaných GB a cache-friendly dotazy.
Looker jako semantická vrstva a rozhodovací panel
- LookML modely: definujte dimenze, measures a drill fields tak, aby skryly SQL složitost a zachovaly konzistentní definici metrik.
- Explores: podle person („SEO Health“, „Content Performance“, „Crawl Budget“, „SERP Visibility“), v pozadí mart tabulky.
- PDT a cache: perzistentní odvozené tabulky (na BigQuery) pro náročné agregace; plánování obnovy podle SLA.
- Řízení přístupu: row-level security (jazyk, země, brand), tagování polí s citlivými údaji.
- Distribuce insightů: naplánované „Looks“ do e-mailu/Slack, alerty na pokles CTR, nárůst 5xx, změnu kanonizace.
Automatizace a orchestrácia: plánovače a CI/CD
- dbt Cloud / Airflow (Cloud Composer): denní/job-based plánování, paralelizace podle zdrojů, retry politiky, SLA alerty.
- CI/CD: git flow, pull requesty s automatickými dbt build a testy na sandbox datasete, schvalování schémat (data contracts).
- Observabilita: Lineage graf (dbt docs), metriky úspěšnosti jobů, sledování délky a ceny dotazů, anomálie v počtech řádků.
Kvalita dat: testy, validace a anomálie
- Syntaxové testy: not_null/unique/relationships v dbt; povinná pole date, canonical_id, query_hash.
- Semantické testy: CTR mezi 0–1, position > 0, status_code povolené hodnoty, robot directives v doméně pravidel.
- Čerstvost: source freshness na GSC/GA4/logy; alarmy při zpoždění > X hodin.
- Detekce anomálií: pohyblivé prahy a robustní percentily (např. MAD) na impresie, 404, 5xx, změny kanonizace, velké skoky ve vnořených facetech.
Programmatic SEO: od dat ke stránkám
- Datové šablony: připravené modely s parametry (entita, atributy, porovnání), které Looker/BI tým ověří a produktový systém použije při generování stránek.
- Skóre příležitostí: kombinace poptávky (imprese/volume), konkurenceschopnosti (share of voice), technického zdraví a obsahových mezer.
- Interní linkování: graf interních odkazů, identifikace „orphan“ a „bridge“ uzlů, návrhy odkazů na základě tematické blízkosti.
- Validace po nasazení: zpětná vazba z GSC/GA4/logů v 7/28-denních oknech, A/B holdout segmenty a obsahové regresní testy.
Mapování entit a intentů
Pro SEO je klíčové přiřadit dotazy k entitám a intentům. V Core vrstvě udržujte slovník entit (produkty, kategorie, lokality) s aliasy a lemmatizací. V dbt modelech vytvořte mapu query → entity → topic cluster a „intent flags“ (informational, navigational, transactional). Tyto dimenze následně využívá Looker při kalkulaci visibility a při obsahové prioritizaci.
Standardy pojmenování a verzování
- Datasety: raw_*, stg_*, core_*, mart_*.
- Sloupce: canonical_id, url_hash, query_hash, event_date, country_code, device_type.
- SemVer pro modely: významné změny schémat jako major/minor/patch; migrační kroky MERGE/CREATE OR REPLACE s dočasným paralelním během.
Bezpečnost a governance
- Přístupové role: čtení vs. zápis, oddělení produkce a sandboxu; omezení na úrovni tabulek a řádků (RLS).
- Citlivá pole: hashování nebo odstranění PII, tagování v Looker/BigQuery, DLP skeny při ingestion.
- Audit a lineage: dbt docs a Looker usage logs pro sledování dopadů změn na dashboardy.
KPI a SLA pro SEO datový produkt
- SLA čerstvosti: GSC do 12 hodin, logy do 1 hodiny, crawl do 24 hodin.
- Dostupnost dashboardů: > 99,5 % v pracovních hodinách, plánovaná okna deployů.
- Přesnost metrik: odchylka mezi GSC/GA4 surovými exporty a mart vrstvou < 1 %.
- Time-to-Insight: nový obsah → první metriky v marte do 24 hodin.
Příklad end-to-end workflow (den D)
- Ingestion: raw GSC, GA4, logy a crawl do raw_* s partitioningem podle data.
- dbt stg_*: typy, dedupe, normalizace URL, výpočet hashů.
- dbt core_*: join na dim_url, dim_query, výpočet visibility a health skóre.
- dbt mart_*: person-orientované tabulky (SEO Health, Content Performance, Crawl Budget).
- Looker: naplánovaná obnova PDT, alerty na outliery (5xx, CTR drop, orphan nárůst).
- CI/CD: merge pull request, automatické testy, publikace dokumentace (dbt docs) a release poznámky.
Kontrolní seznam implementace
- Particionované a klastrované tabulky v BigQuery; MERGE pro idempotentní načítání.
- dbt modely se staging/core/marts, inkrementální materializace, snapshoty pro SCD.
- Testy kvality (unique, not_null, accepted_values) a source freshness alarmy.
- LookML semantika, RLS, PDT pro náročné agregace, plánované dashboardy a alerty.
- Orchestrace (dbt Cloud/Composer), CI/CD s automatickým dbt build na sandboxu.
- Governance: data contracts, dokumentace, lineage, monitoring nákladů.
Rizika a mitigace
- Sampling a zpoždění: definujte oficiální reportovací okna (T-1, T-7), agregujte na stabilní periody.
- Nekonzistentní URL: přísná normalizace, kanonizace, mapování parametrů; testy na duplicitu kanonických ID.
- Náklady: materializované view, cache, průnik podle partition; pravidelné revize klastrovaní.
- Změny schémat zdrojů: kontrakty a „canary“ joby; fallback na poslední úspěšný build.
Od ETL k rozhodování v reálném čase
BigQuery, dbt a Looker společně vytvářejí robustní rámec, ve kterém jsou SEO data konzistentní, auditovatelná a okamžitě použitelná pro obsahová i technická rozhodnutí. K