Most businesses hire a web agency once every three to five years. Agencies do this every day. That information gap is where bad deals happen — and where a lot of agencies make their real money.
These red flags are not edge cases. They are standard operating procedure at a large portion of the industry. Knowing them in advance changes the dynamic.
They Can’t Show You Code or PageSpeed Scores
A portfolio of attractive screenshots tells you nothing about whether a site actually works. Ask any agency you’re considering for three live URLs from recent projects — then run each one through Google’s PageSpeed Insights yourself.
The national average for agency-built WordPress sites sits around 42–55 on mobile PageSpeed. If an agency’s work scores below 70 on mobile, they’re shipping slow sites and hoping you don’t check. Sites below 50 are costing their owners real traffic — Google’s ranking algorithm penalizes slow mobile performance, and conversion rates drop 20% for every one-second delay in load time (Google, 2023).
What to ask instead
Request PageSpeed scores and Core Web Vitals data for three recent sites. If the agency doesn’t know what Core Web Vitals are, end the conversation there.
Vague Ownership Language in the Contract
This is the most expensive red flag on this list. Some agencies write contracts where the code, theme, or design files remain the agency’s property — not yours. You’re effectively licensing your own website.
Marcus ran a regional HVAC company and hired an agency for $8,400. Two years later he wanted to move to a different developer. The contract said the theme files were proprietary. He had to pay an $1,800 “transfer fee” to get files he’d already paid for — or start from scratch.
Read every contract for these specific words: “proprietary,” “license,” “intellectual property belongs to,” and “hosted on our platform.” If any of those appear next to your deliverables, negotiate them out before signing. If the agency refuses, walk.
Every Designodin build ships with full code ownership — no exceptions, no transfer fees, no dependency on us after launch.
Proposals That Promise SEO Without Defining It
“SEO-optimized” is meaningless. Ask what it means specifically. The answer should include: clean heading hierarchy, compressed images, fast load times, schema markup, and proper meta structure. If the answer is “we’ll add your keywords to the page,” they’re describing basic formatting, not SEO.
Rachel hired an agency that guaranteed “full SEO optimization” as part of a $6,200 package. Six months post-launch, her site was indexed but ranking for zero target keywords. The agency’s definition of SEO had been adding a Yoast plugin and filling in the meta title field. That’s a two-minute task, not an SEO strategy.
If an agency promises “guaranteed rankings,” stop there. No one can guarantee a search ranking. Anyone who says otherwise is either lying or doesn’t understand how search engines work.
They Push Page Builders Without Disclosing the Trade-offs
Elementor, Divi, WPBakery — these are tools that let agencies build sites faster without writing code. They’re not inherently evil, but they come with real costs that agencies rarely mention: render-blocking JavaScript that slows page load, plugin dependencies that break on WordPress updates, and lock-in to the builder’s proprietary block structure.
Elementor sites average a Lighthouse score of 38 on mobile. That’s not a design problem — it’s an architecture problem baked in at the foundation level.
An agency that uses a page builder and discloses it upfront is making a trade-off decision you can evaluate. An agency that uses a page builder and pitches it as “custom development” is lying to you. Ask directly: will this site use Elementor, Divi, or any other page builder? Get the answer in writing.
Our custom WordPress development uses zero page builders. Every line of code is written by hand, which is why our builds consistently score 90+ on PageSpeed.
Retainers With No Defined Deliverables
“Ongoing maintenance and support” is not a deliverable. It’s a placeholder for recurring revenue. Before you sign any retainer, get a specific list of what is included each month — what gets done, how it gets reported, and what happens if you cancel.
A good maintenance retainer specifies: security monitoring, plugin updates, uptime alerts, monthly performance reports, and a defined number of support hours. If the contract says “we’ll keep your site healthy,” that’s not a contract — it’s a handshake.
For site health tracking between retainer check-ins, Honest gives you a fast, unbiased read on your site’s SEO, speed, and technical status — without having to ask an agency.
The Discovery Process Never Ends
Some agencies are structured around a perpetual “discovery” phase: paid research, strategy decks, stakeholder workshops, design sprints — all before a single page of your site is built. Each phase has a separate invoice. The actual website, if it ever arrives, costs twice what was quoted.
This model isn’t always fraudulent, but it’s often a way to extract fees from clients who don’t know enough to say “stop.” If you’re two months and $3,000 into discovery with nothing to show for it, ask for a hard delivery date on the first deliverable.
Designodin doesn’t do discovery calls, proposals, or meetings-about-meetings. The Start packages have published prices, defined scope, and a clear start date.
They Can’t Name a Single Thing That Could Go Wrong
Any agency with real experience has built something that went sideways. Ask them: “What’s a project that didn’t go to plan, and what did you do?” A good agency will answer that question directly. They’ll name the problem, explain what they did, and tell you what they learned.
An agency that only has success stories is either too new to have had problems yet, or not honest enough to acknowledge them. Neither is a good sign.
FAQ
How do I check if an agency is using a page builder? Run the site URL through a tool like BuiltWith or WhatRuns. These browser extensions show you what technology stack a site is built on. If you see Elementor, Divi, WPBakery, or Beaver Builder listed, the site was built with a page builder.
What does “full code ownership” actually mean? It means all files — PHP, CSS, JavaScript, images, database exports — are transferred to you at project completion. You can move to any host, hire any developer, or modify the site without needing permission from or payment to the original agency.
Is a low PageSpeed score always the agency’s fault? Not always. Hosting, third-party scripts (chat widgets, analytics, ad tags), and uncompressed images can all pull scores down after launch. But the foundational architecture — clean code, minimal render-blocking scripts, optimized theme — is entirely the agency’s responsibility at build time.
What’s a reasonable timeline for a custom website build? Four to eight weeks for a custom WordPress site is standard if the agency is focused and the client is responsive. Anything under three weeks for a “custom” build is almost certainly a template install with light customization. Anything over 12 weeks without a clear reason is a workflow problem.
Should I pay for a discovery phase before committing to a full build? Only if the project is genuinely complex enough to require it — large multi-department sites, custom applications, e-commerce with unusual product configurations. For a standard business site or portfolio, paid discovery before the build is usually a revenue play, not a project management necessity.
What does a web agency contract need to include? At minimum: a specific list of deliverables, a payment schedule tied to milestones (not calendar dates), an ownership clause giving you all files, a termination clause with defined terms, and a clear statement of what is and is not included in the scope.