Screaming Frog je průmyslový standard pro crawlování webů. Zvládne i miliony adres a exportuje použitelná data. Jenže co s těmi daty dál? Excel se s milionem řádků už pořádně trápí a Google Sheets má ještě nižší limity.
Před lety jsem na velké crawly používal BigQuery a Looker Studio, ale byl to šílený opruz. Dnes mám mnohem lepší řešení: DuckDb. Je to rychlá analytická databáze, která zvládne miliony řádků a desítky GB dat, funguje lokálně bez serveru a provoz zvládnete i bez IT podpory.
DuckDb je relativně nová databáze speciálně navržená pro analytiku. Na rozdíl od tradičních databází jako MySQL nebo PostgreSQL není určená pro transakční zpracování (tisíce malých zápisů), ale pro analytické dotazy nad velkými objemy dat.
Její hlavní výhody pro SEO analytiku:
DuckDb můžete používat přes příkazovou řádku (CLI), vlastní grafické rozhraní, různá IDE (TablePlus, Beekeeper Studio, DBeaver, VSCode s rozšířením) nebo z programovacích jazyků jako Python, R či Node.js. A nově i přes AI s MCP serverem, ale k tomu se dostaneme později.
Nejprve spustíte crawl webu ve Screaming Frogu jako obvykle. Nastavte si potřebné parametry (rychlost, hloubka, filtry) podle velikosti a charakteru webu.
Po dokončení crawlu exportujte data do CSV souborů. V menu zvolte Bulk Export a vyberte tabulky, které budete potřebovat. Pro komplexní analýzu obvykle exportuji:
internal_all.csv – všechny interní URLinternal_html.csv – pouze HTML stránkyexternal_all.csv – všechny externí URLall_inlinks.csv – všechny příchozí odkazyall_outlinks.csv – všechny odchozí odkazy
Otevřete terminál (PowerShell, CMD nebo Terminal na Macu) a spusťte DuckDb s názvem nové databáze:
duckdb muj-crawl.duckdb
Tím vytvoříte nový soubor databáze a otevře se interaktivní prostředí DuckDb.
V prostředí DuckDb importujte CSV soubory pomocí jednoduchých SQL příkazů:
CREATE TABLE internal_all AS FROM 'internal_all.csv';
CREATE TABLE internal_html AS FROM 'internal_html.csv';
CREATE TABLE external_all AS FROM 'external_all.csv';
CREATE TABLE all_inlinks AS FROM 'all_inlinks.csv';
CREATE TABLE all_outlinks AS FROM 'all_outlinks.csv';
DuckDb automaticky rozpozná strukturu CSV souborů včetně hlaviček a datových typů.
Zkontrolujte, že se data správně načetla:
SELECT COUNT(*) FROM internal_html;
Až budete hotovi, ukončete DuckDb příkazem:
.quit
Databáze zůstane uložená v souboru a příště ji můžete znovu otevřít stejným příkazem jako při vytvoření.
Příkazová řádka je efektivní, ale někdy se hodí vizuální nástroj. DuckDb má experimentální vestavěné GUI, které spustíte přidáním parametru -ui:
duckdb muj-crawl.duckdb -ui
Rozhraní se otevře v prohlížeči a nabídne:
GUI je zatím experimentální a má své mouchy, ale pro interaktivní práci je velmi pohodlné. Alternativně můžete použít profesionální nástroje jako TablePlus nebo DBeaver, které DuckDb také podporují.
Tady to začíná být opravdu zajímavé. DuckDb můžete propojit s Claude Desktop pomocí MCP (Model Context Protocol) serveru. To znamená, že se můžete na svá data ptát přirozeným jazykem a AI za vás sestaví SQL dotazy.
Podrobný návod najdete v článku Close the Loop: Faster Data Pipelines with MCP, DuckDB & AI na blogu MotherDuck.
Pokud nechcete studovat, můžete zkusit zadat Claude tento prompt:
Na základě článku https://motherduck.com/blog/faster-data-pipelines-with-mcp-duckdb-ai/ bych si chtěl zprovoznit MCP server, přes který bych se mohl dotazovat na lokálně uložená data v DuckDb databázi. Pro dotazování použiju Claude Desktop. Pomůžeš mi to zprovoznit?
Jakmile máte MCP nakonfigurovaný, připojíte databázi v Claude Desktop a můžete se ptát přirozeným jazykem:
Claude za vás sestaví správný SQL dotaz, spustí ho a výsledky přehledně zobrazí. Zvládne i složitější dotazy s JOINy mezi tabulkami, což by vám ručně mohlo zabrat hodně času.
I bez AI se vám budou hodit připravené SQL dotazy na běžné SEO analýzy. Tady je několik, které používám nejčastěji.
SELECT
Source, Destination, Anchor, "Alt Text", "Status Code", "Link Position"
FROM all_inlinks
WHERE
"Status Code" BETWEEN 400 AND 499
AND Type = 'Hyperlink'
AND Source != Destination
AND Destination LIKE 'https://www.example.com/%'
Pro externí 4xx chyby změňte podmínku na NOT LIKE.
SELECT Source, Destination, "Status Code"
FROM all_inlinks
WHERE
"Status Code" BETWEEN 400 AND 499
AND Type = 'HTTP Redirect'
AND Destination LIKE 'https://www.example.com/%'
SELECT
ai.Source, ai.Destination, ai."Status Code", ih."Indexability Status"
FROM all_inlinks ai
JOIN internal_html ih ON ai.Destination = ih.Address
WHERE
ai.Type = 'XML Sitemap'
AND ih.Indexability = 'Non-Indexable'
Stránky, na které nevede žádný odkaz z obsahu webu, ale jsou v sitemapě:
SELECT DISTINCT Destination
FROM all_inlinks
WHERE
Type = 'XML Sitemap'
AND Destination NOT LIKE '%/sitemaps/%.xml'
AND Destination NOT IN (
SELECT DISTINCT Destination
FROM all_inlinks
WHERE
Type IN ('Hyperlink', 'HTTP Redirect')
AND Destination != Source
)
ORDER BY Destination
SELECT *
FROM internal_html
WHERE
Indexability = 'Indexable'
AND Address NOT IN (
SELECT DISTINCT Destination
FROM all_inlinks
WHERE Type = 'XML Sitemap'
)
Když potřebujete propojit informace z více tabulek, použijte JOIN. Tento vzor vybere určité stránky z internal_html a připojí k nim odkazy z all_inlinks:
SELECT
b.Source, b.Destination, b.Anchor, b."Alt Text", b."Link Position"
FROM internal_html a
JOIN all_inlinks b
ON a.Address = b.Destination
WHERE
a.Indexability = 'Indexable'
Popsané workflow funguje skvěle, ale vždy je co vylepšovat.
Podrobné instrukce pro AI – pokud používáte propojení s Claude, můžete si připravit detailní instrukce ve formě projektů, custom GPT, Gems nebo claude.md souboru pro Claude Code. AI pak bude lépe rozumět struktuře vašich dat a bude sestavovat přesnější dotazy.
DuckLake – autoři DuckDb pracují na formátu pro data lakes, který by umožnil propojit více crawlů stejného webu. Šlo by pak snadno porovnávat crawly z různých období a sledovat vývoj webu v čase.
Kombinace Screaming Frog + DuckDb je mocný nástroj pro SEO analytiku velkých webů. Zvládnete s ní analyzovat miliony URL, které by Excel nikdy nezvládl, a to bez nutnosti platit za cloudové služby nebo složitě nastavovat servery.
A pokud přidáte propojení s AI přes MCP, dostanete nástroj, kterým můžete provádět komplexní analýzy pomocí přirozených otázek v češtině. To je budoucnost SEO analytiky.
Máte dotazy nebo potřebujete pomoct s nastavením? Napište mi na mprokop@prokopsw.cz.