Key takeaways
- A monthly SEO report answers four questions in order. What changed, why it changed, what work was done, and what happens next
- Lead with a three-sentence summary; the rest of the report is the evidence for it
- One headline metric can misread a whole month. On crawlcove.com, impressions fell 39% from August to September 2026 in the month clicks went from 3 to 21
- Month-on-month only means something when the windows match: whole calendar months, Search Console totals summed by date, and the same crawl settings every time
A monthly SEO report template needs seven sections: a summary, search performance, the pages and queries that moved, technical health, the work done, conversions, and next month's plan. Most templates stop at that list. This one also fills it in with a real month from a real site, because the hard part of a monthly report is reading the numbers correctly.
Every section below says what goes in it and where the data comes from. The worked example uses crawlcove.com's own Search Console data for August and September 2026.
The monthly SEO report template, section by section
1. Summary (three sentences). What changed, why, and what you are doing next. Write it last, put it first. For many clients it is the only part they read closely, so it carries the conclusion, not a description of the process.
2. Search performance. Clicks, impressions, click-through rate and average position from Search Console, for the month against the previous month and against the same month last year. Add a single line chart of daily clicks if the client likes pictures; one chart is plenty.
3. Pages and queries that moved. The five pages that gained the most clicks and the five that lost the most, with the queries behind the biggest moves. Name a reason for each where you have one: a fix that shipped, a new page, a Google update, a competitor's new page.
4. Technical health. The issues the crawl found this month compared with last month, split into new, fixed, still open and regressed (fixed before, back again). A total issue count on its own says little. The split shows whether the site is getting better.
5. Work done and its status. What you changed this month, and for each item whether a re-crawl has confirmed it. "Fixed" means the next crawl found it gone, not that a ticket was closed.
6. Conversions from organic search. Enquiries, sales or sign-ups from organic sessions, from the client's analytics. Leave this section out rather than guess if tracking is not set up, and put fixing it into next month's plan.
7. Next month's plan. Three to five items, in priority order, each with the page it affects and how you will know it worked.
An appendix can hold everything else: full keyword tables, the full issue list, raw exports. Clients who want it will find it, and the ones who do not will not have to read past it.
A worked example: crawlcove.com, August to September 2026
Here is section 2 filled in from crawlcove.com's own Search Console property. The site was a few months old at the time, so the numbers are small, which makes the reading problem easier to see.
| Metric | August 2026 | September 2026 | Change |
|---|---|---|---|
| Clicks | 3 | 21 | +18 |
| Impressions | 6,775 | 4,153 | -39% |
| Average position | 69.0 | 45.7 | 23 places higher |
| Pages with at least one impression | 69 | 124 | +55 |
Totals are summed from the date view of Search Console. Average position is weighted by impressions.
A report that led with impressions would call September a bad month. Every other row says the opposite. Average position rose by 23 places, nearly twice as many pages showed up in search at all, and clicks went from 3 to 21. Most of the fall came from two comparison pages that sat around positions 74 to 80 in August. Together they collected 3,899 impressions that month and 2,028 in September, and neither earned a click in either month. Impressions that deep in the results were never going to turn into visits.
The summary for that month would read something like this:
Search clicks rose from 3 to 21 and the average ranking position improved by 23 places, as Google started showing 55 more of the site's pages. Impressions fell 39%, mostly on two comparison pages ranking around position 75 that earned no clicks in either month, so it does not reflect lost traffic. Next month we focus on the pages ranking between positions 11 and 30, where a small move puts them on the first page.
That is the job of the report: say which number matters this month and why, before the client draws their own conclusion from the wrong one.
What to leave out
- Scores from third-party tools, such as domain authority. They are estimates from a vendor's own index. Google does not use them, and a client will ask why the score went down.
- Raw counts with no comparison. "214 backlinks" or "180 indexed pages" means nothing without last month's number and a reason it changed.
- The full issue export. 400 rows of findings belong in the appendix. The report carries the change since last month.
- Impressions as the headline. As the example shows, impressions can fall in a good month and rise in a bad one. Report them, but read them next to position and clicks.
Rules that keep one month comparable with the next
Use whole calendar months, and wait for the data. Search Console data runs about two days behind, so build the report on the 3rd or later. A report built on the 1st under-counts the end of the month and makes every month look like a decline.
Take totals from the date view. Search Console leaves anonymised queries out of the query view, so adding up query rows under-counts clicks. On our own property in August 2026, the query view showed 0 clicks over 87 days where the date view showed 19. Use the query view to see which searches moved, and the date view for every total.
Crawl the same way every month. A higher page limit, JavaScript rendering switched on or a different user agent will change what a crawl finds. Twice as many issues after you raised the page limit is the crawler seeing more of the site, not the site getting worse. Keep the settings fixed and write them down.
Note what happened in the month. A site release, a migration, a Google core update, a seasonal peak. One line each, dated, at the foot of the performance section. Without them, next year's year-on-year comparison has no explanation attached.
Keep a baseline. Every comparison starts from the month you started work. If you are still setting up a new client, the SEO client onboarding checklist covers what to save before the first change.
Building the report in Crawl Cove
Crawl Cove covers the technical half of this template. Each crawl of a client's site is kept as a dated run and compared with the one before it, so section 4 arrives already split into new, fixed, persisting and regressed findings, and each run says whether it was crawled with the same settings as the last one. Scheduled crawls keep the run on the same day each month while the app is open (scheduled SEO audits).
Connect the client's Search Console and the same data feeds the Search Performance page and free keyword rank tracking. The Reports page then builds a white-label SEO report with your logo and colours from the runs you choose, either the full audit or a keyword-movement report with rank changes over time.
Conversions and the commentary are still yours to write. No tool knows why the client's sales team had a quiet month.
For a one-off audit rather than a monthly update, use the SEO audit report template instead: it is built around a full issue list rather than changes. Tracking SEO issues per client over time covers keeping section 5 honest across months.
Copy the template
[Client] monthly SEO report, [Month Year]
1. Summary
What changed, why, and what we do next (three sentences)
2. Search performance (Search Console, date view)
Clicks / impressions / CTR / average position
This month | last month | same month last year
3. Pages and queries that moved
Top 5 gains, top 5 losses, with the reason for each
4. Technical health (crawl vs last month, same settings)
New / fixed / still open / regressed
5. Work done this month
Change | page | verified by re-crawl? (date)
6. Conversions from organic search
Enquiries, sales or sign-ups vs last month
7. Next month's plan
3 to 5 items | page affected | how we will know it worked
Notes: releases, migrations, Google updates, seasonal events (dated)
Appendix: full keyword table, full issue list
Crawl Cove runs the crawls and builds the branded report for every client from one desktop app. See how it works for agencies, or start a 14-day trial with no card required.
Frequently asked questions
- What should a monthly SEO report include?
- A short summary, search performance against the previous month and the same month last year, the pages and queries that moved, technical health as new, fixed and regressed issues, the work done and whether it was verified, conversions from organic search where analytics allows, and next month's plan.
- How long should a monthly SEO report be?
- Short enough that the summary can be read in a minute and the whole report in five. Most of the length belongs in an appendix the client can skip: full keyword tables and the issue list.
- When should I send the monthly report?
- A few days into the new month. Search Console data runs about two days behind, so a report built on the 1st is missing the last days of the month it describes.
- Should I compare month on month or year on year?
- Both, for different questions. Month on month shows the effect of recent work. Year on year shows whether a change is seasonal, which matters for any business with a busy season.
- What should I leave out of a monthly SEO report?
- Numbers that do not change a decision: a domain authority score, a raw backlink count, a total indexed-page number with no context, and a 400-row export of every issue. Put the full data in an appendix if the client wants it.