Most bad agency experiences are not caused by bad agencies. They are caused by a mismatch between how the work was scoped and how it was billed. Seahawk partners with more than 1,000 agencies and web hosts, and we acquired WP Services specifically because small businesses kept telling us the same story: the estimate was fine, the invoice was not. This guide explains how to hire well, and when you should not hire an agency at all.
Two ways to buy WordPress work
Hourly or retainer agencies quote a rate, estimate hours, and bill what the work actually takes. This model is right for genuinely open-ended work: a complex integration, a redesign with heavy discovery, ongoing strategy. The risk is that scope creeps, estimates slip, and you find out at invoice time.
Productized services sell a defined outcome at a fixed price. “Migrate a WordPress site to a new host: $X. Speed optimization: $Y. Monthly maintenance: $Z.” You know what you get and what it costs before anyone starts. The limitation is that anything outside the package needs a separate scope.
For most small-business needs (a build, a migration, a fix, a speed pass, ongoing maintenance) the work is predictable enough that productized is the safer purchase. Save the hourly agency for the work that genuinely cannot be scoped in advance.
Step 1: Write a one-page brief
Agencies quote what you describe. A vague brief produces a vague estimate, which produces a surprising invoice. Before contacting anyone, write down:
- Outcome. “Launch a five-page site with online booking by March 1.” Not “new website.”
- What exists. Current site URL, host, theme, plugins that must survive, content you will supply versus content you need written.
- Must-haves and nice-to-haves. Two short lists. Agencies will price the first and option the second.
- Budget range. Giving a range does not weaken your position; it filters out agencies that cannot work inside it.
- Who approves. One name. Multi-stakeholder approval is the top cause of timeline blowouts.
Step 2: Vet before you request a quote
Spend thirty minutes per candidate:
- Open three sites from their portfolio on your phone. Are they fast? Do they still exist? Does the agency still appear in the footer?
- Check the plugin stack. A browser extension like Wappalyzer or a view of the page source shows what they build with. Page-builder heavy stacks are fine for brochure sites; be wary if every site uses the same forty plugins.
- Ask who does the work. A founder who sells and a subcontractor who builds is normal. A founder who cannot name the builder is a flag.
- Ask for a reference that matches your project size. A reference from a six-figure build tells you nothing about how they treat a four-figure one.
- Read the reviews for patterns, not stars. One complaint about communication is noise. Three is a process problem.
Step 3: Read the proposal for what is not there
A good proposal is boring. It names deliverables, dates, price, and what happens when things change. Look specifically for:
- Scope boundaries. “Up to 8 pages” is a boundary. “A website” is not.
- Revision rounds. Unlimited revisions sounds generous and usually means the agency will pressure you to approve early. Two rounds with clear sign-off points is healthier.
- Change order process. How are additions priced? If this is missing, you are buying hourly work with a fixed-price label.
- Ownership. You should own the domain, the hosting account, the WordPress admin, and any custom code at the end. Watch for licenses that only work while you pay the agency.
- Handover. Admin credentials, documentation, a walkthrough. Specify it or you will not get it.
- Payment schedule. Deposit, milestone, completion is standard. Full payment up front is not.
Step 4: Set up the engagement to succeed
- Give them one shared channel and reply within a day. Most delays are on the client side.
- Deliver your content on the agreed date. “Waiting on copy” is the most common reason a six-week build takes six months.
- Insist on a staging site you can see. Progress you cannot click is not progress.
- Get a weekly one-paragraph update. If you have to ask for it, the project is drifting.
The warning signs that mean walk away
- A quote delivered in under an hour for anything other than a packaged service.
- Pressure to sign today for a discount.
- “We will host it for you” with no answer to “what if I leave?”
- No written scope at all. A friendly email thread is not a contract.
- A request for your existing site’s admin password before any agreement is signed.
Where productized services fit
For the predictable jobs, a marketplace of fixed-scope services removes most of the risk above because the scope is written before you ever talk to anyone. WP Services is Seahawk’s productized storefront for small businesses: builds, migrations, fixes, speed and SEO work, and monthly maintenance, each with a defined deliverable and price. There is also a free WP Care tier for sites that just need updates and monitoring.
The honest limitation is the same as any productized service: if your project is truly bespoke, you will need a custom scope. The upside is that a lot of projects people assume are bespoke are not. Start by checking whether a package already covers it before you commission a proposal.
Next step
Before you request your first agency quote, spend ten minutes on WP Services. If a packaged service matches your brief, you have a price and a scope without a sales call. If it does not, you now have a benchmark for what the custom proposals should cost.