How Long Does it Take to Build a Website on WordPress?

This piece attempts to give clarity on a tricky and open-ended question: “How long does it take to build a website in WordPress?” It’s been updated on May 30, 2017, to discuss the time cost of training and supporting site owners.
One of the all-time most helpful single pieces of WordPress writing comes from Brian at Post Status: How much should a custom WordPress website cost?
Throughout the post, Brian makes the very correct point that “Pricing is hard,” and that “a website” can truly cost almost anything, depending on the client’s needs.
Unlike the rest of us, though, he doesn’t stop there. The post discusses real numbers: for example, the rough hourly rate of a middle-of-the-road WordPress freelancer. What’s more, the numbers feel right: they closely resemble the internal calculus I do as a developer to decide how valuable a project is likely to be. By putting these secret rules of thumb out there for clients to see, Brian has created a piece of truly required reading.
Even if you don’t read the whole article, please read the following two sections: Freelancer rates vs. agency rates (which breaks down approximate hourly rates for low-and high-demand freelancers and web agencies), and Custom website prices, which has a sequence of paragraphs describing roughly what you can expect to pay, total, for various kinds of projects.
Time is Money: Estimating How Long It Takes To Build a Website On WordPress
I’ve put together a lot of “How long it takes” rules of thumb based on my own experience as a WordPress consultant.
I thought a good supplement to a post about the cost of WordPress websites would be a post describing how long, in hours worked, different WordPress development tasks take.
Cost and time are, of course, two sides of the same coin, as the only sane way to budget a project is with reference to the time it’s expected to take multiplied by an (explicit or implied) hourly rate. However, I think clients and everyone else could benefit substantially from a good understanding of which jobs are quick, and which jobs are long, in WordPress consulting work.
To that end, I’ve put together a lot of “How long it takes” rules of thumb based on my own experience as a WordPress consultant.
How to Use the Estimates Below
As with Brian’s post, keep in mind that all of these numbers are massively imperfect best guesses—they’re the closest I can get to describing my own experience, but can all grow or shrink wildly based on dozens of variables that are impossible to predict.
Also, one intended use for this post is for it to be combined with Brian’s freelancer rates to yield a very rough cost per task that you hire out to a freelancer. So you should be able to multiply any of these numbers by one of Brian’s freelancer rates to get an approximate cost, but bear in mind that cheaper/less experienced freelancers work less quickly and less well.
Finally, just for clarity, an “hour” or a “minute” is time spent thinking about nothing else but a client project. So thirty minutes on the phone with a client would be thirty minutes; five minutes to boot up your computer plus ten minutes fixing a bug would count for ten minutes.
Now, let’s look at some time estimates!
How Long It Takes to Do Some Common WordPress Tasks
This list contains a number of individual tasks that I commonly perform in my work on client sites. These feel like the average time I spend fully committed to a given task (so it doesn’t include the phone call asking me to do it, the email to confirm I’ve done it, etc.). Most tasks grow wildly and unpredictably in complexity if something unusual crops up, so these numbers are when that doesn’t happen.
- Log in and update WordPress: 5 minutes
- Install a plugin/solve a problem that revolves around a simple plugin install (e.g. Akismet for comment spam): 5 to 10 minutes
- Set up a domain-specific email account or email forward: 5 minutes
- Help restore a client’s admin credentials, add a user, etc.: 5 to 10 minutes
- Login to a site and change a post’s contents, rearrange the site nav menu, etc.: 5 to 15 minutes
- Most individual CSS changes (change the color of an object, change a font, reposition an object and give it a shadow): 5 to 25 minutes
- Create a Twitter account for a client: 10 minutes
- Help a client set up a MailChimp account, with CSV import if necessary, and an integrated MailChimp for WordPress sidebar signup form: 15 minutes to 1 hour
- Install WordPress on a given hosting account (including database creation): some passive FTP transfer time, plus 15 minutes active work
- Update WordPress and all plugins, test to make sure nothing’s broken: 15 to 45 minutes
- Use a plugin’s interface to create what it’s designed to create (a contact form, a social button bar, etc.): 15 to 30 minutes
- Purchase hosting and prepare it for a WordPress install (set up username and password, FTP credentials, etc.): 15 minutes
- Migrate a WP site between hosting accounts using a migration plugin, start-to-finish and including testing: some passive download/upload time, plus 30 minutes to 1 hour
- Troubleshoot a hosting/registrar/backend problem (improperly set memory limits, bad .htaccess rules, wrong DNS, etc.): 15 minutes to 2 hours
- Create a Facebook page for a client: 20 minutes
- Read an emailed bug report, locate an obvious problem in PHP or JS code, fix the problem, upload the fix, test the fix, email about the fix: 15 minutes to 1 hour
- Purchase a domain name and hosting and create a fresh WordPress install at the targeted domain name: 30 to 45 minutes
- Track down and fix a non-obvious problem in a WordPress site’s code: 30 minutes to 5 hours for most problems
- Migrate a WP site between hosting accounts manually, start-to-finish and including testing: 1 hour
The Shortest Possible Development Cycle for a WordPress Site
This is least active development work that I think could be possible to set up a WordPress site, excluding overhead and other real-life factors.
This is smallest amount of active development work that I think is feasible to set up a WordPress site that could really be used by a client. These are either personal bests or what seem to me to be the common-sense lower limit.
These estimates contain only development work and no overhead (initial consultations, planning, estimates, feedback, invoicing, etc.). As such, they basically break down into items from the list above, such as “choose hosting and install WordPress on the hosting,” plus some amount of more idiosyncratic work to make the whole thing usable (like fiddling with the homepage layout).
- A dead-simple blog on a simple blog theme, no customizations: 2 hours. This would entail installing WordPress and some theme on a particular hosting and domain configuration, setting a site title and permalinks, and that’s it.
- An informational site (Home, About page, Contact page, maybe a blog) on a very lightly customized premium theme: 8 hours. This would be the absolute minimum time to launch a simple informational site that you could use for a small side business such as a pet grooming service or a yoga practice. This could include bare necessities like a contact form, but very little custom design work.
- A simple e-commerce site: 20 hours. This would be a fairly minimal WordPress site running WooCommerce that is able to properly list and categorize products and process customer transactions.
Understanding the Time Cost of Overhead on Client Projects
“Overhead,” as defined here, is hours worked that don’t go directly to building websites.
“Overhead,” as defined here, is hours worked on a project that aren’t development—that is, they don’t involve working directly with the technologies used to build websites. Overhead could be either non-billable (an initial phone consultation), or billable (responding to an email in which the client gives feedback).
- Total initial conversation, emails, and consultations before billable work starts: 1 to 4 hours
- Time to draw up a project estimate: 45 minutes to 2 hours
- Additional communications, including progress reports, feedback, invoicing, etc.: 3 to 6 hours for a project under 40 hours in length
- “Curveballs”—the client has very troublesome obsolete hosting, frequently needs to be re-sent login information, wishes for a logo to be included but isn’t able to send it in a usable file format, etc.: 0 to 10 hours for a project 40 hours or less
Almost all projects have these types of overhead, and some projects have considerably more if client communication is difficult, the client insists on site visits, etc. Certain client personality traits serve as a good indicator of trouble, so they’re worth looking for.
How Long Client Training and Support Takes on a WordPress Project
WordPress clients do need training, but on most projects this training is not terribly time-consuming.
WordPress clients do need training before they’re ready to take ownership of their new site. On most projects, however, this training does not need to be terribly extensive or time-consuming, because most features of WordPress are reasonably intuitive—especially for simple blogging and informational-site uses—and because, as a practical matter, many clients don’t manage their WordPress sites especially actively once they’re launched.
- Active client training for an average WordPress project: 30 minutes to 2 hours.
In my personal workflow, most of this training occurs informally, on calls that were scheduled for other purposes. “Training” also often takes the form of the client asking questions as she runs into new things she doesn’t know how to do during the process of populating the site with content.
However, a number of specific types of features can lengthen the training time that a project requires:
- Training for custom layout elements (a shortcode, a page builder, video or audio embeds): 5 minutes to 1 hour.
- Training for a simple WooCommerce site (few products, and simple products with no variations and few custom attributes): 1 to 2 hours.
- Training for an associated use outside WordPress (MailChimp, Google Analytics): 30 minutes to 5 hours.
- Training for a web application built on WordPress (BuddyPress, bbPress, a membership site, an LMS, etc.): 1 to 5 hours.
- Training for a complex WooCommerce site (product variations, custom product attributes, complex shipping and tax options, third-party software integrations): 2 to 8 hours.
Post-Launch Client Support
Most WordPress projects come with between one and twenty post-launch support calls per year.
Additionally, clients need support post-launch. Most WordPress projects come with between one and twenty support calls per year.
The number of support calls depends on a few factors:
- How actively the site owner uses and manages the website.
- How technically adept the site owner is in general.
- How good or bad the technical environment you’ve set up is.
- How complex the website’s functioning is (blog, online store, membership site, BuddyPress site, etc.).
The following are some common types of client support calls, with time estimates for each:
- The client needs a “refresher” on something already built-in, like changing the homepage hero image: 5 to 15 minutes.
- The client is trying to do something new but well-supported (like child/dropdown menus) and is stuck: 5 to 30 minutes.
- The client has general questions about a large topic like speed, SEO, or security: 15 to 45 minutes, primarily conversation-based.
- The client wants new functionality that is well-covered by an existing plugin; examples would include “responsive YouTube embeds” or “an Instagram feed on the About page”: 5 minutes to 1 hour.
- The client has a critical bug triggered by something like an update or a server PHP version change: 15 minutes to 5 hours.
- The client wishes for a novel feature that is complex but well-covered by an existing plugin, like a landing page, online store, members’ area, or discussion forum: 1 to 10 hours.
- The client wishes for something that boils down to “make these two plugins talk to each other”—for example, “integrate my booking plugin with my membership plugin”: 5 to 30 hours.
The client will periodically need support.
The Rhythm of a Typical WordPress Project
Projects have a tendency to feel like they’re “almost done” for much of their actual duration.
Projects have a tendency to feel like they’re “almost done” for much of their actual duration. This is because the transition from “building the project” to “putting it live for the world to see” reveals a lot of details and complexities that may not come up beforehand. For example, the live site’s hosting might be unreliable or unacceptably slow, forcing a second transfer; or the contact form solution may turn out not to work properly with the client’s email service.
- The initial build (most of what’s covered on the initial estimate): 60% of a project
- The part where it feels like the job is “almost done”—migrating the finished site, client testing and feedback, bugfixes and improvements not in original spec, late troubleshooting, add-on features: 40% of a project
How Long a WordPress Client Project Actually Takes
This captures what I expect to be the actual hours of a developer’s work required to get a site up and running.
This is what I expect to be the actual hours of a developer’s work required to get a site up and running. It does include the overhead excluded in “the shortest possible development cycle” above, as well as the consideration that complexity tends to pile up toward the end of the project, and the need to train the client.
- The actual time to build a WordPress site: The “shortest possible development cycle” numbers above multiplied by 1.5 to 3.
This multiplier varies with differences in client needs, levels of communications and support overhead, and “gotchas” and emergent troubleshooting issues.
Some Thoughts on Harder-to-Estimate, More Technical Jobs
The time to complete more technical work varies with the innate complexity of the job, which is very hard to know beforehand.
Here we’ll also briefly discuss common WordPress projects whose requirements are more technical than “install WordPress and customize a theme.” I’m discussing these types of projects separately because their time cost is less easy to predict: the cost tends to vary not with the client’s level of need and the overhead burden, but with the innate complexity of the technical job being asked.
This complexity is very hard to know beforehand (if you knew it, you’d be most of the way to done with the job!), which is why highly technical jobs are harder to estimate.
- Build a WordPress page template from a Photoshop document: 5 to 10 hours
- Build a full-featured WordPress site on a premium theme, with significant design modifications and a number of feature additions (like a personal calendar, complex slideshow, etc.): 40 to 100 hours
- Integrate and customize an existing third-party plugin to make WordPress do something metadata-intensive that it wasn’t built for (tournament brackets, real estate listings, crowdfunding site, hotel room reservation service): 15 to 100 hours
- Design and develop a WordPress site on a completely custom theme: 60 to 250 hours
- Write a new plugin that solves a unique or unsolved problem: 20 to 300 hours
The Time to Write and Publish a Blog Post
In my experience, this is what’s required to get blog content out the door. If you’re interested in content marketing (and you should be), you might be interested!
- A throwaway blog post: 2 to 4 hours
- A good, well-thought-through blog post: 4 to 7 hours
- An unusually long, thoughtful, high-quality blog post (the type most likely to gain wide traction or appreciation): 7 to 20 hours
In Conclusion…
The main aim of this article is to start trying to put numbers to the WordPress developer’s job, while recognizing that the numbers are hugely imperfect.
How do these numbers sound to you? How long does it take to build a website on WordPress for you? If I get a lot of feedback in one direction, I wouldn’t mind altering the post to reflect it! Do you have suggestions for any areas of the job I missed?
Image credit: woodleywonderworks