This is my very own history of WordPress-based freelancing business leading me to $10,000/month, on a regular basis. The most important thing: I’m not unique, and, believe me or not, if you’re eager enough, you can achieve the same results.
The other thing is: I know the title sounds like a clickbait, I could use something else like “WordPress Development: The Definitive Guide” or so, but I wanted to encourage you to enter this article and check its extensive content. I don’t want to make money on this one, only share my whole knowledge and build (possibly) a community around it.
Also, please remember it’s my point of view and I describe the way that worked for me. You can follow the same path; however, you can be the best in some other areas than I am – you have to experiment to gain your experience and money!
How to make money on WordPress overview – subscribe to the newsletter and get a free ebook
We’ll cover here the following points:
- Why should I even choose WordPress to freelance and make big money?
- What do I need to start making money in WordPress?
- WordPress ecosystem is enormous, what niche should I specialize in?
- How to deal with WordPress development clients?
- Final words
Why should I even choose WordPress to freelance and make big money?
WordPress is no longer blog CMS, it’s usage expanded over the years to multiple areas – you can build e-commerce, membership website, forum, knowledgebase, custom SaaS. You can even use it as a headless CMS, its features are endless!
If you’d look at these statistics, you can clearly see WordPress powers 34% of all internet websites. Furthermore, 28% of e-commerce goes through WooCommerce (not counting other WordPress e-commerce solutions, like Easy Digital Downloads). How does it look like daily? About 280 new WooCommerce shops and 660 WordPress websites. Each. Day.
2020 Edit: According to the newest stats, WordPress powers 37,8% of the internet!
What does it mean for me, you probably ask? Just think about it.
It means, when you specialize in WordPress development, you are probably able to work for over one-third of websites’ owners. And, believe me or not, there’s a lot of work to do.
I am a software engineer working for the biggest companies in the IT world, I was using e.g. Java and a lot of other enterprise-level technologies, and yet I still do good, old PHP development with WordPress.
Why, you ask?
The answer is very simple: it’s where the money resides; WordPress world is full of people wishing to pay you for your expertise and take their business on the next level. And I’m not talking about gigs like 5$/hour job, let’s be serious.
There are a lot of programmers laughing when they hear ‘WordPress developer’, no doubt here, I was also like that, shame on me. But the truth is, when you’re an expert, you know much more than only WordPress development.
WordPress is like your framework, your base for the whole work to be done for your client. You still have to know much more to build complex apps your clients are wishing to pay big money for.
But, again, WordPress is your base here. And it’s nothing to be ashamed of, even Google has got its WordPress plugin and team working on it.
What do I need to start making money in WordPress?
Let’s repeat it once again: WordPress is only your framework. You have to learn much more to be competitive and earn big money.
But it’s still doable. Let’s together explore how you can achieve it.
I’d divide all of the skills into two, the most important areas: engineering (development) and business. Both are extremely important, but I’d even say business skills matter more than programming ones. I’ve got one client who doesn’t know WordPress development at all, yet he manages to make a big money on it, outsourcing the work to ones like me.
Are you mortified by the vision of learning business skills?
You absolutely shouldn’t! I know, easier said than done, but believe me, I was extremely shy and uncomfortable talking to potential clients one day. The key is to learn, step by step, how to overcome your fears. We’ll do that in the next steps.
What technologies should I know to develop in WordPress?
If you want to be the real expert, it’s not as easy as reading the WordPress documentation and demanding $100 per hour of your work, of course. Ideally, you will know much more than only WordPress, being a freelancer means expertise in a lot of different areas (or outsourcing your work).
Let’s start with some example tech stack of a WordPress expert, based on my specializations. Being a software engineer, not related to WordPress only, I love complex projects, especially backend-related. API integrations, data processing, performance optimization, caching – you can call them my second name.
What’s your specialization? What would you like to make money on?
I usually take more niche projects than some bug fixes, plugin customization, etc. I can do them as well, but in general, when I’ve got a choice, I go with these more demanding ones.
But you know what?
To be honest, if I’d take all types of projects, from bug fixes, through theme adjustments to custom development, it’d be possible to earn much more than this mentioned $10,000/mo. It’s just a matter of your personal preferences and comfort.
So, what should I do to start earning money freelancing?
Let’s start with the basics:
- You should be a PHP expert.
- If you’re not, start with Laracasts’ ‘The PHP Practitioner’ series. You can’t call yourself a WordPress expert until you’re a PHP expert.
- To complement the above course, buy Jeffrey a lunch (Laracasts costs $15/mo, and believe me, it’s worth its price) and learn these things:
- If you’ve got enough time, learn other things from Jeffrey, especially Laravel. It’s nice to know the most popular PHP framework, it happens sometimes you’ll have some Laravel task to do, and these are usually priced higher than WordPress.
- You should know HTML5 and CSS3 very well. Especially Flexbox and CSS Grid are useful, know the priority of selectors, know that using
!importantis a very bad idea.
- Gutenberg (WordPress new editor) uses React for its widgets, called blocks. I’d call it a future, you definitely need to learn React as well.
- You should know the basics of server administration. Take a look at my article about DigitalOcean WordPress setup, claim your $100 free credit and learn by doing. Google when you can’t do something. Read a book like UNIX and Linux System Administration Handbook.
- Learn Git. This one is very important.
These are the basics needed to start gaining your WordPress expertise. Ideally, you know all of them or, at least, the first two points. Now, let’s move to the concrete skills and WordPress related things you’d need to learn.
- Read the whole WordPress documentation. I know, most of the people hate reading documentation, but you have to understand: IT’S THE BEST RESOURCE AVAILABLE TO LEARN ANYTHING!
- Especially, you have to understand WordPress hooks. When writing a plugin, theme, or extending an existing one, hooks will be what you’ll use to do so. It’s one of the most important WordPress concepts.
- Prefix everything when you write procedural code, try to use OOP as much as possible (and namespace it).
- Secure your input/output, use nonces.
- Learn how to use shortcodes. Although they’re being replaced by Gutenberg blocks, they’re still a thing, and probably will be for a couple of years.
- Learn options and settings API.
- Learn how to use Custom Post Types and Custom Taxonomies.
- HTTP API will be useful for you when connecting with external services.
- WP Cron, although I don’t like its architecture, is something you should know how to use.
- Internationalization is important for multilingual websites.
- Learn how to use transients.
- Learn how to create widgets.
- If your client would want to use a custom URL structure, Rewrite API is a must.
- Filesystem API, useful especially when dealing with reading/writing of different files in your WordPress plugin/theme.
- Theme development/extending specific topics:
- Post types,
- Template hierarchy,
- Template tags,
- The Loop – the most important topic here!
- Sidebars – widget areas,
- Customize API,
- Child Themes.
It may seem like a lot, but it’s something you can read in two-three days (I did when I was learning, so it’s a proved theory). Still, you need to be able to use this knowledge in practice.
How to do it? Let’s propose some ideas.
If you want to feel comfortable with your WordPress skills and start making some money on them, you should have some practice at your disposal. Try these few tasks, they should take you just a few weeks, if you really focus on them.
WordPress skills polishing: ideas
- Shortcode displaying a list of posts in a table. Columns: id, post name (linked to post), author (linked to author’s posts), date. Filterable by author and date, paginated: 10 posts per page. If the user is not an admin, display only his posts. If the user is not logged in, display warning info instead of the table.
- Instead of shortcode, make it a Gutenberg block and allow for styling it (borders, fonts, colors, etc.).
- Shortcode/Gutenberg block displaying a form for newsletter subscription. If the user enters his email, send him back some file (e.g. freebie ebook). User data should be stored in a new table (don’t forget deleting it after plugin uninstall), and displayed in a new top-level admin menu.
- New custom post type – Apartment (price, gallery, number of people), and taxonomy – Hotel (address, gallery, location). Create an archive page for them and post page, allow users to ask for availability in given dates (calendar on frontend). On confirmation (admin is able to approve requests in top-level admin menu), send the email to the user. Bonus point: use Rewrite API for different link structure for your CPT.
- Widget displaying weather in the current user’s location using OpenWeatherMap API.
- Cron job running every hour to collect current temperature in server’s location from OpenWeatherMap API, saving it to wp_options table and calculating an average. Shortcode/Gutenberg block/Widget displaying this data.
- Create a basic theme: front page with two sidebars, posts listing, navigation, footer (widget area). Archives for categories and tags, single post template, 404 pages, the search results page. Add basic customizer options: colors, fonts, sizes.
Remember about these points when polishing your skills:
- Use Object-Oriented Programming as much as possible.
- Secure your input/output.
- Use hooks.
- Leverage WordPress APIs – options, transients, settings, customizer.
- Internationalize your code.
If you’ve done all of these tasks, you should feel quite comfortable with WordPress development. They are not that easy, not that fast, but they’ll teach you how to handle programming in this ecosystem, allowing you to develop your own style.
I assume these should take 6-8 weeks to complete. If you’d want me to review your solutions, post a Github link to your repository, I’ll take a look and share with you some feedback.
If you want to build your portfolio and take part in something big, there’s no better way than contributing to WordPress. Take a look at Make WordPress and get involved in some bug fixing/feature implementation. It’ll teach you a lot, and allow you to gain some real, badass title you can use when talking with your clients: “I am WordPress core contributor”.PROTIP
However, WordPress Core knowledge alone won’t bring you money, unfortunately. Why?
Because WordPress is much, much bigger than just its core. It’s the whole ecosystem – plugins, themes, WordPress-related solutions that make it so popular.
To start earning money, you need to know the most popular ones; it’s where the money resides.
There’s no simple answer to what you should know, especially that you may like more specific plugins/themes than the other ones. Let’s have a brief overview of the ones I’m using and see a lot of questions/projects about them.
WooCommerce is definitely a king if it comes to e-commerce solutions. It powers 28% of all stores on the web! No surprise you should start with this one, as WooCommerce related projects are the ones that appear a lot and generate loads of money.
Take a look at its documentation and make sure to read it. Give a try to WooCommerce Plugin Developer Handbook, WooCommerce Hooks, Class Reference. Learn how to override WooCommerce templates.
Ideally, you should read the whole documentation to have an overview of what you can achieve using WooCommerce. Once again:
Reading documentation is the most important part of learning. You can’t start a day without breakfast, and you can’t start learning without a good documentation lecture.
One important thing I should mention here: WooCommerce has its own large ecosystem, there are a lot of plugins extending WooCommerce and WooCommerce-compatible themes. You should also know some popular ones like:
- WooCommerce Subscriptions – solution for recurring payments,
- WooCommerce Product Add-Ons – custom fields for products,
- Checkout Field Editor – solution to add/edit/remove checkout fields,
- WooCommerce Bookings – booking management,
- WooCommerce Memberships – membership management (e.g. for restricted content),
- Smart Coupons – coupons management.
The routine is simple here: documentation! Most of these plugins are paid, don’t bother wasting your money. Just read the docs and know what you are able to achieve (that is, make money from).
Elementor is, in my opinion, the best page builder available in the WordPress ecosystem. It’s this sort of tool you should know like the back of your hand.
Let’s explain it.
It’s easy money. If you have a good network of contacts, a lot of people will start asking you about really basic websites – one-pagers, a few sections, some gallery, and text. If you’re fluent in using Elementor, you’ll have them done in 2-4 hours.
2-4 hours of work, charging for a full website.
My record is $3000 in one hour, something we can call value-based pricing. The client had an urge and was behind a prospering company, I had the capacity to do the job. The client didn’t care if it was custom coded and lightning-fast. He wanted to have the effects as fast as possible, so Elementor was a perfect candidate here.
Let me share one secret with you.
Most of your clients won’t care how you’ll make their website. They want effects.
Clean code is not important for your customer, most of the time. It’s important for you if you know you’ll maintain his website.
A super-fast website isn’t important for your customer (again, most of the time) if it comes with the cost of more difficult usage. Better fast and easier to maintain.
Easy maintainability is what your customer cares about.
The quick effect is what your customer cares about.
Usability is what your customer cares about.
Of course, there are many exceptions and we shouldn’t generalize. The conclusion is to go the easiest way (easiest = fewer hours = more profit), and the easiest way for most basic websites is Elementor.
Unless your customer wishes to have a custom-coded website; use a specific theme; whatever else. Then, you should price accordingly.
How to use Elementor?
First, buy a Pro license. You don’t need any other plugins or extensions for Elementor, Pro version is enough to fulfill 95% of design ideas. CSS knowledge will complement the other 5%
Next, try to replicate a few well-known websites using Elementor. Let it be digitalocean.com, github.com landing page, similar to these. There’s not really a lot of things to explain here – it’s a drag-and-drop type of page builder where you instantly see what you’re doing. Having a few exercise pages done will let you know what’s possible and how much time does it take.
Elementor is really nice plugin development-wise. Its API allows you to easily extend it to create new widgets and make a lot of cool things. It’s worth it to develop at least one widget (you can try to replicate one of Elementor’s native widgets) to know what you can achieve.
Sometimes, there are clients wishing some custom functionality, and if you’re doing their website with the mentioned page builder, you’ll easily extend it. It also means more bucks for you.
Bonus: if you’ve got some brilliant idea, you can make your own set of Elementor’s widgets and try to monetize them!
Forms’ plugins – Gravity Forms & Ninja Forms
I won’t go that much into details as I’m not an expert if it comes to mentioned plugins, however, there is one important thing – I see a lot of tasks where the customer requires some adjustments to their form plugin (two most popular mentioned in the above heading) or it’s his preferred plugin to do the work.
So, what’s the conclusion here?
If you want to extend your toolset and be able to take a lot of new projects, learn these plugins API and their possibilities!
If you’d like to see how I learn a new plugin and start taking projects with it, just to see my process, please comment! I’ll prepare a post with lots of valuable information for you.
Learn Management System plugins – LearnDash
Again, I’m not an expert with LMS solutions, but they tend to have enormous budgets! If you’d like to go into full website builds with a ton of interesting aspects, learning LMS such as LearnDash is a great way to build your portfolio. Furthermore, it’s a great way to earn some fat bucks.
If you’d like to see how I learn a new plugin and start taking projects with it, just to see my process, please comment! I’ll prepare a post with lots of valuable information for you.
There are thousands of plugins in the WordPress ecosystem, a lot of them being used by millions of websites. The ones mentioned above would be enough to learn to generate a steady income. You have to also keep in mind that if you have long-term clients with big websites, you’ll probably encounter a lot of other plugins.
If you know above ones like the back of your hand and want to keep growing and offering your customers, even more, take a look at these:
- Advanced Custom Fields – the most popular plugin for creating custom fields for your WordPress entities (posts, pages, users, custom post types). There’s a lot of work to do with it and it’ll make it easier as a tool in many tasks. Alternatives (not that frequent in clients’ projects): Pods (opensource) and Toolset (paid). ACF offers free and premium versions.
- Divi – another page builder, like Elementor. Although the latter is my page builder of choice, Divi is as popular as Elementor so you should not ignore it if you want to have lots of projects.
- Speed plugins – keeping the website performant is a completely different kind of task and it’s very complex topic, but it’d be nice if you know basics and how to configure most popular website’s speed plugins – WP Fastest Cache, WP Super Cache, WP Rocket, Hummingbird.
- Events management – plugins like Events Calendar, Tickera Event Management, FooEvents.
- Marketplace & multi-vendor plugins – another goldmine for long-term, big-budget projects. The most popular solution here seems to be WC Multi-Vendor.
What will be useful for doing WordPress development?
To be a professionalist, you have to work and act professionally. You should have your environment configured so it makes your job comfortable and as easy as possible.
When your job is easier thanks to your environment, you earn more money in less time – and that’s an important thing!
What do I mean by the environment?
It’s your working configuration allowing you to perform your work as efficiently as possible. Let’s define a few handy tools and technologies, based on my configuration and experience, that will help you to deal with your clients.
It’s an official, pre-packaged Vagrant (tool for building and managing virtual machine environments) box created by Taylor Otwell, creator of Laravel. Using it allows you to have a lot of local websites configured even with different versions of PHP. It’s a perfect choice to recreate your client’s website on your own machine!
Homestead and Vagrant can be installed on Windows, Linux, and Mac. If you’re a heavy Windows/Mac user who doesn’t want to switch to Linux, Homestead will be a perfect choice as it’ll mimic a production environment as good as possible – keep in mind your clients’ websites are hosted on Linux environments in 99% cases.
Just like I mentioned in the above paragraph, most of your clients’ websites are hosted on Linux environments. Having this knowledge, it’s easy to deduct that you should know and feel comfortable managing Linux systems.
Are you afraid to switch to Linux?
I was as well, and it was like a nightmare when I started. However, now I can’t imagine switching back to any other system, I enter Windows only when I want to play a game or run some application Linux doesn’t support, e.g. Photoshop.
If you’re a programmer, almost every documentation assumes you’re using Linux (or Mac). It’s just easier to use it than Windows for your development work as you’ll encounter less weird errors, and even if you encounter one – someone else also did and you’ll easily find a solution on StackOverflow.
My gold mixture here: dual-boot (two systems on one computer), Windows and Ubuntu (because it’s most popular desktop Linux distribution, thus if I have any issue – someone else already had it and there’s a solution somewhere).
Time management app
You should track the time spent on projects in order to analyze it.
Why analyzing the working time? The answer is simple:
This way, you can better prepare for the next projects. If you work on fixed-estimate projects – where you first analyze the scope and later submit your estimate based on what you think that project will take – it’ll prepare you for better estimations in the future. It will save you money. It will save you time.
Thanks to it you will get better and better when estimating the time needed to complete this project. The time management app is a must-have when working on client projects, period.
It’s a command-line utility for WordPress which will allow you to easily install, update WordPress-related things, create new users, plugin boilerplates. Essentially anything you could imagine. It’s my go-to solution when making website migrations, updates and anything website management related.
It’s really worth knowing, as it’ll save you a lot of time in the future.
What business skills should I have to start WordPress freelancing business?
I’d say your business skills are even more important than your programming skills if you want to run your own company and do clients’ projects.
Don’t worry if you don’t have any idea about business, you can learn everything just like I did!
When I was starting I had no experience with business relations and management. I was introvert, afraid of estimating projects the proper price, afraid of engaging with clients. After 4 years, I had my first employee, clients across the world, some of them are my friends now. If I did it, you can do it as well!
Let’s define some important business skills in our area:
- Time estimation – you have to make proper time estimations to have your target income at the end of the month, and secondly, you have to know how much availability is at your disposal.
- Asking the right questions – in order to prepare a perfect time estimation, you have to know every detail of your future project. No space here for unanswered questions and things that you can only guess. Everything has to be 100% clear, always!
- Communicativeness – you have to build rapport with your future client. This way, he’ll be much more confident hiring you and coming back in the future with new requests.
- Negotiation – train your negotiation skills, as you’ll use them more often than you suppose. There’s always a place to negotiate better terms for you or propose your client something that will match his budget closer.
These four are the most important ones for me. I’ll explain all of them a little bit more in How to deal with WordPress development customers? in this article, feel free to go there right now.
Is it possible to manage everything by myself?
The short answer is: yes. I do everything by myself – plugin development, theme development, full website builds. If there’s anything small I need help with, e.g. logo design, I outsource it.
For sure, it requires a lot of experience and expertise from you, but it’s doable. The key here is to focus on learning new things. Choose what you feel the best first, like simple website development with Elementor. Then learn WooCommerce. Then learn Gravity Forms. You know the flow that will suit you best.
Did you, Arek, thought about hiring someone to help you?
Of course, I did. I even had one employee in the past. But my situation is a little bit specific – I am employed as a contractor at Facebook and work there full-time. My company is just my passion for business and development and I do it as a side project. Let’s add my Master’s Degree I’m doing right now.
Because of it, I didn’t have enough time to focus on gaining new clients, review the code produced by my employee and that’s the reason I’ve disappointed one of my clients. As my clients’ happiness is what I value the most – I decided to take a little fewer projects on me and do everything by myself. This way, I’ve got maximum control over everything.
In the future, however, I’ll probably come back to employing people. It’s a real pleasure to see someone work for you and see he’s happy with it, improving his skills and using your expertise to gain new experience.
WordPress ecosystem is enormous, what niche should I specialize in?
You won’t ever know everything. I’ll repeat once again: you have to always learn. This way, you’ll be better and better, gaining more money, more experience, more satisfaction with what you do.
The most important thing to remember is to do things you love. If you work like this, you’ll never feel like you’re burning out. That’s why I’m able to work full-time and later for my clients.
So, what’s the answer? What niche should I specialize in?
Let’s explain it using me as an example. I have PHP & Java background, enterprise-level applications. I learned WordPress on the fly when one of my very-first clients wanted to run a network of sports-news websites. As I didn’t know any plugins or how WordPress exactly work – I just read the whole developer documentation and made a custom-coded theme for multiple websites’ usage.
Every request the client had was custom coded, the way I was always doing it. It allowed me to gain knowledge about custom plugin development and custom theme development. Making tailored, performant and optimized solutions is what always brought me a lot of satisfaction, so it was quite a natural starting point for me.
Later I discovered a lot of clients who’d like to have a basic website, having a low budget. Custom themes weren’t a choice here if I wanted to make money on it, not only waste my time. That’s how I discovered page builders. Firstly I was using some shitty one, later I discovered Elementor and fell in love with it.
So, what’s the final answer?
Choose what’s best for you. The area where you feel you’ll find most clients and will bring you satisfaction. Then discover other areas. And so on, so on.
Let’s try to define some of these areas:
- Creating websites using existing themes and page builders
- Design tweaks (e.g. using CSS)
- Creating designs for websites (PSD, XD, etc.)
- Custom theme development
- Custom plugin development
- API integrations
- Speed optimization
- SEO-related things, optimizing for search engines.
- Troubleshooting and fixes
- Server administration
- Full-website builds using many plugins, e.g. MemberPress + LearnDash + WooCommerce
- Consultations on best practices, website usage, etc.
These are the ones I could think of, but for sure there are many others. One thing to note here: projects from different areas tend to last different periods of time, and that’s something you should have in mind. If you feel more comfortable with smaller projects, you probably won’t look for full-website builds, as they can take months to complete. And the same for the opposite, if you are more comfortable with end-to-end projects, you probably won’t take troubleshooting tasks.
If it comes to me, I usually create smaller websites, do custom development of small to medium plugins and fix things. It’s, of course, related to my full-time commitment at Facebook.
The conclusion is: choose what seems the easiest and most satisfactory for you first, and build on it!
How to deal with WordPress development customers?
For many it’s the most difficult part of the business – you have to deal with customers. Let’s break the whole process down so we can make things much easier, I’ll try to convince you it’s not that bad. In real – it’s rewarding! Take a look at these reviews:
He was thorough, and worked quickly. He explained what was done in detail so that I could understand what was corrected. I would use him again.
Arek went above and beyond to address our many requests. As the project grew more complex, Arek was there to conquer every challenge.
Arek did an amazing job analyzing and extending an already existing complex application aswell as showing himself pro-active throughout the process
If you’re looking for a knowledge WordPress expert, then Arek is your guy. My project involved creating a vast amount of ACF custom fields and importing/exporting CSV file data to be displayed on both backend/frontend. Arek is polite, well-versed in English and most important of all, very efficient with his work.
When you deliver a perfect quality for your customers, it pays off in a lot of good words, besides money, of course. It’s really worth it to treat your customers like your best friends.
How should I price my services?
Let me tell you my story first. When I was starting back in 2015-2016, I was doing my first websites for as low as $50! That’s crazy! Later I came for my mind and valued myself a little bit more – I started working with an hourly rate of $8. Stupid me, right?
It just sounds that bad here, but the prices were in PLN, and 30PLN per hour was quite a good deal for me in the past.
Given I was still quite young (19), it was a lot of money for me anyway. Years passed and I gained a lot of experience, but my wage stayed the same. I was afraid of raising the prices. I was afraid of losing customers. I was afraid I won’t find anyone who’d afford me.
I was wrong. I was horribly wrong.
In 2019 I decided to raise my prices. First, it was 100PLN per hour (~$30/hr). A little bit later I decided on a minimum of $100 per hour. The best decision in my business career so far.
The clients didn’t disappear. In fact, I had even more of them!
How did it happen?
I think there are a few reasons behind this. Let’s try to define them:
- Usually, a higher price is associated with higher quality. I want to give the best quality for my clients, no exceptions. I’m not interested in shady solutions.
- There are people willing to pay a good price for a good solution. $100/hr is not that much for most of them, given agencies that take sometimes much more than that.
- I joined premium freelancing platforms (I’ll elaborate on them more in Freelancer marketplaces overview paragraph). On platforms like these, quality is the most important deliverable. Highest quality = reasonable wage.
So the case is: you should value yourself as much as you can.
Don’t make a race to the bottom with the price to find your first clients. It’s not necessary, not rewarding and will land you bad clients (use my experience: you really don’t want to have bad clients).
If you don’t feel confident enough, start at $30/hr. But set the timeline on how much and when you will raise your prices! This way, it’ll be much easier to keep it in mind.
Your ultimate goal should be to reach at least $100 per hour. That’s, in my opinion, the minimum rate for the best quality service. No matter where in the world do you live.
The goal associated with your price should be perfect quality. If you just deliver the work, you’ll get stuck in the race to the bottom with other barely-skilled developers, as you’ll have nothing special to offer. On the other hand, if you deliver the best quality available, your price defends itself.
How should I search for my first customer?
The beginning of your freelancing journey will be hard. Unfortunately, it’s not so easy to find your first clients.
But, if you don’t give up – you’ll manage to do it, just like I did.
Finding my first 5 clients was very difficult.
How did I do it?
Friends and family
They are the people who trust you the most! Let everyone know you make websites and they can contact you if they need anything. Ask them to recommend you if any of their friends ask them if they know someone who makes websites.
And that’s exactly how I started. I told my friends I make websites and search for new clients. I told my family. I’ve made my first paid website for my aunt (it was $50, but you know, it’s always money).
Later my good friend (shoutout to you Dominik!), leading marketing agency, told me he has one client who wants a couple of websites made. And another one. And another one. It started like an avalanche!
The rule is simple: the more best quality websites you make for your clients, the more they’ll recommend you in the future.
To be honest – now almost 50% of projects I do come from recommendations. The bigger the network of clients you create, the more of them will come back with their friends.
Have your portfolio!
It’s extremely important to be able to showcase your skills and past projects to your possible clients. Describe what you were doing, focus on wins for your client. For example: the conversion rate was boosted by 78% after redesign; site speed was improved by 45%, etc.
What if I don’t have any past, commercial projects?
Create example websites and include them in your portfolio. If you’re starting, you should be training on dummy projects in environments created by you.
I’m not a fan of cold calls, however, if you’re a great salesperson, you can gain a decent amount of projects doing cold calls. Take a look at this Reddit post: Cold calls: I went from nothing to $120k/year solo using this process. Script included.
That’s my favorite source of new clients. There’s just one thing you have to remember: you have to be the best possible candidate so the client chooses you. Let’s elaborate on these platforms more, as it’s quite an important source.
Freelancer marketplaces overview
There are many freelancer platforms, and out of them, only a few is worth a mention. I usually divide them into two categories: free access platforms, and premium ones.
Free access platforms make no screening for developers so the applying process is just a registration. Usually, there’s no limit of developers who can apply to a given task, so they run into tens. Or hundreds. They race to the bottom with the price. No way I’m gonna participate in this kind of bullshit. And you shouldn’t, as well.
The only advantage of this kind of platform is they make tons of money, so they pump it into marketing and a lot of possible clients know only them. It’s still difficult to find the diamond among the shit lying everywhere. Your choice.
Premium marketplaces do screening, to be sure they’re hiring the best developers. This ensures quality.
Do you remember, what does quality mean?
It means good money. That’s why you should focus on premium marketplaces. If you’re good enough, you’ll have clients ready to pay the premium price. These clients choose premium platforms because they want premium quality. And they know premium quality comes with a premium price.
Let’s have an overview of the platforms I used or heard of, I’ll sort them by the satisfaction of usage (clients found, prices, overall feelings).
It’s the only 100% WordPress-focused platform. I joined Codeable in July 2019 and fell in love with it instantly.
I even managed to land my first project on my first day.
It’s the only platform I use now, as I see only advantages.
Codeable hires only ~2% of all candidates who apply, so the bar is high. However, if you’re an expert, it’s your place!
Codeable requires developers to use a minimum hourly rate of $70. There’s a lot of projects to choose from, and there’s a requirement/recommendation of no more than a few developers in one workroom, so the client doesn’t get buried in a ton of applications.
The range of projects is amazingly wide and you’ll easily find projects within your niche – whether you’re doing design, troubleshooting and fixes, custom development, basically whatever WordPress related.
And the coolest thing is…
The price is an average of all estimations, so you won’t see here a race to the bottom.
If you’d like to apply, try it here!
It’s another premium platform, focused on developers, designers, finance experts, and project/product managers. They hire only 3% of all people who apply, so the bar is high here as well.
Hiring guide can be found here.
I tried to apply there, but since I was hired at Codeable which I was interested in the most, I resigned. Maybe in the future, I’ll come back and try again.
In general, it seems like there are rather mid-to-large sized projects on Toptal, so it’s a platform for people working exclusively as freelancers.
I don’t know the specifics of the wage there, but it’s definitely something you can decide on (so, you propose the rate, not Toptal). Based on this post it seems the best developers make $100-$180 (and upwards) on average.
The average wage, based on Paysa is about $45/hr.
Just a note here: never go with the lowest wage just to get hired. Set your minimum point (e.g. $100) and always stand by it! Clients will come anyway if you’re an expert.
I’d not hear about this platform, probably, if the recruiter didn’t write to me on LinkedIn. It seems very similar to Toptal, just smaller. Usually large (spanned across multiple months) projects.
Since I can’t afford for such long commitments, I refused and asked out of curiosity, what are rates they use.
Well, it seems like they didn’t like my refusal as I didn’t even get an answer to this question. I’d guess it’s similar to Toptal anyway.
It’s the most popular freelancing platform, and it makes it one of the worst in my eyes. There are a lot of people from third-world countries who will to take projet for as low as $5/hr, and you usually won’t win a competition with them.
Upwork has no screening, no agreements on quality. Basically, it’s not a platform you’d like to compete on.
Of course, there are people doing decent money there, but it’s like, I don’t know, 0.01%?
The only advantage is the number of projects. But again, the number of freelancers is a problem here, so even with lots of projects, there are tens of applications on each one. You’d have to be really outstanding to get hired here and compete successfully.
It’s almost 100% the same as Upwork, not even worth it. You’ll end up in a race to the bottom and even if you get some project, you’ll be most probably dissatisfied with the outcome.
Don’t. Do. It.
How to negotiate with customers?
Speaking about the price is a tricky process. But you have to learn how to propose estimations successfully, and how to conduct budget discussions with your clients. It’s the most crucial factor in getting you, and partially your client, satisfied.
Know the budget
There are two schools of negotiation.
The first one assumes you’ll hear the price first, so you know the expectations.
The second one assumes you’ll propose the price first, so the client knows what he could expect.
I’m a fan of getting to know the budget first. This way, I can decide if the project is worth engaging on. I’d suggest the same for you – knowledge about possible budget lets you build your client communication on it.
What if the client has no idea how much could it cost?
The first rule is: they always have some sort of budget they thought about, everyone has.
However, if the client doesn’t want to share his budget with you, just ballpark some starting price range.
I like to do it this way: “if we’d do it this way, and have it done with this solution, then it’d cost $XXXX, but if we’d have to have it custom-coded, ready for extreme performance, etc. it’d cost even $XXXX. It all depends on your requirements.”
Try to maximize the price, and provide the reason for it – perfect quality.
When I see the customer is in doubt, I propose a couple of different solutions, from lowest (don’t get misguided by this word, it’s still high) quality to the best quality.
What if the client has not enough budget?
Don’t resign yet if the client hasn’t enough money to throw! There’s always a place to propose some different solutions which make you both happy.
Your client wanted a custom-coded, best performance website but has not enough money?
Explain why it’s impossible, and propose a simpler website built with ready theme or page builder.
Your client wanted a platform with LMS, memberships, and forums but again, has no money?
Find out what’s the most important part of the website and propose focusing on it in the first place. If he’ll save some more money, he’ll be able to hire you for other parts.
Simple as that.
What if you predict this client will be a good client (e.g. has a big budget)?
Propose new ideas and try to upsell things. If you notice he’d need some performance optimization on his website, in addition to the project you’re doing, tell it to him.
There’s always a possibility your client will come back with another project, thanks to your engagement.
How to conduct pre-hire discussions with customers?
It’s the most important part of the hiring process – pre-hire discussions decide whether you, or someone else, get the project. You have to be a perfect leading the discussion, so the client knows he can trust you and pay you a decent amount of money.
It’s very important to clearly define the scope of the project you are engaging in. This way there is no space for speculations. One important thing to note here is that you will know how to estimate the project properly. If you know the project inside out, you are able to define how many hours it will take for you to complete it.
To clearly define the scope you have to ask the right questions. To ask the right questions, you have to read the project brief with attention.
It’s often happening that’s project brief is quite laconic. What should you do in this case? First, ask general questions like what is the business purpose of this project, what does your customer tries to achieve and ones like these.
And even if the project’s brief is very detailed, in 99% of cases, there are some questions to ask. Whether it is about implementation details, the budget, the deadline, or the preferred way of communication.
Having scope defined in 100% is the most important step in pre-hire communication!
You always have to show respect for your customers. Start your every message with “hello”, use the customer’s name, thank him for his answers, and provide detailed answers if he asks about anything.
If the customer has no idea what’s going on, try to ask the right questions and explain everything in detail for him. Propose a few different ideas on how to approach the problem your client is facing.
If your client provides designs for the project, compliment him. If his work is interesting, tell him. They will like it for sure.
It’s very important for you to show that you are a human, and not some bot generating automated messages. The more your possible client likes you, the bigger chance you have of getting hired.
What if my client acts badly?
If it’s still pre-hire communication, simply excuse yourself from the project. It’s not worth it to engage with some impolite client.
Even more, if you notice any red flags, so poor communication, impolite behavior, basically anything you don’t like, quickly resign from this project. You will definitely find better clients.
And what should I do if I’m already hired?
This one is a more difficult question. Remember about bringing the best quality always. If the client appeared to be bad during the project, you should finish your work as fast as possible and never come back to this him.
There is really no easy answer and what to do if your project goes south. Every case is unique, however, you should always stick to deliver the best quality.
I know I repeated it like 5 million times, but it’s what matters the most if you want to make big money freelancing.
What should I do after the project is completed?
If you’ve already received your payment, thank your client for this opportunity, hiring you and the communication.
It’s also a good time to ask the customer for review if you think they’re happy with results.
Reviews play a significant part in your showcase as an expert.
If you noticed there’s some room for improvement on other parts of your client’s website – let them know. Who knows if they decide to hire you for this task as well.
How to treat your past clients?
My past customers bring me almost 50% of new projects, so it’s essential to keep good relationships with them.
Ask them from time to time how’s the life going
No need to try to cross-sell things here. If you ask your client a general question, he will remember about you being friendly. You’ll stay in his memory.
Ask if they need help with anything
Try to keep the noncommittal communication with your past clients, so they know they can rely on you. And even if they say “no”, they’ll know where they should come back in the future, if they need a helping hand.
To this sentence, the above article is like a small book (with 8,000 words, it’s like 1/10th of an average book). It’s a lot of knowledge, yet many of the freelancing topics weren’t even covered or barely touched.
I hope it helps someone to start a beautiful and rewarding adventure, where you are able to meet people from all over the world.
If you have any questions or feedback, please post it in the comments.
If you’d like to have anything covered in more detail, post it as well!
I write for you, so I’ll do my best to deliver the best content to learn.
Hey good reading. I’d like to see how You learn a new plugin and start taking projects with it, just to see your process.
Hi Rob, thank you for your feedback! Actually, I’ve published a small post here on my process to learn LearnDash: https://apollin.com/how-to-learn-new-wordpress-plugin/
I still don’t know a lot about it, but feel confident enough that I could try to take some simple projects with it, and will definitely share my experience with it as well.
Do you have any specific plugins in mind you’d like me to learn? I’d love to give them a try and write a post about it! 🙂
All the best!
thanks for reply. I was just curious about your process and approach. I see a lot of similiarities.
Thanks for your posts, you kicked me in the ass. I’ve been freelancing for one agency for a long time, mostly working with WP and APIs, and thank to you i see i can try to reach for higher payment and new opportunities. Since i’m confident and fulfill like 90% of what you wrote i’ll be applying to Codeable.
But what could be interesting and bothers me recently is how do you deal with clients and pricing. Sometimes client have no knowledge and comes with simple question “how much to add functinality X”? You need to figure out what they really need by asking questions and create own specification. Sometimes it’s easy – 2 questions and 5 min google is enough. But sometimes you need to figure out much more things, like client’s server and WP setup, send 10 emails, and read docs of new plugin or API which may take from some hours to some days even. Do you charge for that? What i do is sometimes when i’m intrested in new plugin or API i read docs and learn it gratis, but sometimes i say this will need 4 hours research and i need to be paid for that. Then i come back with good calculated price. Sometimes i just guess – that may take 30 hours, but there are always some problems on the road, so i’ll add 10 more hours. But since it’s external API and bad documentation i’ll add 20 more just in case. How do you deal with such cases.
Thanks and pozdro from 3city
I’m unbelievably happy this article affected you in that way, that’s awesome! Good luck on your new way 🙂
Regarding dealing with pricing of unpredictable projects – that’s actually very good question and excellent material for the next article, as there are, indeed, a lot of tricky situations where we wonder if we should charge for something, how to convince the client to actually pay for that, how to lead the discussion. I’ll prepare the text in coming days and let you know, thank you for this suggestion, Rob!
Hi, thanks for an article, tons of knowledge here!
In one book I read about running a startup the author asked one important question: if you could choose one of three things you can be good at, what it would be: price, convenience/speed or quality?
I chose convenience/speed. You say about quality. I don’t want to change that, because I think it’s what my clients value me for. How do you think I will perform on that advantage? Or should I change it to quality? Or perhaps if I go for convenience/speed I should do quality work, so I don’t lose time/speed in the future because of fixing bugs I made while not pursuing quality in the first place? It’s speed AND quality then.
Thank you for your comment!
If it comes to freelancing (so selling your time, which is not being startup per se), I’d define only two of these factors: price and quality/convenience. The speed or urgency of the project is just an additional factor for me if it comes to estimating the price.
Highest quality is my motto because the client receiving such a project will probably come back to me, refer his friends or at least leave a great review. As you mentioned, I won’t probably waste time on bug-fixes as well. One of the most important things here is: a client who expects the highest quality will usually understand that quality comes with a price.
Elaborating on speed/urgency of the project being treated as an additional factor, rather than a basic choice out of three you mentioned: if I have a client whose project is extra-urgent, I just use a price-multiplier depending on how urgent it is: if I’ll have to work day and night, weekends, if I have a lot of other projects currently, if it’s holiday time. And along with the project being done in an urgent manner, I still deliver the best quality possible at that time.
This is, of course, if we treat the speed/convenience specified by you as an urgent project, or project that needs to be done in a shorter amount of time than you usually need for this kind of assignment.
If we treat it the other way – so just sticking to the specified, reasonable deadline, then I’d just include the speed/convenience in the quality area. So, if you are a high-quality freelancer, it means you stick to the highest standards of development and client service. Sticking to the specified deadline is included in the highest standards of the client service.
Three factors defined in the book you’ve read are probably more passive-income, or product related. So you can have a low price, the speed of delivery/convenience or the best quality for every customer. While it works for products related business, we have to treat freelancing in a slightly different manner.
So, to conclude: I define only two factors here, low price and quality. Quality is what I chose, and sticking to the reasonably defined deadline is included in quality, while the urgency of the project is just a multiplier for the estimated price.
Let me know if it makes sense and if I understood you correctly, that was a very interesting question.
By the way: it’s the second time I write it, I had already whole text in place when I accidentally clicked F5 and everything went to the void 🙂
All the best Michał!
Sure, that makes perfect sense for me and it’s really helpful. You’re right about startup thing – I was thinking product, not a freelance service.
And thanks for being so persistent in spite of the accident 😉 Make sure to disable reloading page while editing any form on the page 🙂
Hey Arek, great article.
How do you communicate with foreign clients ? Do they have objections working with someone from another country ? Whats the process ?
I guess you live in Poland and you have clients from USA.
Thank you for your feedback and please accept my apologies, I was quite busy this week. Anyway, coming back to your questions, I could write a book on them. I’ll try to answer in short, but if you’d like I could prepare more in a form of an article in the future.
I have never encountered any objections on my country of origin. I suppose it’s sort of “If I want to hire someone from my country, I just Google in my language and find agencies here”, so probably this kind of client never even hears about me. On platforms I use, e.g. Codeable, there are people from all over the world, and they are all able to find nice projects, so the location is not a barrier at all.
I’ve got clients from USA, Europe, and basically any other continent. One thing to remember of course is the difference in time. So if you want to focus on US clients, you have to be ready to work in the evening/night sometimes, when there is such a requirement. It’s not a problem for me, since I work fulltime for Facebook here and take care of my clients after my daily work. Also, I always try to take on projects that don’t require daily sync-ups with the client.
The process in general is the same, always. It doesn’t matter if it’s the client from my country, Poland, or Australia. First is building the rapport with a possible client, gathering requirements (including preferred timeline and communication), and during the project it’s just the execution of agreed requirements. I manage most of my communication by email / chats, and if there’s any need for the ad-hoc consult, I just schedule it.
Let me know if you have any more questions. I’ll be happy to answer!
All the best,
Hey, thanks for comment. Yes it would be great to read article about this topic.
I was thinking about other methods of getting clients than freelance platforms, on platforms I know it’s possible, on upwork/freelancer etc there are client’s and freelancers from all over the world. But I don’t have experience of getting foreign clients through cold approach such as emails/calls and social media. That’s why I was asking about objections, because I think you have to need some trust, people need to know about you to get those clients this way.
In answer to “Do you believe that it’s possible to make over $10,000/mo as a WordPress Developer? Click here and let’s discuss.”: ye
In answer to “Do you believe that it’s possible to make over $10,000/mo as a WordPress Developer? Click here and let’s discuss.”: I think its doable, just need the right source to get constant clients.