Decide to build a WordPress site and you hit a wall before you even start: wordpress.com and wordpress.org. Almost the same name, completely different things. Pick wrong here and every step after it goes sideways, so that fork is where this guide starts.
This blog runs on WordPress. We installed two of them — an English site and a Korean one — directly on a server, and it took a full day. What we learned the hard way is folded into the steps below.
0. WordPress.com or self-hosted?
WordPress is both a piece of software and a company’s hosting service. Hence the split.
WordPress.com is the service. You sign up, you write, and you never touch a server. There is a free tier, and its limits are sharp: no custom domain, so your address is yourname.wordpress.com, and WordPress.com puts its own ads on your site. Not your ads — theirs. A custom domain and third-party plugins start at the Personal plan, $4 a month billed annually. Premium is $8, Business $25, Commerce $45 on the same annual billing.
WordPress.org is the software. Download it free, install it wherever you want. The domain and the hosting are on you.
Which one? If there is any chance you want the site to earn money, go self-hosted. AdSense needs your own domain and your own site, and the free WordPress.com tier gives you neither. If you just want to write and never think about maintenance, the free tier is a reasonable place to sit. Everything below assumes self-hosted.
Still deciding whether WordPress is the right tool at all? Read the platform comparison first. This guide picks up after that decision.
1. Three things to buy (one is free)
| Item | Rough cost | Note |
|---|---|---|
| Domain | $10–20 / year | .com costs more than most alternatives |
| Hosting | $3–15 / month | Pick one with a WordPress installer |
| WordPress | $0 | The software is free |
| Theme and plugins | $0 and up | Free ones are genuinely fine |
Cheapest realistic start is somewhere near $60 for the first year. A premium theme or better hosting moves that up.
2. Buy the domain
Search for the name at any registrar, pay, done. Takes minutes.
One thing to check before you pay: the renewal price, not the first-year price. Registrars discount the first year heavily and the second year is the real number. A domain is something you keep, so year two is the price that matters. Some registrars sell at cost with no renewal jump; some triple it.
Pick something short and spellable — a name someone can write down after hearing it once. Hyphens and digits are a pain to say out loud. And if you buy the domain from the same company that hosts your site, the connection between the two gets configured for you, which is one less thing to learn on day one.
3. Pick the hosting
You can reduce the criteria to one question: does it install WordPress for you?
Bluehost, Hostinger, and SiteGround all do, with a one-click installer, a free Let’s Encrypt SSL certificate, and usually a free domain for the first year. Entry plans advertise around $3 a month.
Read that price carefully, because it hides two things. It assumes you prepay for two or three years up front. And it is an introductory rate — renewals commonly land three to four times higher. A plan advertised near $3 can renew above $10. Nobody is hiding this exactly, but it sits below the fold. Budget for the renewal, not the banner.
An entry plan is enough for a new site. A few dozen visitors a day does not need anything bigger. Upgrade when traffic asks you to. Detailed specs and prices are in our hosting comparison.
4. Install WordPress
With a one-click installer: open your hosting dashboard, find WordPress, click install, type a site title and an admin account, wait a few minutes. That is the whole step.
Without one, you do it by hand. Download the archive from wordpress.org and upload it to your web folder over FTP. Create a database in your hosting panel and write down its name, user, and password. Visit your domain in a browser and the setup screen appears; feed it the database details and pick your site title and admin account. WordPress calls this the five-minute install, and the name is honest when the server is already set up for it.
When you choose the admin username, do not use admin. It is the first name every automated login attack tries.
This step cost us a day
We installed on a bare server with no installer. Unpacking the WordPress archive failed on the first try. After the install finished, every post URL returned 404. Image uploads failed silently, with no error at all. Details are further down, but here is the summary: none of those problems exist on hosting with a one-click installer. Unless you have a reason to run your own server, use the installer.
5. Five settings to fix before anything else
Log in at yourdomain.com/wp-admin. You will want to go pick a theme. Do these five first — they are the ones that cost you something if you change them later.
1. Settings → Reading: uncheck search engine visibility
This is the big one. Near the bottom of Settings → Reading, under Search engine visibility, sits a checkbox labelled “Discourage search engines from indexing this site”. If it is on, Google skips you entirely. It exists so you can hide a site while you build it, and people forget to turn it off for months. If you have been publishing and nobody arrives, look here first.
One more thing lives on that screen. The setting at the top decides what your front page shows. Leave it on your latest posts for a blog, or pick “A static page” if you want a fixed landing page instead and a separate page for the posts. Ours stays on latest posts.
2. Settings → Permalinks: choose Post name
This controls the shape of your URLs. The default looks like ?p=123. Post name gives you yourdomain.com/your-post-title/, which readers and search engines both prefer.
Set it once and leave it. Change the structure after a hundred posts and every old URL 404s, taking your search rankings with it. More detail in our permalinks guide.
3. Settings → General: title, tagline, timezone
The site title shows up in search results and browser tabs. The tagline is your one-line description. Set the timezone to yours, or scheduled posts publish at odd hours.
4. Settings → Discussion: decide on comments
We closed comments and pingbacks on both sites. On a new site the spam arrives long before any real reader does, and deleting it is time we would rather spend writing. You can open them whenever you like.
5. Keep categories few
A common early mistake is creating ten categories before writing anything. Posts scatter one per bucket and the site looks emptier than it is. We use a single category. Split later, when there is something to split.
6. Choose a theme
Appearance → Themes, then Add Theme, gives you thousands of free ones. The temptation is to pick the flashiest. The criterion that matters is weight. A heavy theme slows the site down on its own, and slow sites lose both readers and rankings.
We run GeneratePress. The free version covered everything, and the tweaks went into Additional CSS under Appearance → Customize: body text at 18px, line height at 1.8, more space between paragraphs. We deliberately load no web fonts. One nice-looking font can cost a real chunk of load time, and the system font stack reads fine.
Theme-by-theme notes, ranked by install count, are in our popular themes post.
7. Create three pages
Pages are separate from posts — fixed documents that do not belong to a date. Make at least these three.
- About — what the site covers and who writes it. Short is fine.
- Contact — an email address on a line is enough. A form needs a plugin.
- Privacy Policy — what you collect, whether you use cookies, whether you run third-party ads.
That third one is not a formality. Google AdSense checks for it during review. If ads are anywhere in your plan, write it on day one. Once the page exists, go to Settings → Privacy and designate it, so WordPress knows which page it is. WordPress ships a draft template to start from.
8. Build the menu
Creating pages does not put them anywhere visible. Go to Appearance → Menus, create a menu, add your pages from the panel on the left, then assign it to a display location at the bottom.
Skip that last part and you will have a perfectly good menu that appears nowhere on the site. It catches almost everyone once.
9. Install few plugins
Plugins bolt features on. There are so many good free ones that you keep adding, and each one makes the site a bit heavier and adds one more thing that can be exploited. Four categories cover the start.
- SEO — controls the title and description that appear in search results, and generates your sitemap.
- Security — limiting login attempts alone changes the picture.
- Backup — something will break eventually.
- Contact form — if you want one.
Specific picks are in our free plugins post. How plugins play into page speed, with measurements from this site, is in the speed post.
10. Turn on https
The padlock in the address bar. Not optional now — without it browsers label your site “not secure” and search treats you worse.
On managed hosting this is handled. The host issues a free certificate and renews it for you. Running your own server, you get a free certificate from Let’s Encrypt, but it expires every 90 days and the renewal has to actually run.
Ours does not. The certificate issued fine, but the renewal check needs an inbound connection on port 80 and our server’s firewall blocks it. That is a server problem, not a WordPress one. For now the expiry date lives in a calendar and we renew by hand. This is exactly the kind of chore managed hosting absorbs.
11. Before you go live
- Open the site on a phone. Most of your visitors will. Small type and tables running off the edge show up here.
- Click every link in your menu. Look for anything landing on an empty page.
- Confirm the search engine visibility setting is still unticked. Yes, that one.
- Add the site to Google Search Console and submit your sitemap URL — usually something like
/sitemap_index.xml, generated by your SEO plugin.
Submitting does not put you in search results tomorrow. A brand-new domain takes days to weeks to get indexed. In the meantime the job is writing more posts.
The four things that caught us
The details we deferred. This is what installing on a bare server looks like.
One: unpacking the WordPress archive failed. PHP had a 128MB memory limit and that was not enough. Raising it to 512MB cleared it.
Two: the install finished and everything except the home page returned 404. Pretty URLs require the web server to read a rules file called .htaccess, and Apache was configured to ignore that file for our directory. Rewriting the rules changed nothing, because nothing was reading them. One line in the server config fixed it.
Three: image uploads failed silently. No error, no file. PHP was running as a different user than the one that owned the files, so it had no write access to the uploads folder. Opening permissions on that one folder solved it.
Four: the certificate renewal problem above.
All four are invisible on hosting with an installer, because that is precisely what you are paying them to have solved already. So no, we would not tell someone looking up how to build a WordPress site to start by configuring a server. We took that route because the server was already ours and we wanted control over the setup, not because it is the better path.
How long it takes
On hosting with an installer: ten minutes for the domain, ten for the hosting, ten for the install, twenty for the initial settings, an hour picking and adjusting a theme, an hour writing three pages. You finish inside a day. The slow part was never the building.
If it were me: start on a cheap plan with an installer, check the renewal price before buying the domain, settle on one lightweight free theme, keep plugins under five, and look at that Settings → Reading checkbox twice. Then put everything else into writing. Polishing a site has no end point, and what brings readers is the posts.