SLXfr
Blog · 23 October 2026 · 9 min read

Automated SEO reporting that theleadership team actually reads

A monthly SEO report that sends itself, what it contains, how it warns you when it is wrong, and why Search Console and GA4 disagree.

White wireframe clock whose exploded parts form a bar chart, on a black background with a few green lines

You spend half a day each month copying figures from Search Console and GA4 into a document that the leadership team skims in two minutes, when they open it at all. That report helps nobody, least of all you. Automated SEO reporting solves half of the problem: the report arrives on time, with no copying and pasting. The other half is knowing what to put in it, how to read it, and how to tell that it hasn't got something wrong.

I approach the subject with the rules of my content machines, the ones that publish the articles on this blog: the tool handles what can be checked, the person keeps what needs judgement. Below is the outline of a monthly report, how to make it send itself, the data traps worth explaining before anyone asks, and the safeguards that stop it from quietly misleading you.

01What a monthly SEO report should help you decide

A monthly report is there to decide what happens next month, far more than to prove the work was done. Before choosing a single chart, I write down the two or three decisions the reader should be able to make from it: carry on with a workstream, stop one, rewrite a page that is slipping, publish more on a topic that is picking up.

It is the same logic as the brief that blocks writing in my pipelines: until the angle is written down, nobody writes. Here, until the decisions are written down, nobody builds a chart. For a client, I set up a report that sends itself every month and a monthly marketing committee that makes decisions from it. The two together are worth more than a dashboard nobody opens.

Google's page on using Search Console and Google Analytics together starts from questions of this kind: did organic traffic change, which pages or queries explain it, do landing pages lead to conversions? A leadership team does not wonder how average CTR is moving. It wonders whether search is bringing in more enquiries, and for which offers.

02What I put in the report

One report per site, or per brand if very different audiences share a domain: an average of audiences that have nothing in common tells nobody anything. Here is the outline I recommend, which fits on a page or two:

  • Google clicks and impressions for the month, compared with the previous month and the same month a year earlier;
  • average position, with its curve over twelve months, always next to clicks;
  • the pages that gained and lost the most, with one line of explanation;
  • sessions from search in GA4 and what they lead to on the site (an enquiry, a sign-up, a sale);
  • the keywords you track in a tool such as Semrush, for the queries you are targeting;
  • the Bing figures, smaller, but a shame to ignore;
  • three written lines: what moved, why we think so, what we suggest;
  • one line on what could not be measured this month.

That last line comes from my delivery summaries. When my machine publishes an article, the summary also says what it could not do (an unreadable source, a tool that was unavailable). A report that keeps quiet about a gap in the data lets people believe everything was counted.

A word on average position: read it with care. It can get worse because the site starts appearing for new queries, low down the page. That is why I never show it on its own.

03Why Search Console and GA4 never show the same figure

It is often the first question when you put the two tools side by side. Search Console counts clicks in Google results. GA4 counts sessions on the site. Google puts it in black and white: clicks and sessions are calculated differently. The same Google Search Central page lists the causes of the gap: the Analytics tag missing from some pages, visitors declining cookies, time zone (Search Console works on Pacific Time by default), attribution model, canonical URLs, PDF files, bots excluded on one side and not on the other.

There is also a difference in scope. In GA4, the Organic Search channel groups sessions coming from a list of search sites, not just Google, and it now includes AI Overviews and AI Mode, according to the Google Analytics help page on the default channel group. Comparing that channel with Google clicks in Search Console means comparing two different things.

Finally, Search Console itself does not give the same total depending on where you look. Queries that are too rare are anonymised: they count in the chart total but appear in no row of the table. Google explains this in a Search Central blog post on data filtering, with an example where the rows add up to 450 clicks against a total of 550. So adding up the queries in an export gives less than the total. That is not a mistake in the report.

My rule fits in one sentence, and I write it in the report itself, just as my writing rules live in a configuration file rather than in my memory: Search Console for what happens in Google, GA4 for what happens on the site, and you compare trends, not totals.

04Making the report send itself, step by step

The method below suits most SME websites. It takes a few days to set up, and almost all of that time goes into steps 1 and 2, not into the tool.

1. Connect the sources properly

Link the Search Console property to the GA4 web data stream. The Google Analytics help page sets out the conditions: a Search Console property links to only one web data stream, and you need the Editor role in GA4 and to be a verified owner in Search Console. Check that both cover the same site, with or without www, and every language.

2. Pick the right connector table

The Looker Studio Search Console connector offers two tables: one aggregated by property, one aggregated by page. The totals are not the same, and the Search Console help page on the Performance report explains why: queries, countries and devices are aggregated by property, pages by page. I use the property table for totals and the page table for ranking pages, and I note it under each chart.

3. Build one page per decision

One page for Google figures, one for behaviour on the site, one for tracked keywords. No twenty-column tables. Each chart gets a title that says what it shows, in plain words, not the name of the metric. In its Search Console Training series, the Google Search Central channel has a video on monitoring Search Console data in Looker Studio: a monitoring dashboard designed to spot issues as they happen, and how to enrich the data by combining it with other sources. It is a good starting point if you have never opened Looker Studio.

4. Schedule delivery after the start of the month

Looker Studio can email a report on a fixed date, as a PDF with a link to the live version. The Looker Studio documentation on scheduled delivery gives the limits: 50 recipients at most per schedule, and only one schedule per report without the Pro version. Don't schedule it for the 1st: data for the last few days is still preliminary in Search Console, and it reaches GA4 about 48 hours late. The 4th of the month leaves room for that delay.

5. Keep the history yourself

Search Console keeps only sixteen months of data. If you want to compare two full years, store the report figures somewhere else every month. For a large site, Google offers a daily export to BigQuery, without the API limit of 50,000 rows a day. Google points out that small and medium sites already get all their data through the interface, the connector or the API. A spreadsheet is often enough.

05An automated report can be wrong without telling you

A report that sends itself can also send the wrong numbers for months without anyone noticing. A filter left on a single language, a GA4 tag removed during a site update, a Search Console property that no longer covers the right domain: none of these triggers an alert. The chart still looks nice. It is just wrong.

In my content machines, I learnt to distrust green by default. A check that did not run gives a red there, never a green. At Moonworkers, where a machine publishes two articles a day, that is what lets it run without watching every pass. I apply the same idea to the report, with three simple safeguards:

  1. An alert when a source returns zero or drops sharply from one month to the next, rather than a chart calmly showing a flat line.
  2. A control figure recalculated by hand each month in the source tool, for example the clicks on one specific page. It is the equivalent of my deliberately bad test articles, which must stay red: if the control figure drifts, the report is broken.
  3. A check as a visitor would see it. A site can look fine to the logged-in team and be broken for the public; I have seen it on an engagement. Now and then, open your pages in a private window and check that the GA4 tag loads, as I describe in my acceptance testing and go-live checklist.

Automation does not replace the three written lines either. That is the part I find most useful, and the only one a tool cannot write honestly, because it means knowing what happened in the business that month: an offer launched, a page rebuilt, a competitor arriving on a query. Even in my AI content machine, judgement stays human.

And there are cases where I would not build all of this. A site with a few hundred visits a month does not need an automated report with four sources. A monthly look at Search Console is enough, and the time saved is better spent on content. The bottleneck is not always where you think: you automate what really costs time, not what is easy to automate.

06Where to start this month

If you are starting from scratch, do three things before the end of the month. Write down the two or three decisions your report should inform. Link Search Console and GA4, and check they cover the same site. Then build a single page in Looker Studio, scheduled for the 4th, with one control figure and three lines of commentary written by hand.

The rest will come with the second or third send, once you know what readers actually look at. If you would like us to look at your current reporting together, or for me to set it up with you, that is the kind of work I describe in my services. Happy to talk it through.

Frequently asked questions

Which day should a monthly SEO report go out?
Not the 1st. The most recent Search Console data is flagged as preliminary and can still move, and it reaches GA4 about 48 hours late. I suggest scheduling delivery a few days into the month, the 4th for example. That small delay saves you from discussing a figure in a meeting that will have changed by the next morning.
Should I trust the Search Console figure or the GA4 one?
Both, for two different questions. Google says so in its own documentation. Search Console is the reference for what happens in search results, GA4 for what visitors do once they are on the site. I never add them together and I don't try to make them match. I compare their trends, which should move in the same direction.
Is Looker Studio enough to automate an SEO report?
For a small or mid-sized site, often yes. The Looker Studio Search Console connector gives access to the same data as the API, and scheduled delivery sends the report as a PDF with a link. I move to a script or the BigQuery export when sources outside Google need joining in, or when the site goes beyond the API's row limits.
How long does Search Console keep its data?
Sixteen months. After that, the history disappears from the interface and from the connector. If you want to compare one year with the previous one over time, you need to store the figures yourself each month, in a spreadsheet, a database or the BigQuery export Google offers. Better to plan it from the first report, because a lost month cannot be recovered.

Sources

  1. 01Google Search Central, Using Search Console and Google Analytics data for SEO
  2. 02Google Analytics Help, Default channel group
  3. 03Google Search Central Blog, A deep dive into Search Console performance data filtering and limits, 2022
  4. 04Google Analytics Help, Connect Search Console to Google Analytics
  5. 05Search Console Help, Performance report (Search results): overview and basic setup
  6. 06Google Search Central (YouTube), Monitoring Search Console data in Looker Studio, Search Console Training
  7. 07Google Cloud, Looker Studio: schedule automatic report delivery
  8. 08Google Search Central Blog, Bulk data export: a new and powerful way to access your Search Console data, 2023