Metrics Reference
Understand how every metric in Insights is calculated.
This guide explains every metric you see in the Insights dashboard and how it's calculated.
Key Metrics
Pageviews
Total number of page loads across your site.
Pageviews = SUM(views) from all pages
Every time a page loads and the tracking script fires, this counter increments by 1.
Unique Visitors
Number of distinct visitors based on daily visitor hashes.
Unique Visitors = COUNT(DISTINCT visitorHash) from sessions
A visitor is identified by a daily-rotating hash generated from:
hash = SHA256(salt | date | ip | browser | language | screen)
The same person visiting on different days counts as different visitors. See Privacy for full details.
Bounce Rate
Percentage of sessions where the visitor viewed only one page.
Bounce Rate = (Sessions with 1 pageview / Total sessions) × 100
A "bounce" is when someone visits one page and leaves without viewing another page. Lower is generally better, but depends on content type (blog posts naturally have higher bounce rates).
Avg. Time on Page
Average time visitors spend on pages, in seconds.
Avg. Time = Total time on all pages / Total pageviews
Time is measured from page load until the user leaves (navigates away, closes tab, or switches tabs).
Trend Percentages
The percentage change compared to the previous period.
Trend = ((Current value - Previous value) / Previous value) × 100
For "Last 7 Days", the previous period is the 7 days before that. A positive trend (green) means growth, negative (red) means decline.
If the previous period has zero data, the trend shows 0% instead of infinity.
Referrers
Visits
Number of sessions that came from this referrer source.
Referrer Types
Devices
Device Type
Classified from User-Agent based on device form factor:
Browser
The browser family (Chrome, Firefox, Safari, Edge, etc.) extracted from User-Agent.
Real-time Visitors
Number of visitors currently active on your site.
Active Visitors = COUNT(visitors) WHERE lastSeen >= (now - realtimeTtl)
Default realtimeTtl is 300 seconds (5 minutes). A visitor is considered "active" if they've had any activity within this window.
Campaign Tracking Pro
Visits
Number of sessions that arrived with these UTM parameters.
UTM Parameters
Countries Pro
Visits
Number of sessions from visitors in this country.
Country is determined via GeoIP lookup from the visitor's IP address. The IP is immediately discarded after lookup, only the country code is stored.
User Events Pro
Count
Total number of times this event was triggered.
Unique Visitors
Number of distinct visitors who triggered this event.
Outbound Links Pro
Clicks
Total number of clicks on external links to this domain.
Unique Visitors
Number of distinct visitors who clicked links to this domain.
Site Searches Pro
Searches
Number of times this search term was used.
Unique Visitors
Number of distinct visitors who searched for this term.
Scroll Depth Pro
Milestones
Each milestone is counted once per pageview. If a user scrolls down to 75%, then back up, then down to 100%, both 75% and 100% are counted (but 75% only once).
Average Scroll Depth
Avg. Scroll Depth = (25% × count_25 + 50% × count_50 + 75% × count_75 + 100% × count_100) / total_milestone_events
This weighted average shows how far visitors typically scroll across your site.
Session Insights Pro
Pages per Session
Pages per Session = AVG(pageCount) from all sessions
Average number of pages viewed in a single session. Higher values indicate visitors are exploring more content.
Entry Pages
The first page a visitor sees when starting a session. High-performing entry pages are good landing pages.
Exit Pages
The last page a visitor sees before leaving. Pages with high exit rates might need improvement (or are natural endpoints like "Thank You" pages).
Session Definition
A session groups pageviews from the same visitor. A new session starts when:
- First visit - Visitor has no previous activity
- Timeout - More than 30 minutes since last pageview
Session timeout = 30 minutes of inactivity
AI Bot Analytics
Available when LLMify is installed. Every Markdown response LLMify serves is counted: requests to .md pages, llms.txt, llms-full.txt, content-negotiated swaps, and bot-detected responses.
Total Visits
Total Markdown deliveries in the selected range, split between Bots (requests with a recognized AI crawler User-Agent) and Humans (everyone else, e.g. someone manually opening a .md URL).
Total Visits = Bots + Humans
Unique Bots
Number of distinct AI crawlers that requested at least one Markdown response in the selected range.
Unique Bots = COUNT(DISTINCT botName) WHERE botName != ''
Top Crawler
The bot with the highest request count in the selected range, shown with its share of total bot traffic.
Top Bot Share = (Top Bot Requests / Total Bot Requests) × 100
Delivery Split
How AI agents got the Markdown. Every request is classified as one of two types:
Direct Share = (Direct Requests / Total Requests) × 100
Negotiated Share = (Negotiated Requests / Total Requests) × 100
Crawl Activity
Daily request volume across the selected range. The chart can be grouped by:
- Total: One bar per day with the combined request count
- By Bot: Stacked per crawler so you can spot which bot is most active on a given day
- By Delivery: Stacked by Direct vs Negotiated to see how agents access your content
Crawlers Table
Per-bot leaderboard with total request counts in the selected range. Identified via User-Agent string against LLMify's bundled AI crawler list.
Top Visited Markdowns
The Markdown URLs (.md pages, llms.txt, llms-full.txt) ranked by total visits. URLs are normalised to their path so the same page lands on the same row regardless of direct or content negotiation.
Data Ranges
Available date ranges and their definitions:
Trend comparisons use the equivalent previous period (e.g., "Last 7 Days" compares to the 7 days before that).