WordPress developers send an estimate before any site build, redesign, WooCommerce setup, or custom plugin work, and often for larger migrations or fixes. Clients usually compare your quote against other freelancers, agencies, and page-builder or DIY alternatives, so the quote needs to make clear exactly what they are getting.
When to use estimates: Use estimates to provide project quotes and get client approval before starting work. Once approved, convert your estimate to an invoice with one click to collect payment.
Create an invoice for payment collection
Upload logo
PDF will be generated with filename:
Invoice_1001_Client_2026-10-14.pdf
'A 10-page site' is vague. Naming the templates, such as home, about, services, blog, and contact, sets a clear limit on what is included.
Whether you use a custom theme, a starter theme, or a page builder affects cost, future maintenance, and which licenses the client must pay for.
State who writes copy, supplies images, and enters content. Late or missing content is one of the most common causes of project delays and extra charges.
List features such as forms, memberships, booking, payment gateways, or integrations. Anything not listed is a change request.
Naming a set number of rounds for design and development changes keeps flat-fee projects from growing.
Hosting, domains, premium plugins, themes, and stock photos should be listed as client expenses, with estimated amounts and who pays.
Dates depend on prompt feedback, content, and access to hosting and DNS. Say so, and say what happens if the client causes delays.
Clarify whether a bug-fix warranty period is included, such as 30 days, and what ongoing support costs afterward.
| 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.
Break the project into tasks such as setup, design, development, content entry, QA, and launch. Add 15-25% for communication, revisions, and surprises, then convert the total to a flat fee if the scope is firm.
Presenting two or three options, such as a basic site, a site with blog and SEO setup, and a site with e-commerce, helps clients choose based on budget rather than just comparing your price to a cheaper competitor.
For complex builds or work on an existing messy site, charge a paid audit or discovery phase first. The quote for the main project is more accurate once you have seen the code and hosting.
Show the total and when each portion is due, such as 40% to start, 30% at staging, and 30% at launch. Clients see the structure up front, and your cash flow is protected.
Give a fixed quote when the scope is defined and a range when requirements are still unclear. If you give a range, state what would push the cost to the higher end, such as additional integrations or extra revisions.
Thirty days is common. Plugin prices, your availability, and project scope can change, so an expiry date lets you requote if the client waits.
Simple quotes are normally free. For large or complex projects, such as a custom web application or a rescue of a broken site, many developers charge for a paid discovery or audit, which can be credited toward the project if the client proceeds.
Write it into the estimate, including the theme name and version. Note that you are not responsible for limitations of that product, and that extra work needed to work around them will be billed hourly.
Use the WordPress Developer invoice template to bill the client, or convert this estimate once it's approved.
WordPress Developer invoice template