Most monthly client reports are a PDF that nobody opens, filled with numbers nobody asked for. The client sees "47 plugin updates, 31 backups, 99.98% uptime", understands none of it, and files it next to the newsletter they never read. Then renewal comes around and they ask what they are paying for.

A report has one job: make the value of the care plan visible without the client having to work for it. Everything else is decoration.

Write for the person who signs the invoice

Your reader is a business owner, an office manager, or a marketing lead. They do not know what a PHP version is and should not have to. They read the report for about ninety seconds, usually on a phone, usually while doing something else.

Design for that. Put a single sentence at the top that answers "is my site fine?". Something like: "Your site was up all month, everything is updated, and we fixed one broken contact form." Then give the detail for anyone who wants it.

If you cannot write that sentence, the report is not the problem. The month was messy, and the report should say so plainly, with what you did about it.

Lead with outcomes, follow with work

Compare two versions of the same line.

Version one: "Updated 14 plugins, 2 themes, WordPress core 6.x."

Version two: "All software is current. Two of those updates were security fixes, applied within a day of release."

The second says what the work achieved. The first is a log. Keep the log, since some clients and every auditor want it, but put it at the bottom. An activity log that records what changed and when is the right source for that section, and you should be able to produce it without retyping anything by hand.

Structure the top half around four questions a client actually has:

  • Is the site up? A percentage with the method stated, plus any incident in plain words.
  • Is it safe? Whether backups ran, whether anything needed patching, and whether anything was found.
  • Is it fast? One or two numbers with the trend, not a wall of them.
  • What did you do that I would not have noticed? The invisible work, listed briefly.

Show trends, not snapshots

A single number has no meaning. "Homepage loads in 2.4 seconds" invites the question "is that good?", and you now have to answer it in an email. A trend answers it for you: "Load time was 3.1 seconds in March and 2.4 seconds now, after we compressed the hero images."

Choose three or four metrics and show the same ones every month. Consistency is what makes a report legible over time. If you swap metrics whenever one looks bad, the client will notice, eventually, and trust nothing after that.

Where a trend is bad, say so and say what you are going to do. A report that admits a problem and shows a plan builds more trust than one that is always green. Always green looks like a report generated by a machine that does not check.

Keep the length honest

One to two pages is enough for most care plans. A useful test: if you cut a section, would the client miss it? If the answer is no, it was there to make the report look substantial.

Skip the following, which clients routinely do not want:

  • Raw scan output and stack traces
  • Every plugin version number, unless they ask
  • Charts with no comment next to them
  • Marketing analytics you are not paid to interpret

That last one causes trouble. If your care plan covers maintenance and you attach traffic charts, clients will start asking you to explain their traffic. Either include analytics as a paid service or leave it out.

Make the next step obvious, then send it well

The report is also the one guaranteed touchpoint each month, so use it. End with one specific recommendation when there is one: a plugin that is unmaintained and worth replacing, a PHP version the host is retiring, an image-heavy page dragging load time.

Attach an estimate or a plain "reply to approve" to it where you can. A recommendation with a price is an upsell. A recommendation without one is a chore you hand to the client.

Keep it to one recommendation per report. Five suggestions read as a to-do list, and a to-do list gets ignored. You can make the case for the plan's own scope with the maintenance checklist clients pay for, then use the report to show each item was done.

Delivery matters more than agencies expect. Send the report from your own address, at the same time each month, with a subject line that carries the headline: "Your site, October: all clear, one recommendation". Put two sentences in the email body so the PDF is optional reading.

Do not send it on a Friday afternoon or the last day of the month, when it gets buried. The second or third working day works well. Consistency is the feature here: clients who receive something predictable at a predictable time begin to see the plan as a thing that is happening, not a line on an invoice.

Automate the collection, keep the writing

The cost of reports is mostly your time. A report that takes 40 minutes per site is 40 hours a month across 60 sites (60 × 40 / 60), which is a full working week spent on documents. That is why so many agencies quietly stop sending them.

Automate the numbers: uptime, update history, backup status, performance trends, and anything from the activity log. Keep the human part, the top sentence and the recommendation, at about two minutes per site. That brings the same 60 sites to 2 hours of writing, which is sustainable.

WPClientHub generates branded, white-label PDF reports from the data it already collects, so the numbers do not need to be assembled by hand. You add the opening sentence and the recommendation. Use whatever tool you like, but do not skip the human part, because the human part is what clients remember.

Where this leaves you

Write the report for the person who pays, lead with outcomes, show the same few trends every month, and end with one recommendation. Automate everything except the two minutes of judgment. WPClientHub is free for 3 sites, so you can generate a branded report for a real client site and see whether it survives the ninety-second test.