dotts – visual feedback tool for freelancers made in europe
Features Pricing FAQ Blog Login
Request Demo Start for free
client-communication June 22, 2026 11 min read

How to Handle Difficult Clients in Web Design (Without Losing the Project or Your Sanity)

The fastest way to handle difficult clients in web design is to stop reacting to problems and start preventing them: define scope in writing, set communication rules before the project starts, and route all feedback through one clear channel instead of scattered messages. Most "difficult clients" aren't actually difficult people. They're reasonable people stuck in a process that gives them no good way to ask for changes, no clarity on what's included, and no single place to point at the thing they want fixed.

This guide walks through how to spot the warning signs early, the seven steps that defuse most conflict, and the specific scripts and systems that keep a hard project from going off the rails. Whether your client is a scope-creeper, a ghost, a last-minute panicker, or a "just one small thing" specialist, the playbook is the same: structure beats willpower.

Why "difficult clients" usually aren't the real problem

Picture the Tuesday-night version of this. You sent a staging link three days ago. Today you get a WhatsApp voice note: "Hey, looked great! Just a few tweaks." Then a screenshot with a red circle drawn in the Photos app. Then an email with five bullet points, two of which contradict the screenshot. Then a text at 9 PM: "Oh and can we make the logo bigger? Not huge, just bigger. You'll know what I mean."

You don't know what they mean. Nobody would. The client isn't trying to torture you. They genuinely think they're being helpful and clear. The problem is that you've handed them a feedback process with no rails, so they improvise across five apps, and you're left stitching the fragments together and guessing.

This matters because the label "difficult client" quietly shifts blame onto the person and away from the system. And systems are things you can fix. You can't change someone's personality, but you can change how scope is agreed, how feedback arrives, how revisions are counted, and how you respond when someone pushes. Do that, and the same client who felt impossible last year becomes manageable this year.

There's a real distinction worth keeping, though. A genuinely difficult client is one who is abusive, dishonest about money, or repeatedly disrespects boundaries you've clearly set. Those people exist, and the right move is to exit cleanly, not to out-process them. But they're rare. The vast majority of friction comes from unclear expectations, and that's on the table you set, not the guest you invited.

The early warning signs (and what they actually predict)

You can usually feel a hard project coming before the contract is signed. The signals aren't about whether someone is nice. They're about how they relate to scope, money, and decisions.

Watch for the client who can't tell you who the final decision-maker is. "I'll need to run it by a few people" with no named person usually means design-by-committee and contradictory feedback later. Watch for the one who calls every project "simple" and "quick" while describing six different features. Watch for the person who haggles hard on price before any work has started, or who is vague about budget but very specific about wanting "premium." And watch for the client who's already badmouthing their last three designers. Sometimes those designers really were bad. More often, you're looking at the next person who'll be on that list.

None of these are automatic dealbreakers. They're prompts to tighten your contract, your deposit terms, and your communication rules before you start, rather than after it hurts.

How to handle difficult clients in web design: 7 steps

Here's the sequence that prevents most conflict and contains the rest. The order matters: the early steps are about prevention, the later ones about response.

  1. Lock scope in writing before any design work. Put the exact deliverables, page count, number of revision rounds, and what counts as "out of scope" into a contract or proposal the client signs. This document is your calm reference point for every "can we just add" conversation later.
  2. Set communication rules in the kickoff. Decide together where feedback goes, how fast you reply, and which channels are off-limits for project work. Say it out loud and put it in the welcome email so it's not a surprise when you enforce it.
  3. Route all feedback through one channel. Replace scattered WhatsApp notes, texts, and circled screenshots with a single place where the client points at the exact thing they mean. This one change removes most "I don't understand what they want" friction.
  4. Count revisions and make them visible. Tell the client how many revision rounds are included and where they are in that count. "This is round two of the three included" turns an open-ended argument into a shared number.
  5. Name scope creep the moment it appears, kindly. When a request falls outside the agreement, don't silently absorb it or silently refuse it. Acknowledge it, place it relative to scope, and offer a path: add it as a paid extra, or park it for phase two.
  6. Put decisions and sign-offs in writing. After every call or major feedback round, send a short summary of what was decided and ask for a thumbs-up. Verbal agreements evaporate; written ones hold.
  7. Know your exit and use it when a line is crossed. Keep a kill-fee or termination clause in your contract. If a client becomes abusive or breaks payment terms, you end it professionally instead of suffering through it.

The rest of this article goes deeper on the steps that do the heaviest lifting.

Step 1 in depth: scope is the root of almost everything

Nearly every painful web design project traces back to a scope that lived in someone's head instead of on paper. The client thought "website" included copywriting, three rounds of revisions on every page, a blog, and ongoing edits after launch. You thought it meant a five-page brochure site with content provided. Neither of you lied. You just never wrote it down.

A scope document doesn't need to be a twenty-page legal monster. It needs to answer a few questions in plain language: What exactly are we building? How many pages? Who provides the content and images? How many rounds of revisions are included per stage? What happens when the client wants something beyond this? When does the project count as done?

The magic isn't the document itself, it's what it lets you do later. When a request arrives that's outside the agreement, you're no longer negotiating from feelings. You're pointing at a thing you both signed. "Happy to add the booking system. That wasn't in our original scope, so here's what it would cost and how it'd affect the timeline." That sentence is impossible to say with a straight face if there was no original scope to refer to. With one, it's just business.

Step 3 in depth: one feedback channel changes the whole relationship

If you only fix one thing after reading this, fix where feedback lives. The reason so many client relationships feel chaotic is that feedback arrives as a scavenger hunt. A comment in email. A screenshot in WhatsApp. A "btw" in a text. A note scribbled on a PDF. You become a human aggregator, copying fragments into a list, decoding what "the thing under the other thing" refers to, and praying you didn't miss one.

The fix is to give the client a single place to point. When someone can click directly on the element they're talking about and leave a comment pinned to that exact spot, the entire category of "wait, which button?" disappears. You see the page they saw, the spot they meant, and what they want, all in one place. No login walls for the client, no app to learn, no thread to reconstruct.

This is the gap dotts was built to close. The client opens a shared link to the website, PDF, or image, clicks anywhere, and leaves a pinned comment. No account needed on their end. dotts captures the browser and device automatically, so when someone says "it's broken," you can see whether they're on Safari on an old iPhone or Chrome on desktop. For a freelancer juggling three projects, the difference between feedback scattered across five apps and feedback collected in one link is the difference between a Tuesday night spent stitching notes and a Tuesday night spent actually working.

Tools like MarkUp.io, BugHerd, and Ruttl solve a related problem, but they're built for teams and agencies, with seats, dashboards, and overhead that a solo freelancer doesn't want. The principle holds regardless of tool: collapse the channels into one, and most "difficult client" behavior turns out to have been a channel problem.

Step 5 in depth: scope creep is a conversation, not a confrontation

Scope creep rarely arrives as one big demand. It comes as a slow drip of "small" additions, each one individually reasonable, that together rebuild half the project for free. The dangerous part is that saying yes feels easier in the moment than having the conversation. So you absorb the first small thing, and the second, and by the fifth you're resentful and behind, and the client has no idea anything is wrong because you never said so.

The skill here is naming the request without making it a fight. When something falls outside scope, you have a simple three-part move: acknowledge it's a good idea, locate it relative to what you agreed, and offer a path forward. "Love the idea of adding the newsletter signup. That's outside what we scoped, so I can add it as a small extra, or we can line it up for a phase two after launch. Which works better for you?"

Notice what that does. It doesn't say no. It doesn't make the client feel greedy. It treats the boundary as normal and gives them agency over the trade-off. Most clients, faced with a real choice, will either happily pay for the thing they actually want or cheerfully drop the thing they didn't care that much about. The ones who get angry that you won't work for free were going to be a problem no matter what, and now you've found out early.

A real example: Sara and the "quick tweaks" client

Sara is a freelance web designer in Rotterdam who builds Webflow sites for small hospitality businesses. A year ago she took on a boutique hotel rebrand and nearly quit freelancing over it. The owner, Marco, was warm and enthusiastic and completely impossible to pin down. Feedback came as voice notes during his commute, screenshots from his phone with arrows, and the occasional 11 PM "one more thought." Sara spent more time decoding and chasing than designing. The three-week project ran seven weeks. She made almost nothing on it after the hours she actually put in.

The frustrating part was that Marco wasn't a bad guy. He thought he was being responsive and helpful. He genuinely didn't realize that "make it pop" and a circled logo weren't usable instructions.

This spring Sara took on a near-identical client: another hotelier, same enthusiasm, same instinct to fire off thoughts at random hours. This time she did three things differently. She sent a one-page scope agreement with two revision rounds clearly listed. In the kickoff she said, plainly, "All feedback goes through one link I'll send, not WhatsApp, so nothing gets lost." And she shared a single dotts link on the staging site where the client could click and pin comments directly.

The client adapted in about a day. Instead of voice notes, Sara got pinned comments on the exact spots, with the device info attached. When the client asked for a custom booking integration that wasn't in scope, Sara named it as a paid extra, the client agreed, and it became revenue instead of resentment. The project landed on time. Same kind of person, completely different experience, because the system around him was different.

Bottom line

Most difficult clients are reasonable people trapped in a bad process. Fix the structure, agree scope in writing, set one communication channel, count revisions, and name scope creep early, and the overwhelming majority of conflict simply never forms. Save the hard exit for the genuinely abusive or dishonest, and treat everyone else as someone your system can handle.

FAQ

How do you handle difficult clients in web design without losing the project?

Lead with structure, not confrontation. Most friction with difficult clients in web design comes from unclear scope and scattered feedback, so tighten both before pushing back on behavior. Point to the signed scope, route feedback to one channel, and name out-of-scope requests as paid options rather than refusing them. You keep the relationship and the boundary at the same time.

What are the warning signs of a difficult web design client?

The clearest signals are an unnamed decision-maker, calling a complex build "simple" or "quick," haggling hard on price before any work starts, and badmouthing every previous designer. None are automatic dealbreakers, but each one tells you to firm up your contract, deposit, and communication rules before you begin.

How do I deal with a client who keeps asking for changes?

Count the revisions and make the number visible. Tell the client up front how many rounds are included, then say where they are: "This is round two of the three we agreed." Once a request goes beyond the included rounds or outside the original scope, present it as a paid add-on or a phase-two item. The endless-revision spiral only survives when nobody is tracking the count.

How do I stop scope creep with a difficult client?

Write the scope down before you start, then name every out-of-scope request the moment it appears. Use a three-part response: acknowledge the idea, place it relative to what you agreed, and offer a path (paid extra or later phase). Silent absorption is what lets small additions pile into a free second project.

Should I fire a difficult client?

Only when a real line is crossed: abuse, dishonesty about money, or repeated disrespect of boundaries you've clearly set. Keep a termination or kill-fee clause in your contract so you can exit professionally. For ordinary friction caused by unclear expectations, fixing the process is almost always faster and more profitable than ending the relationship.

What's the best way to collect feedback from a difficult client?

Give them one place to point. A visual feedback tool where the client clicks directly on the website or design and leaves a pinned comment removes the guesswork of decoding screenshots and scattered messages. Tools like dotts let clients comment without creating an account, which matters because every extra step is an excuse for them to fall back to WhatsApp.

How do I set boundaries with clients as a freelancer?

State them at kickoff, in writing, before there's any conflict to make them awkward. Cover where feedback goes, your response times, your working hours, and how revisions and extra requests are handled. Boundaries set early feel like professionalism; boundaries introduced mid-fight feel like punishment, even when they're identical.

Are difficult clients usually the client's fault or the freelancer's?

Usually neither, in the way people mean it. The friction is almost always a process gap, not a character flaw. The client improvises because you gave them no clear path, and you get frustrated because the feedback is unusable. Fix the path and most "difficult" behavior disappears, which is good news, because process is the part you control.

Stop decoding screenshots and start collecting clear, pinned feedback in one place. [Try dotts free →](https://dotts.se)

Leon Eikmeier

Leon Eikmeier is co-founder of dotts and has been building websites for freelancers and agencies for over 8 years.

Start Collecting Feedback in Seconds with dotts

Forget messy email threads and unclear revision requests. dotts makes feedback fast, clear, and organized so you can focus on what matters—getting work done.

Try it for Free
dotts logo
Tools
Freelancer Pricing Calculator OG & Social Preview Tool Website Handoff Checklist
Solutions
Feedback for Squarespace Feedback for Webflow Feedback for Framer Feedback for Wix
Company
Features Pricing FAQ Blog
© 2026 dotts. Build in Europe 🇪🇺
Made by MetaOne
Privacy Policy Imprint