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.