Skip to content

For AI agents: this page as Markdown; every page and guide as Markdown is listed in llms.txt.

New storyWe built Skald to count visitors. It saw an AI-key thief at work.
SkaldEvery visit, truly told.

[00] read from access.log

AI traffic analytics, read from your server log.

ChatGPT reading your pricing page for someone's question never runs a script tag, so Google Analytics never sees it. Your server's log did. Skald reads that log and tells you what happened: which AI crawlers came, which assistants fetched a page, who clicked through from an answer, and which visits became leads and sales. Every figure is counted twice.

30-day free trial · no card · we set it up within one working day · free to self-host, source on GitHub

AI traffic analytics is measuring what AI does with your website: crawlers that read it to train or build an index, assistants that fetch a page live while answering someone, and people who click through from the answer. Skald gets all three from the access log your server already writes. How AI traffic is told apart

one sample day, told as news

example.comThu 22 Oct 2026sample edition

The Daily Log

Set from 1,848 lines of access.log · every line in one of five groups

AI assistants · live fetch, then click-through

ChatGPT read your pricing page nine times. Three people clicked through.

ChatGPT-User fetched /pricing/ for nine questions; three visits then came from chatgpt.com. Two figures in two units, kept apart.

AI crawlers

214 crawl requests, one fake

GPTBot, ClaudeBot and PerplexityBot. One "GPTBot" came from an address OpenAI does not list, so it is filed under bots.

Leads

Four booked a call

First came from google.com (2), chatgpt.com (1) and LinkedIn (1), by signed webhook.

Sales

USD 1,980 from two checkouts

EUR 290 stands in its own line. Currencies are never converted or added.

Social networks

X 31, LinkedIn 18, Reddit 6

t.co, x.com, twitter.com and the X app, added up as one X.

Counted twice, both counts agree: published.

Printed on your own serverPrinted on Skald's server, for you

flip it
Sample day for a made-up site. People 415, AI assistants 322, search engines 147, bots and scanners 940, your own traffic 24: together the 1,848 lines read, none left over.

[01] AI crawlers and AI referrals

See which pages AI read, and which ones sent you people

An AI company touches your site three ways, and only the last one is a person. Here is one sample week of your pages for each company, ranked in each column, with a ribbon joining the same page across them.

pick one

Crawledtraining or index crawl · GPTBot · requests

  1. /blog/server-logs/64
  2. /pricing/41
  3. /docs/setup/33
  4. /compare/28
  5. /about/12

Fetched for a questionlive fetch · ChatGPT-User · requests

  1. /pricing/38
  2. /docs/setup/21
  3. /compare/17
  4. /features/9
  5. /blog/server-logs/4

Clicked from the answerclick-through · from chatgpt.com · visits

  1. /pricing/11
  2. /docs/setup/6
  3. /4
  4. /compare/3
  5. /features/2

Sample week. Three columns, three units: crawl requests, fetch requests, visits. Skald never adds them up. A "GPTBot" from an address not on OpenAI's published list is filed under bots as "claims to be GPTBot". Clicks are a floor, because some apps send no referrer; visits that are only likely from AI are shown apart.

[02] social networks

Social media traffic by network, with every address added up

X arrives as t.co, x.com, twitter.com and its app, and a raw list of referrers shows four rows. Skald adds them up as one X, and does the same for LinkedIn, Facebook and 14 more networks.

pick a visit

X

  • t.co
  • x.com
  • twitter.com
  • X app
  • twclid

LinkedIn

  • linkedin.com
  • lnkd.in
  • LinkedIn app
  • utm "linkedin"
  • li_fat_id

Facebook

  • facebook.com
  • fb.com
  • Facebook app
  • fbclid

Pinterest

  • pinterest.*

Social, network not named

  • two networks named
  • utm "social"

Other website, not social

  • producthunt.com
  • threads.com
  • fb.me

The referrer's host, t.co, is one of X's hosts.

The rule from Skald's own name lists: the referrer's host or app first; with no referrer, the words of utm_source, then utm_medium, then a social ad click ID (fbclid, li_fat_id, ttclid, twclid). A visit counts once, in one network, and the networks add up to the Social media row. Days before 2.34.0 say Not recorded.

[03] leads and revenue by source

Find the source that brings money, not only leads

The source with the most leads is often not the one that brings the most sales. Switch the podium between leads and revenue, and see the order change, one currency at a time.

switch it

leads, by first touch

  1. 182,450590google.comsearch
  2. 11980290Directno referrer
  3. 72,970no saleschatgpt.comAI assistant
  4. 61,980no salesLinkedInsocial
  5. 3no salesno salesNewsletteremail

google.com brings the most leads. Every lead counts once, on the day it was completed, under where that visitor first came from.

Sample 30 days. A lead arrives as a signed webhook from Calendly, Cal.com, Stripe, HubSpot, Typeform, Zapier, Make or n8n, from the script tag's form events, or from one file in your backend. A sale's value comes from Stripe or from the value and currency your server sends. Each currency is summed apart and never converted.

[04] counted twice

Analytics you can check: every figure counted twice

A second count, written as separate code, reads the same raw log again and must agree with the first. The two share only the lists of names. A day they disagree on is withheld, never guessed, and a figure that was not recorded stays blank, never 0.

pick a day

Main count Mon 19 Oct

Visitors
301
AI live fetches
84
Leads
3
Social visits
52
Search Console clicks
82

Second count the audit, its own code

Visitors
301
AI live fetches
84
Leads
3
Social visits
52
Search Console clicks
82

Both counts agree. Published.

Sample days. The cream sheet is the main count, the blue carbon is the audit's. On a withheld day the dashboard says why, and no chart draws it as 0.

[05] hosted or your own server

Run it on your own server for free, or let us host it for you

The counting is the same code either way. Self-hosted, the Docker image runs beside your web server and the data stays there. Hosted, we run the server and set your site up within one working day.

  1. Self-hosted, free

    Skald is source-available under the Elastic License 2.0. Run it for your own sites and your clients' sites; offering Skald itself to others as a hosted service needs a commercial licence.

  2. Hosted by us

    Per site, after a 30-day free trial with no card. A person sets it up with you within one working day.

  3. The way in

    One command on an nginx or Apache server, the Cloudflare Worker, a CDN's own log export (Cloudflare Logpush, CloudFront, Fastly or Akamai DataStream 2) (Skald reads these, but its second count does not read CDN exports yet, so a day read only from one is withheld), a Vercel log drain (Vercel Pro or Enterprise, as Vercel's drains page says, read 25 Oct 2026), the script tag, or one line to paste into your AI agent. A dry run of a sample log shows what Skald reads before anything is stored.

Docs an AI agent can follow

Every page of this site and every guide is also plain Markdown, listed in /llms.txt (a plain-text map of a site for AI tools). Fern's Agent Score, a public check of how well AI agents can read a product's docs, rated Skald 98 out of 100 when we looked on 24 October 2026.

Fern Agent Score, read 24 Oct 2026 · buildwithfern.com/agent-score/company/skald

What it does not do

  • Without a server or CDN log, as on some site builders, Skald sees people only, through its script tag: no AI crawlers, fetchers or bots.
  • Visits are an upper bound on people, never an exact count of humans.
  • AI clicks are a floor. Likely visits from AI are shown apart and never added.
  • It sits beside Google Analytics and Search Console: no ad spend, no Google Ads link, and search figures stay the engines' own.

[06] the name · the story

Why we built Skald when our analytics could not see AI

Skalds were the poets of the North. They watched what happened and told it back, faithfully, and only what they had seen. Skald reads the log, tells you what it saw, and leaves out what it did not.

Skald · say it skawld · rhymes with "called"

Rakesh wanted to know whether AI assistants were reading Space-O's pages, and our analytics could not tell us. A script tag only runs in a browser, so it could not say whether ChatGPT, Claude or Perplexity had read them. So we built a tool that reads the server's own log, which holds every request the server answers.

Built by Rakesh Patel, CEO of Space-O Technologies.

questions

AI traffic analytics FAQ

Straight answers, including what Skald does not do.

What is AI traffic analytics?

AI traffic analytics measures what AI does with your website: which crawlers read it to train or build an index, which assistants fetch a page live while answering someone, and which people click through from an answer. Skald reads all three from your server's access log, because crawlers and fetchers never run a script tag. AI traffic tracking, the full picture.

How does Skald see AI bots that Google Analytics misses?

AI crawlers and AI fetchers don't run JavaScript, so a script tag never fires for them. The server log records them anyway. Skald names each one, checks crawlers against the addresses their owners publish, and shows a fake as "claims to be GPTBot". How AI crawlers are identified.

Can Skald show traffic from X, LinkedIn and other social networks?

Yes, since version 2.34.0. Traffic › Sources has a Social network view with one row per network: X adds up t.co, x.com, twitter.com and the X app, and LinkedIn adds up linkedin.com, lnkd.in and its app. A visit with no referrer is matched by its utm_source, then its utm_medium, then a social ad click ID such as fbclid. Days before the upgrade say Not recorded.

Does Skald show revenue by source?

Yes, when your sales carry a value: Stripe's amounts, or a value and currency your server sends with a lead, directly or through Zapier, Make, n8n or a lead file. Leads & sales › Revenue shows which sources, pages, campaigns and AI assistants made money, each currency on its own and never converted. Lead attribution with Skald.

What happens when Skald's two counts disagree?

A second count, written as separate code, reads the raw log again and shares only the lists of names with the first. If the two disagree about a day, that day is not shown until it is counted again, and a figure nobody recorded is left blank rather than shown as zero. Every figure counted twice.

Does Skald tell me what to fix?

Yes, from the log alone. Since version 2.35, Overview › Insights opens with a to-do list: old addresses still asked for, server errors, AI asking for Markdown copies that fail, a sitemap address that is not there, and pages nearly every visit leaves at once with no form sent. Each comes with its proof, what to do, and a re-check after you mark it done. Site › Not found gives each lost page the closest live page and a 301 or 410 line to copy, and each page has an AI readiness check. Since 2.36, the open to-dos, security items and set-up problems come in one summary mail a day at 01:00, and no mail comes when nothing is open.

Can I self-host Skald, or do you host it?

Both. Self-hosting is free: the Docker image runs on your own server and your data stays there. Skald is source-available under the Elastic License 2.0. Or we host it for you, per site, after a 30-day free trial with no card, set up within one working day. Skald pricing.

Does Skald need cookies?

Not to count visits: the server log needs nothing in the browser. The optional script tag sets no cookie by default. It keeps the visit's source in the tab's session storage until the tab closes, and a random ID only when you turn visitor IDs on. Signing in to the dashboard uses one session cookie. Cookieless analytics with Skald.

Does Skald replace Google Analytics or Search Console?

No. Search Console still owns queries and rank, and Google Analytics still owns ad spend. Skald sits beside them: it joins Search Console and Bing figures to real visits and shows the traffic neither can see. Skald and Google Analytics, compared.

$ tail -f access.log | skald

See what AI does with your site. Free for 30 days.

No card. We set up hosted Skald for you within one working day, or you self-host it free. Every line of your log, sorted and added up.

Start free trial Live demo