Guide version 1.2 – Last update May 27th, 2024
I’ve been wanting to make a full free guide on this topic for a long time. I know that you you’ve probably stumbled upon a zillion other guides about “How to build a WordPress website” because there’s a lot of interest around this.
At the end of this guide, you will have a website decently fast and ready to accept payments, in case you need that.
Here’s what this guide can give you that other guides can’t:
- Most guides out there aren’t written for your best interest. They’re just a bunch of affiliate links to 3rd party services that often aren’t in your best interest for you to use. Bad hosting services, low quality 3rd-party page builders, and similar products are often recommended because the authors of the guide need to make some bucks with affiliate links. This guide doesn’t include any affiliate links or any sort of sponsorship.
- We’ll go straight to the point for each topic.
- I’m a full stack web developer, and I’ve been using WordPress since 2007. I know I’ve created over 100 websites, than after that point I just lost count. So… I know a thing or two, about a thing or two 🙂
0. Is this guide for you?
An effective guide on this topic must be at least a little bit tailored to you. WordPress is a huge ecosystem, so let me read your mind a little bit so I can know what I should include:
- You own a small business and you’re building your first WordPress website, or something like that.
- You have enough time to dedicate to this, but don’t want to invest budget in web development for the time being.
- You aren’t building a website for “fun”. You are building a site for a clear business purpose. This may also be your first e-commerce or subscription website, maybe you’re testing an idea for earning money online or creating a new revenue steam.
- Or, your business is offline, but your website has a key role in your business.
- You’re not a developer or a technical person, just someone curious to learn on how to do this.
Am I close? If so, we can get started!
How to use this guide
This is just a suggestion. I think that to get the most out of this guide you should read it first, and then start building your website. This approach will make it easier for you to have a more flexible approach and to easily change direction in case of need.
You should be able to read the guide, without a rush, in roughly 30/35 minutes.
After this guide, especially if you’re selling products or services, you might be interested in my free 5-day course to increase the conversion rate of your landing pages. If you’re interested, here’s the link.
1. Buying a domain
For this, use NameCheap. It’s an intuitive platform where you can easily buy a domain.
Here’s a guide on how to buy an existing domain on NameCheap, and here’s another guide on how to register a new domain.
A question I got sometimes from whoever is starting a new website is how much the domain name matters. It rarely does. Of course there will be an impact if you’re buying an existing domain that has authority. But assuming you’re just starting out, the domain name will not make a huge difference.
However your business name will have an impact in most cases. Ideally by reading your business name, a potential customer should immediately understand what your business is about and what you offer.
If you’re not sure how to name your business or your new idea, I suggest the book “Hello, My Name Is Awesome” by Alexandra Watkins. If you think it can help, I can create a video about that book.
2. Select a Hosting Plan
Everything begins with the hosting choice. Hosting will hugely affect the quality of your website. If you need to save money, I highly recommend cutting other expenses, and not the hosting costs. Here you can read more details on how to choose a hosting plan.
This step is super important but also quite fast and easy to solve, choose any of these hosting services:
- Kinsta.com: currently the best hosting service for WordPress I know.
- WPEngine.com: the second best hosting service for WordPress.
- Cloudways: this is what I use for my websites, and also to host a part of WordPress Advisor. Cloudways is cheaper, but I don’t recommend it unless you have technical knowledge. I also have to admit that in terms of performance/page load speed the first two services mentioned here are better out of the box than Cloudways.
I use Cloudways mostly for technical reasons. It’s just easier to create multiple websites for personal projects and the staging environment for my clients. But at some point, when any of these websites grow, I will be forced to host them somewhere else. Likely on Kinsta.
If you’re using any of these hosting services, you don’t even need to worry about how to install WordPress manually, because they will solve that for you. And they will also simplify your work with other aspects of managing your WordPress website as well.
If this is your first website, you can just choose their lowest price tiers, and you will probably be good with that until you start getting more substantial traffic, let’s say 25,000 visitors per month.
Monthly vs Yearly Plans
You will get a discount if you choose a yearly plan. Several of my past clients used the first two hosting services mentioned above, and they never had any issues as far as I know. Most of them were small businesses with a good level of traffic.
However, if you’re testing an idea, and feel like a year is too much of a commitment, you can just go month to month.
The Price Tag
Kinsta and WP Engine are more expensive than the average hosting service out there. You can find hosting services that cost less than $10, or, even less than $5 USD per month. So why paying more? A few reasons:
- Because the difference in your website’s “default” performance and page load speed will be huge.
- Many cheap hosting services have outdated interfaces (if you see anything mentioning c-panel for WP sites, run away) unnecessarily complex to use, which will slow down your workflow, every time you’ll need to access your hosting dashboard.
- This guide assumes you want to earn with your website, so it’s a business, not just a hobby. The value in dollars you get for a faster website is higher than the monthly fee of these services.
- Cheap hosting services will give you all sorts of “chores” to do when, inevitably, you will contact them asking why your website is so slow. Cheap services’ support will reply to you with copy/pasted messages about things to do on how to speed up our website. They send you all these sorts of little guides that will never fix a thing and just waste your time. I talk by direct experience. Over the years, in my career I dealt with all sorts of hosting providers. Some of them will just lie to you, and try to convince you to buy a higher plan, that you probably don’t need.
- Leave cheap hosting services to your competitors: let them lose time with them, waste entire afternoons and nights desperately googling “how to speed up WordPress” and fighting with cheap hosting support. While you can actually focus on growing your business instead of losing precious time.
- There are other costs in building a website, especially if you are not a developer. For example premium themes or plugins. I suggest cutting costs there or somewhere else, instead of sacrificing the hosting service in favor of budget. Because the headaches that will come from a cheap hosting services will be way more expensive than $30 usd per month, I can guarantee you that. Both emotionally and in your business’ wallet.
Business Emails
To manage your emails I recommend not using a generic web hosting service. I personally use Google Workspace. It’s way better to keep your web hosting and email separate. They will be easier to maintain, and you will likely get a better service for both.
3. Point the purchased domain to your hosting service
This may sound harder than it really is, the entire process of this step will require 5 to 10 minutes of your time.
If you purchased your domain on Namecheap or another service different than your hosting, you will need to configure it. In brief, we need to set your domain to direct users where your website is hosted.
This step usually isn’t too difficult, but I recommend searching for guides specific to your hosting and domain registration services. In case you followed this guide, here are some useful links:
Kinsta + Namecheap
Here’s a full guide on how to configure your domain purchased on Namecheap, on Kinsta.
WP Engine + Namecheap
Here’s a full guide on how to configure your domain purchased on Namecheap, on WP Engine.
Other services
In general, to configure your domain you need to find the DNS configuration on your domain register account, and create an A Record that points to the IP address of your hosting service.
You can find the IP address you need to target in your hosting service interface. Then once you know the IP, you can just add it to the service where you registered your domain.
To configure your domain you can also change the nameservers with the ones provided by your hosting provider, but I recommend just editing the DNS records you need in your domain register account.
And remember that if you’re getting stuck in this process, your hosting support must help you with this.
Once this is done, your DNS edit will need some time to propagate. A few years ago, it could take up to 72 hours for DNS to completely propagate. Nowadays, typically, you’ll be good to go in a couple of hours or even less.
You can also check the status of DNS propagation with this tool.
4. Creating your first website
The good hosting way – installing WordPress automatically
If you choose one of the hosting services I’ve suggested above, this is where you start saving time. Creating a website on Kinsta or WP Engine is easy. You don’t need to do much.
Kinsta
If you chose Kinsta, you can find how to automatically install WordPress here.
WP Engine
And here’s how to create a new WordPress install on WP Engine.
Also, remember that both Kinsta and WP Engine offer great support. If at any point (but I doubt) you get stuck, you can contact them, and they will solve your issue quickly. Compared to other hosting services there aren’t endless queues of angry clients, so in roughly 10 minutes you will have your WordPress website installed and ready to be customized.
Don’t install plugins at this stage
At the time I’m writing this guide, Kinsta displays a small checkbox to install Yoast, a popular WordPress plugin. WP Engine does something similar, with different plugins or themes. Well, if you have the option to choose, don’t do it: don’t install any plugins at this stage, we’ll think about that later.
Also Yoast tends to be a really bloated plugin. I usually use The SEO Framework, but Rank Math is also another good alternative.
How to manually install WordPress
Maybe you’ve chosen another hosting you trust that requires some manual effort. In that case, here’s how to install WordPress manually. Let’s clarify an important difference first.
WordPress.com vs WordPress.org
If you search WordPress on Google you’ll likely see both WordPress.com and .org in search results.
- WordPress.com is a managed hosting service. Compared to regular WordPress hosting, this one has some objective limitations and its unique quirks. For this reason, at least in my experience, many developers and business owners avoid using WordPress.com.
- WordPress.org is what you need. On this website you can download WordPress and use it in any hosting service you choose.
How to Install WordPress
1. Go to this link (.org) and download the latest version of WordPress.
2. The downloaded file should be named something like this: wordpress-6.2.2.zip. Extract this zip file in a local folder of your computer.
3. Upload the .zip file contents to your server. You can use Filezilla for this, which is free.
The correct folder path where to upload WordPress can also vary depending on your hosting provider. Usually you need to find the public_html folder, and your correct path may look like this:
/public_html
or
/your_site_name/public_html
or
/www/a_unique_string_with_your_site_name
or
/
Sometimes you may want to install WordPress in a sub-domain of your website. For example if you own business.com you may want to create a WordPress site at: blog.business.com. In this case you will need to create a folder called “blog” in the root folder of your website and move your WordPress files in this specific folder. In this scenario the path may look something like: /your_site_name/public_html/blog
4. Now you should have all your WordPress files in your hosting service. To trigger the installation wizard it’s usually enough to connect to the domain where you’ve installed WordPress.
5. Most steps in the WordPress installation process will be self-explanatory. At some point you will need to input the credentials of your database. You can find these on your hosting service dashboard.
Staging vs. Production
This is another concept we need to clarify before moving forward. Any decent hosting service will offer you at least two different environments for each website:
- Production: this is your main live website, e.g. WordPressAdvisor.io. All your users and customers will always visit (and find on Google) your production website.
- Staging: this should be an exact copy of your production website, to use whenever you’re working on a new feature or maybe testing something new, like a new plugin or theme. The URL will look something like this: yourstagingsitename.wpengine.com.
- Development: some hosting services also give you a third space you can use. Development is just another staging environment, and the idea here is that you would use development for testing new edits and stuff, while using staging for debugging or fixing other issues in a separate environment.
Development is often optional. As a developer I often need 3 different environments for complex projects, but for a regular user case, having separate staging and production is enough. Just make sure you do have a staging environment, so you don’t risk compromising your main website when you need to try some new feature or plugin.
When to start from Staging
Since this guide is about creating a new website, you should start by working in staging. Ideally, while you build your main site, you can set on production a basic WordPress install with a coming soon page.
To set a coming soon page you can use any free plugin from the official repository.
However, if this is your first website ever, nobody knows its address, and you’re sure that while you build it no one will visit it, you can just use your production environment.
⚠️ In any decent hosting service you can easily copy and migrate your site between production, staging, and (if present) development. Initially, when these environments are empty, this will never be an issue. But when you have both your production and staging environments occupied by existing WordPress installs, you must be extra careful. Because you may risk overwriting (and losing) new content or website edits. We will talk about this in detail at the end of this guide.
5. WordPress essential concepts
Before jumping on how to build your WordPress website, we need to clarify some essential concepts. I’ll do my best to keep this short, and avoid talking about secondary WP concepts that you can just learn later.
Regular Post Types
By default your WordPress website pages are organized into two post types: posts and pages.
- Posts: typically used as simple blog posts. The original post type of WordPress, since back in the day WordPress was created to be a simple blogging platform.
- Pages: compared to posts, pages can be hierarchical. For example you can have an About page, and a Story page that is a child of About (yoursitename.com/about/story). Pages are used to present more static content.
I suggest using these two exactly like WordPress intended to. Some businesses confuse the two and the website becomes confusing to maintain.
Custom Post Types
Custom Post Types (CPTs) are probably one of the main reasons why WordPress became so popular. This functionality allows you to create a WordPress-based website about anything you can imagine. WordPress started as a blogging platform, but today a WP site can be an e-commerce, a simple brochure site, a social network, and more.
Of course WordPress isn’t perfect for every possible use case. Building an e-commerce site with over 100,000 products on WordPress, can be a challenge. Building a complex enterprise web app that acts like Facebook or a huge social network in WordPress, is likely a bad idea.
But often WordPress is a good place to start from. Even Airbnb started with WordPress.
In your case, if you aren’t a developer you will probably not create CPTs right away. But, you will install themes or plugins that will add new CPTs for you. And it’s important to be aware of this.
WooCommerce is a popular example of a plugin that adds some Custom Post Types like Products and Orders.
Difference of Page vs Template
Another important difference. With page I mean anything: a single blog post, a product, a static page, etc.
The term page is often confused with template, and as we’ll see, the word template is also often confused with the concept of WordPress theme.
In the glossary you can find a full definition of template. But in brief, a template is one entity that can be replicated (or not) to create multiple pages. For example:
E-commerce store:
Template: Single Product
Page of a single product: Black+Decker 20V Max Chainsaw
Car rental website:
Template: Single Car
Page of a single car: Toyota Corolla
Sometimes a template is also just one single page. Maybe you’re about to launch a very unique product, that needs to be presented in a unique way. Maybe you have a landing page dedicated to this product, and in that case you could have a template that is used for only a single page.
But 90% of the time, a template will be used over and over, across multiple pages. And this is useful to know, because especially if your business is taking off, you probably don’t want to “waste” a template to use it only on one single page. You probably want to invest time and/or money in creating a template that you know you can use over and over, and that somehow can bring you a concrete business benefit.
In the example of the car rental website, the Single Car template can be used to create dozens of pages that showcase different cars, all with the same layout, but with different content.
A Post Type Can Have Multiple Templates
Any post type you can imagine can also have multiple templates if necessary.
Some themes may include a variety of WooCommerce product templates, for example:
- Default Single Product with right sidebar.
- Single Product full width (no sidebar).
- Single Product with left sidebar.
You can check if your post type includes multiple templates by visiting their single editing screen. On the right sidebar, under Summary click the Template value.
Often for simplicity one post type has one single template, even in complex WordPress projects. But I need to tell you this at this stage anyway, because I’m sure you will find plugins that will add multiple templates to some of your post types. So if you see that you have multiple choices for templates you’ll know why.
WordPress default settings
WordPress products, themes or plugins, may add their custom settings in three locations of your admin interface.
- In the Customizer: in wp-admin Right sidebar > Appearance > Customize. This is used mostly for design edits.
- Under Settings: in the right admin sidebar.
- In pages, on their editing screen, directly in the admin right sidebar.
You can use the customizer to change some details about your website design, while Settings are mostly for global functionality edits.
Essential Settings
I suggest you to review all the default settings, but if this is your first WordPress build, you will probably need to edit the following:
- Customizer: set your site logo under Site Identity, and if you’re building something different than a blog, set a specific page as your homepage, under Homepage Settings. We will customize this page later. You may also notice a Menu setting. I suggest not to edit your menus in that screen, but in wp-admin > Appearance > Menus.
- Settings: review General Settings, and Permalink Settings. The rest of the settings are often optional. Permalinks are quite important, and if you’re not sure, I recommend setting them with this custom structure: /%category%/%postname%/.
6. How to Plan your WordPress website (and why you should)
We need to do some planning before moving forward. The first steps of this guide will be pretty much the same for everyone who tries to build an online business website. Now, depending on what you’re trying to build, this is where we can take several paths.
I’ll try to organize the rest of this guide into three macro areas. Let me know if you have any questions, and I’ll expand or edit each one as needed.
Let’s try to go in a progressive order of difficulty:
- How to create a brochure website: a simple website to present your business.
- How to create an e-commerce website to sell products.
- How to create a subscription website that charges users every month, or with a specific timeframe.
I think that in any case, even if you’re building an e-commerce or membership website, you need to start from some sort of brochure website. You will probably have a couple of static pages that present something of your business in any case.
Create a blueprint
This step isn’t strictly mandatory, but I always recommend putting together a general blueprint of what you’re trying to build before just jumping to WordPress, or to search on Google.
This step is called a roadmap or discovery phase. Here on WordPress Advisor I can create a general template you can use for this (let me know if it can help you or not), but in the meantime just put together some ideas on a Google Document or on your favorite text editor.
Full discovery phases require a lot of effort, but they’re necessary to avoid a lot of headaches later. It’s insane how many hours and budget you will save just by putting in the effort first to save your thoughts and break down a large project into smaller tasks on a document.
In this section I’ve outlined the main sections of a roadmap document. This has been cut down for simplicity. It’s not a full discovery document outline, but a start, and it should be enough for this guide.
Why investing time in writing a document
The main reasons:
- You will have all your ideas in one place, easy to consult and come back to it.
- No matter the complexity, writing helps to break big problems or features, into smaller tasks.
- Building a website can be overwhelming if you don’t have experience. Maybe you have a lot of ideas, a lot of it will get lost between one Google search to another, or other problems you will find along the way will distract you and make you lose focus.
- Writing helps to think. Many ideas are often just 100% useless. It’s likely that the top 20% will be the ones that will give you 80% of the results. Writing it’s a great starting point to understand if investing time in an idea for your website can be useful or not.
I highly recommend starting tracking your website project from day zero. In this way you will never lose track of what you need to do, you will have a spot where you can save and organize your ideas, and it will be easier to solve any issue you may face.
I wish someone told me this when in 2007 I built my very first website.
Project Goals
It’s helpful to have a measurable goal. Everything revolves around your main initial goal, and this should be your north star for every single decision you’ll make while building this website. Every single time you’ve a doubt, don’t forget your goal, and ask yourself which option will help you the most to get to your goal.
You will find out soon that you will need to make a lot of decisions.
It’s also incredibly easy to get distracted and lost in inconsequential details which will bring you zero business benefits. A good goal is the antidote to this problem.
- “$XX,000 in sales in X months” can be a measurable goal, that can potentially be split into smaller goals.
- “Get $1,000 paying users subscribed in X” can be a good goal.
- “Design a nice looking website to attract clients” is quite a bad goal. It’s not measurable, there aren’t any specific numbers or timeframes.
Website Sitemap
A list of the type of pages (templates) you plan to add. If reasonable, include all the pages you plan to add. Keep this list to the bare minimum. Keep in mind that you don’t have to create everything on day one. You can always edit and improve your website later.
Here are some sample (cut to the essential) sitemaps, depending on the type of website you’re trying to build.
Blog Website Sitemap
Regardless of the website type, if you have a blog keep in mind these templates. These are included by default with WordPress. But if you plan to edit them it’s a good idea to list them.
- Blog homepage (can be different than your main website homepage)
- Archives: date, post categories, post tags, authors.
- Single Blog Post
Numbers #1 and #2 can actually use the same template if necessary. And number #2 can be organized in different templates when necessary. Some websites for example, have a different design for the author archives, because in each template they include a photo, a bio, or in general some information about the author.
Simple Business Website Sitemap – Brochure Website
A typical website to present a company and its services.
- Homepage
- About
- Contact Page
- Product or Services List
- Single Product or Service Template
- Simple static pages: privacy policy, cookie policy
E-Commerce Website Sitemap
A website to sell products, physical or digital. You will likely use the WooCommerce plugin.
- Homepage
- About
- Support Page – similar to a contact page but many businesses list more than one method to allow customers to contact them.
- Product Grid/List (managed by WooCommerce)
- Single Product (WooCommerce)
- Product Categories (WooCommerce)
- Checkout (WooCommerce)
- Log in / Registration screen (WooCommerce)
- User Account template (WooCommerce)
- Static pages: privacy policy, cookie policy, any content associated with your specific terms of service, for example how you handle refunds and more. Of course, these policies pages will be more articulated and complex compared to a regular brochure website.
Subscription / Membership Website Sitemap
This category can vary a lot. Some membership websites consist of internal social networks (often managed by the BuddyBoss theme and plugin), while others are e-learning platforms that include a variety of video courses.
For this example, let’s just consider a typical e-learning platform. Let me know in the comments if you want me to write a section for a more specific niche.
- Homepage
- About
- Support Page
- Log in / Registration (plugin)
- Checkout (plugin)
- User Account (plugin)
- Courses Grid/List
- Single Course
- Lessons Grid/List
- Single Lesson
- Static pages for your policies and more. Similar to the e-commerce example.
There are several plugins you can use for subscription and membership websites, and we’ll mention them later in this guide.
Design Phase Details
Once you have defined a basic sitemap, create a section for design in your document. Here you should include any design-related ideas, including design inspiration.
Here are some resources you can use to find inspiration:
⚠️ These websites may be useful for inspiration, but there’s a catch: some of them will be extremely complicated to replicate, and a minority of designs aren’t always possible in the real world.
👉 You should use these websites to understand, roughly speaking, what kind of style you want to adopt for your website. But if this is your very first website, I wouldn’t think too much about design. I would focus more on creating a site that is simple to use and build.
When you think about the design of your website, you should always keep your users in mind. 99% of the time the real question is: will your customers find this site easy to use?
There’s endless content regarding design, and as part of this guide we can’t go too much in detail. But try to create something for your ideal user. It’s OK if you want a website that you also like, but this should be secondary if you want your website truly to succeed.
Development phase
In this section you can write anything related to plugins and functionality. I wrote some ideas on how to choose the right plugins here.
For each main feature or functionality, you can list some possible candidates for a solution.
7. How to choose a WordPress Theme
I wrote a brief article that will help you avoid the most common mistakes when searching for the right theme: How to choose the right WordPress theme.
Since this is your first website, I suggest choosing a theme that will offer you a site library: a list of semi-ready websites demos that you can easily import and modify.
The best themes, I know at the time of writing, are:
Why I think these are the best:
- They’re all quite flexible. They work great with small websites and also in more complex projects.
- They’re developer-friendly. If you ever need custom features and need to hire a developer, any good WordPress developer can easily expand them. In other words: you will likely save development budget.
- They’re truly lightweight. Every WordPress theme for sale out there will tell you that it’s lightweight with low page speed, etc. Unfortunately often that’s not the case.
8. Why you should use Gutenberg and avoid other page builders
Page builders and themes are often associated together. For example the Astra theme is often used with Elementor.
Don’t use Elementor. Don’t use WP Bakery, Divi, Beaver Builder, or anything similar. Don’t use any third party page builders. If you want a stable website that will last for the long term, use Guteneberg, the native block-based editor for WordPress.
If the native block editor is too limited for your needs, install Generate Blocks (a free plugin). This plugin adds some new blocks, and three of them in particular will allow you to build almost anything in terms of interface. The three blocks are: Grid, Container, and the Query Loop block.
The problem is that online you will see a lot of videos and articles praising Elementor and other builders. The team behind these products are really good at marketing and in convincing you that you need them. The content creators praise Elementor & Co. only for their affiliate commissions.
Page builders were useful in the past. And they were always a pain when it came to performance, and in general, stability. Some of these builders even offer way too many options to customize your website, to the point you may end up breaking your website without realizing it. More on this later when we’ll discuss testing.
If you wonder why Elementor is popular, despite clearly it’s almost never the right choice for a business website, I’ve recorded a short video about it, link here.
I’ve built websites in the past with all of these page builders. Back then, it was often necessary to use them, nowadays, things definitely changed.
Using only Gutenberg, especially in combination with one of the themes suggested above, will give your website an immediate boost in performance and increase page load speed.
📽️ Here’s a video to help you get started with Gutenberg as fast as possible:
9. Getting paid on your website
Most online businesses use Stripe. Stripe can work for one-time products and also for recurring subscriptions.
After you set up an account with Stripe, you will need to integrate it into your website. And depending on your type of website, you can choose a plugin to connect your website to your Stripe account.
10. Choose your set of plugins
It’s important to note that there isn’t a set of plugins that will be valid for any type of business. However here are some directions. Maybe you can start with these plugins, and if you don’t like them, do more research later to replace them. Or even better, leave a comment or ask a question if you have doubts 🙂
Basic WordPress Plugins
- SEO: use The SEO Framework. Since you own a WP website sooner or later you will also stumble upon Yoast, which is the most popular SEO plugin for WordPress. I’ve been recommended by SEO experts to avoid Yoast. It’s a very bloated plugin. Several of my past clients also complained about it.
- Contact forms: Contact Form 7 is a good basic form builder. Gravity Forms it’s a more professional alternative but there isn’t a free version. Formidable Forms is also fine. But I would keep the choice between Gravity and CF7. Use CF7 if a really basic form is fine. Use Gravity for something more advanced, for example a form with several conditional fields. Or if you need to integrate your form with another service. Or if you need to show the entries of a form in a public table, for example.
If you have an idea that involves users filling in forms, it’s likely that Gravity Forms will have a solution to build that idea. - Cookies: depending on where your customers are from, you may need to be compliant with some (annoying) regulations. For example if your traffic is also from Europe, you will need to display that annoying cookie acceptance banner that you saw on some websites.
For this feature, right now I like Complianz. But in the past I’ve used Cookie Notice and Iubenda, which are also fine.
Between me and you, the probability that someone will reach out to you to tell you’re not GDPR complaint is quite low. Especially if you’re a micro or small business. These regulations are mostly aimed at large corporations. However, if you prefer to stay safe, you can use those plugins. And in general as someone who builds websites full time, I’m forced to warn you about this.
WordPress Plugins to improve Performance
This of course it’s just a start. Improving performance on complex websites will be more complex than installing two plugins. However these two in simple websites often help a lot.
- Autoptimize: if your website is mostly static, this plugin will give you an immediate performance boost and improve your page load time. It’s also quite easy to configure. But be careful in using this with additional layer of caching, e.g. with Cloudflare. Your website layout may break in that case.
- WebP Express: a good solution to optimize images and serve them in webp, only in browsers that support them (all modern browsers support the webp format).
WordPress Plugins for E-commerce Websites
- WooCommerce: if you’re using WordPress, I recommend using WooCommerce, if necessary WooCommerce add-ons, and nothing else. There are alternatives, like ECWID and other products. The alternatives are often a nightmare, poorly documented, and by consequence difficult (or impossible) to customize. WooCommerce has also a large community, meaning that if you have an issue, it’s likely that someone else had it before you. So you will find either a plugin to solve your issue, or a useful discussion by searching on Google.
When you activate WooCommerce for the first time, you will get introduced to the plugin with a nice configuration wizard. You will be guided step by step in configuring a basic store. - Payments: you can use this Stripe add-on for WooCommerce. But there are also alternative add-ons you can try for Stripe and several other payment processors.
WordPress Plugins for Subscription and Membership Websites
With these types of websites, it’s harder to suggest you specific plugins without knowing more about your business. However, here are the most popular plugins to manage memberships and recurring payments (choose one):
- MemberPress: they have a free alternative, called Members, which is extremely basic (don’t use that). But MemberPress itself it’s a very solid plugin that works well even with a large user base.
- Paid Membership Pro (aka PMP) – their main plugin, is free. And it can be easily expanded with a variety of add-ons organized into three different levels of subscription plans. Compared to MemberPress this plugin offers more extensions for all sorts of needs, but can be slightly harder to configure.
- WooCommerce Memberships and Subscriptions. If you need to create a paid membership websites with WooCommerce you will need these two plugins. I don’t recommend them unless your payment processor is really niche and not supported by option #1 and #2.
To choose the best solution for you, I suggest the following:
- Carefully check and take note of which product has the best add-ons for your specific use case.
- If you can’t or don’t plan to use Stripe, ensure to choose a plugin that supports your payment gateway.
- Don’t get too crazy with add-ons or plugins in your first website version. Install only what’s absolutely necessary, and keep things simple. You’re always in time to add more features later, after your website starts to generate revenue. Especially while browsing add-ons, beware of not ending up building a large shopping list of features your website doesn’t really need yet 🙂
WordPress Plugins for E-Learning and Online Courses websites
To build your own course platform, after configuring membership / subscription plugins, you will need to configure a plugin that will manage your lessons and courses.
The main plugins in this space are Learndash and LifterLMS.
My favorite is Learndash. And the same concepts to choose your favorite plugins apply here: check their add-ons and if they support your payment gateway.
Important note about video content: don’t host videos on your website for courses. You risk to consume a lot of bandwidth and incur in performance problems or a larger bill by your hosting service.
I worked with e-learning platforms that generated millions of dollars in revenue each year. Even them used a third party service for managing videos. In my experience this third-party service is always Vimeo.
The lesson and courses are still on your website, but, the videos are hosted in Vimeo, and displayed on your lesson pages with a Vimeo player.
When it comes down to protect your content Vimeo is also quite good with that. By default, it’s easy to download a Vimeo video. But it’s possible to configure your Vimeo videos in a way that make it close to impossible to download them or even recording them by recording the screen. And needless to say, they can be configured to be private, meaning that they will be viewable only on your specific website link, behind your paywall.
Combining Membership and LMS plugins
In more professional websites builds, a popular combination consists of using MemberPress or similar to manage payments and subscriptions, and using Learndash to manage premium content: courses and lessons.
I mention this to let you know that it’s an option, but if you see that in your use case a single plugin is enough, go for it. Let’s keep the first version of your website simple.
WordPress Plugins for Social Network Websites
With WordPress, you can also easily create a website that can act as a small social network. It can even be private and behind a paywall.
A premium private social network is a very unique product to offer to your users, that often doesn’t have competitors, and can be a solid source of income. In my career I had a couple of past clients adopting this model, with over $1M of revenue per year, and most of that was supported by relatively cheap plugins:
- BuddyPress and BBPress: developed by the creators of WordPress, now mostly maintained by the community, these are the original plugins for creating communities on WordPress websites.
- BuddyBoss: the most popular plugin (and theme) to create social networks with WordPress. The case of BB is a weird one. Because this plugin includes in its files older versions of BuddyPress and BBPress (yeah, literal copies) but they also added some extra features on top of that. Some users complain about the support quality of this product (they banned clients asking for support on their official Facebook page) and in some instances, by default, this plugin may give you performance problems.
So should you avoid BuddyBoss and just go with option #1? Well, not always.
BuddyBoss will definitely save you some time in creating your website. Option #1 here will require way more work from you (days or even months of work). If you’re an advanced user or plan to hire a developer, it’s likely that after some effort BuddyPress and BBPress will be a more professional solution.
However, since I assume you’re starting out, if you need to create a social network website, BuddyBoss is a valid option. As I mentioned, I had some clients in the past that despite BuddyBoss’ issues, did quite well anyway.
11. Creating Pages
Let’s do a quick recap. At this stage you should have:
- Your domain configured correctly
- WordPress installed
- A working WordPress theme
- Some plugins installed and configured
Maybe you already added some pages as part of the configuration with WooCommerce or similar plugins.
Now you can start adding the rest of the pages to your website. If you’re using GeneratePress or Astra you can import one of their demos, if you think they help you save some time.
Next, let’s take a look at how to use Gutenberg (aka the block editor).
12. Using Gutenberg and Blocks
The native block editor simplifies the creation and management of content on your website. Its user-friendly interface lets you add, remove, and modify blocks to build your webpage layout.
You can find a lot of documentation online about Gutenberg which I will not copy / paste here. However, new Gutenberg users, in my experience, make often some very specific mistakes, and I will try to address them here in this section. So hopefully you’ll be able to get the most out of the block editor, use less plugins, and keep your website highly performant.
How to Add and Manage Blocks in Gutenberg
To add a block, click the “+” icon in the top left corner of the editing screen or right under an existing block. This opens the Block Inserter menu displaying various block types like paragraphs, headings, and images. Select the block type you need to use, and it will be inserted into your page.
Right below the block search bar, the Block Inserter includes three extra tabs: Patterns, Media, and Reusable Blocks. These tabs provide access to pre-designed block patterns, media-related blocks, and blocks that you have saved for reuse.
Removing Blocks and Editing Block Settings
First, click on a block to select it. Then, find the block toolbar that appears above or to the side of the block. Click the three-dot menu icon, also known as the “More Options” button, and choose “Remove Block” from the dropdown menu.
Gutenberg offers settings to customize each block. These settings will vary depending on the type of block. When you select a block, its settings can be found on the right side of the editor in the “Block” tab. If the settings panel isn’t visible, click the settings icon in the top right corner to toggle its visibility.
Background and Text Color Settings
All native Gutenberg blocks include a setting to change their background and text colors. You can find these in the Styles Tab on the right side of the editing screen, after you have selected a specific block.
Be careful when working with background and text color. It’s quite easy to select a text color that will be impossible or hard to read on the wrong background color.
We often see this even on relatively popular websites. There would be a lot to say about accessibility, but for now, if you experiment with color, you can use this website to check contrast. Make sure text and background colors always pass WCAG AAA.
How to Select Multiple Blocks
Selecting multiple blocks can be useful for applying formatting or other changes to a group of blocks at once. There are a few different ways to select multiple blocks in Gutenberg.
Method 1: use the Document Overview feature. To access this feature, click the “List View” icon, located in the top left corner of the editor or press Shift + Alt + O. This will display an outline of your content with all the blocks listed in hierarchical view. You can click on a block and then hold down the Shift key while clicking on another block to select all blocks in between.
Method 2: you can also select multiple blocks within the editor is by clicking and dragging your cursor over the blocks you want to include. This second method can be less reliable, especially when complex blocks are present on the page, so I suggest using Method #1.
Copying and pasting blocks in bulk is also possible in Gutenberg. After selecting multiple blocks, click the three-dot menu icon in the block toolbar and choose “Copy Blocks” from the dropdown menu.
The most effective way to paste the blocks, either on the same or a different page, is to add an empty paragraph block and use CTRL + V or right-click and select Paste, as if it were regular text. This will insert the copied blocks as a group, maintaining their original formatting, content, and settings.
Reusable Blocks
Reusable blocks allow you to save a single block or group of blocks that you can use again across your website. This is especially helpful for content you need to add frequently or consistently, for example a small note at the end of each post.
To create a reusable block, first select the block or group of blocks you want to save. Next, click the three-dot menu icon in the block toolbar and choose “Create Reusable Block” from the menu. You can give your reusable block a name, making it easier to find and use later.
To insert an existing reusable block into your content, click the “+” icon on the top-left area of the editor, to open the Block Inserter menu. Go to the “Reusable Blocks” tab, and you’ll see a list of all the existing reusable blocks.
Keep in mind that changes made to the reusable block will affect all instances of it across your site. If you want to edit the content of a reusable block without affecting other instances, click the three-dot menu icon for that block and choose “Convert to Regular Block” This will turn the reusable block into a regular block, allowing you to make changes without impacting other instances.
How not to mess up the page structure
This is a current issue with Gutenberg that I think will be soon be improved or solved in the near future. It’s easy for new users to create nested containers of content without realizing it. This for example may add extra unwanted spaces around your content, which will make it look weird or inconsistent.
In this image, one of the paragraphs has a different spacing because it’s inside a group container within Gutenberg. While this is an obvious example, sometimes it can be challenging to identify accidentally created nested containers. Occasionally, the layout may appear fine in Gutenberg but slightly distorted on the front-end.
A quick way to determine if your page has a structural issue is by clicking on a specific block and checking the Navigation component at the bottom left of the editing screen, this one:
In this case, by clicking on the paragraph, we can see that it’s inside a Group. You can move the block manually by dragging it outside the group from the editor or using the Document Overview feature, which is often more accurate and easier to use. Or you can select the group, then click on the three-dot menu and select “Ungroup”.
In general, to maintain a consistent layout across pages, it’s best to use as few nested blocks as possible.
Managing Blocks in Widget Areas
Almost every WordPress theme will include some widget areas. These can be sidebars, areas of the footer or the header of your website. The content of these areas may be repeated on a variety of templates.
In WordPress, 80% of the time Widget Areas are used to present one or more menus. Some websites include ads, or other components.
In recent WordPress versions widget areas work on a block-basis and include all the blocks you can already use in Gutenberg. You can edit these areas in Appearance > Widgets.
13. Configuring the checkout
At this stage, it’s likely that regardless of your website type, a plugin has guided you in configuring your checkout phase.
However, if you still need to configure it or you want to review your settings, here are some links to common scenarios:
Configuring Stripe on WooCommerce
Configuring Stripe on MemberPress
Configuring Stripe on Paid Membership Pro
Configuring Stripe on LearnDash
Let me know with a comment if you want me to include more links or tutorials for other payment gateways and plugins.
14. How to test a WordPress Website
Every time you think a page of your website is done and ready, you should test it. Since you will build your website mostly on desktop, the first mistake that many users make, is completely ignoring how the website looks on mobile devices.
Don’t spend endless hours on your website and leave all the testing at the end!
Most traffic you will receive, regardless of your business type, will be from mobile devices. So if your website is broken or looks “off” on a mobile device that will certainly cost you revenue. Unfortunately nowadays users generally have really little patience when it comes to low-quality websites.
If you want to make sure you’re getting your website right and you have time, I suggest using LambdaTest. A basic use of this software doesn’t require technical knowledge from you, but it isn’t free. After payment, on their website you should head to the Real Time Testing section.
Here, you can choose real devices, and see how your website looks on them. Keep in mind that at the very minimum you should test your most important pages.
If you don’t want to invest hours with Lambda, OK, but at the very least while you build your website keep your smartphone close, and check your website from a mobile device regularly.
While I’m writing this, there isn’t an automated technology that does these tests automatically for you. You could create automated tests, but that requires technical / coding knowledge.
Testing is hard work. But unfortunately this is quite important. If you keep your website simple, your website will be mostly OK right away, so you shouldn’t invest countless hours in this.
Test your checkout with a real card
The plugins that help you manage the checkout process usually include guided setups, so it’s quite easy to configure them. Some of them may mention a sandbox mode for your payment method, ideal for testing your website payment process.
However, once you know the sandbox mode is working, I would also recommend doing a real test, in live mode, with a real card. You can create a product or a membership of $0.01 or another micro amount, to check that everything works, and start to get familiar with your payment gateway dashboard as well.
In this way you can also test a possible refund process, if you must or plan to offer one.
15. How to migrate your WordPress website from staging to production
You may have created your website directly into production. In this case, head over to Settings > Reading and check that the “Discourage search engines from indexing this site” option is unchecked.
If you’ve built your site in a staging environment, depending on your hosting it can be quite straightforward to deploy it in production. For example both Kinsta and WP Engine will let you do this via their hosting interface. But I need to write here one big warning.
⚠️ Concrete risks of losing data during migrations
This shouldn’t be the case with Kinsta and WP Engine since you can always make a full backup and restore your production website before migration if necessary.
But keep in mind that the following scenario may happen to you in the future:
- You go live with your first website.
- After a year or so, you decide to create a new version of the website.
- The new version requires 1 to 2 months of work, and during this period, you regularly receive orders or add new blog posts, or get new subscribers on your main production website. In brief, your production database is getting updated frequently.
- So when your new website, in staging, is ready to be deployed, your production website may be 2 months ahead with its content.
- If you just migrate the new site from staging to production, you will lose all the orders, or blog posts, or subscribers of the past 2 months.
How to solve this? Well, unfortunately there isn’t a solution that fits everyone on this problem. I highly recommend consulting a developer for this type of migration.
Since this guide is for building your very first WordPress website (or close to it), we’re a little bit off topic, but keep this in mind for now. It will be useful to know when you will do your very first redesign.
16. Getting traffic
This is often a problem that is completely ignored by someone who starts building a website with the goal of creating a new source of income.
The bad news is that unless you have a solid social following, like on YouTube or Instagram, LinkedIn or TikTok, no one is probably waiting for your new product or service out there.
Some are worried about receiving bad feedback about their website, but really, that would be actually a good sign in some sense because it means your website is getting traffic.
So the real problem is when your website is completely ignored, and your Analytics often shows only one user visiting the website: you.
The good news is that you can generate a decent amount of traffic if you’re willing to put work into the website.
Also, not all businesses need lots and lots of traffic. WordPress Advisor has a really low amount of traffic, but it’s enough for me. I don’t need many clients per year. So how much traffic you need depends on your product or service.
My very first blog, got to 15,000 visitors per month in roughly 1.5/2 years. Unfortunately I made the fatal mistake of giving up too early, since back then I had no idea on how to optimize my site’s revenue. RIP Geek-Generation.com.
But over the years I saw all sorts of business owners, starting from zero and growing their ventures well into the six figures.
Here’s what they usually have in common:
- They write blog posts consistently, with specific SEO goals. Usually at least two per week.
- They’re consistent on social media, not on a platform chosen randomly, but on a platform where they know their target market hangs out.
A good blog capable of providing value can still bring in solid traffic.
Half of the work is not giving up. The other half is to publish content that is useful to your target market.
The alternative is of course to invest in marketing. But usually it’s not cheap.
So you either pay with your time or with money: there isn’t a shortcut.
At the same time, remember that you may not need too many followers or traffic to make a good profit.
What’s next?
You should have enough information to start your WordPress-based project. If you’re interested in learning more about conversion rate optimization (if your project needs that) you can check this free template.
If you’d like to learn more about WordPress and how to manage and build a website, checkout my YouTube channel: @wordpressadvisor.
And as always, feel free to reach out if you have any questions. I update this guide regularly with new concepts and improvements depending on your feedback.
So if you have any comment or questions add them down below 🙂 over time I will add more sections and content, based on your comments and messages. You can also contact me in private via this form.
Guide version 1.2 – Last update May 27th, 2024
@Karim: thank you! I’m happy to know that this was helpful, I’m currently working on a more detailed YouTube series of tutorials about these concepts and I hope to release that soon 🙂
I’ve decided to go for wordpress and build a page myself for my planned future business. Stumbled on this from a Reddit post. Being tech affine but never having built a website or worked with wordpress, I consider this a very helpful starting point in the jungle of information – and as you mention affiliate-marketing targeting content. Thank you.
Happened to stumble on this from Reddit. The background on this website is terribly distracting. Pls fix. All the best to you.