Features · visitors and journeys
Website visitor journeys: every visit in order, and where it began
Website visitor journeys read from your server log. Each visit's pages in order, where a returning visitor first came from, and every visit of one visitor as a timeline you can replay.
Website visitor journeys are the paths people take through a site: where they came from, the pages they read in order, and whether they came back. Skald builds them from your server's access log, with no cookie, and says how each visit was linked. Part of Skald features.
30-day free trial · no card · we set it up within one working day · free to self-host
- Mon 5 Oct 09:14 · from google.com/blog/server-logs/ → /features/
- 12 days later · Sat 17 Oct 20:02 · Direct/pricing/
- Sun 18 Oct 08:41 · from chatgpt.com/docs/setup/ → /book-a-demo/
- booked a demo · 08:47First came from google.com, 13 days before
Sample visitor. Three visits, one timeline, and where it all began.
[01] each visit
A visit list: each visit with its pages in order
Traffic › Visitors lists one row per visit, newest first. Sort it, search it, filter it, and select a row to open the visitor drawer.
- 09:14 🇨🇦 CAN Toronto · Mobile, Safari · chatgpt.com · 3 pages (1 in the browser) · 2:40returning
- 09:11 🇫🇷 FRA Lyon · Desktop, Firefox · google.com · 2 pages · 1:05new
- 09:06 🇺🇸 USA Austin · Desktop, Chrome · Direct · First came from news.example.com, 3 days agoreturning
- 09:02 🇩🇪 DEU Not recorded · Desktop, Edge · newsletter campaign · 1 page · 0:12new
Pages, said plainly
"3 pages (1 in the browser)": a step seen only in the browser, such as a page shown from its cache, is drawn dashed and never counted as a page view.
New or returning
Returning means the same visitor was seen on an earlier day in the 30 before. Each day's new and returning visits must add up to its visits, or the card is withheld.
Cities, when known
With a city file, each visit says where it came from: "Toronto, Ontario, Canada". With none, Not recorded.
[02] first touch
First touch: where a returning visitor first came from
Most visits say Direct. Many are people coming back, who first found you through a search, an AI assistant or a post days before. Skald finds that first visit three ways, in order, and the first that finds one wins.
how this visit was linked · sample
First came from google.com, 3 days ago · linked by visitor ID
When it is used
When the script tag has visitor IDs on (off by default, set per site).
How it links
The visit is the ID's when the ID's page view of the landing page arrived within seconds of it, and no other ID did. Its first touch is the ID's earliest page view.
When none finds an earlier visit, the visit says first visit we know of. Never guessed.

[03] one visitor
The visitor drawer: every visit as one timeline, with Replay
Every visit and every visitor opens in the same drawer, from the visit list, Real time, a funnel, the flow map or Find a person.
- first seen, visits over days
- where they first came from
- time between pages
- "12 days later" between visits
- leads and bookings linked
Replay plays the visits again, oldest first, at their real pace: one second per minute, at most four seconds a visit. With reduced motion on, it stays still. A lead is matched to a visit by the time a form was sent: likely, never certain.
[04] how visits moved
Visitor flow: from the source to each page and out
Each column is one step: the source, then page 1, page 2 and so on. A bar's height is its visits; a band's width is the visits that moved on. Every column adds up to the visits, or the map is withheld.
- chatgpt.com · 84 visits → /docs/setup/ 51 → /pricing/ 22from an AI answer
- google.com · 312 visits → /blog/ 190 → Left after 1 page 120from search
- Direct · 240 visits → / 160 → Went on to more pages 48no referrer
Pick the start
Start from the source type, or who sent them: the AI assistant or the site. Pick how many page columns to draw.
Seven pages a column
Each column keeps its 7 biggest pages and folds the rest into Other pages. A reload counts once.
Everywhere you drill
A country, a source or a page has its own flow in its drill-down, and Funnels draws one between its steps. Table shows the same as rows, with a CSV.
[05] how engaged
New and returning visitors, and how engaged visits were
Visits by pages per visit and by time on site, each adding up to the visits, with the typical visit and the share that read one page and left.
Sample figures.
By source and device
Pages per visit, one-page visits and visit length by source and device, and returning visitors by source. A rate over fewer than 10 visits is left blank.
Filtered, when honest
With a filter on, the cards count only the kept visits when each day's kept visits match that day's own figures. Otherwise they say they cover all visits, and why.
Where visits ended
Where visits ended and the common next steps, following the filters the same way.
[06] who came back
Retention cohorts: who came back, week by week
Of the visitors first seen in a week, how many came back in each week after. Or by day, over the last 30 days.
Pick Came back or Read 2+ pages, and split by the first visit's source type, country, device or landing page. Click a cell to list the visitors behind it. A blank cell is a week not over; a hatched one is not recorded or held back. A cohort under 10 visitors shows counts only.

What it does not do
- With no cookie, one address can be several people (an office), and one person on two devices is two visitors.
- Anonymous journeys are kept 7 days by default (1 to 90). The visit list and the flow cover the kept days and say so.
- Every visit of one visitor shows only to owners and admins, and only where the site keeps addresses.
- Retention follows a visitor 62 days with kept visits, 14 days with the 30-day code. Later cells say not recorded.
- A log sees what was loaded, not how long someone read. A long read of one page shows as a short visit.
keep reading
More on website visitor journeys
questions
Website visitor journeys FAQ
Straight answers, including what Skald does not do.
How does Skald know a visitor came back without a cookie?
It links visits in one of three ways, in this order: the script tag's visitor ID when visitor IDs are on, the same IP address with the same browser and system when the site keeps addresses, or a 30-day code made from the address and browser family, hashed with a secret. When none finds an earlier visit, the visit says first visit we know of. Skald never guesses.
What is first touch?
First touch is where a visitor first came from. Under a Direct visit, Skald shows a line such as "First came from google.com, 3 days ago" when it knows of an earlier visit from somewhere else. On Traffic › Sources it counts how many Direct visits came before, by where they first came from.
Who can see one visitor's every visit?
Only owners and admins, and only on sites that keep addresses. A single visit alone is anonymous. Each time the visitor drawer is opened with every visit, the audit log records it, never the address.
How long are journeys kept?
Anonymous journeys (start time, country, device, source and pages in order) are kept 7 days by default, and can be set from 1 to 90 days. Visits with addresses are kept 395 days by default when the site keeps addresses.
Can Skald show retention cohorts like Google Analytics?
Yes. Traffic › Retention shows, of the visitors first seen in a week or a day, how many came back in each week or day after, split by first source, country, device or landing page. With kept visits it follows a visitor 62 days; with the 30-day code, 14 days. Later cells say not recorded, never 0.
Does a log know how long someone read a page?
No. A log sees what was loaded, not how long someone looked at it. So a long read of one page shows as a short visit. Skald says so, and shows time on site and pages per visit as the log records them.
$ 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.