Web analytics report template
The numbers worth repeating every month, the comparisons that hold up, and the notes that let someone read the report a year from now.
- checked 2026-09-19
- The table of tools →
What belongs in a monthly report
A monthly web analytics report holds a small set of numbers you repeat every month, each with the question it answers, the period it covers and the name of the tool it came from. Five blocks cover most sites: how many people arrived, where they came from, what they opened, what they did that you decided to count, and what changed on the site meanwhile.
Scale comes first. Visits and visitors for the month, with pageviews beside them, say how much traffic there was. Those figures are weak on their own, so the comparison with the previous month and with the same month a year earlier belongs on the same line rather than in a section of its own.
Sources come second, because that is the part you can act on. A split by channel, referrer and campaign says where the attention came from. Two cautions travel with it: visits without a referrer are grouped as direct, a bucket mixing typed addresses with clicks from email and messaging applications, and a campaign line is worth only as much as the tags on your own links, since a missing parameter leaves values Google reports as (not set).
Content comes third, and landing pages carry more than a list of every page opened: a landing page is what brought someone in, so the list doubles as a brief for the next thing you publish.
Fourth are the actions you decided matter, such as a signup, a purchase, a download or a form sent. Report the count and the rate together and never the rate alone: four per cent of fifty visits and four per cent of fifty thousand visits are different facts, and a rate without its denominator hides which one you have.
The fifth block usually goes missing: a dated list of what changed. Releases, campaigns, an outage, a post that was shared somewhere large, and any change to the tracking itself. Without that list, next month’s report explains a movement with a guess.
Two habits keep the set usable. Report the same numbers in the same order every month, because a report that changes shape cannot be compared with itself. And leave out any metric whose definition you cannot state in one sentence. The words behind the counts are set out in the guide on what web analytics is.
A report structure that reads a year later
The order below survives being opened by someone who was not there.
- Header: the site, the month, the reporting time zone, the tool the figures came from, and the date the report was produced.
- Summary: three to five sentences on what moved and what was decided because of it.
- Traffic: visits, visitors and pageviews, each against the previous month and the same month last year.
- Sources: the split by channel and the campaigns you tagged, with the direct group named as a mixed bucket rather than a channel.
- Content: landing pages, and the pages that gained or lost the most since the previous month.
- Actions: each counted action as a number and as a share of visits, with money attached only where an amount is sent with the event.
- Outside sources: search impressions and clicks, email sends, advertising spend, each labelled with the system it came from, since none share your analytics tool’s definitions.
- What changed: the dated list, including tracking changes.
- Decisions: what will be done before the next report, and what evidence would change the plan.
- Notes: definitions used, filters applied, and the gaps you know about.
Those last three sections take fifteen minutes and are why the file still reads next spring.
Comparing periods without fooling yourself
Most of the harm in a monthly report comes from comparing two periods that were never the same shape.
Weekdays are the first trap. A month with five Saturdays sits next to a month with four, and on a site whose traffic drops at weekends that difference alone moves the total. Vendors that publish their options give you the choice: Google Analytics 4 offers Previous period (match day of week), Previous period and Previous year, and notes that the Previous year (match day of week) option has been removed and that Last calendar year is the way to look back; Plausible offers Previous period, Year over year and a custom period, with Match day of week or Match exact date as the alignment. Pick one alignment and record which one, because the two produce different percentages from identical data.
Month length is the second. February against January compares 28 days with 31, about a tenth of the difference before anything real has happened. A daily average removes that, and so does comparing four full weeks.
Seasonality is the third, and only a year-over-year line answers it. That line carries its own risk, since the setup a year ago may not be the one you have now.
Mixing tools is the fourth. Two tools on one site disagree by design: each sets its own rule for when a visit ends, keeps its own bot list and loses a different share of requests to blockers. Visits from one tool and conversions from another produce a rate neither tool would print.
What moves a number when nothing changed on the site
Several mechanisms move a monthly figure on their own, and vendors document all of them.
Automated traffic is the first. Google Analytics 4 excludes known bots using Google research and the International Spiders and Bots List maintained by the Interactive Advertising Bureau, and states that you can neither disable that exclusion nor see how much was excluded. Other tools keep their own lists, so a crawler wave that one drops and another counts becomes a spike you will spend an afternoon explaining.
Blocked and declined visits are the second: they make a traffic total a floor rather than a census, and the share lost depends on who reads you and what they browse with.
Withheld and estimated data is the third. Google Analytics 4 applies data thresholds that are system defined and cannot be adjusted, and a narrow date range with low counts makes them more likely. It samples when a query passes the quota limit of 10 million events for a standard property, and shows the percentage of data used in the data quality icon. When a table holds more rows than its limit, the least common values are folded into a row called (other), which Google says is more likely in reports carrying a secondary dimension, a filter or a comparison.
Settings are the fourth. Google states that changing the reporting time zone only affects data going forward and that an existing property may then show a flat spot or a spike. Retention decides how far back a figure can be rebuilt: user-level and event-level retention in Google Analytics 4 is set to 2 or 14 months, and while standard aggregated reports are not affected, explorations and funnel reports cannot reach past it.
Your own tagging is the fifth and the most common. A renamed event splits one metric in two, a consent banner that loads the script only after acceptance removes everyone who declines, a template change drops the snippet from a section of the site, a plugin update returns a setting to its default. Each looks exactly like a change in behaviour, which is why the report carries a list of what changed. Vendor changes belong on it too, and the market log records closures and changes of owner.
What to write beside each number
Two vendors publish a feature for this, which says something about how often the need comes up. Matomo’s annotations attach notes to dates in the past, with an API for adding them, and its documentation puts the purpose plainly: someone new to the business can look at the analytics later and understand the events behind it. Plausible pins notes to dates on the traffic chart, as personal notes or as site notes visible to everyone with dashboard access, and advises adding them on the day rather than a week later.
In the tool or in a text file, the caption beside a number needs five things: which tool produced it, which date range and time zone, which metric exactly, which filters or segments were applied, and what you know is missing. Then one line no tool can write for you, naming the decision the number led to.
Scheduled reports do part of the job: Plausible sends weekly reports every Monday and monthly reports on the first of the month with the figures inside the email, and Matomo schedules reports as HTML, PDF or CSV by email, mobile or Slack. Both deliver numbers, and neither writes the sentence about what changed.
Questions and answers
What should a monthly website analytics report include?
Five things: traffic for the month with its comparisons, sources split by channel and campaign, landing pages, the actions you count as a number and as a rate, and a dated list of what changed on the site. Anything else is an appendix, and each figure carries the tool, the period, the time zone and the definition.
How far back should the comparison go?
Two comparisons are enough: the previous period and the same period a year earlier. The first shows movement, the second seasonality. Align the weekdays or the calendar dates deliberately, since Google Analytics 4 and Plausible both offer that choice and the two alignments give different percentages. For a site younger than a year, compare four-week blocks rather than calendar months.
Why do the numbers change after the month has closed?
Because reports are computed when you open them rather than frozen when the month ended. Late records arrive, thresholds and sampling depend on the query you ran, and retention settings eventually remove the non-aggregated data behind explorations. Export what goes into the report on the day you produce it.
Can I put figures from two tools in one report?
Yes, as long as one tool answers each question and the line names it. What does not work is a calculation crossing tools, such as visits from one and conversions from another, since the two share neither a definition of a visit nor a bot list. The table of tools shows what each of its 44 entries records with the date it was checked, and the methodology explains the columns.
Is an automated report enough?
It covers delivery rather than interpretation: scheduled emails arrive with the same figures every month, which is what makes them easy to ignore. The part that earns its time is the paragraph naming what changed, the decision taken and the number you expect to move next month.
Tools named on this page
Each card shows the values we check, with the date of the last check.

Google Analytics 4
Cloud web analytics, with an optional cookieless mode.

Matomo
Cloud or self-hosted web analytics, with an optional cookieless mode, open source.

Plausible
Cloud or self-hosted web analytics, cookieless by default, open source.
Values in this guide come from the directory and carry the date they were checked. Seehow we check every value and thefull table of tools.