Hiring guide · WordPress

Hire WordPress Developers: Rates, Vetting and Common Traps

The short answer

Expect $20 to $50 an hour for offshore freelance WordPress developers, $65 to $150 an hour onshore, and $45 to $110 an hour blended for a delivery managed team, with onshore agencies running $150 to $250. For a one off theme tweak or a plugin conflict, hire a vetted freelancer. For anything that touches WooCommerce, custom post types, a migration, or code you will still be running in three years, use staff augmentation or an agency so that code review, staging and deploy discipline come with the developer instead of being something you have to invent yourself.

What a WordPress developer actually does, and where the hire goes wrong

The job title covers two completely different people. One assembles sites in Elementor or Divi, wires up a contact form, and installs plugins. The other writes PHP against the hooks system, registers custom post types and taxonomies, builds blocks with block.json and the @wordpress/scripts toolchain, tunes WP_Query and the meta_query calls behind a slow archive, and knows why esc_html on output matters more than sanitizing on input. Both call themselves WordPress developers. Only one of them can build you software.

The failure pattern is boringly consistent. A founder posts "add a booking feature to our WordPress site" and hires at $18 an hour. Six weeks later the site works, sort of. There are fourteen new plugins. The booking logic lives in a 900 line functions.php inside the parent theme, so the next theme update erases it. The developer needed a different confirmation email, so they edited the booking plugin's own PHP file directly, and an auto update quietly reverted it in month two. There is no git repository, because the work was done through the Appearance to Theme File Editor screen on the live site. Install Query Monitor and the booking archive fires over 400 queries, most of them unindexed lookups against wp_postmeta. The wp_options table has three megabytes of autoloaded rows because two plugins were installed, tested and deleted without cleanup, so every single page load drags that with it.

Nothing here is exotic. It is what happens when you hire a site assembler for an engineering problem, and the rebuild costs more than doing it right would have.

Engagement models: in-house, freelancer, agency, staff augmentation

In-house hire. Right when WordPress is your product surface, not your brochure. If you run a WooCommerce store doing real volume, a membership platform, or a publisher with a custom editorial workflow, you want someone who holds the whole plugin and theme layer in their head and is there when checkout breaks on a Friday. The trade off is that a single WordPress engineer is a lonely role. There is nobody to review their PHP, so their habits become your codebase, and mediocre habits compound in WordPress faster than almost anywhere else.

Freelancer. Right for bounded, describable work. Fix a plugin conflict. Build one Gutenberg block. Migrate to a new host. Convert a classic theme header to a block template part. Freelancers are the fastest and cheapest path to a defined outcome. The trade off is continuity and review. Nobody checks their nonce handling, nobody documents the decision, and when they go quiet you own a codebase you cannot read.

Agency. Right when you want the outcome and not the management. Good agencies bring a project manager, a staging environment, a deploy process and a QA pass. You pay for that. The trade off is that you are one client among many, priority is negotiated rather than assumed, and some agencies quietly hand your build to the cheapest available person once the contract is signed.

Staff augmentation. Right for most companies that need WordPress work continuously but not a headcount. You get a developer embedded in your standups and your Slack, working your board, with an agency behind them handling code review, backfill when they are sick, and escalation to someone senior when WooCommerce HPOS compatibility turns into a real problem. The trade off is you are still managing the work. If you have nobody to say what to build, augmentation will not save you.

What WordPress developers actually cost

These ranges come from Digital Heroes delivery and from the offers we compete against, not from a survey. Rates move sharply with region and with seniority, so treat these as bands, not prices.

  • Offshore freelance (South Asia, parts of Eastern Europe, Latin America): roughly $20 to $50 an hour. Below about $15 you are almost always buying plugin assembly.
  • Onshore freelance (US, UK, Canada, Australia, Western Europe): roughly $65 to $150 an hour. The top of that band is usually a WooCommerce or performance specialist.
  • Delivery managed team or staff augmentation: roughly $45 to $110 an hour blended, because you are paying for review and process alongside the hands.
  • Onshore agency: roughly $150 to $250 an hour, higher for enterprise or WordPress VIP work.
  • In-house US base salary: the offers we see for a genuine PHP-and-hooks WordPress engineer commonly land between $80,000 and $140,000, with WooCommerce depth at the upper end.

The in-house number is the one founders get wrong. Salary is not cost. Once you add payroll taxes, benefits, equipment, software seats and workspace, the planning rule we use is base multiplied by roughly 1.25 to 1.4. Then add recruiting: the contingency recruiters we have used quote a percentage of first year salary, and doing it yourself is not free either, it is forty or fifty hours of your own time across sourcing, screening and interviewing. Then add ramp. On a mature WordPress codebase with custom post types, a half dozen ACF field groups and inherited plugin decisions, expect four to eight weeks before independent shipping. A $110,000 hire is realistically a $170,000 to $190,000 first year commitment. That math is often what pushes a company toward augmentation for the first year.

How to vet a WordPress developer

Screen for the hooks system first, because everything else follows from it. Ask them to explain, out loud, the last filter they wrote and why it was a filter rather than an action. Someone who genuinely builds on WordPress will talk about return values without hesitating. Someone who assembles sites will describe a plugin setting.

Then ask these, in order:

  • "A client wants to change the wording in a plugin's confirmation email. Walk me through it." The right answer reaches for a filter the plugin exposes, or a template override in the theme, or a small must-use plugin in wp-content/mu-plugins. The wrong answer is "I edit the plugin file."
  • "Where do you put custom post type registration, and why?" A plugin hooked on init, not the theme, because content should survive a redesign. If they say functions.php, keep probing.
  • "This form submits to admin-ajax. What has to be in place before it touches the database?" You want check_ajax_referer or wp_verify_nonce, current_user_can for the capability, sanitize on the way in, $wpdb->prepare for any raw SQL, and escaping late on output with esc_html or esc_attr. If escaping and capabilities never come up unprompted, that is your answer.
  • "You are adding a REST endpoint. What is the one argument people forget?" permission_callback. If they say __return_true and do not flinch, stop.
  • "An archive page takes six seconds. First move?" Query Monitor, look at query count and the slow queries, suspect an unindexed meta_query, check autoloaded options in wp_options, consider filtering with pre_get_posts instead of a second WP_Query, then transients or the object cache. If their first move is "install WP Rocket," they are papering over it.
  • "How do you deploy?" Git, a staging environment, WP-CLI for search-replace on migrations because a raw SQL find and replace corrupts serialized data in wp_options. If the answer is FTP or a file manager, stop.

For portfolio review, do not look at screenshots of finished sites. Ask for a repository containing a plugin or theme they wrote. Open it and look for: an ABSPATH guard at the top of each file, prefixed or namespaced function names so nothing collides, a text domain used consistently, a composer.json, a phpcs.xml pointing at the WordPress Coding Standards ruleset, and block.json if they claim Gutenberg. Look at how they enqueue assets. Loading a stylesheet on every admin page through admin_enqueue_scripts instead of hooking the right screen is a small tell that says a lot.

If you run a take-home, keep it to three or four hours and make it stack-specific: a small plugin that registers a custom post type, exposes one REST route through register_rest_route with a real permission_callback, and ships one custom block with a couple of attributes and a server side render_callback. That single exercise separates the two populations completely, and you can grade it in twenty minutes.

Red flags

  • "There is a plugin for that" is the answer to every requirement. Forty plugins is not a stack, it is forty update paths and forty attack surfaces. Ask instead: "Which of these would you write yourself, and why?"
  • They talk about page builders when you describe an application. Elementor and Divi are fine for marketing pages. If your problem is booking, pricing logic or member state, a builder will produce a four megabyte page that nobody can maintain. Ask instead: "Where does the business logic live in your answer?"
  • No git, no staging. Editing live through the theme editor or FTP means there is no history, no rollback and no review. Ask instead: "Show me the last commit you pushed on a WordPress project."
  • They suggest disabling auto updates to stop things breaking. That is not a fix, it is a security posture you will regret when the next plugin CVE lands and Patchstack or Wordfence starts screaming. Ask instead: "How would you make updates safe rather than optional?"
  • WooCommerce experience that stops at "I have set up stores." Ask instead about High Performance Order Storage compatibility, or how they would add a field to checkout now that checkout is blocks, or what they do when wp_postmeta order lookups get slow. Vague answers here are expensive later.

When this is the wrong hire, and how Digital Heroes staffs the right one

Be honest about the problem first. If you need a marketing site that loads fast and lets your team publish, you may need a designer and a content person more than an engineer, and a well chosen block theme with theme.json will get you further than custom PHP. If you are building a product with accounts, billing and real application state, ask whether WordPress is the right foundation at all before you hire for it, because forcing an app into wp_posts is a decision you pay for every quarter. If you are running WooCommerce at volume, or you have a plugin layer nobody understands, or your Core Web Vitals are sinking under inherited bloat, that is when a real WordPress engineer pays for themselves.

At Digital Heroes we staff WordPress as a small pod rather than a lone hire. A senior PHP engineer owns the plugin and theme layer and every hook decision. A front end developer handles blocks, theme.json and the editor experience your team actually uses. A delivery lead keeps git, staging and the WP-CLI deploy path honest so nothing ships from a file manager. We do not put site assemblers on application work, and we say so before the contract rather than after the rebuild. Most clients start with a scoped diagnostic on the existing codebase, because knowing what you already own changes what you should hire for.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Vulnerabilities disclosed across the WordPress ecosystem rose sharply in 2024 (up 68% from 2023), and roughly a third (about 35%) remained unpatched into 2025, with over one-third of developers unreachable or unresponsive to fixing vulnerabilities, underscoring the scale of automated attacks WordPress sites face. Source: Wordfence (Defiant) (2025) →
  2. WordPress accounted for 95.5% of all infected sites Sucuri cleaned, and 39.1% of CMS installations were outdated at the point of infection, reflecting WordPress's ubiquity and the maintenance burden of keeping installs patched. Source: Sucuri (GoDaddy) (2024) →
  3. 48% of private companies cite integration with legacy systems or technical debt as a top obstacle to realizing the full value of their digital and AI investments (behind data quality/availability at 72% and gaps in AI fluency or technology talent/leadership at 53%). Source: Deloitte (2026) →
  4. The global point-of-sale terminal market is projected to reach approximately $181.47 billion by 2030, growing at an 8.1% CAGR from 2025 to 2030, driven by digital payment adoption and demand across retail, restaurant, and hospitality sectors. Source: Grand View Research (2025) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How much does it cost to hire a WordPress developer?
Offshore freelance WordPress developers typically run $20 to $50 an hour, onshore freelancers $65 to $150, delivery managed teams $45 to $110 blended, and onshore agencies $150 to $250. These are Digital Heroes delivery and market ranges, not survey figures, and they shift with region and seniority. In-house US base offers we see for a genuine PHP and hooks engineer commonly sit between $80,000 and $140,000, but budget roughly 1.25 to 1.4 times base once payroll taxes, benefits and equipment are counted.
Should I hire a freelancer or an agency for WordPress?
Hire a freelancer for bounded work you can describe in a paragraph: a plugin conflict, one custom block, a host migration. Use an agency or staff augmentation when the work is continuous or touches WooCommerce, custom post types or anything you will still run in three years. The difference you are paying for is code review, staging discipline and someone to escalate to, not raw hours.
How do I test a WordPress developer before hiring?
Give a three to four hour take-home: a small plugin that registers a custom post type, exposes one REST route with a real permission_callback, and ships one custom block with a server side render_callback. That single task separates PHP engineers from page builder assemblers almost perfectly. Grade it on nonce and capability checks, escaping on output, prefixed function names and whether they used block.json properly.
How long does it take to hire a WordPress developer?
A vetted freelancer through an agency bench can start within a week. A direct freelance hire off a marketplace takes one to three weeks including screening and a take-home. A full-time in-house hire realistically takes six to twelve weeks from job post to first day, then another four to eight weeks of ramp before they ship independently on a mature codebase.
What is the difference between onshore and offshore WordPress rates?
Offshore WordPress developers commonly bill $20 to $50 an hour while onshore developers in the US, UK or Australia bill $65 to $150 for comparable work. The gap is labour market, not talent, and some of the strongest WordPress core contributors work outside those markets. What actually varies is timezone overlap, written communication and whether review and process come attached, which is why a managed offshore team often costs more than a raw offshore freelancer and is worth it.
Who owns the code when I hire a WordPress developer?
You should own it outright, assigned in writing before work starts, and it should live in your git repository under your account from day one. WordPress core and GPL plugins carry their own licence, which does not change your ownership of what was built for you. Watch for two traps: a developer who keeps the code on their host until final payment, and paid plugin licences like ACF Pro or WP Rocket registered to the developer instead of to you.
Do I need a WordPress developer or can a page builder handle it?
If you need marketing pages your team can publish and edit, a well configured block theme with theme.json, or a builder like Elementor, will get you there without an engineer. You need a real WordPress developer the moment there is business logic: booking, pricing rules, member state, custom checkout behaviour, or anything querying custom fields at scale. The expensive mistake is hiring a builder specialist for an application problem and discovering it at launch.
What should a WordPress portfolio review look like?
Ignore screenshots of finished sites and ask for a repository containing a plugin or theme they wrote. Look for an ABSPATH guard, prefixed or namespaced functions, a consistent text domain, a composer.json, a phpcs.xml pointing at the WordPress Coding Standards ruleset, and block.json if they claim Gutenberg work. Then check how they enqueue assets, because loading scripts globally instead of on the right hook is a small tell about everything else.
Can one WordPress developer handle WooCommerce too?
Sometimes, but do not assume it. WooCommerce depth is a separate specialism covering High Performance Order Storage compatibility, the block based checkout, order table performance and payment gateway behaviour, and a strong general WordPress developer can be genuinely weak at all of it. Vet it directly by asking how they would add a field to the blocks checkout, and how they would handle order lookups getting slow. Vague answers there predict expensive problems at real volume.
How much does custom WordPress plugin development cost?
A simple custom plugin, like a quote calculator or a small API connector, usually costs $1,500 to $5,000, while plugins with admin dashboards, user roles, and third-party integrations run $8,000 to $25,000. In Digital Heroes delivery experience, roughly half of plugin requests can be solved with an existing plugin plus 10 to 20 hours of configuration, so ask your developer to check the WordPress plugin directory before quoting a ground-up build.
What does it cost to keep custom software running after launch?
Budget 15-20% of the original build cost per year, which on a $100,000 system means $15,000 to $20,000 for security patches, dependency updates, bug fixes, and small improvements as real usage reveals what the spec missed. Cloud hosting for a typical business application adds $50 to $300 a month on top. Skipping maintenance does not save the money; in Digital Heroes rescue work, unmaintained systems typically need a far more expensive rebuild within about three years.
Why is my Elementor site so slow, and can a developer fix it or do I need a rebuild?
Elementor outputs deeply nested markup and loads its CSS and JavaScript on every page, and the Elementor sites Digital Heroes audits commonly weigh 2 to 4 MB per page once widget addon packs pile up. A developer can recover some speed with caching, image compression, and removing addon plugins, but the ceiling is the builder itself. When Digital Heroes rebuilds an Elementor site as a lightweight custom theme, typically a $4,000 to $12,000 project, cutting page weight in half is the normal result rather than the exception.
Can WordPress integrate with my CRM, email platform, and accounting tools?
Yes, and this is one of the platform's real strengths: HubSpot, Salesforce, Mailchimp, and QuickBooks all have official WordPress plugins, and anything with a REST API can be connected with custom code. Off-the-shelf connectors run free to about $300 a year, while a custom two-way integration, for example syncing WooCommerce orders into an ERP, typically costs $2,000 to $8,000 to build. Start with the official plugin and only go custom when field mapping or sync direction hits its limits.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
How many people does it take to build and then run a WordPress site?
A typical custom build is a three-person pod: a designer, a developer, and a project manager who also runs QA, with integration-heavy or WooCommerce projects adding a second developer. After launch, most business sites on Digital Heroes maintenance retainers need just 2 to 5 hours of professional attention a month. That is why WordPress retainers stay cheap compared to custom application support; you are renting a sliver of a team, not employing one.
Should I hire a freelancer or an agency for WordPress development?
Under roughly $5,000 of scope, a strong freelancer is usually the better deal because you get senior hands without agency overhead. Above that, or when the project needs design, development, and ongoing support together, an agency's backup bench matters; a solo freelancer vanishing mid-project is the single most common rescue scenario Digital Heroes gets hired to finish. Either way, keep hosting and the code repository in accounts you own so the work stays portable.
How long does it take to build a custom web or mobile app from scratch?
Plan on 8 to 16 weeks for a focused first version and 4 to 9 months for a larger platform, which is the typical spread across Digital Heroes builds. The first 2 to 3 weeks go to discovery and design before any production code ships. The two things that stretch timelines most are integrations with legacy systems and slow feedback from your side, not developer speed.
Is it better to hire a WordPress developer or just build the site myself with Elementor?
Build it yourself with Elementor if you need a standard 5 page brochure site, have the evenings to spare, and can accept template-level design; Elementor Pro starts at about $59 a year and is genuinely capable at that job. Hire a developer once the site needs custom functionality, integrations with your business systems, or loading speed a page builder cannot reach. The honest dividing line is whether the site is a digital brochure or a working business tool.
Do I need headless WordPress, or is a normal theme enough?
A normal theme is enough for the vast majority of business sites; in Digital Heroes delivery experience fewer than 1 in 20 projects justify going headless. Headless means a separate JavaScript front end, and when Digital Heroes quotes both options the headless build typically comes in at 2 to 3 times the cost to build and maintain, with plugin conveniences like previews and SEO tooling lost unless they are rebuilt. It earns its keep when the same content must feed a website and a mobile app, or when you already employ a React front end team.
Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?