Some of my best long-term clients started as rescues. Geiger UK came to me mid-project, after the previous developers couldn't deliver the design across a 60+ page build, and that turned into a relationship now in its fourth year. Rescues are a real specialism, and they have almost nothing to do with being a better coder. They're about handling a situation, not just a codebase.
1. Stop the bleeding before you touch the code
A stalled project means a client who's anxious, possibly out of pocket, and braced for more bad news. Before I audit anything technical, I lower the temperature: acknowledge where things are, promise nothing I can't verify yet, and commit to a date for a clear assessment. Calm is the first deliverable.
2. Audit honestly — keep what's good
The temptation is to declare everything broken and start over (it bills well). The honest move is to separate what's salvageable from what isn't, and say so plainly. Often the design is fine and the implementation is the problem; sometimes it's the reverse. Naming it precisely is what rebuilds trust — the client has usually been getting vagueness for weeks.
The previous team's job was the website. Your job is the website and the client's confidence.
3. Give a path, not a verdict
"Here's what's wrong" isn't useful on its own. "Here's what's wrong, here's what we keep, here's the order I'll fix it in, and here's when you'll see the first win." That's what turns a panicking client into a partner. Sequence the early wins so they can see momentum within days.
4. Don't trash the last developer
It's tempting, and the client may invite it. Resist. Badmouthing the previous team makes you look small and makes the client wonder what you'll say about them later. Be matter-of-fact about the problems, generous about the person. Professionalism is itself reassuring.
5. Over-communicate through the recovery
A rescue client has been burned by silence, so silence is the one thing you can't afford. Short, frequent updates — even "no blockers, on track" — do more for the relationship than a flawless handover at the end. By the time you ship, the goal isn't just a working site. It's a client who'd never go anywhere else.