Blog · AI
— AI··9 min read

How to use AI to automate your monthly SEO reporting

Joona Heinonen· Choco Media · Rovaniemi

Monthly SEO reporting is one of those tasks that eats a disproportionate amount of time relative to the value it produces. At Choco Media, we spent months refining an seo reporting automation workflow that pulls data from multiple sources, drafts the narrative, and lands a polished report in our client’s inbox — without someone spending half a Thursday afternoon copying numbers from Google Search Console into a spreadsheet. This post walks through exactly how we built it and what you can replicate today.

If you’re an in-house marketer or agency team producing monthly SEO reports for clients or leadership, this is for you. The workflow assumes you have access to Google Search Console, GA4, and at least one LLM API or tool (Claude, ChatGPT, or a no-code automation layer like n8n or Make). No deep technical knowledge required — but you’ll need to be comfortable connecting a few services together.

By the end, you’ll have a clear picture of the data architecture, the prompt structure we use, the human review layer that catches what AI misses, and the delivery format that clients actually read.

Why SEO reporting is ripe for automation

Most monthly SEO reports follow a predictable structure: organic traffic trends, keyword ranking movements, top-performing pages, technical issues flagged, and a short commentary on what changed and why. The data comes from two or three sources. The narrative is 80% templated — month over month comparisons, “traffic increased by X%”, “these three pages drove the most growth.” That pattern is exactly what automation handles well.

The reason most teams haven’t automated it isn’t that it’s technically hard — it’s that they haven’t separated the repeatable parts (data collection, formatting, draft narrative) from the irreplaceable parts (judgment calls, context, strategic recommendations). Once you make that separation, the repeatable parts can run themselves.

The time savings we see in client work are roughly 2–3 hours per report per month, without sacrificing quality. For an agency running eight to twelve retainer clients, that’s a meaningful number.

The data sources and how to connect them

Before any AI touches the data, you need a reliable, structured feed from your sources. The three we use for every SEO report:

Google Search Console

The Search Console API gives you clicks, impressions, CTR, and average position by query, page, and date range. You can pull this directly via the API, through Google’s Looker Studio connectors, or via n8n’s Search Console node. The key is pulling the right comparison window — we always pull current month vs. same month last year, plus current month vs. previous month. Year-over-year comparisons tell a more honest story for sites with seasonal traffic.

Google Analytics 4

GA4’s Data API lets you pull organic sessions, landing page performance, goal completions, and conversion data filtered to organic traffic. The GA4 API is well-documented and has native integrations in both n8n and Make. We pull organic sessions by landing page, plus any conversion events tied to organic entry points.

Rank tracker

Search Console doesn’t give you clean position data for specific target keywords over time — it averages positions across all queries. We use a dedicated rank tracker (Ahrefs or Semrush depending on the client) to pull weekly position snapshots for the agreed keyword set. Most rank trackers have CSV exports or APIs you can connect to your automation layer.

The automation workflow — step by step

Here’s the workflow we run on the first business day of each month. It takes about 12 minutes to complete end-to-end, with a human review step before delivery.

Step 1: Data pull and aggregation

An n8n workflow triggers automatically on the first of the month. It pulls last month’s Search Console data (clicks, impressions, top queries, top pages), GA4 organic sessions by landing page, and the most recent rank tracker export. All three feeds are merged into a single structured JSON object that serves as the context for the AI draft.

Step 2: Metric calculation

Before passing data to AI, we compute the deltas — month-over-month and year-over-year changes for each key metric. This matters because LLMs are better at interpreting pre-calculated percentages than raw numbers when generating narrative. A node in n8n handles this calculation step and formats the output as a clean summary object.

Step 3: AI draft generation

The structured data object gets passed to a Claude API call with a prompt template. The prompt is specific about format, tone, and what to include. We’ll share the prompt structure in the next section.

Step 4: Human review and edit

The AI draft arrives in a shared Notion page (or a Google Doc, depending on the client). A team member reviews it, adds context that the data alone can’t capture — a client promotion that ran mid-month, a technical change that explains a traffic dip — and adjusts the strategic recommendations. This takes 15–20 minutes, not 2–3 hours.

Step 5: Delivery

The reviewed report is sent via email or posted to the client’s Slack. We use a consistent subject line format so clients can find previous reports easily.

The prompt structure that produces usable drafts

The quality of the AI draft depends almost entirely on the prompt. Here’s the structure we’ve landed on after several months of iteration:

“You are writing a monthly SEO report for [client name], a [brief description of business]. The report covers [month, year]. Your tone is calm, direct, and honest — avoid marketing language. Write in second person (‘your traffic’, ‘your site’). Structure the report as: (1) Executive summary — 2 sentences, headline number first; (2) Organic traffic — what changed and the likely cause; (3) Keyword performance — which tracked keywords moved and by how much; (4) Top pages — the three pages that drove the most organic visits; (5) Technical — any issues flagged in Search Console; (6) Next month focus — two or three specific actions. Here is the data: [structured JSON]. Do not invent numbers. If data is missing, say so.”

A few things about this prompt that matter in practice:

What to keep human in the reporting loop

Automation handles the data and the draft. Several things should stay human.

Strategic recommendations are the most important. The data shows what happened; only someone with context about the client’s business, their competitive environment, and their capacity can say what to do about it. AI can generate a plausible list of actions — and sometimes those suggestions are genuinely useful as a starting point — but a team member should own the final recommendations.

Anomaly investigation also requires judgment. If organic traffic dropped 18% in one month, the data can surface the fact. Finding out whether it’s a Google algorithm update, a technical regression, a seasonal pattern, or a competitor surge requires someone who knows what to look for. Our SEO service model includes this investigation layer as standard — the automation flags, the team investigates.

Connecting the workflow without a developer

If you don’t have engineering resources, n8n (self-hosted or cloud) and Make are both viable no-code options for building this workflow. n8n has native nodes for Google Search Console, Google Sheets, and HTTP requests (for the Claude API or OpenAI API). Make has similar coverage.

The rough connection map:

  1. Schedule trigger (first of month, 08:00)
  2. Google Search Console node → pull last 30 days vs. same period last year
  3. GA4 node → pull organic sessions by landing page
  4. Google Sheets node → read rank tracker export (or HTTP node if your tracker has an API)
  5. Code node → calculate deltas, format JSON
  6. HTTP node → POST to Claude API with prompt + data
  7. Google Docs or Notion node → create draft document from AI response
  8. Slack or email node → notify reviewer that draft is ready

Total build time for a first version is roughly a day if you’re comfortable with no-code tools. If this kind of AI automation work isn’t something you want to invest time in building yourself, it’s the type of workflow we set up as part of retainer onboarding.

How to handle multiple clients at scale

Running this workflow for a single client is straightforward. For an agency with ten or more clients, you need a slightly more structured approach to avoid the workflow becoming a maintenance burden.

We use a configuration sheet — a Google Sheet with one row per client, containing their Search Console property ID, GA4 property ID, tracked keyword list, report template variant (some clients get more detail than others), and delivery preferences. The n8n workflow reads this sheet at the start of each run and loops through clients. Each client gets their own draft document, created from the same template but populated with their specific data.

Measuring whether the automation is actually working

It’s worth tracking a few things after you deploy this workflow to make sure quality doesn’t drift:

First, track edit rate — how much the reviewer changes the AI draft before sending. If edit rate is high and consistent, the prompt needs refinement. If edit rate drops to near zero, that might mean the reviewer has stopped reading carefully rather than meaning the draft is perfect. A healthy edit rate in our experience is around 20–30% of the draft getting adjusted.

Second, track client engagement with the report itself. Do they read it? Do they respond? Short, specific reports with a clear headline number at the top tend to get more engagement than long narrative reports. If the AI draft is producing long reports, adjust the prompt to enforce length limits.

Third, track the time from data pull to delivery. If the review step is consistently taking longer than 30 minutes, either the draft quality is low or the data structure needs improvement.

Starting small if you’re not ready to build the full system

If building the full n8n workflow feels like too much to start, there’s a simpler version that still saves significant time. Export your Search Console and GA4 data manually to a Google Sheet, paste the key metrics into a structured prompt in Claude or ChatGPT, and let the model draft the narrative section. You’re still doing the data collection manually, but the 45-minute writing step becomes a 10-minute edit step. That alone tends to be enough to convince most teams that the full automation is worth building.

The full workflow is the goal — but the manual-to-AI shift in the drafting step is a good first proof of concept.

If you want to explore what an automated reporting setup might look like for your specific situation, get in touch — we’re happy to talk through the data architecture and what makes sense for your stack.

← All storiesNext story →
— Free tips, monthly

Get the playbook, for free.

One short letter a month — the prompts we use, the campaigns that worked, the AI tools worth the time. No sales pitch, just field notes.

— Want us to do it for you?

Hire the agency.

AI-accelerated content, paid media, brand and web — delivered by one small team that talks to itself. Currently taking on a handful of clients each quarter.

Book a call