Skald

Every feature, and how Skald compares

Everything Skald does today, from the server log to today live, visitor journeys, search, AI answers and AI visibility, crawl health, reports, leads and sales. Then a fair comparison with the tools you already use, dated and sourced.

New in 2.21

Security from your server log

Is anything exposed, who is scanning you, attack attempts, fake browsers, a block list, your stack against this week's advisories, and alerts to your team. Every figure counted twice.

New in 2.14

AI answers: what AI says about you, and what it did next

Shipped on 18 October 2026, with 2.13 the same day (below). Before them: real time on a world map, what AI reads and costs, and AI alerts (2.8 to 2.12). Read every release in plain words.

AI and bots, AI answers, with made-up answers: tracking profiles for New York, London and Montréal; from an answer to a lead for ChatGPT and the pricing page: 38 answers cited it, its fetcher read it 58 times, 14 visitors clicked through, 1 lead; how often each assistant named the site per weekly run; and every profile by every assistant as x of 3 tries.
AI answers, from cited to lead. What ChatGPT, Perplexity, Gemini and Claude answer to your customers' questions: whether they name you, which of your pages they cite, which competitors they name. Then, from your log, the assistant reading the page, the visitors it sent and the leads. A sample of API answers, labelled so, and counted twice.
Settings, AI answers, tracking profiles: New York, USA in en, London, GBR in en-GB and Montréal, CAN in fr-CA, each active, with how often it runs, tries a question, questions, a 5 dollar daily cap and its estimated cost a month, and Edit, Duplicate, Pause, Run now and Delete.
Tracking profiles. A place and a language each, daily, weekly or monthly, 1 to 5 tries a question. The cost a month shows before anything runs.

Your keys, your cost, a daily cap. Each assistant needs its provider's API key (OpenAI, Perplexity, Google Gemini, Anthropic), and every answer costs on your account. Each profile stops at its daily cap. Nothing is asked, and nothing costs, until a key and a profile exist.

A sample, not what every user sees. Each provider answers people differently, and its API can differ from its app. Read it as a direction over weeks.

New in 2.13

Overview for today in Live mode, with sample data: visitors on the site now, today's visitors, pages read, leads and visitors from AI against yesterday at this hour, a world map with a pulsing dot on each active city, country chips with three-letter codes, and the newest visits.
Today, live, against yesterday at this hour. Visitors on the site now, the four headline figures against yesterday by the same time, cities on a live map and the newest visits as they arrive. Yesterday-by-now has its own second count.
The visitor drawer, sample data: a visitor from Austin with two visits over 19 days, where they first came from, and each visit as a timeline of its source and pages.
Visitor journeys. Where each returning visitor first came from, and every visit as one timeline you can replay.
Traffic, Search with sample data: Google's clicks, impressions, click-through rate and average position over 28 days, clicks per day with provisional days dashed, and the top queries.
Search Console and Bing, synced. Queries, impressions and position every 6 hours, set beside Skald's own visits from search.
AI and bots, Crawl health with sample data: the share of the sitemap fetched by Google, Bing, ChatGPT-User, GPTBot, ClaudeBot and Perplexity-User, and each crawler's pages never fetched, pages not in the sitemap and errors.
Crawl health. Which sitemap pages Google, Bing and each AI crawler reach, which they never do, and what answers them with an error.
Settings, Reports with sample data: a monthly client report with its schedule, sections and recipients, and the preview of its mail with the month's summary figures and visitors per day.
Client reports for agencies. Your name, colour and logo, a PDF attached, on a schedule. Verified days only.
Traffic, Retention with sample data: weekly cohorts of new visitors and the share back in each week after, and a retention curve.
Retention cohorts. Of each week's new visitors, how many came back, split by first source, country, device or landing page.
The filter builder with sample data: three rules joined by All rules, a live count of 122 of 587 visits, and a name to save them as a view.
Advanced filters and saved views. Rules on any field, All or Any, in groups. Every table sorts, filters columns and exports what you see.

Every feature

What Skald does, section by section

Skald reads your web server's access log. Every request lands in exactly one of five groups: people, AI assistants, search engines, bots and scanners, and your own traffic. The five add up to the log. Below is everything built today. You can try each part in the live demo with sample data, or install Skald on your own server.

The dashboard

  • Five sections: Overview, Traffic, Leads & sales, AI & bots and Site. Each answer has one place.
  • It opens on Today, live: the visitors on the site now, and visitors, pages, leads and AI against yesterday at this hour, with their own second count. Compare with… sits in the top bar, on every tab.
  • "Direct" for a visit with no referrer, and "Not recorded" for a value the log did not have. Never "unknown".
  • One toolkit for every table: sort any column, filter columns (contains, a range, pick values), choose columns, and export just the rows and columns you see. It all stays in the address, so a link opens the same view. Every row opens its detail.
  • Advanced filters: rules on any field a visit carries (country, city, source, campaign, AI assistant, first came from, pages, time on site, lead, device, browser, new or returning) with is, is not, contains, at least, at most, All or Any, and groups. A live count of matching visits. A value not recorded never matches by chance.
  • Saved views, renamed or copied as a link. Search the dashboard (Ctrl K) for pages, countries, sources, assistants and crawlers.
  • Countries as a flag and a three-letter code everywhere, the full name on hover and in the CSV. Dates in the site's time zone.
  • A first-run checklist for a new site, and a preview of the daily mail. Old links redirect.

Traffic and audience

  • Five groups that add up to the log, every day, for every site.
  • Visitors, visits, pages read, countries with flags, browsers, systems and devices.
  • Countries from the log's own field, or from a GeoIP country file you give Skald (DB-IP's free file works).
  • Sources, referring sites, UTM campaigns and ad networks. The ad network comes from the click ID, never its value.
  • A new outside source starts a new visit. A visit from an AI assistant is never hidden inside an earlier one.
  • Anonymous journeys: each visit's pages in order, kept 7 days by default.
  • Traffic › Visitors: the visitor flow, then each visit with its country, city, device, source, pages in order and time on site. New and returning visitors, and how engaged visits were, each withheld unless it adds up.
  • Where a returning visitor first came from (first touch), under every visit's source, linked by the visitor ID, the kept address or a 30-day code, never guessed. On Sources, returning visits by where they first came from, counted twice.
  • One visitor drawer: every visit of a visitor as a timeline, the time between pages, "12 days later" between visits, and a Replay of the journey. For admins and owners, audit-logged.
  • Cities from a GeoIP city file (DB-IP's free city file works): a Cities table, the city on each visit and a dot per active city on the live map. People only.
  • Retention cohorts: of the visitors first seen in a week, how many came back in each week after, split by first source, country, device or landing page. Counted twice.
  • Search Console and Bing (Traffic › Search): queries, pages, countries, devices, clicks, impressions, CTR and position, synced every 6 hours, and set beside Skald's own visits from search, never forced to match.
  • A visit that opens 6 or more pages within 2 seconds is too fast to be a person, and counts as a bot.
  • People: each visit with its IP address and browser, and one search for an IP, email, lead or visitor ID. For admins and owners only. Every search goes in the audit log. Keeping IPs and emails is a setting.
  • Engagement by source and device, returning visitors by source, and exit rate per page.
  • Campaign tag problems flagged: a source with no medium, an unknown medium, an ad click with no tags, tags on internal links.
  • Compare with… the previous period, the same period last year, or any range up to 12 months.
  • Insights (working, dropped, new, gone), and a page's story: its first Googlebot, first AI crawler, first person and first lead.

AI and machines

  • AI assistants by name and by reason, with the pages each one fetched.
  • AI clicks that lost their referrer, estimated. A direct visit to a page an assistant fetched minutes before is shown as "likely" from that assistant. Kept apart, never added to any count.
  • Crawlers are verified. Fake crawlers are filed apart.
  • Block AI crawlers per assistant, or only their training crawlers. Your web server applies the block, and robots.txt stays reachable. Skald blocks; it does not charge.
  • Your robots.txt rules, shown beside what each crawler actually fetched.
  • AI answers: what ChatGPT, Perplexity, Gemini and Claude answer to your questions, per tracking profile (a place and a language): whether they name you, the pages of yours they cite, the competitors they name, run by run. A sample of API answers, on your own provider keys with a daily cost cap. Counted twice.
  • From an AI answer to a lead: for one assistant and one page, answers that cited it, the assistant's fetcher reading it, the visitors it sent and the leads, side by side, never added together.
  • What the AI read before it sent a visitor: the pages that assistant fetched in the minutes before, per visit and per assistant.
  • What AI fetches ask for: pages, llms.txt, Markdown, plain text, robots.txt and sitemaps, for training and live answers apart.
  • What each crawler costs: requests, bytes sent, response time, errors, distinct paths and re-crawls, with a detail view per crawler.
  • Google AI Mode clicks told apart, when the click carries AI Mode's mark. Never guessed.
  • More bots recognised: Google's AI agents, Amazon's AI fetcher, Seznam, Naver, Qwant, Mojeek and about 45 monitors and scanners.
  • Crawl health: your sitemap beside what Google, Bing and each AI crawler fetch: coverage per crawler, sitemap pages never fetched, pages fetched that the sitemap does not list, errors, redirects, slow and large answers. Counted twice.
  • A suggested llms.txt, made from the pages people and assistants read most, for you to copy and publish.

Results

  • One section, Leads & sales: Pipeline, Bookings, Funnels, Events and People.
  • Count leads from your lead database (the default) or from your tools, never both in one figure.
  • Leads and demos booked on the Overview, and today's leads and bookings as they arrive.
  • A Leads column and a lead rate on Sources, Pages and Places & devices.
  • Leads by first and last source, with the status your team set, and time from first visit to lead.
  • Saved funnels, counted every day by source and device, with drop-off and time to go through.
  • Conversions from signed webhooks. Forms and bookings started but not finished.
  • One Calendly or Cal.com account that books for several businesses: keep only your own event types.
  • Goals from in-page events, per 100 visits by source.
  • Spam, duplicate and test leads, and cancelled, removed and test conversions, each listed in full.
  • Outgoing signed webhooks to your CRM, Zapier or Slack, never with a name or email.

Site health

  • Health, Alerts, Requests, Not found, Speed and Data quality, as tabs of one section.
  • 404s and who met them: people, probes or crawlers.
  • Server errors by page, page speed, and uptime from the heartbeat with every outage.
  • Site alerts: site down, logging stopped, 5xx burst, 404 surge, crawler burst, new crawler, traffic drop. Each rule, and its mail, switched on or off per site.
  • A failed morning run sends one short mail.
  • A data-quality panel: unreadable lines, gaps, duplicates, log age.
  • Deploy and change markers on every chart.

Team, data and agents

  • Accounts: organisations, owner, admin and viewer roles, invites, two-step sign-in, scoped API tokens and an audit log. Or a single nginx password.
  • Settings in the dashboard: retention, what is kept about people, mail, sites, internal addresses, integrations and security.
  • skald doctor checks each part of the install, one line each, with its fix.
  • Several sites in one install, each with its own settings and logo. A missing figure shows "-", never 0.
  • Export any table as CSV or JSON. Print to PDF. A report builder.
  • Daily and weekly email reports, refused if the figures do not add up.
  • Client reports for agencies: a branded mail with a PDF attached, weekly, monthly or every few days, in your name, colour and logo. Verified days only; the sums counted twice before a report goes.
  • A read-only JSON API, and an MCP server with 14 read-only tools for Claude, ChatGPT and other AI agents.
  • In-app Help in plain words, with four how-to guides. Keyboard shortcuts, a command palette, light and dark themes, and a phone layout.
  • A notice when a new release is out, and one-command upgrades with a backup and a rollback.

Real time

  • Visitors active now (last 5 minutes) and in the last 30, with the same people rules as every other figure.
  • Visitors on the site minute by minute, and requests per minute every 15 seconds, always labelled requests.
  • A live world map: countries shaded by visits today, a pulsing dot on each city with someone on the site in the last 30 minutes, and a countries table to search, sort and download.
  • Pages being read now, sources and devices now, AI assistants and crawlers now, and the newest visits, with no address and no browser string.
  • The map is drawn in the page from public-domain outlines. No map service is asked for anything.
  • Counted twice: if the audit disagrees, Real time shows no visitor figures until they match.

Alerts

  • The first visit ever from an assistant's answer, and a page's first visit from an AI answer.
  • Visits from AI answers against the median of the same weekday over the 6 weeks before. Below 10 visits: "too few to judge".
  • An AI or search crawler that came often and has been silent for 7 days.
  • Each alert states its rule and figures in plain words, in visits or in requests, never both. Whole, checked days only, and its figures are counted a second time.
  • On the dashboard, by email, in Slack, or to any tool as a signed webhook, opt-in per site.

Inputs

  • nginx and Apache logs (combined or extended), and Caddy JSON, all checked by the daily audit.
  • CDN logs: Cloudflare Logpush, CloudFront and Fastly. Pages served from the CDN cache are counted too.
  • Vercel and Netlify log drains.
  • The Skald Worker for Cloudflare, on any plan.
  • skald-ship: one standard-library Python file that sends another server's log to Skald.
  • Beacon-only mode, for a site with no readable log. It then sees people only, since bots run no script.
  • An optional script tag, under 6 KB, served from your own site, for clicks, form steps and bookings. It works on every site of one install, each site's events counted apart.

Why it is different

Built to be checked

Trust the names

  • A crawler's claim is checked against its owner's published addresses or DNS: Google, Bing, Apple, OpenAI, Perplexity, Anthropic, DuckDuckGo and Meta, and DNS for others.
  • A fake is filed apart as "claims to be GPTBot".

Every figure counted twice

  • A separate audit recounts every figure from the raw log, with its own parser and rules.
  • If the two counts disagree, the day is withheld, never guessed. A missing day is never drawn as zero.

Live, not 48 hours late

  • Real time shows who is on the site now, on a live world map, with requests every 15 seconds.
  • Today, live is the default view: today so far, redrawn every 2 minutes.
  • The last 6 hours can be read request by request, each with the rule that put it in its group, in words.

Find the AI traffic hiding in "Direct"

  • A click from a ChatGPT or Perplexity answer often arrives with no referrer, so other tools file it under "Direct".
  • Skald sees the assistant fetch your page first. A direct visit to that page minutes later is shown as "likely" from that assistant, and kept apart from the real counts.

Follow one person across days

  • Search an IP address, an email or a lead, and see that person's visits, leads and conversions on every day kept.
  • Every visit shows where its visitor first came from, and opens the same drawer with their whole journey.
  • An address is tied to a lead by the form it sent: likely, never certain. For admins and owners only, and every search is in the audit log.

Private by design, yours to set

  • No script and no cookie are needed in the visitor's browser. Everything stays on your server.
  • Keeping IP addresses and emails is a setting. One command deletes a person everywhere. Read how this site itself is measured in our privacy note.

Comparison

Skald beside the tools you know

How Skald stands beside Google Analytics 4, Search Console, Bing Webmaster Tools, Plausible, Matomo, Cloudflare, GoAccess, PostHog and Known Agents. These tables are a selection. The full comparison on GitHub has every row, with a source for every cell.

Every fact about another tool comes from that vendor's own docs, pricing page or source code, checked on 2026-10-07. Skald's column claims only what is built and tested in its code. Rows added on 2026-10-11 and 2026-10-18 have not been checked for the other tools yet: their cells say "nc", not checked.

Marks: ✓ yes · ◐ partly, or on some plans or setups · ✗ no, or not found in its own docs · ? could not be confirmed on the vendor's own pages · – does not apply · nc not checked · planned on Skald's roadmap, not built yet.

Data collection: how each tool counts, and who it can see

How each tool gets its numbers, and who that leaves out.

Data collection and who each tool can see
FeatureSkaldGoogle Analytics 4Search ConsoleBing Webmaster ToolsPlausibleMatomoCloudflareGoAccessPostHogKnown Agents
How it collectsReads the web server's access logGoogle tag (JavaScript) in the pageGoogle's own search data; nothing on your siteBing's own search data; nothing on your siteJavaScript snippetJavaScript tag, or server logs through its importerJavaScript beacon; AI Crawl Control at Cloudflare's edgeReads the web server's access logJavaScript SDKEvents sent from your server, CDN or WordPress
Nothing runs in the visitor's browserNo script, no cookie✓ Yes✗ No– Does not apply– Does not apply✗ No◐ Partly◐ Partly✓ Yes✗ No✓ Yes
Works where you cannot read the server's logHosted builders, static hosts◐ Partly✓ Yes– Does not apply– Does not apply✓ Yes✓ Yes◐ Partly✗ No✓ Yes◐ Partly
Counts pages a CDN served from its cache✓ Yes✓ Yes– Does not apply– Does not apply✓ Yes✓ Yes✓ Yes◐ Partly✓ Yes✓ Yes
Takes the log from another serverA small shipper sends new lines as they are written✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
Visitors with an ad-blocker✓ Yes✗ No– Does not apply– Does not apply◐ Partly◐ Partly✗ No✓ Yes◐ Partly✓ Yes
Visitors who decline cookies✓ Yes◐ Partly– Does not apply– Does not apply✓ Yes◐ Partly✓ Yes✓ Yes◐ Partly? Not confirmed
AI training crawlersGPTBot, ClaudeBot, CCBot✓ Yes✗ No– Does not apply– Does not apply✗ No◐ Partly✓ Yes✓ Yes✗ No✓ Yes
AI assistants fetching a page to answer someone, liveChatGPT-User, Perplexity-User, Claude-User✓ Yes✗ No– Does not apply– Does not apply✗ No◐ Partly✓ Yes✓ Yes✗ No✓ Yes
Search engine crawlers✓ Yes✗ No◐ Partly? Not confirmed✗ No◐ Partly◐ Partly✓ Yes✗ No✓ Yes
Scanners and credential probesRequests hunting for .env, wp-login✓ Yes✗ No– Does not apply– Does not apply✗ No◐ Partly◐ Partly◐ Partly✗ No? Not confirmed

AI and machines

Whether a crawler's name can be trusted, what you can do about it, and the AI traffic that reaches your pages.

AI crawlers, assistants and machine identity
FeatureSkaldGoogle Analytics 4Search ConsoleBing Webmaster ToolsPlausibleMatomoCloudflareGoAccessPostHogKnown Agents
Checks a crawler is who it claims to beOwner's published addresses, reverse DNS✓ Yes– Does not apply– Does not apply– Does not apply– Does not apply? Not confirmed◐ Partly✗ No– Does not apply? Not confirmed
Files fake crawlers apart"Claims to be GPTBot"✓ Yes– Does not apply– Does not apply– Does not apply– Does not apply? Not confirmed? Not confirmed✗ No– Does not apply? Not confirmed
Splits AI traffic by why it cameTraining, answering a live question, a person clicking a citation✓ Yes✗ No– Does not apply– Does not apply✗ No? Not confirmed? Not confirmed✗ No✗ No? Not confirmed
Blocks or charges AI crawlers✓ Yes✗ No– Does not apply– Does not apply✗ No✗ No✓ Yes✗ No✗ No✓ Yes
robots.txt rules beside what each crawler fetched✓ Yes✗ No– Does not apply– Does not apply✗ No✗ No? Not confirmed✗ No✗ No◐ Partly
Crawl health: sitemap coverage, orphans and errors per crawlerGoogle, Bing and each AI crawler✓ Yes✗ No◐ Partly◐ Partly✗ No✗ No? Not confirmed◐ Partly✗ No? Not confirmed
People who clicked through from an AI assistantIts own channel, by assistant✓ Yes✓ Yes– Does not apply– Does not apply✓ Yes✓ Yes◐ Partly✗ No✓ Yes✓ Yes
AI clicks that lost their referrer, estimatedA direct visit to a page an assistant fetched minutes before; labelled "likely"◐ Partlync Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
How often an assistant cites you, clicked or not◐ Partly✗ No◐ Partly✓ Yes✗ No✗ No✗ No✗ No✗ No? Not confirmed
Search queries, impressions, positionSynced from Search Console and Bing, set beside real visits✓ Yes◐ Partly✓ Yes✓ Yes◐ Partly◐ Partly✗ No✗ No? Not confirmed✗ No
What the AI read before it sent a visitorThe pages an assistant fetched in the minutes before a visit from its answer✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
AI answer trackingWhat ChatGPT, Perplexity, Gemini and Claude say for your questions, per place and language; joined with what they read and sent✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
What AI fetches ask forPages, llms.txt, Markdown, robots.txt, sitemaps; training and live answers apart✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
What each crawler costs the serverRequests, bytes, response time, errors, re-crawls; a detail view per crawler✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
Google AI Mode clicks told apartA Google click that carries AI Mode's udm=50◐ Partlync Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
Google AI Overview clicks told apart✗ No✗ No◐ Partly– Does not apply✗ No✗ No✗ No✗ No✗ No✗ No

Visitors, filters and reports

Who came back, from where, and what you can hand to a client. Rows added with 2.13.0.

Visitor journeys, filters and client reports
FeatureSkaldGoogle Analytics 4Search ConsoleBing Webmaster ToolsPlausibleMatomoCloudflareGoAccessPostHogKnown Agents
CitiesEach visit's city from a GeoIP city file; city dots on the live map✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
Where a returning visitor first came fromFirst touch, on the visit, the visitor drawer and as a filter✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
Retention cohortsNew visitors by week, and who came back✓ Yes✓ Yes– Does not apply– Does not apply✗ No◐ Partly✗ No✗ No✓ Yes✗ No
Advanced filters with saved viewsAND / OR rules in groups on any field; every table sorts, filters columns and exports what you see✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
Branded client reports on a scheduleYour logo and colour, a PDF attached, weekly or monthly✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked

Trust in the number

Whether a figure can be wrong without anyone noticing, and how fresh the newest figure is.

Checks, limits and freshness
FeatureSkaldGoogle Analytics 4Search ConsoleBing Webmaster ToolsPlausibleMatomoCloudflareGoAccessPostHogKnown Agents
Totals must add up, or the day is withheld✓ Yes✗ No✗ No✗ No✗ No✗ No✗ No✗ No✗ No✗ No
A second, independent recount of every figure✓ Yes✗ No✗ No✗ No✗ No✗ No✗ No✗ No✗ No✗ No
Data-quality panelUnreadable lines, gaps, duplicates, log age✓ Yes✗ No✗ No✗ No✗ No✗ No✗ No✗ No✗ No✗ No
Unsampled and unthresholded✓ Yes◐ Partly◐ Partly◐ Partly? Not confirmed? Not confirmed◐ Partly✓ Yes? Not confirmed? Not confirmed
Newest figuresVisitors now and today so far every 2 minutes; requests every 15 secondsRealtime covers the last 30 minutes; full processing 24-48 hours2-3 days; a preliminary 24-hour view? Not confirmedCurrent visitors (last 5 minutes); refreshes every 30 secondsReal-time visitor log; the importer can stream? Not confirmedEvery second over WebSocketLive view; online count covers 30 seconds"In real time" (its words)
Who is on the site now, on a world mapCountries shaded by visits today, active cities marked✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
Every request of the last hours, one by oneWith why it was counted where it was✓ Yes✗ No– Does not apply– Does not apply✗ No◐ Partly✗ No✗ No? Not confirmed? Not confirmed

Alerts

What each tool can tell you without you opening it.

Alerts by email, chat and webhook
FeatureSkaldGoogle Analytics 4Search ConsoleBing Webmaster ToolsPlausibleMatomoCloudflareGoAccessPostHogKnown Agents
Email alerts✓ Yes✓ Yes✓ Yes✓ Yes✓ Yes✓ Yes? Not confirmed✗ No✓ Yes? Not confirmed
AI citation and crawler alerts against a baselineFirst citation, a page's first, the same weekday's median, a crawler gone silent✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
Alerts to Slack or any webhook✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked

Leads and conversions

Whether the visits turned into business.

Goals, leads and conversions
FeatureSkaldGoogle Analytics 4Search ConsoleBing Webmaster ToolsPlausibleMatomoCloudflareGoAccessPostHogKnown Agents
Events inside the pageClicks, scrolls, sign-ups✓ Yes✓ Yes– Does not apply– Does not apply✓ Yes✓ Yes✗ No✗ No✓ Yes✗ No
Funnels✓ Yes✓ Yes– Does not apply– Does not apply◐ Partly◐ Partly✗ No✗ No✓ Yes✗ No
Leads by source and AI assistant✓ Yes◐ Partly– Does not apply– Does not apply◐ Partly◐ Partly✗ No✗ No◐ Partly✗ No
Ad cost and Google Ads link✗ No✓ Yes– Does not apply– Does not apply✗ No? Not confirmed✗ No✗ No? Not confirmed✗ No
Bookings, forms and payments pushed in by the toolsSigned webhooks: Calendly, Cal.com, Stripe, Typeform, HubSpot, Zapier✓ Yesnc Not checked– Does not apply– Does not applync Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
Forms and bookings started but not finished✓ Yesnc Not checked– Does not apply– Does not applync Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
Webhooks out to a CRM, Zapier or Slack✓ Yesnc Not checked– Does not apply– Does not applync Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked

Privacy and ownership

Where the data lives, and for how long.

Ownership and retention
FeatureSkaldGoogle Analytics 4Search ConsoleBing Webmaster ToolsPlausibleMatomoCloudflareGoAccessPostHogKnown Agents
Runs on your own server✓ Yes✗ No✗ No✗ No◐ Partly✓ Yes✗ No✓ Yes◐ Partly✗ No
Raw requests and addresses✓ Yes◐ Partly◐ Partly? Not confirmed✗ No◐ Partly◐ Partly✓ Yes? Not confirmed◐ Partly
Deleting one visitor on request✓ Yes? Not confirmed– Does not apply– Does not apply– Does not apply✓ Yes– Does not apply✗ No? Not confirmed? Not confirmed
Named users and roles✓ Yes✓ Yes✓ Yes? Not confirmed✓ Yes✓ Yes? Not confirmed✗ No? Not confirmed◐ Partly
How long data is keptRaw addresses 14 days in the log; hashes 30 days; totals for goodExplorations 2 or 14 months (360: up to 50)16 months16 months3 years (5 on Business)Cloud: raw 24 months, reports for good; self-host: yours6 monthsYours (--persist, --keep-last)1 year free, 7 years paid; self-host: yours? Not confirmed

Getting data out, cost and licence

Getting the data out, and what it takes to run.

Exports, price and licence
FeatureSkaldGoogle Analytics 4Search ConsoleBing Webmaster ToolsPlausibleMatomoCloudflareGoAccessPostHogKnown Agents
CSV or JSON export✓ Yes✓ Yes✓ Yes✓ Yes✓ Yes✓ Yes◐ Partly✓ Yes✓ Yes◐ Partly
API✓ Yes✓ Yes✓ Yes? Not confirmed◐ Partly✓ Yes✓ Yes◐ Partly? Not confirmed◐ Partly
AI agents can query itAn MCP server for Claude, ChatGPT and other clients✓ Yesnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked
PriceFree to self-host; runs on your server (Python 3.11+, standard library)Free; 360 price on requestNo price listedFreeFrom $9 a month (10k pageviews); self-host freeCloud from EUR 29 a month; self-host freeWeb Analytics free; AI Crawl Control on all plansFree1M events a month free, then per eventFree to 100k events; $29 and $299 a month
LicenceSource-available, Elastic License 2.0: free to use and self-host; hosting it for others needs a licenceClosed, SaaSClosed, SaaSClosed, SaaSAGPLv3 (Community Edition)GPLClosed, SaaSMITMIT (self-host)Closed, SaaS
Hosted service with sign-up and billingBuilt, off; not offered yetnc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checkednc Not checked

Honestly

Where others lead, and who should use what

Where others lead

  • Search itself. Queries, impressions and ranking come only from Search Console and Bing Webmaster Tools. Skald syncs them every 6 hours and sets them beside its own visits, but the figures stay the engines': a sync, not a replacement. Keep them.
  • Deep in-page analysis and ad spend. GA4 and PostHog see far more inside the page, and GA4 links to Google Ads. Skald's tag sends clicks, form steps and bookings, but no more.
  • Any host, any cache. Script tools work anywhere. Skald needs a log. A page a CDN serves from its cache never reaches your server's log, unless you feed Skald the CDN's own log.
  • Charging AI crawlers. Cloudflare can charge per crawl. Skald can block, not charge.

Who should use what

  • What people searched for, and where you rank: Search Console and Bing Webmaster Tools.
  • Clicks, scrolls, funnels and ad spend inside the page: GA4 or PostHog.
  • Simple cookie-free counts on any host: Plausible.
  • Every visitor, crawler and AI fetch, with checked figures, on your own server: Skald. It sits beside the tools above. Even the gap between Skald's count and GA4's is useful: it shows how much the script misses.

Skald is source-available under the Elastic License 2.0 and free to self-host. Read why we built Skald and who makes it. Want it without running a server? Join the beta or start a free trial of hosted Skald.

Live demo

Click around the real dashboard with sample data

Every section, 60 days of a made-up site. In your browser, nothing to install, no sign-up.

Hosted Skald

Start free. We set it up for you.

30 days free, no card. Your account is ready within one working day. Or run it yourself, free, with the install guide.