How to build a WordPress website

Welcome to my opinionated guide for building a WordPress website!

I’ve advocated for WordPress since learning about the platform ten years ago, and in that time, WordPress has played a major role in my career.

I got my start building WordPress sites for small businesses. That grew into working for digital agencies & tech startups, organizing meetups and WordCamps, teaching ConEd classes, and eventually joining the team at GoDaddy – the world’s largest WordPress hosting provider.

While I rarely do in-person workshops or training sessions anymore, I still want to help people with WordPress. That’s why I’ve put together this guide – I wanted something that I could point to and continue developing over time.

Before we get into it, let’s clear up a few things.

First, this is an opinionated guide. That means it covers my approach. There are plenty of other guides out there that may point you in a different direction. And that’s just fine! The great thing about WordPress is that it’s so flexible – you can do what you want with it.

Second, this guide is just a starting point. You’ll learn how to get a WordPress website up and running. But I’m not writing with a specific type of website in mind. If you’re looking for a step-by-step guide to building a portfolio site, an eCommerce site, or a community site, this won’t get you the full way there. (I’d like to write those eventually, though!)

Third, I will never ask you to write code. If you want to get into the nitty-gritty of WordPress development, I highly recommend checking out Zac Gordon’s Complete WordPress Themes and Development course, blog posts from Tom McFarlin, and the official Developer Resources hub on

With that out of the way, let’s get to the building!

How to build a WordPress website

Here’s the basic breakdown:

  1. Choose your flavour of WordPress
  2. Register a domain
  3. Choose your WordPress host/platform
  4. Connect your domain to the host/platform
  5. Set up WordPress
  6. Configure WordPress
  7. Add another user (optional)
  8. Customize WordPress with a theme
  9. Add your pages
  10. Add more functionality with plugins
  11. Secure WordPress
  12. Set up Google Search Console
  13. Set up Google Analytics
  14. Ongoing maintenance

Why should you use WordPress?

If you’re reading this, chances are you’ve already settled on building a WordPress site. Awesome.

But what if you’re building a site for someone else? What if you’re on the fence? Or what if you’re otherwise uncertain about using WordPress? Let me offer you some reassurance.


WordPress is the world’s most popular platform for building websites. It powers over 30% of the web, and that number keeps growing each year.

It’s backed by a global community of designers, developers, and businesses. These people contribute to the ongoing growth and upkeep of the platform.

WordPress is popular because WordPress works. It’s that simple.

While WordPress started as a blogging tool, you can build so much more than that with WordPress today. You can build websites for personal hobbies, small businesses, large enterprises, online stores & eCommerce sites, community groups, publications, creative portfolios, and so much more.

If you have an idea for a website, chances are you can build it with WordPress. There are thousands of free themes to customize your site’s appearance. And there are thousands of free plugins to add more features & functionality.

If that’s not enough, there are premium themes and plugins that you can buy. And if that’s still not meeting your needs, you can hire a web developer or agency to build something for you.

What about the price? WordPress itself is free. You can get started with nothing more than a domain name and an inexpensive hosting plan. As your site grows, WordPress can grow with it. You don’t have to worry about any expensive licensing costs or service fees.

What about the support? On the free side, you have a global community of volunteers offering help online and at events. On the paid side, there are companies specializing in affordable WordPress support services.

And last, but not least: What about your restrictions as a WordPress user? If you’re on a platform like Squarespace or Wix, you’re like a tenant and they’re the landlord. Those companies can do whatever they want, whenever they want. They can change how their service works or kick you off the platform.

That doesn’t happen with WordPress. Even if things go awry with your web host, you can migrate your WordPress site to a different web host. Same goes for the plugins and themes you’re using. Don’t like something? Change it! WordPress is open source, which means that you’re free to do whatever you want with the code.

The bottom line: WordPress is a fantastic platform for most websites. It offers an incredible amount of freedom and flexibility. So unless you’re a developer (or have access to developers), it’s your best bet for return on investment.

I hope, by this point, you’re sold on WordPress, so let’s get on to choosing which version of WordPress you want to use.

Choose your flavour of WordPress

What’s the difference between and You may have seen ads online or on TV for Yet there are web hosts like GoDaddy also promoting WordPress.

But aren’t they competitors? What gives?!, also known as self-hosted WordPress, refers to the WordPress software itself. You can download it at (hence the name). It’s what web hosting providers, like GoDaddy, run on their servers. You can do whatever you want with this version. is a service. It’s a network of sites all running on a modified version of the WordPress software. It has more restrictions than the WordPress version used by web hosts.

You can start building a website on for free, but you’ll have to pay for basic customization. Depending on the features you need, you may end up paying more than what you’d pay for regular web hosting.

I generally recommend the free, self-hosted version of WordPress. If you’re comfortable with a bit of admin work, you can get a site up and running with it on an affordable web hosting plan. That’s the direction I’m following for the rest of this guide.

Register a domain

Your next step is to register a domain name. If you already have one, great – but I’d still give this section a read.

Your domain name is an investment. It is the thing that identifies your site as your site. The design, web hosting, pretty much everything can change – but the domain name? That sticks around.

It’s like naming your kid, or your dog. It is how they’re identified. No matter how they change, their name is still their name. And changing that name is a big deal. For websites, changing the domain name is like saying “this is a new website”.

Choose a domain name that is going to work for you now and will continue to work for you ten years from now. You don’t want to go through the pain of changing your domain in the future. Trust me on this.

While you’re considering possible domains, see if those names are free on social media. A domain name that matches your social media adds another level of polish to how you appear online. That’s important for first impressions and your branding. (I’m still bummed that I couldn’t secure andymci on Facebook, Instagram, or YouTube.)

Now, another common question I get is… what domain extension should I use? Going for .com is a safe bet. Especially if you have a registered or trademarked business name. Try to get the .com for it.

If you want to associate with a particular country, I would look at nabbing a ccTLD. ccTLD stands for country-code top-level domain. It’s a good choice if you want to show where you’re based, or if you want to target customers in that region.

For example, I flipped my domain over to a .ca because I wanted to double down on my Canadian identity. I still own, but it redirects to

Now, what about potential domain name variations? Should you pick those up as well? It depends. If you expect common misspellings, then yes – consider grabbing those domains. But be reasonable about it.

What you want is a domain name that is pleasing to read, easy to remember, and easy to spell. Anything above and beyond that is a nice to have. And whatever you choose, stick with it. Your domain is a long-term investment.

Choose your WordPress host/platform

Alright, so we know we’re running with a self-hosted WordPress site, and we have our domain name. The next step is to choose our WordPress hosting platform.

There are a bunch of options here. I may do a full-blown guide on choosing a WordPress hosting platform at some point in the future. But for now, let’s keep it simple.

For beginners, I’d look at one of two options: a shared hosting plan, or a Managed WordPress hosting plan.

A shared hosting plan is your barebones, basic web hosting package. It’s what many (most?) of us long-time WordPress users got our start on.

These plans give you server space with the standard set of features you need to run a WordPress website. They usually come with a cPanel dashboard (or similar) to manage your hosting. While it might seem overwhelming at first, don’t worry – you’re only going to use a small part.

A word of advice: While these plans often include email hosting, I don’t recommend using it. Email on shared hosting is unreliable for a bunch of reasons. Instead, use a dedicated email hosting provider, like Office 365 or G Suite, to handle your email.

Would you rather not deal with any server management at all? Or would you prefer a host that’s optimized for WordPress? In those cases, look at managed WordPress hosting. This is a specialized type of hosting service only for building WordPress sites.

They usually cost a bit more than a basic shared hosting plan. But they do a lot for you. These hosting plans will handle the WordPress installation, optimization, and updates.

A Managed WordPress hosting plan usually includes a one-click staging environment. That’s a second WordPress installation for testing changes without affecting your live site. They also feature enhanced performance via caching and tuned server configurations.

These features are crucial for larger or growing sites. If you were using a regular hosting plan, you would have to do some server admin work or development work to add them.

That said, if cost is a major consideration, a shared hosting plan will give you the most bang for the buck. It’s also a good choice if you want to “kick the tires” on a WordPress installation.

I like to use GoDaddy Business Hosting for that. It’s more powerful than basic hosting, and I can install an unlimited number of WordPress sites on a single plan.

But if you want performance and convenience rolled into one solution? Go for Managed WordPress.

Connect your domain to the host/platform

If using shared hosting (cPanel): Make sure you add your domain in cPanel. This is how the server connects your domain name to the WordPress installation.

Find the IP address for your server. This is usually listed on the cPanel sidebar.

If you’re using a Managed WordPress host, the location of the IP address might differ. For GoDaddy, you’ll find it on your Managed WordPress management screen.

Copy the IP address.

Next, go to where you manage your domain. This is usually the same place where you’ve registered the domain. Log in and edit the DNS records. Make sure the A record and www. records point to the IP address of your web host.

[ Tip: Did you register your domain on GoDaddy and you’re using GoDaddy hosting? GoDaddy will try to automatically connect the domain for you. ]

The updated DNS records can take a while to kick in. You can check on the status by typing the domain into your browser and see what comes up.

You can also perform a DNS lookup with MX Toolbox. The IP address returned for the domain name should match whatever you’ve set in your DNS records.

If the records don’t match, sit tight. It can take up to 24-48 hours for the DNS changes to propagate – that is, reach every system on the internet.

Once you know that your domain is pointing to your hosting provider, you can move on to setting up WordPress.

Set up WordPress

If you’re using shared hosting:

Within cPanel, find the installer software provided by your hosting provider. Softaculous and Installatron are two popular ones.

From their software menu, find and select “WordPress”. Follow the installation prompts. You’ll specify the domain to use for the site. Then you’ll set the username/password for the administrator account.

If you’re using a managed WordPress hosting plan:

The installation process differs depending on your provider. For GoDaddy, you’re taken through a setup wizard. It’ll set your site name, user details, and load a pre-built site template. (Handy for jumpstarting your project!)

You should receive an email with login instructions after WordPress finishes installing.

Configure WordPress

Go to the domain for your WordPress site. You should see the default WordPress theme with a placeholder post. (If you were able to choose a different theme during the setup process, you’ll see that theme instead.)

In the URL address bar, append /wp-admin/ to your domain. This’ll take you to the administrator backend for your WordPress website.

Log in using the credentials you set in the previous step. If you’ve forgotten your credentials, click the “Forgot Password?” link and follow the prompts.

When you log into WordPress you’ll see the WordPress dashboard. This is one of several administration screens that you’ll become familiar with.

The Dashboard screen provides an overview of your site’s status and activity. Depending on the plugins you’re running, you may see other boxes on this screen.

At the top of each screen are two tabs: Help and Screen Options. The Help tab contains brief documentation relevant to whatever screen you’re on. The Screen Options tab lets you configure different settings for the screen.

Along the left side of the dashboard is the administrator menu. This is how you’ll find your way around the back-end of WordPress. The available menu items depend on what a user has access to, and the installed plugins.

Let’s head into the General Settings first. These were set during the installation process. You’ll rarely have to touch these settings after your site is up and running.

Next are the Writing Settings.

The only thing in here I ever bother with is the Default Post Category. WordPress uses “Uncategorized” by default. That’s not a particularly helpful category. So later on, after I create new categories, I’ll come back in here and change the default.

Reading Settings has a few options that I’ll change depending on the type of site I’m building.

If I’m building a blog, I’ll leave “homepage displays” set to “your latest posts”. If I’m building any other kind of website, I’ll change it to “static page”. You’ll need to create the pages first before you can choose them here, so I’ll come back to this in a couple of steps. I’ll leave the other settings to their default.

I only change the Search Engine Visibility setting if the site is under construction. I don’t want search engines to list those sites. So I’ll combine this option with a plugin to restrict site access. (More on that in a moment.)

For Discussion Settings and Media Settings: I usually run with the defaults.

Permalink Settings: This controls the URL settings for your WordPress site. 90% of the time I’ll go with “Post name” as the permalink structure. It’s better for SEO and I prefer the aesthetics. The only time I’ll go for a day- or month-based URL structure is if I’m building a news site.

Privacy Settings: This is a new addition to WordPress. They added it last May in response to Europe’s GDPR laws. It serves two purposes. One, it gives you a brief intro to the importance of protecting user data. Two, it lets you create or select a Privacy Policy page.

Those are the default settings. Depending on the theme or plugins you’re running, you may see other screens.

On my site, I have settings available for Insert Headers and Footers; Limit Login Attempts; GoDaddy Email Marketing; Sharing; and SSL. These all come from plugins that I’ve installed on my site.

With your settings configured, let’s move on to adding another user to your site.

Add another user (optional)

Sharing account credentials is a bad idea in general. Don’t do it. Instead, every person who manages a WordPress site should have their own user account.

If you’re building a site for someone else, create a user for them. Ditto for others contributing to the site (e.g. writing articles or updating content).

WordPress has a smart tiering system of user access called roles and capabilities. The gist is that you can give users a level of access that’s appropriate for the type of work they’re doing.

If I’m building a site for a client, I’ll give them full Administrator access – it’s their site, after all. But if my client is a team of people, I can restrict access for some team members, depending on how they’ll use the site.

Adding another user is simple:

In the admin sidebar, click Users. This’ll take you to the full Users list.

At the top of the screen, click Add New.

Fill in the blanks. (Keep in mind you can’t change the username in the future.)

Choose a role that’s appropriate for the user.

Click Add New User.

You’ll end up on the main Users screen with a notification at the top. This confirms you added the new user.

To edit any existing user — including yourself — click their name in the list.

That brings up the Edit Profile screen. This is where you’ll specify extra details about the user. Some information may appear on the site, like their author bio and author profile picture.

Next, let’s get into the fun stuff: customizing the site with a theme.

Customize WordPress with a theme

Themes control the look and feel of a WordPress site. Regardless of what theme you choose, your content will stay the same. How it appears (and where it appears) may change.

In the admin sidebar, click Appearance. This’ll take you to the Themes screen. This is where you can view all the themes installed on your WordPress site.

Want to use a different theme? There are thousands of free themes available in the Theme Directory. You can browse them all from within your WordPress back-end by going to Appearance > Themes > Add New.

At the top of the Add Themes screen is the search bar. You can click through:

  • Featured (random selection)
  • Popular (based on installation numbers)
  • Latest (most recent additions to the directory)
  • Favourites (if you have a user account)

The Feature Filter lets you refine your search by looking for themes that match a specified tag. For example, if you’re building a site for an artist, you might want to find a theme built for portfolios.

My favourite theme — and the one I generally use in all my builds these days — is GeneratePress. It’s built and maintained by Tom Usborne, a fellow Canadian based in B.C.

The free version is great, but the Premium version is an unbeatable value at only $50 USD per year. That gets you some amazing customer support, plus a bunch of powerful addons. The best part? That $50 fee is good for an unlimited number of websites.

You can find the free version by searching for “generatepress” on the Add Themes screen.

Add your pages

When I’m building a new site, I generally stick with the following pages:

  • Home = Main page of the site.
  • About = The back story. All about the person or business.
  • Products / Services / Portfolio = What the person or business does.
  • Resources = Library of evergreen resources. Could be a simple page of links.
  • FAQ / Support / Contact = How people get in touch, and what to know before they do.
  • Blog / Updates = The Posts page.
  • Legal / Terms / Privacy Policy = All the small print.

 This covers marketing sites, eCommerce sites, and personal sites.

Add more functionality with plugins

WordPress is great out-of-the-box, but there are some places where it falls short. So after you’ve set up your pages, the next step is to add more features and functionality to your site using plugins.

The features you’ll want to add will depend on the type of site you’re building. But for most sites, these are my go-to plugins after the install:

Members, a plugin that lets me configure WordPress user roles and capabilities. It also lets me lock down the site by requiring users to log in to view it. (I use that quite a bit on sites that are under development.)

SeedProd Coming Soon, an alternative solution for putting a site in “maintenance mode”.

WPForms, a lightweight plugin for building interactive forms.

SEOPress, for search engine optimization. I used to swear by Yoast SEO, but I’ve found SEOPress to be a solid replacement. It does everything I need.

Jetpack, for connecting to the network and adding a bunch of handy features. I like it as an easy all-in-one solution, especially for new or casual WordPress users.

Media Library Assistant, for organizing and enhancing the otherwise barebones WordPress media library.

Beaver Builder, for when I need more control over page layouts.

Sucuri, for monitoring my site’s security and alerting me of any changes. (I’ll touch on securing WordPress in more detail in the next step.)

With these plugins, I have pretty much everything I need to build a solid WordPress site.

Secure WordPress

Installing a security plugin is the first step in securing your WordPress site. But there’s a lot more you can do, both on and off WordPress.

Use secure passwords, especially with any accounts that have administrator access. When you add a user, WordPress will generate a secure password for them. If you’d like to change the password, WordPress will show you how secure it is.

Install Limit Login Attempts Reloaded. This plugin caps the number of login attempts a user can make before blocking them from trying to log in.

Keep your WordPress installation updated. WordPress gets security patches and bug fixes between major releases. If you’re using a Managed WordPress hosting plan, your provider should take care of the updates for you. If you’re on a cPanel shared hosting plan and used an installer, your site may be set to auto-update as well.

Keep your themes and plugins updated. As with WordPress itself, actively-maintained themes and plugins will receive regular updates.

Run ongoing backups and save those backups somewhere other than your web host. For example, you can use the Updraft Plus plugin to save site backups to Dropbox, G Suite, or OneDrive. That way, if something goes wrong with your hosting, you have backups stored elsewhere.

Set up Google Search Console

Google Search Console connects your site with Google’s search engine. It’s also Google’s primary method of communicating with website owners.

With Search Console, you can see how your site is performing in search results. You can identify SEO issues before they get out of hand. And you can provide Google with instructions about how your site should appear in search.

Sign up for Search Console with a Google account. Then follow the prompts to submit and verify ownership of your site.

If you registered your domain with a company like GoDaddy, Google can try to verify ownership for you.

Otherwise, you’ll need to add some code to your site to confirm ownership. Popular SEO plugins like Yoast SEO and SEOpress have you covered here. Copy/paste the Search Console code into the plugin settings. 

Set up Google Analytics

Along with Search Console, the other Google service I always use is Google Analytics. It’s the de-facto standard for monitoring website activity. It connects with the rest of Google’s services, like Search Console and Google Ads.

Even if you don’t go deep into Google Analytics, the basic reports provide valuable data. You can learn a lot about your site visitors as a whole. Where are they coming from? What devices are they using? What content are they looking at? How long are they staying on your site? How many are new versus returning?

Sign up for Google Analytics with a Google account (the same one you’re using for Search Console). You’ll create a new Google Analytics account first. Within that account, you can add several properties (sites).

When you add a new property, you’re given a tracking code to add to your site.

There are WordPress plugins that can handle adding the code for you. That includes SEOpress – my SEO plugin of choice. Copy and paste the tracking code ID into the SEOpress settings.

Ongoing maintenance: A website is never done.

At this point, you should have a WordPress site up and running. Congratulations! But this is the beginning – you’re just getting started.

A website is never “done”. There’s always more work to do. That might include updating the site software (WordPress + your theme + plugins). It might include changing out-of-date information. And if you’re doing content marketing, it’ll include adding new posts and pages to your site.

Don’t let this overwhelm you!

One of the things I love about working on websites is that you don’t have to do everything at once. The site doesn’t need to be perfect when you first turn it on. There’s always an opportunity to do more.

Take small steps. Keep a running list of features you’d like to add or changes you’d like to make. Work through the updates one at a time.

Set a routine. Will you tackle one per week, or one per month? Will you do some of it yourself, and bring in some experienced support for the rest?

With every step you’re going to learn something new. You’re going to improve. You’re going to make your site better. If you decide to go an build another site, you can take everything you learned and apply it to the new one.

That’s why WordPress is such a great choice. WordPress is WordPress. Knowing how to use it is a transferable skill. You’re always dealing with the same basic combo of posts, pages, plugins, and themes.

What next?

Ready to get started building your first site?

I recommend grabbing a domain and WordPress hosting plan at GoDaddy. Because it’s all connected, some of the steps I’ve mentioned above are a lot easier. And if you run into any problems, help’s a phone call away, 24/7/365.

That’s it for my guide. If you found it helpful, please consider subscribing to my newsletter below. You’ll be the first to know about any updates to this guide and any new guides I’m writing. You’ll also receive exclusive resources that I don’t publish on my site.

Thanks, and good luck with WordPress!