WP Engine cost vs self-hosted WordPress

WP Engine bundles hosting, caching, backups and patching into plan fees tied to traffic and storage. Self-hosted WordPress moves those costs to infrastructure and people you control, and the balance depends on your load and skills.

On this page

Does self-hosting WordPress cost less than WP Engine?

Self-hosting removes the platform fee, but it does not remove the work WP Engine does. Whether it costs less depends on your traffic, storage, and whether your team can run servers, caching, backups, and security monitoring well. Before you decide, pull your current plan, traffic tier, and storage usage from your invoice and list every service WP Engine bundles with it, so you can price each one separately. The software itself is free: WordPress is released under the GPLv2 or later, so the license cost is zero, and plugins and themes carry the same GPL terms.

Self-hosting costs recur in several places. You will pay for compute and database hosting sized to your peak visits, a CDN or edge cache, off-site backup storage with tested restores, uptime and security monitoring, and the staff hours for patching, upgrades, and incident response. WordPress.org recommends PHP 8.3 or greater and MariaDB 10.11 or greater or MySQL 8.0 or greater, so budget for a stack that stays on supported versions. Core updates can be automatic: since WordPress 5.6, newly created sites have automatic major release updates enabled by default, but plugin and theme updates happen automatically only in the special cases the WordPress.org API flags, so someone still owns the rest. Ask any hosting provider or partner for a written quote that lists each of these components separately, including who carries the on-call and patch duties.

Visit-based pricing and infrastructure that scales with load behave differently, so model both against a traffic spike, not just your average month. A plan tier can rise in steps as visits grow, while self-hosted infrastructure grows in smaller increments but needs capacity planning and load testing ahead of campaigns. Run a short cost model for your three likeliest scenarios, including one with a traffic spike and one with a plugin-driven outage, and compare the result with the staff time you would reassign. If your team cannot cover that operating load, the honest answer may be that self-hosting costs more, and a managed host or partner is the right choice.

Which cost components move when you leave WP Engine

This table compares each cost component of WP Engine's managed hosting with the matching component of self-hosted WordPress, and marks whether it is one-time or recurring. Read the WP Engine column as what the plan bundles, and the self-hosted column as what your team or a partner must buy, run and staff. The main takeaway is that licence fees are not the swing factor: most of the difference sits in staff time, monitoring and how infrastructure scales with traffic.

Cost componentWP Engine (what the plan bundles)Self-hosted WordPress (what you pay for)One-time or recurring
Plan fee and traffic tiersRecurring subscription, with limits tied to plan, visits and storage. Confirm current tiers and overage terms on WP Engine's pricing page.No platform fee. WordPress is GPLv2 or later, so the core software carries no licence charge.Recurring for WP Engine. Not applicable to the software itself.
Servers or cloud computeHosting infrastructure included in the plan, managed by WP Engine.Virtual machines or containers sized for PHP 8.3 or greater and MariaDB 10.11 or greater, or MySQL 8.0 or greater. Cost rises with traffic peaks and cache misses.Recurring. Provisioned per environment, including staging.
CDN and edge cachingPlatform caching and CDN included, with plugin restrictions described on WP Engine's platform.Separate CDN contract or self-managed cache layer. Cost depends on bandwidth and request volume.Recurring. Setup is one-time.
Backup storageBackups kept under WP Engine's retention window and downloadable as full or partial ZIPs.Your own backup target, retention policy and off-site copy. Storage grows with retention length and site size.Recurring. Initial backup and restore test is one-time.
Security monitoring and patchingPlatform-level security handled by WP Engine.Server hardening, intrusion monitoring, log review and a patch routine. The WordPress Security Team fixes disclosed issues in bugfix releases, but your team must apply them.Recurring. Hardening baseline is one-time.
WordPress and plugin updatesManaged by WP Engine within its platform rules.Core minor and major updates are your responsibility. Plugin and theme auto-updates apply only in special cases, so staging and testing effort recurs.Recurring. Ongoing staff or partner time.
Migration and DNS cutoverNot applicable while the site stays on WP Engine.Full backup, environment rebuild, plugin review, DNS switch and post-cutover checks. Confirm the scope and effort with a written quote.One-time.
People who run the stackSupport and platform operations included in the plan.Internal platform or web staff, or an implementation and support partner, paid per scope or retainer. Ask each vendor what is covered in writing.Recurring. Largest variable line.

What moves the comparison most

Six drivers decide whether self-hosting costs more or less than a managed WordPress plan. Most of them scale with traffic, content, plugins or the team's skills, so model each one against your own numbers before comparing totals.

Traffic peaks and visit pricing

Managed plans are usually priced by visits, so a launch or seasonal spike can move you into a higher tier. Self-hosted capacity scales with the servers and caching layer you buy, so peaks cost compute and CDN bandwidth rather than a plan change. Ask WP Engine how overage and tier changes are billed, and load test your own traffic pattern on the self-hosted option before deciding which curve is cheaper.

Data and media volume

Storage for the media library, database growth and backup retention all recur every month and rise as the site ages. On self-hosted WordPress you pay for block storage, object storage and backup copies directly, and each backup generation multiplies the footprint. Ask for the storage and transfer limits in the current WP Engine plan, and estimate your media size and retention window before comparing.

Plugin count and update risk

Every plugin adds code to patch, compatibility to test and a possible vulnerability to respond to. On a managed host, some plugins are blocked by the platform, while self-hosting removes that limit but moves plugin review and emergency patching to your team or partner. Count active plugins, mark those that handle payments, forms or user data, and price the time to test each update.

Availability and response targets

The uptime and response times you must meet decide how much redundancy and on-call coverage you need. Managed hosting bundles monitoring and support into the plan fee, while a self-hosted setup needs a second node or failover, alerting and an out-of-hours rota. Write down the availability target and the response time for incidents, then confirm what WP Engine's support terms actually guarantee.

Staging and release frequency

Release frequency sets how many staging environments, test cycles and deployment runs you pay for each month. A site that ships weekly needs an automated staging copy, database sync and rollback path, which are one-time setup costs plus recurring compute. Count your releases per quarter and decide whether staging and deployment tooling is built in or added.

Internal WordPress and Linux skills

The largest variable is who operates the stack. A team with PHP, MariaDB or MySQL and Linux administration experience can run WordPress at lower cost, while a team without it will pay a partner or hire staff. WordPress recommends PHP 8.3 or greater and MariaDB 10.11 or greater or MySQL 8.0 or greater, so confirm your team can keep those versions current. Include salaried hours, contractor retainers and training in the comparison.

How visit-based pricing compares with infrastructure that scales with load

A plan priced by visits, traffic or storage behaves differently from servers you size and scale yourself, and the difference shows up most at tier boundaries. A hosting plan usually charges a fixed fee for a band of usage, so a site that grows a little past a limit can move to the next tier and pay a step increase even when the extra load is small. Self-hosted cost rises and falls with the resources you actually consume: compute, memory, database capacity and egress. Quiet periods can lower that bill, provided you have autoscaling or right-sized instances to take advantage of them. Ask WP Engine how its plan limits are measured (monthly visits, bandwidth, storage or a combination), what happens when you exceed a limit, and whether overage charges apply or the account is moved to a higher tier.

Caching and CDN layers change how much origin capacity you need, and that changes the self-hosted model more than most teams expect. A well-configured page cache, object cache and CDN can serve most anonymous visitors without touching PHP or the database, so the servers you pay for are sized for logged-in users, uncached pages, search and checkout-style requests. Check what the current plan already caches at the platform level, then decide which of those layers you will run yourself. Your own analytics are the only reliable input for sizing: export twelve months of visits, peak hour traffic, bandwidth and cache hit ratio from your analytics and server logs, then model both average and peak load separately. A cost model built on averages will understate the capacity needed for a campaign spike, and one built only on peaks will overstate the year-round bill.

When you request a quote from an implementation partner or price your own team's time, ask for the cost of the scaling design itself, not only the server line item. That covers autoscaling rules, load testing against your peak profile, cache purge behavior during publishing, and an alert that fires before a single instance saturates. These elements are largely one-time, while the compute, egress and monitoring they drive recur monthly. Compare that recurring figure with the plan fee at your projected volume for the next two renewal cycles, including the tier you would reach if traffic grows by the rate your analytics show, so the comparison reflects your growth rather than a single snapshot.

How to build the WP Engine comparison with your own numbers

This sequence turns WP Engine's invoice and your own usage data into a three-year cost comparison against self-hosted WordPress, with every line traceable to a document, a quote or a staff estimate. Each step names who does the work and what proves it is finished.

  1. Pull your current WP Engine invoice and plan terms

    Account owner or finance lead downloads the last twelve months of invoices from the WP Engine account and records the plan name, the number of installs, the included visit or traffic allowance, the storage limit, and any add-ons such as additional environments or support tiers. Confirm the renewal date and any overage rates in the written agreement, not only the billing summary. The step is done when every recurring charge on the invoices maps to a line in a single spreadsheet with its source document named.

  2. Export traffic and storage history

    The site owner or platform engineer pulls monthly visit counts from the analytics tool in use, along with peak-month figures, and records database and file storage growth from the WP Engine dashboard or hosting reports. Keep at least the same window as the invoices so seasonal spikes appear in both. The step is done when you have a monthly table of visits, peak concurrent load where available, and storage in gigabytes, because these numbers drive the infrastructure sizing in later steps.

  3. List every cost component from the table

    The platform team copies the cost component list from this page into the workbook and assigns each item a current owner: hosting, CDN, backups, staging, security monitoring, WAF, updates, and staff time. Mark each item as one-time or recurring and note what drives it up, such as traffic, number of sites, or plugin count. The step is done when every component has a row, an owner, and a cost driver, and any component you do not pay for today is marked zero with a reason.

  4. Request quotes for compute, CDN and backup storage

    The platform lead sends written scope to two or three cloud providers, managed WordPress hosts or self-hosting partners, asking for compute sized to your traffic history, CDN egress at your monthly volume, and backup retention matching your current WP Engine backup window. Ask each vendor to state unit prices, minimums, egress charges, and what is billed separately. The step is done when each quote is on the same assumptions, so the numbers can be compared line by line.

  5. Quote monitoring and security tooling

    The security lead requests quotes or license terms for uptime monitoring, log retention, vulnerability scanning, and a web application firewall if the current platform provides one. Confirm which controls WP Engine supplies today and which you would need to add, so you do not double count or miss one. The step is done when each security control has a quote, a named vendor or an in-house tool, and a note on how it is billed.

  6. Estimate monthly staff hours for patching and incidents

    The engineering manager estimates, for each month, the hours needed to test and apply WordPress core, plugin and theme updates, handle incident response, restore from backup, and review logs. Base the estimate on your team's own history of tickets or on written proposals from a partner, and cost the hours at the internal or contracted rate. Note that WordPress applies plugin and theme updates automatically only in limited cases, so much of that testing falls to your team. The step is done when you have a monthly hours figure with a stated basis and a loaded hourly rate.

  7. Add the one-time migration cost

    The project owner adds the one-time costs: migration planning, backup export, DNS cutover, staging setup, plugin re-testing, and a restore test. Request a fixed-scope quote from any partner you consider, listing what is covered and what your staff will do. Record the cost separately from the recurring lines so the first-year figure and the steady-state figure stay visible. The step is done when the one-time total sits in its own row and each item it covers is named in the quote.

  8. Compare three-year totals and test sensitivity

    The finance lead builds a three-year table with the WP Engine renewal costs on one side and the self-hosted recurring costs plus one-time migration on the other, then runs the comparison at your current traffic and at a higher traffic scenario labeled as illustrative. Check whether the self-hosted infrastructure costs rise with load while the visit-based fee steps up, and note the break-even month if one exists. The step is done when the workbook shows both scenarios, every assumption is written beside its number, and the result is reviewed by the people who own the staff hours and security controls.

Costs teams forget on each side

The plan fee is the line item everyone compares, but the gaps tend to sit in add-ons, traffic overages and renewal terms on the hosted side, and in restore testing, monitoring, protection and upgrades on the self-hosted side. Check both columns before you compare totals.

Add-ons, overages and renewal changes

Hosted WordPress bills often grow through items outside the base plan: extra environments, storage above the included amount, traffic beyond the tier, and paid features added later. Ask for the full price of your current site, including every add-on, and the rate that applies after the first renewal. Confirm in writing how overage is billed and whether the plan price can change at renewal, since the quote you sign today may not be the price you pay next year.

Restore testing and backup retention

A backup you have never restored is an unverified assumption. Self-hosting moves backup scheduling, offsite copies, retention and restore drills to your team or partner, and each drill takes staff time that rarely appears in a hosting comparison. Budget for at least one full restore into a separate environment on a regular schedule, and record how long it actually takes.

Uptime alerting and DDoS and bot protection

Hosted plans usually include some traffic filtering and incident response, which self-hosting must replace with monitoring, a CDN or edge provider, and rules for bot traffic and login abuse. Each of these is a recurring subscription or service that your bill must include. Ask what your edge and monitoring tools cost at your expected traffic, who receives alerts, and what happens during an attack that exceeds your origin capacity.

PHP, database and certificate upgrades

WordPress.org recommends PHP 8.3 or greater and MariaDB 10.11 or greater or MySQL 8.0 or greater, so your server stack must be kept inside supported versions. Plan recurring work for PHP and database upgrades, TLS certificate renewal and their testing against plugins and themes. Certificate automation reduces effort, but someone still owns failed renewals and expired domains.

Staging environments and on-call coverage

Hosted plans often include staging and support responders, while self-hosting requires a staging copy that matches production and a named person to respond to outages at night and on weekends. Staging costs servers and sync time, and on-call costs salaried hours or a retainer with a partner. Ask who is paid to respond, what response window applies, and how often staging is refreshed from production.

Who patches WordPress when you run it yourself

When you run WordPress yourself, the patching responsibility moves from WP Engine to your team, and the first thing to understand is how the upstream update model works. WordPress officially supports only the latest release, so the project is not a long-term support line. The WordPress Security Team backports critical security fixes to older versions as a courtesy, so older sites can still receive them through auto-updates, but that courtesy is not a support commitment you can plan a budget around. Confirm the current release numbers and the maintenance status of your branch on the WordPress releases archive before setting a patch cadence.

Background updates are not a full answer either. Since WordPress 5.6, newly created sites have automatic major release updates enabled by default, but by default WordPress applies automatic updates to plugins and themes only in special cases chosen through the WordPress.org API, which the Security Team controls to patch critical vulnerabilities. Everything else, including ordinary plugin and theme releases, is yours to apply. Check the update settings for each site, since minor and major automatic updates are configured per site and can be changed by whoever administers the install. Document which of these are on, who may change them, and where that decision is recorded.

The work you own includes testing each update in staging before it reaches production, checking plugin and theme compatibility with the new core version, and keeping a tested rollback path, usually a fresh backup taken immediately before the change. Assign a named owner for the release watch, for the plugin inventory and for the decision to hold an update when a plugin is not yet compatible. Those roles are the ones WP Engine's operations team currently fills for you, so the cost of this work should appear as recurring staff time in your comparison, not as a line item you assume is zero.

Questions buyers ask before comparing costs

How much effort does self-hosting WordPress take, and can our staff do it?

Self-hosting is feasible for a team with server administration skills, but the work is ongoing, not a one-time setup. Your team takes on the platform that WP Engine currently runs for you: server provisioning, PHP and database versions, caching, the CDN, backups, staging, uptime monitoring and security response. WordPress itself recommends PHP 8.3 or greater and MariaDB 10.11 or greater or MySQL 8.0 or greater, so someone must own those versions and their upgrades. Automatic background updates cover WordPress core for newly created sites, but plugin and theme updates are applied automatically only in special cases chosen by the WordPress.org API, so most plugin patching remains a manual task. Ask whether your team has capacity for that routine work before deciding.

How long does a migration off WP Engine usually take?

Migration length depends on the drivers below, so no general duration applies. The main factors are the number of sites, the size of the database and media library, how many plugins depend on WP Engine's platform caching or hosting-specific features, the number of custom integrations, and whether a staging environment and restore test are part of the scope. DNS cutover needs planning to keep downtime low. Ask any provider, including DeployOpen, to state the timeline in a written scope, with each phase and its acceptance check listed separately. DeployOpen plans most engagements as fixed scope, with scope, deliverables and timelines agreed in writing before work starts.

Which WordPress hosting costs are one-time and which recur?

Migration work, such as moving files and the database, rebuilding the CDN and caching setup, configuring backups and running restore tests, is one-time. Recurring costs include compute and storage, bandwidth, the CDN, backup retention storage, monitoring, security tooling, license fees for any commercial plugins, and the staff or partner hours spent on updates and incident response. Compare these recurring lines with WP Engine's plan fees, which are priced by plan, traffic tier and storage. Infrastructure costs on your own servers or cloud account rise and fall with load, so model peak traffic as well as average traffic when you build the comparison.

Is a managed partner worth the fee compared with doing it in-house?

A partner is worth it when the work would otherwise be unowned, delayed, or handled by staff who lack the time or skills for it. The fee buys defined outcomes: an agreed scope, documented configuration, tested backups and restores, and a support path. The in-house alternative costs salaried hours and the risk of slower incident response. Ask for the partner's fee as a separate line from infrastructure, so you can see what you pay for the engineering and what you pay the cloud provider. Ongoing support, upgrades and continuous testing are available as retainers, so you can compare a one-time project with a recurring service. Factor in the cost of a failed migration or an unpatched plugin, which a fixed scope is meant to reduce.

What should we ask for in a self-hosted WordPress quote?

Ask for a written scope that lists every component, so you can match it against WP Engine's bundle. Request these items:

  • Infrastructure sizing for normal and peak traffic, with the cloud or data center account that will pay for it.
  • The caching, CDN and image-optimization setup, and what replaces WP Engine's platform features.
  • Backup frequency, retention, storage location, and a restore test with recorded results.
  • Staging, change control and the process for WordPress core, theme and plugin updates.
  • Security monitoring, vulnerability response times as written targets, and who gets alerted.
  • Migration phases, acceptance criteria, DNS cutover approach and rollback steps.
  • Handover documentation, training, and the optional retainer terms after launch.

Confirm each figure directly with the vendor or partner in writing.

Do WP Engine plugin limits change the cost comparison?

Yes, they can change both the cost and the scope. WP Engine removes plugins it judges harmful to its platform, including some caching and backup plugins. If your site depends on one of those, self-hosting lets you run it, but you then need to budget for the performance and security work that the plugin implies, such as tuning cache rules and monitoring backups. Plugin freedom also means you must test and patch every plugin yourself. Review your current plugin list against WP Engine's restrictions and price the extra engineering for any plugin you must replace or configure differently. Keep in mind that WordPress is GPLv2 or later, so the code you run remains the same product whichever host you choose.

Does moving to open-source WordPress change our licensing costs?

WordPress itself carries no license fee, because it is released under the GPLv2 or later from the Free Software Foundation. Plugins and themes that you obtain from WordPress.org are also GPL, but some commercial plugins and themes have their own license fees, and those fees continue after you leave WP Engine. Check each premium plugin's terms, renewal dates and whether its license permits use on your own servers. Confirm these terms with each plugin vendor, because they are not set by WordPress.

What to put in a fixed-scope quote request

A fixed-scope quote is only as accurate as the inputs behind it, so the first thing to gather is a clear picture of the site as it runs today. Give any implementation partner your current traffic profile, meaning peak and average visits per month and the share of traffic served from cache, plus total storage split between the media library, the database and any uploads. Include a plugin inventory with each plugin's name, version, purpose and whether it is business-critical, because plugins that WP Engine currently hosts or limits will need an owner and a decision in the new setup. Confirm the PHP and database versions you run now against the WordPress.org requirements, which recommend PHP 8.3 or greater and MariaDB 10.11 or greater or MySQL 8.0 or greater, so the partner can plan any upgrade work separately from the migration.

Next, define the environments and recovery targets, since these drive much of the recurring work. Ask for the number of environments you need (production, staging, development), who may push to each, and how often staging must be refreshed from production. Set a recovery point and recovery time objective for the site and for the database separately, and state how long backups must be kept. Note the compliance obligations that apply to the site, such as data residency, retention of visitor form submissions, or cookie and privacy controls, and say whether you need evidence of controls for an assessment. DeployOpen prepares systems and evidence for compliance assessments but does not issue audit reports or certifications, so ask any auditor you work with which artifacts they expect. Finally, state the support hours you need, including who responds to incidents outside business hours and whether security updates must be applied within a defined window.

DeployOpen agrees scope, deliverables and timelines in writing before any work starts, and its quote follows from that written scope rather than from a published price list. A useful request therefore names the in-scope sites, the environments, the migration and hardening tasks, the handover documentation, and whether ongoing support, upgrades or testing should follow as a retainer. Ask any partner to list which items are one-time (migration, restore testing, initial hardening) and which recur (hosting, backups, updates, monitoring, support), and to state which assumptions the quote depends on, such as traffic growth or plugin changes. Confirm with the partner how they will handle items you cannot yet answer, such as an unknown plugin conflict, and whether those become a change request with its own written scope.

How DeployOpen scopes a fixed-price WordPress move

DeployOpen plans, implements, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside the client's own infrastructure, so a WP Engine exit runs on servers and cloud accounts your organization controls. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before any work starts.

How we scope

  • Inventory the current WP Engine plan, environments, traffic pattern, storage and add-ons to set the baseline cost comparison
  • List every plugin and theme, flagging any that depend on WP Engine platform features before a rebuild decision
  • Agree in writing which hosting, CDN, backup, monitoring and patching components the self-hosted target includes

How we build

  • Provision the target stack in your cloud account or data center, with PHP and MariaDB or MySQL versions that match WordPress requirements
  • Configure page caching, CDN, object storage backups and staging, then test restores before any DNS change
  • Run security testing on the migrated site and document the update policy for WordPress core, plugins and themes

How we hand over

  • Deliver runbooks for deployment, backup restore, cache purge, DNS cutover and rollback
  • Document which update work stays with your team and which is covered by the retainer, so ownership is explicit
  • Provide cost records that show recurring infrastructure and labor lines for comparison with your WP Engine invoices

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers, scoped separately from the migration
  • Retainers can cover core and plugin update testing as WordPress releases ship, such as the 7.1 series
  • Ask any provider, including DeployOpen, to confirm response windows and patch handling in writing before signing

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.