·Updates·6 min read

How to Keep Clients Updated on Project Progress (Without More Meetings)

The system that actually stops 'just checking in' emails. Not 'communicate more' — communicate predictably. A step-by-step approach for freelancers and small agencies.

Every article about client communication says the same thing: "communicate more." Set up a weekly call. Send more emails. Be more transparent.

It's not wrong. It's just incomplete. Because the freelancers who have the fewest "where is my project?" emails aren't the ones who communicate the most. They're the ones who communicate the most predictably.

There's a difference. And it changes everything.


Why frequency doesn't solve the problem

I've talked to dozens of freelancers about how they handle client updates. The ones who struggled the most were often communicating more than the ones who had it figured out.

The pattern: they'd send a detailed update on Monday, then get a "just checking in" email on Wednesday. So they'd respond immediately. Then on Friday, another ping. So they'd send another update. By the end of the month, they're writing status updates every other day and still getting anxiety emails.

The problem isn't the amount of communication. It's the unpredictability. The client doesn't know when the next update is coming, so any silence feels like a gap. And any gap feels like something might be wrong.

One freelancer I spoke with described the fix in a single sentence: "I told every client they'd get an update every Friday at 5pm. The mid-week check-ins stopped within two weeks."

Not because Friday updates contain more information. Because the client knows when to expect them.


The three types of updates (and when to use each)

Not all updates are the same. Mixing them up is where most freelancers overcommunicate on some things and undercommunicate on others.

Scheduled updates are your foundation. Same day, same time, every week. The client knows it's coming. The content can be two sentences ("Design phase is on track, finishing homepage this week, moving to inner pages next week.") or two paragraphs. What matters is that it exists and it's predictable.

This is the one that eliminates 80% of check-in emails. Everything else builds on it.

Milestone updates happen when something significant changes. A phase is complete. A deliverable is ready for review. You need client input. These are event-driven, not scheduled — the client gets an email when there's something to see or do.

Keep these short and action-oriented. "The homepage design is ready for your review. You can see it [here]. I'll need your feedback by Thursday to stay on schedule." That's it. No preamble, no apologies for the email.

On-demand responses are what you send when a client asks between scheduled updates. And here's the key: you don't answer the question. You redirect.

"Good question — the full update is coming Friday. If there's something specific you need before then, let me know and I'll prioritize it." This isn't dismissive. It's training the client to trust the cadence.


What to actually write in an update

The biggest mistake I see: freelancers write updates for themselves, not for the client.

An update written for yourself: "Refactored the authentication middleware, fixed a z-index issue on the navbar, started implementing the contact form validation."

An update written for the client: "The login system is now working smoothly. The navigation layout is finalized. Starting on the contact form this week — you'll be able to test it by Friday."

Same work. Completely different message. The first one makes the client think "I don't understand any of this, should I be worried?" The second one makes the client think "Great, things are moving."

A good client update answers three questions:

What happened since last time? One or two sentences about progress. In outcomes, not tasks. "Homepage design approved" not "completed 14 Figma iterations."

What's happening now? What you're actively working on. "Building out the inner pages based on the approved homepage design."

What's coming next (and do they need to do anything)? "Next week I'll need your feedback on the About page copy. I'll send it over Tuesday." This is the part most people skip, and it's the part clients care about most — when will they need to act?

If you hit all three in four sentences, you've written a perfect update. It doesn't need to be long.


The agency version: systematizing updates across a team

Everything above works for a solo freelancer. But what happens when you're a team of five, each managing three clients?

The same principles apply, but you need systems instead of habits:

Standardize the cadence. Every client gets updates on the same day. Not "whenever the PM remembers." Friday is the most common — it gives you the week to accumulate progress, and the client goes into the weekend feeling informed.

Use a template, not free-form. When five people write updates differently, clients of "the good communicator" are happy and clients of "the quiet developer" are frustrated. A simple template — what happened, what's happening, what's next — ensures consistency regardless of who's writing.

Make it someone's job. If everyone is responsible, no one is responsible. Assign update ownership. For small agencies, it's usually the project lead. For bigger ones, it's a PM. The person who writes the update doesn't need to have done the work — they need to know what the client should hear.

Track the gaps. The simplest health metric for an agency: "days since last client update." If any client hasn't received an update in 10+ days, something is wrong. You don't need a dashboard for this — a weekly 5-minute check is enough.


The "but my clients are different" objection

I hear this a lot. "My clients want more than a weekly email." "My clients need to see every change in real time." "My clients don't read emails."

Let's unpack these:

"My clients want more than weekly." Some do, especially during high-intensity phases like launch week or a review cycle. The fix isn't to abandon the weekly cadence — it's to add milestone updates during those periods. The scheduled update stays. You're adding on top of it, not replacing it.

"My clients need real-time visibility." No, they don't. What they need is the ability to check whenever they feel anxious. There's a difference between push notifications for every commit and a status page they can visit when they want to. One creates noise. The other creates calm.

"My clients don't read emails." Then the format is wrong, not the approach. Some clients prefer a Slack message. Some prefer a shared page they can bookmark. Some prefer a 2-minute Loom video. The cadence and the content stay the same — only the delivery channel changes.


The minimum viable system

If you take nothing else from this article, here's the system that works for every service business, regardless of size:

Pick a day and time. Tell the client on day one. Send the update on that day and time, every week, no exceptions. Even if you only have one sentence to share. Even if nothing changed — "No major updates this week, on track for the review phase next week" is infinitely better than silence.

The update answers three questions: what happened, what's happening, what's next.

If they ask between updates, redirect: "Full update is coming Friday."

That's it. This alone eliminates the majority of "just checking in" emails. Not because you're communicating more — because you're communicating predictably.


Going further

The system above costs nothing but discipline. If you want to take it further — give clients a place to check without emailing you at all.

WhereIsMyProject creates a branded status page for each project. Your client bookmarks it, you update in 30 seconds, and the "last updated" timestamp does the reassurance work for you. Free to start.

But the tool only helps if the system is in place first. Start with the cadence. The rest is optimization.

Stop explaining. Start showing.

WhereIsMyProject gives your clients a branded status page they check anytime. No more “just checking in” emails.

Try it free →