Do you want to make money building websites?

I have good news: a lot of small businesses hire freelance web developers.

Think about it, lawyers, photographers, music bands, influencers – they all need a website these days!

I took advantage of this opportunity to build more than 30 websites for my clients over the last two years. And I can tell you one thing: building websites for clients is not as easy as it seems.

Here’s the deal: it takes time and hard work to become a successful freelance web developer.

But don’t worry, I will share my hard-earned knowledge in this guide: how to build websites for small businesses, find clients, and grow your web development business.

The topics covered are:

Let’s get started!

Introduction: Is web development a good fit for you?

Disclosure: This post may contain affiliate links ( learn more ).

The first website I built was for a Football club.

The website was really easy to make: a homepage, a contact page, and a page for each player.

Everything went smoothly, and I got paid $750.

As I gained more experience, I realized that my dream job also had some downsides.

So be warned: freelance web development is not for everyone.

There are some aspects of the job that you need to know before you get started.

Let’s start with the bright side:

Web development is a career-oriented job. There is room for beginners (low earnings) and experts (high earnings).

Designing websites is truly rewarding (if you do it right).

And finally, you don’t need a degree or anything like that. All you need is a computer and an internet connection.

Nothing’s perfect; there are also some disadvantages to consider:

It takes time to learn the basics of web development.

You have to hustle every day to find new clients.

Clients can feel like a thorn in your side. Some of them are so frustrating they make you want to change your job (I talk from experience).

Let’s talk about the exciting part: the salary.

How much do freelance web developers make?

According to GlassDoor and US News, the national average salary for a freelance web developer is $69,022. However, there is a significant discrepancy between low-level earnings (about $50,990 per year) and top-level earnings (about $95,020 per year).

That’s what I experienced as well.

I got paid $750 for my first website. Right now, I make anywhere between $1,000 and $4,000 per site.

Ultimately, your salary depends on your skills, the country you live in, and the clients you work for.

How long does it take to become a freelance web developer?

It’s possible to start making money with front-end web development in a matter of months.

That’s right!

You only need to grasp basic HTML and CSS skills to build websites for your friends, family, and local businesses.

But let’s be honest, it takes longer if you want to build complex websites using Javascript. And even longer if you want to expand your repertoire by learning server-side languages like Ruby on Rails, MySQL, PHP, etc.

In short: it takes months to learn web development, but years to master it.

Step 1: Learn web development

There are different levels of web developers:

Level 1 – Knows how to design websites using WordPress or other Content Management Systems. He can also customize websites using CSS and HTML.

Level 2 – Knows how to build complex websites using scripting languages like JavaScript.

Level 3 – Know how to manage databases and build applications using server-side languages like Ruby on Rails, MySQL, PHP, etc.

Most small businesses are looking for “Level 1” developers.

They need websites to showcase their work, not complex applications to automate tasks.

So, let’s explore the skills required to reach “Level 1”.

Content Management Systems (CMS)

Using a CMS is the easiest way to make money building websites.

Content Management Systems (CMS) help you create, manage, and modify content on a website without any technical knowledge!

And guess what? The most popular CMSs’ are open source and free:

WordPress – it’s what I use to build most of my clients’ websites. It is used by more than 30% of the websites on the web, including sites like The New Yorker, Forbes, and The New York Times.

Joomla – the second most-used CMS after WordPress.

Drupal – this CMS is more complicated than WordPress and Joomla; it was created by developers for developers.

WordPress is, by far, the best Content Management System for beginners.

Why?

Simply because WordPress makes it easy to create and personalize websites.

Here are my two favorites courses to learn how to build websites with WordPress:

WordPress for beginners (Udemy) – I used this course to learn the ins and outs of WordPress. If you want to understand every single step from installation to a finished website, I strongly recommend this course.

How to personalize WordPress websites with Elementor (Udemy) – Elementor is a plugin that allows you to create tailor-made websites without any technical knowledge. Mastering this tool makes everything easier (seriously, go check it out).

If you don’t want to pay for an expensive course, here are some tutorials to create websites with the three great CMSs:

Now, let’s explore the two skills every web developer should know: HTML and CSS.

HTML and CSS

HTML and CSS are the bread and butter of web development.

Here is the deal:

HTML is the foundation of all websites. Without HTML, you couldn’t add headings, tables, videos, photos, etc.

CSS is the language for describing the presentation of your websites. With CSS, you can add background images, colors, beautiful fonts, etc.

Put simply, you need to learn what to include in a page (HTML) and how it looks (CSS).

Here are the best online resources to learn HTML and CSS:

Shayhowe’s website – a simple and comprehensive guide dedicated to helping beginners learn HTML and CSS.

Introduction to HTML (CodeAcademy) – it only takes 9 hours to learn how to use HTML.

Introduction to CSS (CodeAcademy) – it only takes 15 hours to learn how to style and visually organize HTML with CSS.

What about “Level 2” and “Level 3”?

If you want to gain an edge over your competitors, you can learn Javascript and back-end web development. Otherwise, skip over this section, and I’ll teach you how to find your first clients.

So, you want to make dynamic pages?

JavaScript translates your static page into one that can interact with your visitors.

With JavaScript, you can add cool functionalities to your websites like maps, interactive interface, and online games.

Check out those online resources to learn Javascript:

Javascript tutorial (W3Schools) – this tutorial will teach you JavaScript from basic to advanced.

Introduction to JavaScript (CodeAcademy) – it takes 30 hours to learn the necessary skills.

If you want to take your web development skills to the next level, learn back-end development.

Visitors can’t see the back-end (the server, the database, etc.).

However, a lot of companies need web applications. You can help them with server-side scripting languages like Ruby or PHP.

Here are some tutorials to learn back-end development:

PHP tutorials (W3Schools) – PHP is the most popular server-side programming language; this is the best guide to get started with PHP.

Ruby on Rails (CodeAcademy, this course is not free!) – Learn the basics of building applications with this convenient and powerful web development framework.

Step 2: Find your first clients

Once you get used to it, building a website with WordPress is not as hard as it seems.

So, what’s the hard part about being a freelance web developer?

Finding your first clients.

Believe me, it’s hard to get the balling rolling.

When you have no professional experience, small businesses are often reluctant to give you a chance.

Don’t worry, here’s the secret method I used to get my first clients.

It’s pretty straight forward; go on Google and search for small businesses (Restaurants, coffee shops, hairdressers) that don’t have a website.

Pick up your phone and just asked them if they need a website.

Most of them don’t even ask if you have a portfolio, so it’s one of the best ways to get your first clients.

Other ways to find your first clients

If you’ve already called all the businesses in your area, here are some other ways to find your first clients:

Grab low-hanging fruits first: if you have a friend with a business, start with them.

Consider volunteering. Working for non-profit organizations is a great way to get hands-on experience.

Apply for your first jobs on generic freelancing websites like Fiverr and Upwork.

Here are the best platforms to find freelance web development jobs:

Fiverr – the world’s largest freelance services marketplace.

PeoplePerHour – a website where freelancers can bid on jobs.

Upwork – a platform that connects top companies to talented freelance workers.

Flexjobs – for about $15 a month, you get access to a list of remote jobs.

TopTal – through a rigorous screening process, TopTal identifies the best freelancers and connects them to potential employers.

Step 3: Grow your web development business

Now that you have some experience, it’s time to step up your game!

I’ve gathered a few ideas to land more web development jobs and increase your revenue.

Build your reputation

Here is the deal: if you want to land jobs, you need to showcase your skills.

That’s why you need to build a portfolio that showcases:

All the websites you made.

Reviews from your customers

Your services and your pricing.

Remember: it takes years to build a good reputation, but one day to destroy it.

Team up with other professionals

It is my favorite way to attract new clients.

The idea is to team up with businesses that are into:

Social media management

Search Engine Optimization

Online ad campaigns

They probably have a list of customers that might need to build websites!

Go niche

I see that a lot of web developers specialize to get a competitive advantage.

For example, I have seen some agencies that specialize in websites for lawyers.

Their strategy is pretty impressive: they offer an all-in-one pack.

First of all, they build the website with the lawyer’s photo and details regarding his qualifications.

Then, they offer other services like Search Engine Optimization, video production, and pay per click campaigns. These services require the agency to have a good knowledge of the niche; this is why specializing is an excellent way to generate more revenue.

Final words

Here’s a short recap of how you can start your career as a freelance web developer:

Learn the essential skills: CMSs, HTML, CSS, web design, back-end development, etc. Land your first web development project. Build your reputation. Create a portfolio to showcase your skills. Find even more clients: contact potential clients, go niche, team up with other professionals, etc.

Related articles

If you want to work from the comfort of your home, check out these articles: