Most dashboards get opened daily and understood never. This is a fixed weekly routine: eight panels, fifteen minutes, one decision written down.
Review once a week, over a 7-day window, in the same order every time. Daily checking mostly measures your own anxiety. A fixed weekly pass lets you compare like with like and ends with one written action.
A dashboard is not a report. It is a set of panels that answer different questions, and most people read the panel that is nearest the top, feel good or bad, and close the tab. The result is a lot of looking and very little learning.
A weekly routine fixes three problems at once. First, a week is long enough to smooth out the day-of-week pattern that dominates small sites: a site that is busy on weekdays and quiet on weekends will look like it is collapsing every Saturday if you check daily. Second, a fixed order means you notice what is missing as well as what is there. Third, ending with one written decision turns the review from a habit of looking into a habit of acting. If you cannot name a change after fifteen minutes, write "no change, because X" and move on. That is a valid outcome.
This guide uses GhostMetrics panel names because the definitions are checkable in the product, but the routine works on any tool that shows trend, pages, sources and engagement. If you are still choosing a tool, how to measure website traffic covers the options first.
The dashboard has four period buttons: 24h, 7d, 30d and 90d. For the weekly review, choose 7d and leave it there. Two behaviors of that selector matter.
One subtlety: the trend on Bounce Rate is a relative change, not a difference in percentage points. If bounce rate went from 50% to 55%, the card reads +10.0%, because 55 is 10% more than 50. Read the card as "bounce rate is 10% higher than it was" and look at the two underlying values if the exact gap matters.
What the cards count is worth a sentence each, because the names are friendlier than the mechanics:
sessionStorage. It counts tab sessions that started, not distinct people. The same person opening your site in a new tab tomorrow counts again, by design, because GhostMetrics keeps no cross-session identifier.Set a timer. The budget is part of the discipline: it forces you to look for the big thing instead of reading every row.
The table below is the same routine as a checklist to keep next to the dashboard.
| Panel | Where | Question | Act when |
|---|---|---|---|
| Stat cards | Overview | Did anything move versus last week? | A card moved by more than your normal wobble and you cannot explain it |
| Traffic | Overview | Is the shape of the week plausible? | A zero day, or a spike with no cause |
| All Pages | Pages | Are the right pages on top? | An unexpected page leads, or a key page is missing |
| Referrers, Traffic Type | Sources | Where is attention coming from? | A new external source appears, or search shrinks |
| UTM Breakdown | Sources | Did the campaign I tagged deliver? | A tagged link shows nothing, or untagged traffic you expected to be tagged |
| Entry / Exit Pages | Pages | Where do visits start, and which pages were left? | A page that should lead somewhere is a top exit |
| Scroll, time | Engagement | Are entry pages actually read? | A top entry page is abandoned near the top |
| Vitals by Page | Performance | Is a busy page slow? | A high-traffic page has the worst LCP or TTFB |
| Custom Events | Events | Did the actions I care about happen? | A button you track went quiet |
The Sources tab has three panels, and each one has a counting rule that changes how you should read it.
The Referrers table lists the referring address recorded with each pageview, with visits and a percentage. Two things to know. First, it counts pageviews, not sessions, and the query does not exclude your own domain. On a multi-page site, a visitor who clicks from your home page to a second page arrives with your own address as the referrer, so your hostname can appear in the list. Skip it and read the external rows. Second, on a single-page app the browser's referrer value does not change when the route changes, so route changes repeat the landing referrer. Both effects inflate a referrer's visits relative to the number of people it sent. Use the table to rank sources against each other, not as a headcount.
Traffic Type groups the referrer text into four buckets. An empty referrer is Direct. A referrer containing Google, Bing, DuckDuckGo or Yahoo is Search. A short list of social networks (Twitter, Facebook, LinkedIn, Reddit and the t.co shortener) is Social. Everything else with a referrer is Referral. It is a keyword match on the referrer text, so it is good for the direction of the mix and wrong at the edges: a network not on that list lands in Referral, an unrelated address that happens to contain one of those strings (microsoft.com contains "t.co") lands in Social, and clicks between your own pages count as Referral. Direct is also a catch-all, because a visit with no referrer header could be a typed address, a bookmark, a messaging app or a privacy setting that strips the header, and GhostMetrics cannot tell them apart. Direct traffic explained walks through the causes.
The UTM Breakdown has four columns: source, medium, campaign and visits, for the top 20 combinations. GhostMetrics reads utm_source, utm_medium and utm_campaign from the landing URL and keeps the first set it sees in that tab's sessionStorage, then attaches it to every later pageview in the tab that carries no tags of its own. The consequence is that visits counts pageviews carrying that tag, so a campaign visitor who reads three pages adds three. The week-over-week comparison is still valid, because the counting rule does not change, but do not quote the number as "people from the newsletter". For naming conventions that keep this table readable, see the UTM parameters guide.
The weekly question for all three: is there a source that is new, bigger or gone compared with last week, and do I know why?
On the Pages tab, Entry Pages lists the ten pages where the most tab sessions began, and Exit Pages lists the ten pages most often left. Entries come from the pageview beacon, so they are the more reliable of the two. Exits depend on a leave beacon arriving, and a page that was left is flagged whether or not it was the last page of the visit, so the exit list tends to follow your traffic ranking. Read it as "which pages were left", compare it with the entry list, and look for a page that should hand readers onward but appears high on exits.
On the Engagement tab, two panels earn a place in a weekly pass.
Neither number is a verdict on content quality. A short page that answers a question quickly can have a low time and a high satisfaction. For how the scroll data is collected, see scroll depth tracking without Google Analytics, and for how bounce rate relates to engagement, bounce rate vs engagement rate.
The Performance tab shows Core Web Vitals captured from real visitors: FCP, LCP, CLS and TTFB. INP is not captured. For a weekly pass, ignore the averages across the whole site and open Vitals by Page. You are looking for a page that is both busy and slow, because that is where a fix helps the most people. TTFB is measured from navigation start to the first response byte, and the dashboard rates it against an 800 ms "good" threshold; for FCP, LCP and CLS, compare against Google's published thresholds. If a number shifts a lot in one week without a deploy, suspect a mix change (more mobile visitors, a new country) before suspecting the site. Core Web Vitals real user monitoring explains why field data differs from a lab test.
The Events tab shows custom events as name, count and last triggered. Your weekly check is binary: did each action you care about happen, and when did it last fire? A "Last Triggered" date from three weeks ago on a button you expect people to click means either nobody clicks it or the attribute fell off during an edit. Events carry the page path and any session UTM, but the panel has no per-campaign filter; if you need events by campaign, use the raw CSV export, which is available on every plan.
A lot of what a dashboard shows is real but not actionable at weekly resolution. Skipping these is not laziness; it is how you protect the fifteen minutes.
Then write the decision. Keep it in one line in a notes file with the date, the three numbers that prompted it and the action. In a month you will have four lines; in a quarter you will have a log of what moved the numbers, which no dashboard can give you. If you want to share the weekly view with a teammate, client or sponsor, a Pro public dashboard shows the same panels without a login, covered in sharing website analytics publicly.
GhostMetrics is cookieless web analytics with no cookies, no localStorage and no stored IP addresses. The free plan is free forever with no card: one website, unlimited pageviews, the real-time dashboard, every dashboard view, full history, plus raw CSV or JSON export on every plan. Everything this routine uses (Overview, Pages, Sources, Engagement, Performance, Events) is included. We run it on nullagency.io.
Several sites or a public dashboard URL? Pro is $9.99/mo flat with unlimited websites (fair-use ceiling of 250) and a 30-day free trial; a card starts the trial, nothing is charged for 30 days, and you can cancel anytime. The script is about 3 KB compressed on the wire and goes in your head as one tag.
Start free, no card See the live demoDisclosure: GhostMetrics is built by Null Agency and we use it on this site, so we are not a neutral party about our own product. The routine works with any tool that shows trend, pages, sources and engagement; panel names and counting rules described here are specific to GhostMetrics. Check the product documentation for current behavior before relying on a definition.