Skip to main content

Set up automated monthly client reports for retainer justification

You manage 12 Webflow sites on monthly retainers. Every month the same ritual: screenshot Lighthouse, paste into a Google Doc, write three paragraphs of "here's what we did," send. Four hours of your life gone, and half the clients don't even read it.

This guide automates 90% of that work using Site Health's Weekly Digest + a Claude summary, so you can send a polished Monday recap in under 15 minutes per client.

1. Enable Weekly Digest per site

For each client site, go to the site detail page and scroll to Automation Settings. Toggle on Weekly Digest.

The digest fires every Monday at 10:00 UTC and contains:

  • Week-over-week score deltas (Performance, SEO, A11y, Best Practices)
  • CWV trend arrows (LCP/CLS/INP direction)
  • Newly-detected regressions (pages whose scores dropped >5 points)
  • Summary of scans completed in the window
tip

Do this in one sitting across all 12 sites. It takes ~90 seconds per site and sets up every future Monday for free.

2. Route each digest to the client's inbox, not yours

This is the key trick. In the digest settings, use the custom email override field and enter the client's email (e.g., [email protected]), not your agency inbox.

Now the client gets the digest direct from [email protected] every Monday morning. Branded professionally, consistent cadence, zero effort from you.

note

When white-label branding ships, the digest will send from your domain. For now, the Site Health footer is subtle and clients generally don't complain — but be upfront on the kickoff call so it doesn't feel like a surprise.

3. Let Site Health track the month

During the month, your normal activity is already being recorded:

  • Scheduled daily scans run at 09:00 UTC
  • Publish webhooks trigger a scan on every Webflow publish
  • Regression alerts email you (not the client) if anything drops sharply
  • Scan annotations let you leave inline notes on the trend chart (e.g., "Swapped hero image to AVIF") — these show up as markers the client can see

By month-end, you have 30 days of daily data points per site, every publish event captured, and annotations documenting everything you shipped.

4. At month-end, run a fresh manual scan

On the last working day of the month, trigger a manual scan on each site (strategy: Both). This ensures the Monday digest that goes out captures the most up-to-date numbers — including any last-minute fixes you shipped on Friday.

Batching this: open all 12 site detail pages in tabs, hit Run Scan on each. They queue with deduplication protection (SCAN_ALREADY_ACTIVE prevents doubles). Total hands-on time: ~3 minutes.

5. Generate a comprehensive shared report

Monday morning, open each site detail page and hit Share report:

  • Expiry: 30 days
  • Strategy toggle: On

Grab the URL. This is your polished artifact — print-ready, mobile/desktop togglable, scan history included.

6. Let Claude write the narrative

Connect Site Health to Claude.ai (see the Claude.ai connector guide). Then in a Claude conversation:

"Analyze the latest scan for studio-brava and give me a 3-paragraph client update. Paragraph 1: what improved this month with specific numbers. Paragraph 2: what regressed or still needs work. Paragraph 3: what we're focusing on next month."

Claude calls the Site Health MCP tools (get_site_scans, get_scan_details, get_regression_report), pulls the data, and hands you a draft. 60 seconds per client. Paste into an email template, edit to taste, send alongside the shared report link.

A sample digest email

The weekly digest clients get looks like this (rendered as inline HTML, 560px max width, branded header):

Subject: Your weekly Site Health digest — studiobrava.com

Overall health: 87 (+3 from last week) ↑

Performance 91 +2 ↑
SEO 96 -1 ↓
Accessibility 88 +5 ↑
Best Practices 92 0 →

Core Web Vitals (CrUX)
LCP: 2.1s (Good) ↓ 0.3s faster
CLS: 0.04 (Good) → unchanged
INP: 180ms (Good) ↓ 40ms faster

Recent activity
- 7 scans completed
- 2 Webflow publishes detected
- 0 regressions flagged

[View full report →]

Clean, scannable, same structure every week. Clients build familiarity with the format; by month three they know exactly where to look for the number they care about.

The math

  • 12 clients × 20 minutes saved per month = 4 hours/month reclaimed
  • At $150/hr billable, that's $600/month in recovered capacity
  • Plus: the digest running every Monday means clients feel the retainer, not just once a month but every single week

Bonus: regression escalation

If any site regresses sharply mid-month, the regression alert email hits your inbox (not the client's) with a page-level table of what dropped. That's your signal to proactively Slack the client: "Hey, noticed /pricing LCP jumped from 2.1s to 3.8s after Friday's publish — taking a look now." That proactive message is worth more than any monthly report.

Outcome

Reports go out like clockwork without you touching them. Clients feel informed every week, not just once a month. You bill the same retainer and reclaim a half-day per month for actual fix work — or for landing your 13th client.