Skip to main content
PandaCodeGen
Back to Insights

Total cost of ownership

WordPress 3-Year Cost: Use Your Invoices

WordPress can be cheap or expensive, and the invoice does not tell you which. Add up what you really spend: hosting, plugins and licences, whoever you pay for support, the hours your own team loses to it, the times it broke, and the changes you have planned. Then price the alternatives against that same list.

Commercial and platform references checked July 24, 2026.

Hassan Jamal·Feb 8, 2026·6 min read

Before you open a spreadsheet, hear from three people closer to WordPress than we are. The founder and two developers on r/Wordpress said this in April 2026, in their own words, and each quote links to the original post.

"We are not being killed by competition, I believe we have done this to ourselves. When Cloudflare can ship the entire functionality of WordPress, and then some, in 2 months, we can take longer than that to almost not ship one sub-menu of our Settings screen.

Matt Mullenweg (WordPress co-founder) · Internal Slack post · Apr 14, 2026 · Verify source

"The dictator, who micromanaged the project for two decades, says community is to blame for the results.

u/Rarst · r/Wordpress · Apr 14, 2026 · 128 upvotes · Verify source

"Having a db is not a problem, it is that WP database structure is straight from hell, and it is like that for the sake of being retrocompatible. They should have made a breaking change with v5 or v6 and completely redesign it.

u/zenotds · r/Wordpress · Apr 14, 2026 · 4 upvotes · Verify source

The short answer

WordPress can be cheap or expensive, and no published average tells you which case you are in. The number that matters is the one you build from your own paid invoices, your own internal hours and the incidents you have actually had. Five things go into it. Our own terms, so you can check them against any quote: from $1,500 at a fixed price agreed before we start, no minimum project size, and the code, design files and accounts are yours at the end.

  • There is no defensible average three-year cost for every WordPress business site.
  • Use paid invoices, contracts, time records, incidents and approved roadmap work as the base case.
  • Compare maintain, optimize and migrate using the same features, traffic, service level and time period.
  • Do not count hypothetical traffic or revenue as savings unless first-party evidence and an attribution method support it.
  • A custom site still has hosting to pay for, packages to update, and someone who has to look after it.
Why there is no average WordPress cost here

This guide gives no single three-year total, no multiplier for hidden cost and no standard payback period. What your site costs depends on the hosting plan you are on, what you subscribe to, what it connects to, how much traffic it takes, the service level you pay for, and how many of your own hours go into editing, updating, supporting and fixing it. A number from someone else's sample tells you nothing about your bill. Build the number from your paid invoices, contracts and time records, and price custom operation as a real cost line rather than as zero.

Invoices

Hosting, licenses, services, support and incidents.

Labor

Internal editing, updates, QA, recovery and coordination.

Forecast

Renewals, growth, roadmap, contingency and exit.

Compare

Same capability, service level and evidence rules.

The three-year TCO formula

Seven lines make up the total, and only committed or observed cost belongs in the base case. If a line is a forecast rather than something you have paid or measured, keep it out of the base and put it in a scenario instead. The formula is written out so every term is visible and the result can be checked against your own records.

Three-year TCO = current annual recurring cost x 3
+ planned renewals and usage growth
+ internal operating labor
+ contracted maintenance and support
+ expected roadmap work
+ incident and contingency allowance
+ migration or exit work inside the period

Keep the base case to committed or directly observed cost. Put uncertain items in low, expected and high scenarios with named inputs. Do not combine a worst-case WordPress scenario with a best-case custom scenario. For how the same inputs are gathered when the comparison is a move off the platform, see the WordPress migration cost breakdown.

Collect the recurring invoices

"WordPress can be cheap or expensive, and the invoice alone never tells you which.

Start with what you are already paying, because the real number is almost never the one people quote from memory. Six categories catch nearly all of it, and the lines that get forgotten are the annual renewals and the retainer that has been running quietly since launch. Work from invoices rather than from a list of plugins.

  • Hosting, the CDN, storage, backups, a staging site and your domain
  • Your theme, the page builder, and the plugins doing forms, SEO, security, caching and media
  • Commerce, subscriptions, bookings, memberships and payment-related extensions
  • Search, email sending, analytics, the consent banner, chat, monitoring, and anything wiring them together
  • Agency, freelancer, care-plan and emergency-support retainers
  • Taxes, currency, overages, seats and annual renewal changes

Use current invoices and renewal notices. Public list prices may differ from a contracted, grandfathered, promotional or usage-based amount. For every line, note who is billed, when it renews, how much you actually use, what depends on it, and what breaks if you cancel. An extension-heavy stack can also carry an operating cost that never appears on a licence line, which is what our guide to WordPress plugins and site speed works through.

Count internal operating work

The largest line in a WordPress bill is usually the one nobody invoices: your own people. Six categories of work happen whether or not anyone logs them, and they surface as slower releases and interrupted afternoons instead of as a cost. Count those hours before you compare any two platforms on price.

  • Core, theme and extension update review, staging and release
  • Content, product, merchandising and campaign changes
  • Performance, accessibility, analytics and search checks
  • User access, vendor reviews, security monitoring and backup tests
  • Plugin conflicts, failed jobs, integration changes and support coordination
  • Time your procurement, finance and management people spend on the website

Multiply recorded hours by an agreed fully loaded internal rate. If time is not tracked, sample a representative operating period and label the estimate. Do not invent an industry maintenance retainer and apply it to a team that handles the work differently. If much of that time goes into chasing performance problems, work through the evidence-led method for fixing a slow WordPress site before you price anything else.

Handle incidents without a fake average

For incidents you have already had, write down the hours spent responding, what outside help invoiced, how long you were down, the transactions that failed, what it took to recover the data, the support load, any legal review, and who you had to notify. For future scenarios, use a separately labelled contingency or risk-adjusted model approved by the business. One public breach-cost statistic does not predict this site's loss. For the exposure that sits behind that contingency line, read our review of WordPress security risk in 2026.

Include roadmap and technical debt

Write down what the business expects to do over the three-year window you are modeling. New markets. New products. Subscriptions. A redesign. Different content structures. A CRM, search, payments, reporting, or a compliance requirement. Estimate each option against the same capability matrix. A platform that is inexpensive today may require costly work for a future requirement, while a migration may replace mature features unnecessarily. If the roadmap includes a store, scope the commerce path on its own terms against our WooCommerce migration service.

Scenario A: maintain WordPress

Maintaining means funding the site properly rather than leaving it alone, which is the version of this scenario most comparisons quietly skip. Five commitments make it a genuine option: current software, retired duplication, funded QA and security, evidence-led integration repair, and a forecast built from your actual contracts rather than from list prices.

  • Keep the current architecture and required capabilities.
  • Update supported software and retire unused or overlapping components.
  • Fund routine QA, security, backups, performance and incident readiness.
  • Replace fragile integrations only where evidence justifies the work.
  • Forecast current invoice renewals and capacity from actual contracts.

Scenario B: optimize or rebuild within WordPress

Separate what your content and features are worth from what the old build is costing you. A new theme, template system, hosting configuration, database repair or extension consolidation may solve measured problems without changing the content and commerce platform. Include migration within WordPress, staging, QA, launch and retraining in the comparison. Page-builder debt is a common part of that implementation cost, so test it directly against how Elementor affects SEO and how the Divi theme affects page speed.

Scenario C: migrate to a custom stack

Price the whole job, not just the build. That means working out what you need, designing it, building it, moving the content and data across, replacing whatever your plugins were doing, making it accessible, protecting your search traffic, getting analytics right, securing it, testing that money actually changes hands, the switchover itself, and support afterwards. Then add what it costs to run: hosting, the CMS, a database, email, search, monitoring, backups, whatever you use of each vendor, and the engineering time to keep it patched. A Vercel plan or other free allowance is not a permanent universal commercial-cost promise. Our WordPress migration service sets out how that scope is run, and the step-by-step WordPress to Next.js migration guide covers the sequence in detail.

Normalize the comparison

Two options can only be compared if they were quoted against the same assumptions, and most platform comparisons fail here rather than on the arithmetic. Fix the capability list, the demand you are planning for, the quality bar and the time horizon first, then apply all four identically to every option on the table.

ControlUse the same assumption for every option
CapabilitiesPages, editing, commerce, accounts, integrations and reports
DemandTraffic, data, transactions, regions and growth scenario
QualityPerformance, accessibility, privacy, security and reliability acceptance
ServiceMonitoring, response, backups, recovery, updates and support hours
PeriodSame start date, three-year window, currency and tax treatment
UncertaintySame low, expected and high scenario rules

How to handle performance and revenue benefits

Measure field performance and business events on the current site. If work is released, compare the groups affected and hold the other variables still where you can: campaigns, price, stock levels, content, device, location and time of year. Then say what you observed and how you tested it, without dressing up a correlation as a cause. Performance improvements do not automatically create a ranking, conversion or revenue result. Core Web Vitals explained sets out which of those measurements are field data and which are lab diagnostics before you attach any of them to a business case.

Calculate payback only after the inputs are approved

Net migration investment = migration cost - avoided near-term WordPress work
Annual verified savings = removed direct cost - new direct cost
Simple payback years = net migration investment / annual verified savings

Keep uncertain business benefits separate from verified direct savings. If annual verified savings are zero or negative, a cost-only payback does not exist. The migration may still be justified by capability, risk or strategy, but label that rationale directly.

When WordPress may still be worth it

WordPress stays the right answer when the editing workflow fits your team and somebody in the building genuinely owns the updates, the security and the recovery. Five conditions describe that position. Where all five hold, a migration mostly recreates features that already work, which is an expensive way to end up where you started.

  • The content and editing workflow fits the team.
  • Maintained extensions deliver required capability economically.
  • It is fast enough and reliable enough, or it can be fixed.
  • Someone in your organization can own the updates, the security, the monitoring and the recovery.
  • A migration would recreate mature features without a material business benefit.

When migration may be worth pricing

Get a migration priced once you have tried to fix the site and the problem is still there, not because the monthly bill looks high. Five things have to be true, and the last one always gets skipped: moving your data, protecting your search traffic, sorting out who owns what, getting sign-off and switching over all cost money, and they need their own line in the budget before anyone quotes the build.

  • Core workflows or data models repeatedly conflict with the current stack.
  • Required controls cannot be reached through a reasonable repair plan.
  • Direct recurring and operating costs are verified and materially reducible.
  • You know exactly what the new site has to do, and who keeps it running afterwards.
  • You have budgeted for the risks: the data, your search traffic, ownership, sign-off, the switchover and support.

PandaCodeGen planning terms

PandaCodeGen tiers start at $1,500 Starter, $3,500 Growth and $5,000 Scale, with custom work scoped separately. A common payment option is 30 percent at onboarding and 70 percent on delivery, and another written schedule may be agreed. Where the accepted project terms include it, a refund covers fees paid under that scope if the promised deliverables are not delivered. It is not a change-of-mind refund, and deliverables, acceptance and remedy all follow the signed scope. Where the accepted project terms record it, Starter includes 15 business days of launch defect support; Growth and Scale include 30. These terms are inputs to a comparison, not proof that migration is the lower-cost choice. What sits inside each tier is listed on the pricing page, and custom engineering covers work scoped outside them.

Related reading

To carry this comparison further, read the WordPress and Next.js platform comparison, the three-year cost comparison of WordPress and custom code, or how Cloudflare built its own WordPress replacement.

Frequently asked questions

Frequently Asked Questions

How much does WordPress really cost per year?

Use the site's hosting, software, support and incident invoices plus internal operating labor and approved roadmap work. Public averages do not represent every WordPress site, contract or team.

Is WordPress still worth it in 2026?

Yes when its editorial workflow and maintained capabilities fit, measured quality is acceptable or repairable, and the team can own updates, security and operations. Migration is worth pricing when verified constraints and a complete target plan justify its added cost and risk.

What is the best alternative to WordPress?

There is no universal best alternative. Compare optimize-in-place, a WordPress rebuild, headless WordPress and a different custom or managed platform against the same content, features, data, quality, ownership and operating requirements.

How do I compare WordPress with a custom site financially?

Use the same three-year period, capabilities, traffic, quality and service level. Include initial work, providers, software, labor, roadmap, incidents and exit for both options. Keep hypothetical ranking or revenue benefits outside the base case unless first-party evidence supports them.

Primary sources

Bring invoices, not assumptions

We will compare maintain, optimize and migrate using your actual costs, capabilities and operating requirements.