Have you ever been told that starting a blog with WordPress requires money? Well, I’ve discovered a way to start a blog for free and that’s the exact way I used to start this blog right here. All I can say is that it’s been really fun starting a blog—as I’ve learned various ways to create a blog, design it, and write about my favorite things.
Things were made easier for me as I am a developer which is why I’ve made this guide on how to start a WordPress blog, especially for any beginner starting out.
In this guide, I will show you how to start a WordPress blog for free with DigitalOcean. If you are a student, then that’s more rewarding since you’ve bigger perks waiting for you than just a blog.
The sections that I’m about to discuss are listed below:
- Signup for the GitHub Student Developer Pack
- Signup to DigitalOcean
- Get a domain from Namecheap
- Create a droplet in DigitalOcean
- Configure the droplet
- Install WordPress
- Installing theme and plugins
- Write and publish your first post
- Follow SEO best practices and promote your WordPress blog
- Start making money
Now in this tutorial, we will use the command line several times for some basic server configuration. If you’re not familiar with Linux and Ubuntu, keep following along.
1. Signup for the GitHub Student Developer Pack
If you’re not a student, please skip to the next section.
If you’re a student, however, you will need to sign up for the GitHub Student Developer Pack. This pack offers various premium tools and educational resources that you can use on a free trial or at least until you finish studying.
Requirements to Get the Student Developer Pack
- Have or own a GitHub account
- Minimum 13 years of age
- Currently enrolled in a diploma or a degree course in a recognized education institution
- Provide valid documents as evidence to prove you’re a student
Before applying
- Make sure your profile details are complete — photo, name, etc
- Complete your GitHub account billing information (no need to add a payment method)
- If you have an academic email address, verify it on GitHub
- Make sure your GitHub account has two-factor authentication enabled. Here’s how to enable it
- Generate and publish a README file for your profile
Once you click signup, you must choose whether you’re a student or a teacher. Select Get Student Benefits and then proceed to log in to GitHub.
After logging in, you will be presented with a form in which you must provide your official school email, the school’s name, and the specific reason you plan to use GitHub.
I recommend using your school email address (if you have one) rather than your personal email because that can play a huge part in whether you get accepted or not. If you don’t have one — that’s fine, it will prompt you with more questions so make sure to provide supporting documents like your school ID, enrollment offer letter, class schedule, etc.
Once you have finished filling up the form, click Continue. You’ll be presented with a message saying to wait a few days before being approved.
Mine’s already approved so this is what it looks like:
Congrats! You now have access to the GitHub Student Developer Pack which has tons of offers ranging from cloud environments, security tools, courses, and many more. What I’m here for is the free domain offered by NameCheap, Name.com, and .tech domains, including the $200 hosting credit by DigitalOcean that they provide.
2. Signup to DigitalOcean
Not student
To get the free domain and hosting, you will need to sign up for DigitalOcean’s free $200 credit for 60 days. While I do know this is not free forever, I still feel that 60 days is more than enough for you to try out blogging before investing any money.
Student
I assume you’ve been following the previous steps and by now you should have access to the GitHub Student Developer pack, specifically, the DigitalOcean free $200 credit for 12 months. If you have not applied for the Student Developer pack, follow the steps above.
To claim your free $200 credits, click the Get access by connecting your GitHub account on the DigitalOcean link.
Once there, you’ll be prompted to sign up for an account. Simply enter your credentials and log in. If you did not sign up using GitHub, it will prompt you to authenticate yourself by connecting to your GitHub account. Once logged in, DigitalOcean will prompt you to enter a payment method (this is mandatory) as a temporary fallback option should your $200 credit run out.
In most cases, it doesn’t charge your card — as long as you’re constantly checking the status of your droplet and remember to cancel the plan before the 12 months to avoid excess charges.
3. Get a domain from Namecheap
Not student
Head over to Namecheap’s website, search for a domain, and purchase it. It demonstrates your blog’s branding. Make sure to choose one that is memorable and follows your niche.
Student
To get a free .me top-level domain (TLD) from Namecheap, go to your GitHub education account and click Get access by connecting your GitHub account on Namecheap under the Namecheap section. Then follow the prompts to connect your account, choose a domain name, and voila.
4. Create a droplet in DigitalOcean
Sign in to your DigitalOcean account and click Create on the top-right-hand side. From the dropdown, select droplets. Droplets are scalable virtual machines that you use to host your blog.
Choose a region and data center
Then, you can choose the region and data center where your virtual machine (VM) will reside. I recommend choosing the one that’s closest to your location.
I chose Singapore as it’s closest to me.
Choose an image
Scroll down a little till you see the option to choose an image. Now, for the sake of this tutorial, we’re not going to get too deep into the technical side of things. I recommend selecting a preconfigured droplet simply for easy setting up the server.
To select a preconfigured droplet, click Marketplace and then search for WordPress. You will be presented with a few options. You can choose whichever you think fits your needs or if you’re unsure, go with my favorite – OpenLiteSpeed WordPress.
OpenLiteSpeed or OLS is a super fast web server that many WordPress specialists go for just because of its speed and simplicity.
💡Note: if you need documentation on how to get through this stage, DigitalOcean has a super handy webpage and YouTube video.
Choose droplet type and size
Next, we’ll move on to choosing the size of your droplet. If you’re new to this WordPress thing, go for the Basic Plan as the droplet type, and for the CPU options, you can choose regular for starters. If you have a dollar or two to spare every month, then go for the Premium Intel or Premium AMD options.
Bear in mind, that you can always upgrade to a higher plan in the future. That’s how DigitalOcean works. So start from a lower plan and scale as you go.
Backups, Authentication, and Finalizing Details
The next step is choosing automated backups. This is a paid option so I won’t recommend going for it unless you know what you’re doing. Later, I’ll show you how to enable scheduled backups for your site using a well-known plugin.
You’ll need an SSH key or a password to log in to your droplet. If you consider yourself not tech-savvy or a sysadmin, then choose the password option and enter a secure and easy-to-remember password. DigitalOcean recommends having a password at least 8 characters long, containing an uppercase letter, number, and special character.
❗❗❗ Remember to store it in a secure place for reference in the unlikely event of you forgetting your password.
We’re almost done with creating our very first droplet (server)! All that’s left is changing the hostname to whatever feels best to you and optionally adding some tags to help you identify the server if you have multiple of them.
Go through every option again and select the Create Droplet button if you’re happy with your decisions. It will then proceed to create the droplet for you. This process might take 2 to 5 minutes so feel free to grab a coffee while waiting.
5. Configure the droplet
Once the droplet has been created, you will need to log in to access your WordPress files. For ease of use, I recommend using the built-in DigitalOcean droplet console. To do so, click on your droplet’s name and click Access on the left sidebar.
Click Launch Droplet Console and wait for the browser to initialize. For more advanced users, you can use a tool like Git Bash with this command (replace use_your_droplet_ip with your droplet’s IP):
ssh root@use_your_droplet_ip
Code language: CSS (css)
Once you’re in, the system will prompt you for your domain. Before entering your domain, you need to head to Namecheap and modify the existing nameservers to point to DigitalOcean’s nameservers. If all this sounds gibberish to you, nameservers are part of the Domain Name System (DNS) that translates URLs into IP addresses. Luckily for you, they have provided a handy article on changing nameservers.
Remember to wait 24 to 48 hours for the nameservers to take effect. Some nameservers update faster than others. You can use this tool to check if yours has taken effect.
Next, to ensure that your domain points to your VPS, go to the DigitalOcean website and select Networking on the left sidebar. Enter your domain name into the input and hit enter.
Here you will add DNS records that point the domain to your server’s IP address. Firstly, for the hostname, enter @ and then enter your server’s IP in the will direct to input. To find the IP address, go to the project page and copy it.
What we’re doing is adding A records so our domain knows where to navigate to. We’ll add another one too. The hostname will be www and the IP address is the same one you copied earlier.
You’ll have 2 new records in addition to the other 3 default ones.
Now go back and access the droplet console and enter your domain. Following that, you will be asked if you want to issue a Let’s Encrypt certificate. Hit y and enter your email. Also, enter y twice to force HTTPS Rewrite rules and update the system. I’ve included my console screenshot below for reference.
6. Install WordPress
Now it’s time to install WordPress. To do that, go to your DigitalOcean account and take note of the IP address. Then open your preferred browser (I use Google Chrome) and paste that into the search bar.
The language select screen lets you choose your preferred language for the WordPress backend (I chose English). Hit continue after choosing your language.
Then, enter your site title, username, password, and email into the inputs. Be sure to save your password in a secure place or use an online service like Bitwarden to store them.
Click Install WordPress.
Now go to the login page and enter the credentials you wrote earlier when installing WordPress. If you’re presented with a WordPress update database notice, click update and wait for a few seconds.
Tadaa! You’ve successfully installed WordPress. It wasn’t that hard, was it?
By the way, your blog’s URL still looks like it came from a mathematical formula. Let’s change that.
Go to Settings > General and change the WordPress Address (URL) and Site Address (URL) fields to your domain name. This will work instantly since you have already pointed the DNS to the server’s IP.
7. Installing theme and plugins
The way WordPress works is based on themes and plugins. Themes control the appearance of your blog and there are various plugins you can install that provide functionality from a range of caching, contact forms, security, optimization, and more.
Let’s install one of my favorite themes called GeneratePress.
Navigate to Appearance > Themes and in the section you will find all the preinstalled themes that come with installing WordPress. To add a new theme, click on the Add New button. Search for GeneratePress click Install Now and wait for the theme to install before clicking Activate. Be sure to remove the other themes except GeneratePress and keep another theme as a backup.
Once you’re done activating your theme, head over to Plugins > Add New Plugin and search for the GenerateBlocks plugin. Click Install Now and then Activate. I advice you to remove the other plugins that are not being used as they can bloat the database and slow down your blog (Keep Litespeed Cache though).
Now your blog has some basic functionality to work with. Feel free to install any theme or plugin of your choice and test them out.
8. Write and publish your first post
Let’s write and publish your first blog post.
To do this, go to Posts > Add New Post. You’ll be presented with an article page and a blank canvas with the block editor (AKA Gutenberg).
Using the block editor, you can format your posts to look how you want in the front end. Gutenberg works almost the same as Google Docs, where you can insert images, add bold or italic text, etc.
I recommend writing a minimum of 500 words before hitting publish on your post.
9. Follow SEO best practices and promote your blog
There are tons of ways to promote your blog. That includes SEO, Facebook ads, Google Ads, guest posts, social media, and much more. In this case, I’m going to focus on SEO, specifically on-page SEO.
Optimizing your blog for On-Page SEO is achieved by optimizing your posts’ title, URL, images, internal/external links, keywords, content, etc. Note that this is a brief overview of on-page SEO and I will only cover the basic ones.
Post Title
Write a title that is catchy and persuasive for users to click. An example of a basic headline is “Best Places in Japan” and an optimized one is “A Guide to the 10 Best Places to Visit in Japan 2024”.
Notice that I included some numbers and added some catchy phrases so the user is tempted to click the title.
URL
The URL is an important part of SEO. You’re supposed to choose one that has the keywords you are targeting when a person searches for something related in Google. Let’s take the previous headline as an example.
For me, the URL of that article should be: /best-places-to-visit-in-japan.
To set the URL of a post, click the WordPress logo on the top left, hover over the post you want to edit, and click Quick Edit.
SEO Title
Your SEO title is the text that you’ll see in Google’s search results. It should be not more than 60 characters in length and should include the keyword you are targeting.
To change your SEO title tag you would have to install an SEO plugin. Rank Math, SEOPress, Yoast, Slim SEO, and The SEO Framework are the tools that do this for you. I lean towards Rank Math because that’s what I’ve been using and am comfortable with.
10. Start making money
If you’ve read this far into the post expecting to make millions of dollars per year – I’m here to say that’s far from being true nor is it easy.
Making money through blogging has always been possible but it’s not the easiest path. There are a ton of ways to make money through blogging. Some known methods are affiliate marketing, selling digital products, providing services, google ads, or writing a weekly newsletter.
Many don’t realize the amount of work that goes into building a successful blog and monetizing it to make money. That being said, I’m not discouraging you from starting a blog but rather I’m being completely honest with what it takes to start one. If you have what it takes then by all means go ahead.
Can I start a blog for FREE without WordPress?
Can I make money when I’m starting out?
I have zero coding knowledge. Can I start a blog?
What this means is that you don’t need to write a single line of code as everything is drag-and-drop. With many tutorials online, it makes it even easier to start a blog today than it ever was before.