Paid $25,000 for a WordPress Site? How to Tell If That’s Fair

The invoice says $25,000. The site is WordPress. Twelve pages, a contact form, a blog, and a logo you supplied yourself. Somewhere between signing off and launch day you started wondering whether “WordPress is free” meant the build should have been cheap, and now you are three hundred comments into a thread where half the room says you were robbed and the other half says that is a normal mid-market number.

Both halves are right. That is why the thread is no use to you.

Here is the direct answer. $25,000 sits comfortably inside the normal band for an agency website build in the US. Clutch’s aggregated directory data puts the average web design project at $38,105 and the average web development project at $66,499, with agencies in the US, Canada and Australia typically billing $100 to $149 an hour. At $150 an hour, $25,000 buys roughly 165 hours. That is about four weeks of one person’s undivided attention, or two weeks of a designer and a developer working in parallel. The number is not the anomaly. What those 165 hours went into might be.

So stop asking “was $25K too much for a WordPress site.” Ask instead: what is the unit of work I actually bought, and how many units were there? That question you can answer yourself, today, without knowing what PHP is.

What actually sets the price of a website

A website’s cost is driven by the number of unique page templates, the number of live system integrations, and whether the design was drawn from scratch or bought and configured. The CMS is close to irrelevant to the price.

Everything else is detail on top of those three. Run down the list and score your own project honestly:

  • Unique templates, not pages. This is the single biggest driver and the one buyers consistently get wrong. Forty blog posts are one template. A homepage, a service page, a case study, a blog index, a blog post, a team bio and a contact page are seven. Each unique template needs designing, building, making responsive at three or four widths, and testing. A 12-page site with 4 templates is a fraction of the work of a 12-page site with 11.
  • Drawn design versus bought design. Custom design means someone researched your competitors, built a type and colour system, drew every template in Figma, and revised it with you. That is easily 40 to 80 hours before a line of code exists. Configuring a purchased theme to look like its demo is 4 to 10 hours. Both are legitimate. They are not the same product and should never carry the same price.
  • Integrations. Every live connection is its own small project with its own failure modes: CRM (HubSpot, Salesforce), payment, booking, a members area, a quote calculator, an ERP feed, single sign-on. A contact form that emails you is not an integration. A contact form that creates a deal in your CRM, assigns an owner, and fires a Slack alert is.
  • Content modelling. If your site has anything repeating with structure (products, locations, staff, events, case studies), someone has to design the data behind it so you can add item 51 in two minutes rather than rebuilding a page. Done properly this is real engineering. Skipped, it is why some agencies hand you a site you are frightened to edit.
  • Migration. Moving 300 old blog posts with their images, formatting, metadata and, critically, their URL redirects is a job. Botched redirects are how companies lose most of their search traffic on launch day. If your old site had traffic and nobody wrote a redirect map, that is a real deliverable that was missed.
  • Accessibility. Building to WCAG 2.1 Level AA (keyboard operation, contrast, focus states, form labels, sensible heading order) adds meaningful hours. It is also the standard the US Department of Justice fixed in its April 2024 ADA rule for state and local governments, with deadlines of April 2027 for jurisdictions over 50,000 people and April 2028 for smaller ones. Private companies are not covered by that particular rule, but WCAG 2.1 AA is the benchmark courts and procurement teams keep pointing at. If you sell to government, health systems or large enterprises, it is a line item, not a nice-to-have.
  • Performance work. Hitting Google’s Core Web Vitals thresholds takes deliberate effort: Largest Contentful Paint at or under 2.5 seconds, Interaction to Next Paint at or under 200 milliseconds, Cumulative Layout Shift at or under 0.1, each measured at the 75th percentile of real visits across mobile and desktop. Image discipline, font loading, script budgets. Nobody hits this by accident on a page-builder site.
  • One-off versus ongoing. A build is a capital event. Hosting, updates, backups, security patching, plugin licences and small changes are an operating cost forever. Quotes that blur the two are where surprises live.

What $5K, $15K, $25K and $60K genuinely buy

These bands assume a US or Western European agency at the $100 to $150 hourly range Clutch reports for those regions. Offshore teams at $25 to $49 an hour shift every band down substantially, and that is a legitimate choice, not a scam.

Budget Roughly What that realistically covers
$5,000 ~35–50 hours A quality commercial theme configured properly. 4 to 6 templates. Your content poured in, basic on-page SEO, a form, analytics, launch. No original design work. No integrations beyond a form plugin. This is a good product for a new business and is not an insult.
$15,000 ~100–150 hours Either genuine custom design on a small site (5 to 8 templates) or a theme-based build with real substance: content modelling, one integration, a content migration with redirects, some performance tuning. Usually a designer plus a developer, plus project management.
$25,000 ~165–250 hours Custom design across 8 to 12 templates, a properly modelled CMS so your team can publish without help, one or two live integrations, migration with a redirect map, accessibility and performance passes, staging environment, training session, documentation. That is a full deliverable set.
$60,000+ ~400–600 hours Discovery and user research, a design system rather than page designs, 15+ templates, multiple integrations or a custom application layer, multilingual or multi-site, formal accessibility testing, QA across devices, phased launch. Often a headless or heavily custom build.

Now put your own site against that table. Twelve pages, four templates, a form that only sends email, a purchased theme, no migration, no staging: that is a $5,000 to $8,000 job that you paid $25,000 for. Twelve pages, ten custom-designed templates, HubSpot wired in, 300 posts migrated with redirects, and a documented handover: $25,000 was fair and possibly cheap.

Why “it’s WordPress” tells you nothing about price

WordPress runs 40.3% of all websites and 58.8% of every site with a CMS anyone can identify, according to W3Techs. A category that broad contains a $600 freelance build and a newspaper platform serving fifty million monthly readers. “WordPress” describes where the content lives. It does not describe how much was made.

The free-software argument confuses two different things. The licence for the software is free. The labour is not, and labour is the entire invoice. Nobody argues a house should be cheap because gravity is free.

Worth saying plainly: using a commercial theme is not fraud. Divi costs $89 a year or $249 once, for unlimited sites, direct from Elegant Themes. Starting there can be the correct engineering decision. It saves weeks and gives you a maintained codebase. The problem is never that a theme was used. The problem is a bill priced as custom design for work that was theme configuration, and a proposal that never made the distinction clear.

The real signals that a build was overpriced

None of these are about the theme. They are about whether you received an asset or a rental.

  • You do not own the domain. If the agency is the registrant rather than your company, you are one billing dispute away from losing your web address, your email, and every backlink you ever earned.
  • You cannot access the hosting. Being resold hosting is normal and often sensible. Not being permitted to see the account, take a backup, or move away is not.
  • There is no staging site. If changes were made directly on the live site for four months, you paid agency rates for a process that puts your business in public every time somebody makes a mistake.
  • There is no version control. No Git repository means no history, no rollback, and no other developer being able to pick the work up cleanly. For a $25,000 build this is close to indefensible.
  • No handover documentation and no training. No list of plugins, no explanation of how to add a case study, no note of which licences expire when. This is the most common gap and the most expensive later.
  • Paid licences in the agency’s name. Your premium plugins renew on their account. When you leave, they stop updating, which eventually means they stop being secure.
  • Your admin account is not an Administrator. If you are an Editor on your own site, that was a decision someone made.

Any two of these on a $25,000 invoice and the price was probably wrong. Any four and the relationship was structured so you could not leave.

Audit the site you already paid for, in 20 minutes

Nothing here requires technical skill. Do it in this order, and write down what you find before you contact anyone.

  • 1. Count your templates (3 min). Click through every page and group them by layout, not by topic. A number under 6 on a five-figure invoice is your first flag.
  • 2. Find the theme (3 min). On your homepage press Ctrl+U (Cmd+Option+U on Mac) to view the page source, then Ctrl+F and search for wp-content/themes/. The word right after that slash is your theme’s folder name. Search that name plus “WordPress theme” and see what comes up, and what it costs.
  • 3. Compare against the demo (3 min). Search “[theme name] demo”. Open it next to your homepage. If the sections, layout and spacing are the same and only the photos and logo differ, you bought configuration. Decide whether the invoice reads as if you did.
  • 4. Test performance (4 min). Run your homepage and one important inner page through Google’s free PageSpeed Insights. Look at the field data panel at the top, not just the lab score. You want LCP at or under 2.5s, INP at or under 200ms, CLS at or under 0.1. “Not enough data” just means low traffic, so read the lab section instead.
  • 5. Check who owns the domain (2 min). Go to lookup.icann.org and enter your domain. Registrant details are often privacy-masked, which is fine. The real test: can you log in to the registrar yourself right now? If you cannot name the registrar, you do not control the domain.
  • 6. Check your own access level (2 min). Log in to WordPress, open Users, find yourself, confirm the role says Administrator. Then check whether you can log in to the hosting account separately.
  • 7. Send one email (3 min). Ask for five things in writing: the staging URL, the Git repository URL, a full site backup file, a list of every paid plugin and theme with the account each licence sits on, and the redirect map from the old site. The speed and tone of the reply tells you more than any audit. A good agency sends all five within a day and is slightly pleased you asked.

You already paid. Now what?

Manage your expectations on money. If the site launched, functions, and matched a signed scope, a refund is very unlikely, and a card chargeback months after delivery on a professional services contract almost never succeeds. Chasing it will burn the weeks you should spend on something else.

Spend that energy on ownership instead, in this order:

  • Secure the domain first. Get registrar access in your company’s name, or initiate a transfer to a registrar you control. This is the one asset that is genuinely hard to replace.
  • Get a full backup you hold yourself. Files and database, downloaded, stored somewhere that is not the agency’s Google Drive.
  • Move licences to your accounts. Pay the renewals yourself. The annual cost is small and it removes a dependency.
  • Read your contract for the IP clause. Look for assignment of ownership on delivery or “work made for hire”. Many agency contracts quietly license the site to you rather than transferring it. If ownership was promised and the assets were not handed over, you have a real conversation to have, and it is a stronger one than arguing about the price.
  • Get the next thing specified before you buy it. Most overpayment traces back to a proposal that said “12-page WordPress website” and priced it as one lump. A scope that lists templates, integrations, migration, environments and handover artefacts individually is very hard to overcharge against, because you can see what you dropped when you asked for a discount.

One more thing, said as an opinion rather than a fact: a site that is mediocre but working is not an emergency. Rebuilding out of anger costs another $25,000. Fix the ownership, fix the performance, fix the two pages that actually convert, and let the rest earn its replacement.

Questions people ask after this audit

Is it normal that I did not get “the source files”? For a WordPress site, the backup plus the repository is the source. There is no separate deliverable to withhold beyond the design files. Asking for the Figma or XD file as well is entirely reasonable and usually granted.

Should my agency host the site? It is fine, often good, and they can patch things faster. Two conditions: the account is in your company’s name or transferable on request, and the monthly fee is itemised rather than folded into a vague “maintenance” line.

What is a fair monthly retainer after launch? Hosting, updates, backups and security monitoring for a small business site is usually a low three-figure monthly amount. Once a retainer passes roughly $1,000 a month, it should be buying named hours of development or marketing work, listed in a monthly report. If you cannot say what last month’s retainer produced, you are paying an insurance premium, not a service fee.

How do I price the next build before I go to market? Write the template list yourself. Write the integration list. State whether design is custom or theme-based. Say who migrates content. Then send that identical document to three firms. The spread between their quotes stops being mysterious the moment everyone is pricing the same thing.

Get a second opinion before the next invoice

AB7 Solutions builds websites, applications and APIs, which also means we spend a fair amount of time reading other people’s builds and quotes for founders who want a straight answer. If you want an independent review of a site you already paid for, or a proper written spec (templates, integrations, migration, environments, handover) to take to market before you commission anything, we will do that as a standalone piece of work with no obligation to build it with us. Call +1 321 341 7733, email ab@ab7solutions.com or director@ab7solutions.com, or see www.ab7solutions.com.

Sources: Clutch Web Development Company Pricing Guide and Clutch Web Design Company Pricing Guide (directory averages and regional hourly rate bands, self-reported by listed agencies); Google, Core Web Vitals thresholds; US Department of Justice, ADA Title II web accessibility rule (WCAG 2.1 AA); W3Techs CMS usage statistics; Elegant Themes (Divi) pricing.

Leave a Comment

Your email address will not be published. Required fields are marked *