# A monthly SEO report on one page: what changed, why, what next

You want one page you can read in two minutes. It should say what moved in search, why it moved, what you shipped, and what you will do next. Here is the shape, the table, and a worked example you can copy.

Updated 2026-09-14 · Source: https://porteur.ai/guides/seo-monthly-report

## The shape of a one-page monthly SEO report

Keep it to four parts, one page. No slide deck, no screenshots wall.

- What changed in KPIs and why, one paragraph.
- What you shipped, one list of pages and fixes.
- What next month will do, three to five bullets tied to goals.
- The table of figures, last 28 days vs the 28 days before.

Write it for you, the founder who ships the site. If a sentence does not change a decision, cut it.

## KPIs first, diagnostics second

A KPI is the number you read weekly. A metric is what you read when a KPI moves. Keep the list short.

- KPIs: clicks from search, signups from search, revenue from search.
- Diagnostics: impressions, average position, indexed pages, Core Web Vitals, referring domains.

Write goals as a figure and a date. Example: two hundred clicks a week from non-brand searches by March. Never as a position on one keyword.

A dashboard shows both. Search Console is enough for most small sites. Looker Studio connects to Search Console and GA4 for free if you want one view.

## Strategy, plan, roadmap: why they anchor the report

SEO is a process, not a grab bag. Your report reads against the strategy, the plan, and the roadmap. Keep each tight and written down once.

- Strategy, once a year: which searches you want, which pages will answer them, how you will earn links and mentions.
- Plan: the strategy with dates and an order for this quarter. New pages, refreshes, technical debts, who does what.
- Roadmap: the plan drawn over quarters so you can see the sequence.

Your monthly report should point to the items on the plan you worked on, and the next ones you will start. If a task is not on the plan, say why you still did it.

## The table of figures to include

Put the figures in a single table. One row per KPI, then diagnostics. Periods: last 28 days and the 28 before. Add a simple up, down or flat indicator if you hate percentages.

| Metric | Last 28 days | Prev. 28 days | Direction | Source |
| --- | --- | --- | --- | --- |
| Clicks from search |  |  | up / down / flat | Search Console |
| Signups from search |  |  | up / down / flat | Analytics |
| Revenue from search |  |  | up / down / flat | Analytics |
| Impressions |  |  | up / down / flat | Search Console |
| Average position |  |  | up / down / flat | Search Console |
| Indexed pages |  |  | up / down / flat | Search Console |
| Core Web Vitals: LCP, INP, CLS |  |  | pass / needs work | Search Console |
| Referring domains |  |  | up / down / flat | Links report |

If you track brand and non-brand separately, split clicks and signups into two rows. If you run a country split, add rows by market, not a second table.

> One rule: one page, one table. If you need more tables, your KPIs list is too long.

## What to leave out

- Keyword rankings lists. Use them only to debug, not to report.
- Time-on-page and bounce rate. They are not search outcomes.
- Screenshots of every chart. Put the link to the dashboard instead.
- A long backlink dump. Report the count of referring domains and the one or two new mentions that matter.
- Position goals like “rank 1 for ‘crm’”. Write outcome goals with a date.

Cut anything that does not tie to a shipped change or a next action. Short beats complete. Your future self will read it on a phone on a train.

## How to write the monthly report in 30 minutes

1. **Pull the KPIs for the last 28 days** Open Search Console performance. Note clicks. Split brand vs non-brand if you can. In analytics, note signups and revenue from organic.
2. **Scan diagnostics for movements** Impressions, average position, indexed pages, Core Web Vitals, referring domains. Mark any that are sharply up or down.
3. **List what shipped** Pages published or refreshed, internal linking added, technical fixes live, launches and listings, any earned mentions or links.
4. **Name what moved and why** Tie one movement to one shipped thing. If you cannot, say that and list the top three likely causes you will test.
5. **Pick next month’s moves** Three to five tasks from the plan. Each should be a page to write or refresh, a fix to ship, or a link-earning action.
6. **Fill the table** Enter the figures, period over period. Mark up, down or flat. Add a link to the dashboard for detail.

A good report reads like a standup update. What changed, what you did, what next. No filler. No jargon. Clear dates and owners on the next tasks if you have a team.

## Diagnose movements without rabbit holes

Start with the KPI that moved. Work back to diagnostics only as far as you need to plan a concrete fix or test. Here are common cases and what to check next.

- Clicks up, impressions flat: better snippets. Check title tags and meta descriptions on the pages that won more clicks.
- Clicks down, impressions up: more queries but poor fit. Check search intent and your page’s first screen. Improve the match and the call to action.
- Impressions up across many queries: new coverage. Check which pages now rank and add internal links to pass that gain to related pages.
- Average position down, clicks steady: brand held you up. Split brand vs non-brand in the performance report to see where you actually slipped.
- Signups from search down, clicks steady: conversion issue. Check the landing page speed and the offer. Fix LCP to about 2.5 seconds and remove friction.
- Indexed pages down: many noindex or removals. Check your sitemap and any deploy that changed canonical or meta robots tags.
- Core Web Vitals red: ship the fix. Optimise images, reduce third-party scripts, and keep CLS under 0.1 and INP near 200 ms.

Stop when you have one change to ship. Put deeper analysis on the backlog if it will not change next month’s actions.

## Decide what to do next month

Pick work that moves your KPIs. Tie each task to the strategy and the plan. If a task does not map to a target search or a page, question it.

- Pages to write: category, best-of, alternatives, comparisons, jobs-to-be-done, integrations, brand pages.
- Pages to refresh: content decay, improved titles, richer answers, fresh images, updated screenshots.
- Technical fixes: indexation issues, speed, internal links from hubs, canonical and redirects.
- Links and mentions: launches, listings, tools, data people cite. Ship one thing worth talking about.

Write the next month section as three to five bullets. Each bullet is a change you will ship, tied to a page or a fix. Give it a date inside the next 28 days.

## Worked example: a one-page report for a fictional SaaS

The product: Buttonfox, a small SaaS for feature flags. The site: buttonfox.com. The plan this quarter: ship a set of comparison pages, improve speed on /docs, earn links with a tiny free calculator.

Headline, what changed and why. Clicks from search are up. Non-brand clicks rose after we published /comparisons/feature-flag-tools and /alternatives/launchdarkly-alternative. The new titles matched how people search and won a higher click-through rate. Signups from search are flat, held back by slow load on /pricing and /docs/quickstart. LCP is above about 2.5 seconds on both pages.

- What we shipped. New pages: /comparisons/feature-flag-tools, /alternatives/launchdarkly-alternative, /integrations/slack. Refresh: /guides/getting-started. Internal links from /guides/ to the new pages. Compressed hero images on /.
- What moved. Impressions rose for “feature flag tools” and “launchdarkly alternative”. Clicks followed on the two new pages. Average position fell a little sitewide due to a docs crawl issue, but the new pages gained coverage.
- Why it moved. The new pages mapped cleanly to comparison intent, and the titles landed within about 60 characters. Meta descriptions now give a concrete reason to click. Internal links put them in the crawl path.
- What did not move. Signups from search stayed flat. /pricing remained slow and lost some scroll depth. We saw fewer branded queries to a webinar page that we did not promote this month.

| Metric | Last 28 days | Prev. 28 days | Direction | Notes |
| --- | --- | --- | --- | --- |
| Clicks from search |  |  | up | Winners: /comparisons/feature-flag-tools, /alternatives/launchdarkly-alternative |
| Signups from search |  |  | flat | Landing pages: /pricing, /docs/quickstart |
| Revenue from search |  |  | flat | Annual plan bias masks short-term moves |
| Impressions |  |  | up | New coverage on comparisons |
| Average position |  |  | down | Docs crawl issue pulled average down |
| Indexed pages |  |  | flat | No structural changes |
| Core Web Vitals |  |  | needs work | /pricing, /docs/quickstart LCP high |
| Referring domains |  |  | up | Two mentions: a dev blog roundup, a tools list |

Next month, what we will do. Three priority items, tied to the plan and to the issues above.

- Fix LCP on /pricing and /docs/quickstart. Optimise images and web fonts. Target about 2.5 seconds for LCP.
- Publish /alternatives/flagsmith-alternative and /comparisons/feature-flag-open-source. Use the same title and intro pattern that worked this month.
- Ship a tiny free calculator at /tools/feature-flag-rollout-time. Pitch two developer newsletters for a mention and a link.

What a fixed page looks like: /alternatives/launchdarkly-alternative opens with one clear line on who should pick Buttonfox over LaunchDarkly, shows a side-by-side table, cites two developer pains with code examples, and links to /pricing and /docs/quickstart above the fold. Title within about 60 characters. Meta description within the usual length. Screenshots optimised. Internal links in and out.

> Warning: do not produce dozens of near-duplicate comparison pages. As of 2026, Google’s spam policies call this scaled content abuse if the pages add no value of their own.

## Where PPC fits in the monthly picture

SEM is paid results. PPC is the pay per click model. Organic results come from ranking, paid from an auction on the query with a cost per click. Paid stops when the budget stops. Organic keeps sending clicks after the work. A new product often runs both: paid to learn which queries convert, organic to hold them.

In your report, keep paid and organic separate. Use paid search to find which queries and pages convert, then build the organic pages for them next month. Do not paste ad metrics into the SEO table.

## Who should write the report and what help to buy

DIY is realistic with free tools and one hour a week if you keep scope tight. What you cannot do is write forty good pages a month or earn links without a product worth linking. When you buy help, buy the missing piece: judgement, execution, or continuity.

- A consultant sells judgement. Examples: an audit, a strategy, a review of the work, or a one-off report you can run with.
- An agency sells execution. Examples: content writing at scale, technical fixes, digital PR.
- An in-house hire sells continuity. They own the plan and the roadmap month to month.
- Tools sell subscriptions. They are for measurement and research, not strategy by themselves.

Pricing varies by country, scope and seller. Retainers, hourly and project rates all exist. Any “average” you read is marketing. Size your budget by the work and by the value of a search click to your business. Avoid red flags: guaranteed rankings, secret techniques, links for sale, and promises of first position on a keyword.

If you want an outside view once, Porteur is one report you buy once. It reads your site and the searches around it, then shows what to ship next.

## Questions

### What should a monthly SEO report include?

Four parts on one page. What changed in KPIs and why. What you shipped. What the next month will do. A table of figures for the last 28 days versus the 28 before. Keep paid separate from organic.

### What is an SEO report?

It is a summary of outcomes from search and what to do next. For a small site, that means clicks, signups and revenue from organic, plus a few diagnostics like impressions and Core Web Vitals. It should tie to your strategy and plan, not just list rankings.

### Can ChatGPT do an SEO audit for me?

You can use an AI assistant to draft checklists and page outlines. Google does not penalise AI-assisted writing as such. What fails, as of 2026, is scaled content made without value of its own. For an audit, combine free tools and your judgement, then ask for expert review if you need it.

### How much does monthly SEO cost?

There is no single price. Agencies bill retainers. Freelancers bill hourly, daily or per project. Tools are monthly subscriptions. Size your spend by the work you need done and what a search click is worth to you. Avoid guarantees and paid links.

### Should I track keyword rankings in my report?

Track them to debug specific pages, not as a headline KPI. Rankings jump around and can hide the real picture. Report outcomes like clicks and signups first, then use rankings to explain a move and to pick page-level fixes.

### Do I need Looker Studio for this?

No. Search Console is enough for most small sites. Looker Studio helps if you want Search Console and GA4 in one view. Put the link to your dashboard in the report and keep the page itself short.

## Read next

- [An SEO report template that a founder actually reads](https://porteur.ai/guides/seo-report-template): Use this simple SEO report template. One page a founder reads. What to include, where to pull it from, a filled example, and versions for audits and months.
- [SEO KPIs: the three numbers a founder reads weekly](https://porteur.ai/guides/seo-kpis): Track three SEO KPIs each week: non-brand clicks, signups from search, and revenue from search. See where each comes from and what to do when one moves.
- [SEO metrics explained: what each one measures and what it does not](https://porteur.ai/guides/seo-metrics): Know which SEO metrics matter, where they come from, what they measure, and the traps. Set one KPI, track diagnostics, and report in one page.
- [An SEO dashboard for free: Search Console, GA4 and Looker Studio](https://porteur.ai/guides/seo-dashboard): What to show on one screen, how to build it in Looker Studio with free connectors, and when Search Console alone is enough for a small product.
- [The Search Console performance report, column by column](https://porteur.ai/guides/search-console-performance-report): Every column in the Google Search Console performance report explained with the traps that trip small sites, and how to act on each.
- [How to use Google Search Console in ten minutes a week](https://porteur.ai/guides/how-to-use-google-search-console): A quick weekly routine: set four filters, compare 28 days, check pages then queries, and fix three findings, without getting lost in noise.

Paste your URL to get a free one-page read on your site and the searches around it in about thirty seconds, with three findings you can ship next. Free check: https://porteur.ai/
