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.

By , founder of Porteur · Updated 14 September 2026 · Markdown

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.

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.

MetricLast 28 daysPrev. 28 daysDirectionSource
Clicks from searchup / down / flatSearch Console
Signups from searchup / down / flatAnalytics
Revenue from searchup / down / flatAnalytics
Impressionsup / down / flatSearch Console
Average positionup / down / flatSearch Console
Indexed pagesup / down / flatSearch Console
Core Web Vitals: LCP, INP, CLSpass / needs workSearch Console
Referring domainsup / down / flatLinks 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.

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.
MetricLast 28 daysPrev. 28 daysDirectionNotes
Clicks from searchupWinners: /comparisons/feature-flag-tools, /alternatives/launchdarkly-alternative
Signups from searchflatLanding pages: /pricing, /docs/quickstart
Revenue from searchflatAnnual plan bias masks short-term moves
ImpressionsupNew coverage on comparisons
Average positiondownDocs crawl issue pulled average down
Indexed pagesflatNo structural changes
Core Web Vitalsneeds work/pricing, /docs/quickstart LCP high
Referring domainsupTwo 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.

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

Sources

Check my site, free

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, no card
  • Read-only, your own accounts
  • Readable by your agent

Read next