Reporting is the part of local SEO that nobody sells and everybody pays for. Manage twenty profiles and the last week of every month disappears into exports, screenshots and a document you rebuild from scratch each time. Automation removes most of that work. It does not remove the part clients actually read, and confusing the two is how agencies end up sending beautiful reports that get deleted unopened.
What follows is a working guide to what you can safely hand to a machine, what you cannot, and the ways an automated reporting pipeline quietly goes wrong.
What is worth automating and what is not
Split the report into two piles. The first pile is facts that are true regardless of who reads them. The second is judgement.
The first pile automates cleanly:
- Metric collection - calls, direction requests, website clicks and profile views, plus impressions and query data from Search Console. These are numbers off an API and there is no interpretation involved in fetching them.
- Period comparisons - this month against last month, this month against the same month last year. A script does not fumble the arithmetic at 11pm on a deadline.
- Activity logs - posts published, photos uploaded, reviews received, reviews replied to, average response time. This is your proof of work and it is a straight count.
- Review movement - star average, rating distribution and how both shifted across the period.
- Branding and delivery - logo, colours, cover page, recipient list, send time. Nobody should be resizing a logo in a template on the first of the month.
The second pile does not automate, and pretending otherwise is exactly what makes a report feel generic:
- Why a number moved - direction requests fell because the client shut for a fortnight in August, not because your work stopped working.
- What happens next - the next four weeks of work in plain language, tied to something you just showed them.
- Bad news - a flat month needs a human sentence in front of it, written before the client finds the chart on their own.
Pulling the data without three logins
The real bottleneck is rarely the writing. It is that profile performance data sits in one place, Search Console in another, call tracking in a third and the client's booking system in a fourth, and you are joining them by hand on matching date ranges.
Two things make proper consolidation worth the setup cost rather than living on monthly CSV exports:
- History disappears - Google exposes only a limited window of profile performance data. If nothing is storing it as it arrives, you cannot produce a two-year trend line later when a client asks for one, and you will be asked.
- Date ranges drift - hand-exporting four sources gives you four chances to pick slightly different windows. Almost every "these numbers do not match" email traces back to this.
Ampli5 Pulse holds performance insights - calls, directions, clicks and views - next to Search Console data in one multi-location dashboard and builds white-label reports from it, so the metric half assembles without you logging into anything. What it does not do is reach into a client's CRM or call-tracking platform. Those still need pulling and pasting, so decide up front whether they belong in the monthly report at all or in a separate commercial review once a quarter.
Scheduling reports around client billing cycles
Most agencies send on the first of the month because it feels tidy. It is usually the wrong date, for two separate reasons.
Profile performance data is not finalised the instant a month ends. Generate on the 1st and the final few days of the period tend to read low, which makes every single month look like it faded at the end. Generating on the 5th or 6th lets the data settle and costs you nothing.
The second reason is commercial. A report landing in the same inbox hour as an invoice gets read as a justification document, and clients read justification documents adversarially. Put a few days between them. Report first, invoice after, so the value is established before the charge appears.
- Monthly - the sensible default for retained local SEO. Long enough that review and posting activity shows as a trend rather than a wobble.
- Quarterly - fine for a stable single-location client on a maintenance fee, as long as you send a two-line note in the intervening months so you do not vanish.
- Weekly - almost always noise. Local metrics move on a scale where seven days of data tells you about the weather, not about the work.
The commentary a machine cannot write
Three short paragraphs at the top of the report carry more weight than every chart underneath them. Write them in the same order every time and they take about ten minutes per client.
What changed. One sentence, the single most important movement, in the client's own language. "Calls from your Maps listing were up 23% on last month, and almost all of that came from the Leeds branch."
Why. Your genuine explanation, including the times it was not you. "Two of the new five-star reviews mention emergency callouts, which is the phrase we started using in the weekly posts in March." Or, honestly: "Nothing we did explains this one. It is the same seasonal peak we saw at this point last year."
What next. Two or three specific commitments with dates on them, not a category of work. "Adding the six missing services to the profile by the 14th" beats "continuing to optimise the listing" every time.
The structure can be automated. The content cannot, and a client can tell inside one sentence which of the two they are reading.
Failure modes of automated reports
Every one of these is something a pipeline will do cheerfully and repeatedly until a human notices.
- Zero is a symptom, not a number - a failed API call renders as a flat line at zero, which a client reads as total collapse. Suppress the section instead of publishing the gap.
- Reports that outlive the client - churned accounts and closed locations keep receiving them because nobody cleared the schedule. Audit the recipient list every quarter.
- Uneven months - a 28-day February against a 31-day January is an automatic decline of roughly a tenth that has nothing to do with performance. Normalise per day or say so in the commentary.
- Seasonality dressed up as performance - year-on-year comparison is the fix, and it needs stored history, which is why you start storing on day one.
- Metrics nobody can act on - if neither you nor the client would do anything differently because of a chart, it is decoration. Cut it.
- Silent recipients - a client who has never once replied to a report is not reading it. Ask what they want to see rather than adding another page.
- Numbers that contradict the client's own system - their booking software counts 40 enquiries and your report implies 90. Explain the difference between a profile interaction and a qualified lead before they spot it themselves.