WordPress developers build and maintain sites on the WordPress platform. Most work solo or in small studios, and they bill for custom theme and plugin development, site builds, WooCommerce setups, speed and security work, migrations, and ongoing maintenance. Clients range from small businesses to agencies that subcontract overflow work.
Create an invoice for payment collection
Upload logo
PDF will be generated with filename:
Invoice_1001_Client_2026-10-14.pdf
Pricing varies by the type of work. Custom development and troubleshooting are often billed hourly, typically with a minimum block such as one hour or 15 minutes. Full site builds are usually a flat project fee, split into milestone payments, with a defined number of revision rounds. Ongoing care plans are sold as monthly retainers that cover updates, backups, uptime monitoring, and a set number of support hours. Many developers also pass through third-party costs such as premium plugin licenses, themes, hosting, and stock assets, either at cost or with a modest markup. Work outside the agreed scope, such as new features or extra page templates, is billed separately at the hourly rate. Agency subcontract work is often billed at a lower hourly rate in exchange for steady volume.
| Service | Priced | Typical range |
|---|---|---|
| Custom theme or plugin development | per hour | $65-150 |
| Bug fixes and troubleshooting | per hour | $60-130 |
| Brochure site build (5-10 pages, existing theme) | flat fee | $1,500-6,000 |
| WooCommerce store setup | flat fee | $3,000-12,000 |
| Site migration to new host | flat fee | $150-600 |
| Speed optimization | flat fee | $250-900 |
| Malware cleanup and hardening | flat fee | $200-700 |
| Monthly maintenance plan | per month | $50-300 |
Typical US ranges. Rates vary by region, experience, and job size.
| Description | Qty | Rate | Amount |
|---|---|---|---|
| Custom theme development: homepage, services, and contact templates (milestone 2 of 3) | 1 flat fee | $1,800.00 | $1,800.00 |
| Contact form integration and spam protection setup | 2 hours | $85.00 | $170.00 |
| Premium plugin license: SEO plugin, annual (billed at cost) | 1 license | $99.00 | $99.00 |
| Out-of-scope work: add event calendar custom post type | 4 hours | $95.00 | $380.00 |
| Staging site setup and content migration | 1 flat fee | $250.00 | $250.00 |
| Total | $2,699.00 | ||
Notes: Payment due within 14 days of invoice date. Late balances accrue 1.5% per month. Premium plugin license is registered to the client account and renews annually. Final milestone is due before launch to the live domain.
Clients with multi-payment projects need to see which stage this invoice covers, and it ties the charge back to the signed agreement.
Clients with several sites, and agencies with many client sites, need to know which one the work applies to.
Hourly work gets questioned more than flat fees. Entries like 'debugged checkout redirect loop' hold up better than 'development'.
Plugin licenses, themes, hosting, and domains should appear as their own lines so the client sees what is a pass-through cost and what is your labor.
Marking additions against the original scope shows why the total differs from the quote and prevents disputes.
If you purchase a plugin license, the client should know whose account it is under and when it renews, so they are not surprised later.
Retainer invoices should state the month, what is included, and any hours used or rolled over.
Agencies and larger organizations often cannot process an invoice without one.
Most WordPress developers take a deposit of 30-50% before starting a site build, then bill the rest at milestones such as design approval, staging delivery, and launch. Many hold final files, admin credentials, or the go-live switch until the last payment clears. Hourly and one-off fixes are commonly invoiced on completion with net 7 to net 15 terms, while agencies may require net 30 or longer. Maintenance retainers are best billed monthly or annually in advance by card or ACH on a recurring basis. A late fee of 1-2% per month is common if stated in your contract. Payment is usually by ACH, card, or check.
State in your contract that the site goes live, or that you hand over admin access and full backups, after the last milestone is paid. This gives you leverage without having to take a site down later.
Having clients buy their own licenses and hosting avoids fronting money, avoids renewal confusion, and keeps you out of the role of reseller. If you do buy on their behalf, invoice at cost promptly.
Include a set number of revision rounds in each flat-fee project. After that, bill at your hourly rate. Without a limit, design tweaks and content changes can quietly double the time spent.
A care plan should say what is covered, such as core, theme, and plugin updates, backups, and uptime checks, and how many support hours are included. Anything beyond is billed hourly, and fixes caused by a client installing their own plugins are not covered.
Track hours by task, even on flat-fee jobs. The data shows you whether your quotes are accurate and gives you proof if scope disputes arise.
Use flat fees when the scope is clear, such as a defined number of pages from an existing theme. Use hourly billing for open-ended work like debugging, custom feature development with unknown requirements, or ongoing support. Many developers combine them, with a flat fee for the build and hourly for changes after approval.
List each as a separate line item at cost, with the product name and license period. Some developers add a small markup for the time spent purchasing and configuring, which should be disclosed in your agreement. When possible, have the client buy directly so the license is in their name.
Many developers include a clause that ownership of custom code and admin access transfers on full payment. This should be in your signed contract. Whether and how you can restrict access varies by situation, so check your agreement and local rules before locking a client out of a live site.
Bill on the same date each month or annually in advance, and list the plan name, the period covered, and the services included. If hours are included, show how many were used. Recurring card or ACH payment reduces late payments.
Refer back to your signed scope or estimate. If the work was not listed, note it on the invoice as a change request with the date it was requested. A written scope with explicit exclusions, such as content entry, copywriting, and image sourcing, prevents most of these disagreements.
Send a WordPress Developer estimate for approval, then turn it into an invoice when the work is done.
WordPress Developer estimate template