Websites are cool. You can visit them and they have stuff on them, pretty sweet. Why not make your own?
To tell the truth, most people probably never even considered creating their own website at all for any reason, and the next largest group of people thought about it but decided it would be too hard, take too long, require too much maintenance, or some other excuse. But I’m still telling the truth when I say those people are all wrong, and there are very few good reasons not to make your own website.
Are you an artist? Musician? Writer? Put that on your website. Full time memer? Have opinions on things? Put that up there too. Do you do anything? Do you exist online at all? Reason enough to make a website if you ask me. Whatever you do online, whether it’s creating media, sharing thoughts, exploring ideas, writing reviews, doing a podcast, building a brand or anything else, you can do it all on your own personal website.
If you ask me, I believe everyone should at least consider having their own website. Along with the obvious benefits of being able to do literally whatever you want with it and being able to centralize everything you do in one location, another huge reason I advocate for this is because with your own website, you truly own and control all of your data. How valuable that is to you is – wouldn’t you know it – entirely up to you, but I think it’s a pretty big plus. Having total control and freedom over your own little corner of the internet is one of the most powerful ways to solidify your identity and presence online, no matter what it is you do.
And that’s exactly why I’m going to show you how to make a website for yourself.
In this quick and dirty guide, I’ll show you how to get set up with a server host and a basic WordPress site. None of that Squarespace nonsense, we’re making something of actual worth. WordPress is by far the most popular content management system, supposedly powering over a third of the open internet, so there’s always a wealth of information available if you have questions about it, tons of customization options already freely available, integration with just about everything, and it’s simple and easy to use to boot. You don’t need any coding knowledge to use it, or even any more than very basic tech literacy and some patience. While its original purpose was just to be blogging software, these days you can do just about anything with it. There are other options out there of course, but my goal with this guide is just to get you up and running with something easy and versatile as quickly as possible, because all I want is to see more people with personal websites. If you decide to do something different, that’s great too. And of course, if you ultimately decide that having a website isn’t something you want, I can’t fault you for that.
Full disclosure: Absolutely none of this content was sponsored or influenced by anyone, it’s 100% my own independent thoughts. However, I did use referral links to the hosting services I recommend, Veerotech and Linode. They hold no influence on the content, but you should be aware they’re there.
But why though?
To elaborate on what I just said, I believe there are five main reasons why having a website is worth everyone’s consideration. First is centralization. With your own website, you have one central location for hosting everything you do, where everyone else can find it all in one place. The only thing you can’t easily host yourself is video content because it eats a ton of storage and bandwidth, which can get expensive, but it’s not impossible. That’s not to say you should abandon existing platforms in favor of this though, you should by all means keep using them, you can even have a page on your website that holds all of the links to all of your existing profiles in one place, making it easier to find you on said platforms. Having one central nexus for everything though can also do more than just be convenient, it can boost your visibility by ranking on search engines, which in turn helps your other profiles rank higher as well.
The next two go hand in hand, being total control and freedom. By being in control of your own server, as long as you aren’t doing anything illegal, you are in control of everything that goes on, you set your own rules, and you’re free to do whatever you want with the space. Every aspect of the site can be exactly as you want it to be, giving you the ability to establish a genuinely unique presence, rather than just the typical circular profile picture and small banner image available on social media. You can make it pretty, retro, horrible, sleek, and so on and so forth, you get the idea. You also never have to see a single advertisement anywhere, or share space with people or content you don’t want to be associated with.
Fourth is extensibility. When you get an idea for a new thing, you can make a new part of your website for it, whatever it may be, rather than opening up a new profile somewhere. An easy example would be if you wanted to set up a storefront, because you can do that in a variety of ways on your website and keep it all in one place. Maybe you want to host a podcast all of a sudden, or you took up art and want to display a gallery, or decided to dabble in some kind of journalism. Whatever you want to do, it just adds right on, in place.
Finally, is ownership. It’s true that by creating something, you automatically own the rights to that thing, but many other platforms require extended licenses on that work or even partial – occasionally total! – ownership of the copyright. But of course with your own website, that’s not a problem. If that matters to you, you should read the terms of service agreements for the other platforms you use a bit more carefully. Aside from that, though, reducing your reliance on third party corporate platforms is never a bad thing if you can manage it. When you have your own website, all of your data stays with you as you intended it to be, it moves with you, isn’t at risk of being suddenly lost or taken down, and can be easily and reliably archived. An extra potential plus is that by posting on your own website first, it should be easier to prove your ownership of things if it comes down to that, but don’t quote me on that one, I’m no lawyer.
Whether or not any of these things are important to you, is entirely up to you. If you think about these things and conclude that they aren’t important to you, that’s completely fine. Of course, I personally hold all of these things in high regard, but not everybody does and that’s fine. What I really want from this post isn’t just to get you making websites, but for you to think about why you may or may not want to, and to then make an informed decision. But if you think about all those things and see some value in them, kind of like the idea, but still can’t decide… ask yourself “why not?” instead.
So if you’re ready to get started, bear in mind that while this isn’t free, it’s inexpensive at easily less than $10 total per month, and it can easily be worth its weight in gold for the above reasons and more. If you have no experience at all with anything similar to this, it might take you a day or two to work through this, but you’ll be able to do it, I know you can. It’s easy and simpler than you might think. And once you’re done, the extent of maintenance you’ll want to do should amount to nothing more than a couple button presses a few times a year, but you might be able to get away with even less.
Getting set up
Before we actually start getting set up, you have to make a choice. Shared hosting, or VPS hosting?
Both options have their pros and cons, and for our purposes with this guide, will do exactly the same thing and perform about equally. The biggest pro of a shared host is its simplicity, because you will never have to touch a terminal interface or worry about maintaining the server. In exchange, it’s also relatively limited in terms of possibilities and expansion, and has the potential for worse performance and security since you’re sharing server space with other users. VPS hosting avoids those problems by allocating resources exclusively to you and being capable of basically anything, including running your own VPN or any number of dedicated game servers, but in exchange you have to use a terminal occasionally.
Personally, I recommend going the VPS route for the flexibility, and I can assure you that while it’s not quite as simple as a shared host, it’s neither difficult nor very complicated, so don’t be intimidated by the increased number of steps or by the idea of using a terminal. Either way, I’m covering both. You can also host your own email servers with both of these, but that’s something I won’t be covering here because that is rather complicated, but now you know you can.
If you choose a shared host, I can recommend Veerotech. Tripulse was hosted with them for years before I made the decision to switch to a VPS host. Their customer service is particularly good, which is very important to me. Feel free to do your own research and choose a different host if you want to though, however, there are some hosts you should definitely avoid, like BlueHost and HostGator. They’re owned by a company called Endurance International Group, and they are terrible. Go here if you want to know why, and see a list of hosting companies to avoid.
If you choose the VPS route, I can recommend Linode. This is the host Tripulse currently uses and will likely stick with for the foreseeable future. They also have great customer service, plus substantial and helpful documentation, and it’s cheap. Again though, please feel free to research your options yourself and choose the host that looks best to you, much of what I’m going to cover in this guide should apply no matter what you choose.
Initial steps
The very first thing you need to do is buy a domain name. You can use whatever domain registrar you want, they’re all the same for the most part, where they differ may or may not matter to you… except GoDaddy, they’re bad, stay away. Feel free to do your own research on good domain registrars, but I’ll recommend Namecheap for the price, or Gandi for any other reason. You don’t necessarily need a .com or .net TLD, so don’t worry if those are taken, just grab a domain that you like and is easy enough to remember. There are a lot of TLDs, you can even have a .pizza one, go wild. Just make sure that the TLD you choose supports WHOIS privacy, and preferably DNSSEC as well.
Next, you should sign up with Cloudflare. This isn’t a requirement, but consider it highly recommended. Your website will be faster and more secure with Cloudflare’s free service, and could even save you money if your host charges you for bandwidth usage. Just create an account though, no need to do anything else with this yet. If for whatever reason you don’t want to use Cloudflare though, I’ll be covering the setup both with and without it. Cloudflare also has a domain registrar service that I didn’t know about, which might also be worth investigating.
Shared hosting
Before we start, please remember that if you’re confused about anything here, you should consult the knowledge base. Don’t be afraid to contact support either.
Sign up for Veerotech and choose a shared hosting plan. The SSD One plan will likely serve you well, but if you already know you’ll need more than 5GB of storage space, the SSD Micro plan has you covered for just slightly more. Aside from storage space, you more than likely won’t notice a difference with what we’re doing here. You can upgrade and downgrade your plan at any time through the dashboard though, so don’t worry about choosing poorly.

After you select a plan, choose the I have a domain option when presented and enter your domain before continuing to checkout and creating an account. After you’re done with that, log in and it will take you to the dashboard. Click on the big Services button, then click on your plan, and on the left under Actions, click on Login to cPanel. It will open cPanel in a new tab.

Scroll all the way to the bottom of the page and you should find the Softaculous Apps Installer, and WordPress should be right there as an option, so click on it if you see it. If instead you only see a Softaculous button with no other options, click on that one and then WordPress should be right there as an option.

Click on the install button, then make sure to select HTTPS as the protocol (https://) and that the directory field is empty. Set the name, description, and admin account info to whatever you want, and under advanced options, you can enable automatic updates both for WordPress itself and for the plugins and themes you install later. When the installation finishes, click the cP button on the top right to return to cPanel.
Now find the Cloudflare button in cPanel, click on that, and log in to your Cloudflare account. Then, click on the domains button and choose Provision Domain with Full Zone Setup. It will give you two nameservers to use, so copy those down. If you don’t want to use Cloudflare, skip all that and just copy the Veerotech nameservers, which you can find in their knowledge base if they don’t appear somewhere in the client area.
Next, log into Namecheap, click Manage next to your domain, then under Nameservers, set it to Custom DNS and add the nameservers you copied earlier, then click the green checkmark. This should be pretty similar and probably simpler on other registrars, so don’t worry about that.

There’s a bit of a wait after this because it takes a while for the nameserver update to actually go through. It could be a minute, it could be a day, but it will most likely be no longer than ten minutes. Any DNS changes you might need to make will be done in cPanel after this. After it’s done, connecting to your domain should greet you with a default installation of WordPress, showing that it’s working. One final step though. Return to cPanel and click on the Let’s Encrypt SSL option under Security, and issue a new certificate for your domain.
Now you’re good to go, and will most likely not need to sign into cPanel for anything other than backups for a long, long time. Remember to take regular backups of your server! Now you can move on to the WordPress section.
VPS hosting
Before we start, let me remind you that if you get confused about anything here, you should first look at the documentation for Linode and/or CyberPanel, and don’t be afraid to contact Linode support if you have questions.
Edit: Linode actually has an even simpler method to set up a WordPress website! If you don’t think you’ll ever be experimenting with multiple websites, or you would rather have an entirely separate Linode for that anyway, you can use this method instead of following the rest of this section.
First things first, once you set up your account, create a new Linode. Select the latest Ubuntu LTS image (20.04 at the time of writing), use their speedtest page to choose a datacenter, and choose the 1GB Nanode plan. You will almost definitely never need to upgrade from this plan unless your website gets incredibly popular or you have bigger ideas for what to do with it. Unless you run out of storage space, that is.

Label it whatever you want, then set your root password. This is the password that gives you absolute control over the server, so make it a strong one. You can opt for the Linode backup service as well if you want to pay a little extra for the simplicity of having constant automatic backups managed for you, but there are multiple other options for backing up your stuff as well, so it’s up to you. Don’t worry about any other optional things and hit that create button.
Once it’s up and running, click on the Launch LISH Console link on the top right of your node dashboard. When it prompts for you to log in, enter “root” as the username and then enter the root password you set earlier. When you enter the password, it will appear as though nothing is happening, but don’t worry, that’s normal behavior, the password is entering invisibly. After logging in, enter this command:
apt-get update && apt-get upgrade
Enter Y when prompted, and when that finishes, enter this command next
sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)
Should look something like this by now.

This will start an installation sequence with a lot of prompts. As they appear, enter: 1, 1, Y, N, press enter, S, enter a strong password, Y, Y, Yes. This password needs to be different from your root password, but just as strong since this one allows you into the web control panel. Once again, it’ll look like nothing is happening when you enter the password, but don’t worry, that’s normal.

After all that, the installation will begin. Once it’s done, enter N, then close the console and reboot the server. After it’s up and running again, you should be able to access your control panel by connecting to :8090 in your browser. If for some reason that doesn’t work though, log into the console again and it’ll display the correct IP and port for you, so copy those down and log out by typing logout. We won’t need to open the console again from now on. Just two commands and some guided prompts for the whole installation!
When you first connect to your control panel, your browser will probably display a security warning, but it’s safe to ignore since this is your server that you just made. You can log in with the username “admin” and the password you entered during the installation process. First thing to do in CyberPanel is to click on the Packages button, then Modify Package, select Default, and change domains, disk space, and bandwidth to 0 for unlimited.

Return to the dashboard after that and click on Websites, then Create Website. Select the default package, admin as the owner, enter your domain name and email, select the most recent PHP version, and check the boxes for SSL, DKIM support, and open_basedir protection, then click that create button.

Once that’s finished, go back to the dashboard again, click Websites, then List Website, and your new website should appear in the list.
Next to it on the right will be a link that says Manage. Click on that and it will open a new tab.
Scroll to the bottom and click on the WP + LSCache option under Application Installer, fill in the fields as prompted but leave the path field empty, then click install now.
When it’s done, it’ll tell you to connect to your domain, but nothing will happen because we haven’t set up the DNS yet.

This next part seems more complicated than it is, I promise. It’s just a bit tedious, but we only have to do it once, so bear with it.

Go to Cloudflare and log in, then click your avatar at the top right corner and click on My Profile, then click the API Tokens tab.
Click the view button next to Global API key, enter your password, and copy the key.
Now return to CyberPanel and click on the DNS tab on the left, then click Cloudflare.
Enter your Cloudflare email, the API key you just copied, and enable syncing local records, then click save. It will automatically set up your domain with Cloudflare and synchronize any DNS changes you make within CyberPanel from now on.

Next, click the DNS tab again, then Add/Delete records. Select your domain, then click on the CAA tab.
Enter your domain in the name field, 3600 in the TTL field.
The value field will show you what to enter itself, 0 issue "letsencrypt.org", so enter that and click Add.
Now click on the AAAA tab, and if there’s nothing there, enter your domain and 3600 for name and TTL again.
Then go to your Linode dashboard, copy your IPV6 address, paste it in the IPV6 field, and click Add.

Finally, return to the Cloudflare dashboard (click the avatar again and then Account Home), and look at your newly added domain. It should say it’s pending a nameserver update. If you click on it, you will see the nameservers you’re supposed to use, so copy those and set them on your registrar as I explained already in the shared hosting section. You’ll do all your DNS editing from CyberPanel from now on, if it comes up again.
If you’re not using Cloudflare, you can ignore all of that. Instead, go to your Linode dashboard and click the Domains tab, then click the Create a Domain button on the top right. Enter your domain and email, then choose to insert default records from one of your Linodes and select your node, then click Create Domain.

Scroll down to the bottom and click Add a CAA Record and enter letsencrypt.org as the value, leave the rest unchanged and click save.
Next, return to your CyberPanel dashboard, click Add/Delete records under the DNS tab and select your domain.
Then copy over all the missing CNAME, MX, and TXT records from CyberPanel to Linode.
You may get an error when adding the www CNAME records, so you can either skip it or delete the existing ones under A/AAAA and try again. Finally, copy the nameservers from Linode and add them to Namecheap, same as before. You’ll do all your DNS editing from Linode from now on, if it comes up again.
Whichever choice you made here, after updating your nameservers with your registrar, you’ll have to wait a bit, probably about ten minutes. Try connecting to your domain after that long, and if you see a default WordPress page, you’re golden, otherwise you just have to wait longer.
Once it’s ready, return to the CyberPanel dashboard, click Websites, List Website, then click the Issue SSL link next to your website. Once that finishes, after clicking Manage you should see that you have SSL from Let’s Encrypt and it will expire in 89 days.
Then, if you’re using Cloudflare, click the DNS tab, then Cloudflare, select your domain, and check the Proxy box for everything that doesn’t say “mail” under A, AAAA, and CNAME.
To finish it all off, scroll down and click Manage Services on the left sidebar, then Applications, and install Redis.
After that, click Security, then CSF, install and enable that, then you should have a new tab on the left called ConfigServer Services.
Click on that, then Security and Firewall, then scroll down and click the Firewall Configuration button.
Select IPv6 Port Settings from the dropdown box at the top and make sure IPV6, IPV6_ICMP_STRICT, and IPV6_SPI are all ON, then scroll down and click the Change button.
I recommend enabling 2FA for your account as well, which you can do by clicking the Users tab on the left, then Modify User, but only if you use something better than Google Authenticator (like Authy) so you can be sure you won’t lose access to it.

Once you’ve done all that, you shouldn’t have to do much of anything with any of these controls again from now on, it’s set up and will keep running. You should do some occasional maintenance though, but even that’s simple and you’ll only need to consider it once every six months or so.
To update the server, just log into Linode, launch the console, log in as root, and enter these two commands:
apt-get update && apt-get upgrade
sh <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh || wget -O - https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh)
Then log out again. That’s it. Any other maintenance you may have to do is the simple stuff you’d have to do on a shared host as well.
Again, remember to take regular backups of your server! CyberPanel has multiple options for backups itself, so consult the documentation to learn about what those options are and how to utilize them.
Extra Cloudflare stuff
Once you have your server set up – be it through shared hosting or a VPS – and WordPress is running, if you’re using Cloudflare, now is the time to configure your domain settings there if you’re going to so you never have to think about it again. So go to Cloudflare and log in, and click on your domain. Pretty much all of this is optional, but I recommend it. If you want to learn more about any of these things or you’re unsure about something, all of these things have help links right under them, and if those aren’t enough, the help center is extensive.

First, click the DNS tab, scroll down and enable DNSSEC. You’ll get a bunch of codes and stuff.
In another tab, go to your registrar and look at your domain settings, there should be an option to enable DNSSEC. You won’t actually need all of the information Cloudflare provides you for this, so just copy and paste in the parts the registrar asks for.
Next, in the SSL/TLS tab under Overview, change the encryption mode to Full (strict). Bear in mind that if you can no longer connect to your website, this is the first setting to change to troubleshoot.
Then under Edge certificates, enable Always Use HTTPS, Opportunistic Encryptions, TLS 1.3, Automatic HTTPS Rewrites, and set up HSTS.
In the Speed tab under Optimization, enable Brotli and Rocket Loader if they aren’t already.
In the Caching tab under Configuration, enable the updated version of Always Online.
Finally, in the Network tab, just enable everything except Pseudo IPv4.

Now you never need to think about Cloudflare again unless you need to troubleshoot something.
Setting up WordPress
Connect to your domain and you’ll see a blank, default WordPress page. There should be a login button somewhere, but if there’s not, you can navigate to /wp-login.php and log in with the account information you entered during installation. Once you log in, get used to this dashboard, because this is what you’ll be using to do pretty much everything from now on. It’s quite simple and easy to figure out, and you’re not going to break anything just by looking around, so feel free to explore all the different menus and familiarize yourself.

As I mentioned in the beginning, WordPress is the most popular content management system on the internet, so there’s a wealth of information already available, always a google search away. Because of that and the fact that it’s simple and easy to learn and use, I won’t be going into detail about how to customize your site and make it look pretty or anything like that. Instead I’m just going to give you a framework to get up and running and build off of, and show a couple examples of potential use cases.

First couple things you should do are change your user profile if you want to, then click on Settings.
Under general, change the WordPress address and Site address to HTTPS instead of HTTP if it isn’t already
Uncheck the anyone can register box, set your time zone, change the time and date format if you want to, and change the day the week starts on to Sunday like it honestly should be by default.
Then under permalinks, I’d recommend changing it to post name if it’s not already set to that, but that’s up to you, just make sure you set it to what you want now and don’t change it again later or you could end up creating 404 errors for yourself.
After that, click on Plugins, and disable/delete Hello Dolly and Akismet Anti-Spam if they’re there, along with anything else that might be there that you don’t want.
However, if you see LiteSpeed Cache, let that one stay enabled. If it’s not there, install it first by clicking Add New on the left sidebar and search for it in the search bar, it should pop up as the first result, by LiteSpeed Technologies. This plugin will be almost single-handedly responsible for most of the performance improvements your site will experience, and while there are a lot of options, we should only need to go through them once, so we’ll set this up first.

With that plugin installed and enabled, you should have a dedicated LiteSpeed Cache tab on the left near the bottom of the list. Roll over that and click General. Enable the automatically upgrade option, and click on the request domain key button. You can sign up for a QUIC.cloud account too if you want, but it’s not needed unless you intend to pay for the service.

Now click on Cache under the LiteSpeed Cache tab on the left.
On tab 1 (Cache) make sure that every option except for Cache Mobile is ON and save changes.
In tab 7 (Browser), turn ON Browser Cache and save changes.
Finally, if you followed the Linode guide, go to tab 6 (Object) and enable Object Cache, select Redis, and change the port to the default Redis port displayed on screen and save changes. If you followed the Veerotech guide, you will most likely need to contact support for help setting up Redis.

If you’re using Cloudflare, go to the CDN tab on the left, then scroll down and enable the Cloudflare API and enter your information. If you’re not using Cloudflare, you can enable the QUIC.cloud CDN instead, but that’s up to you to research and decide on.
Next, go to the Image Optimization tab. Turn ON Auto Request Cron, Create WebP Versions, Image WebP Replacement, and WebP For Extra srcset.
Make sure Remove Original Backups and Preserve EXIF/XMP Data are both OFF.
If you’re primarily posting art or photography, you should also enable Optimize Losslessly, but for everyone else, the lossy compression is worth it and nowhere near as bad as the compression you see on social media.

The Page Optimization tab has the highest number of important options for sure.

In tab 1 (CSS Settings) enable CSS HTTP/2 Push.
In tab 2 (JS Settings) enable JS HTTP/2 Push and Load JS Deferred.
In tab 3 (Optimization) enable HTML Minify, DNS Prefetch Control, and Remove WordPress Emoji, then choose one between Load Google Fonts Asynchronously or Remove Google Fonts, it should be obvious why you’d choose one over the other.
After that, enable everything in tab 4 (Media Settings) and tab 6 (Localization).
If you want to try to squeeze out more performance from your site after you’re done with it, you can come back here and experiment with enabling Minify, Combine, and Combine External and Inline for both CSS and JS. These carry a small risk of visual glitches on parts of your site though so it does take a bit of trial and error.
Finally, go to the Crawler tab on the left, and enable Crawler in tab 4 (General Settings).

Now your site should be light and fast, and all images you upload will be automatically compressed. If you get a 403 error when trying to save any of these settings, it’s because of ModSecurity. We didn’t install that in the Linode guide, but many shared hosts have it enabled by default. You can disable that, save these settings, and then enable it again. Everything else from here on should work fine without having to do that.
After this point, it’s all up to you. It’s a blank canvas now. You can do whatever you want, make whatever you want. I’d recommend looking for a theme before doing anything else though, you can do that by rolling over Appearance on the left, clicking Themes, and then clicking the Add New button, or by searching on wordpress.org. Some general purpose themes that might be worth trying are Kadence, PopularFX, OceanWP, Astra, and Hestia. Some of the more specific themes, like portfolio themes, may come with extra features for that specific purpose though, and you have a lot of options so don’t rush it, spend some time looking through your options and trying them out, find the one that feels right. Or don’t and just change it later, Tripulse has changed its look many times.
I will not be covering how to actually customize these themes. Please understand, because every theme is different and has different options in the theme customizer, will respond differently, and give different results. What I will tell you is that to customize any theme, just roll over the Appearance tab on the left and click Customize to bring up the customizer. Looks like this.

If you need more specific information on how to customize your theme, you should refer to the documentation for that theme, most well made freely available themes will have decent documentation. If that doesn’t help or doesn’t exist, then I hate to be that guy, but searching on Google or just trying to learn by doing will help you better than I can here.
A word of advice: You will find a LOT of themes and plugins that aren’t free, but if you just look a little harder, you can almost always find a free option that’s at least equivalent to what you wanted. Never feel the need to settle on a paid theme or plugin unless it’s truly the only option for what you want.
General plugin recommendations
Because of the sheer amount of plugins out there, here’s a list of some that I’d recommend taking a look at. You may want to do a bit of research on some of these yourself though to decide if they’re really right for you.

Elementor – As far as I’m concerned, this is the page builder plugin. If you want to easily make static pages of any kind with a drag and drop what-you-see-is-what-you-get style editor, with no code knowledge necessary, install this. There’s a pro version but I’ve never felt it was needed, you can do a lot with the free version already, and if you really want more, there are a bunch of other separate free plugins that add more options to this, like Essential Addons or Master Addons.
UpdraftPlus Backup Plugin – I talk a lot about the importance of backing up your stuff, and here’s another way to do that. This is a great plugin for backing up WordPress exclusively in a quick and simple way, so if you don’t already have another backup solution in place, you should use this.
All In One WP Security & Firewall – A solid, free security plugin. Web security is an infinite rabbit hole, so it’s understandably daunting. While there are probably a ton of different methods to keep your site secure that may be better in some ways, a potentially less-than-ideal option is still preferable to nothing at all, so you should consider installing this or something like it unless you know better.
WP DoNotTrack – Privacy is cool. Why not make it the default for your visitors?
WP Statistics – Along the same lines as the above plugin, you can use this to track your visitor statistics while also preserving your visitors’ privacy by foregoing something like Google Analytics. A note though, you may have to uncheck the Use Cache Plugin box in the plugin settings, because even though you are using a cache plugin, checking that box sometimes causes stats to stop tracking. You can test it yourself by visiting your site in an incognito window and seeing if it counts your view with it checked or unchecked.
Disable Comments – Self explanatory for the most part, but even if you do want comments on your site, this plugin can still be useful to fully disable them on everything but your basic posts.
wpDiscuz – But if comments are your thing, you should be using a comments plugin because the default WordPress comment system is kind of terrible. This plugin is free, highly customizable, and keeps the whole system and the data on your server, no cloud service nonsense.
LH Wayback Machine – Want your site to be in the Internet Archive? This plugin will automatically keep your posts and pages up to date in the wayback machine in the background, no configuration necessary.
Better Search – Self explanatory. The default WordPress search sucks, this makes it better. Probably not necessary unless you intend to make a lot of posts though.
WPForms – If you want visitors to be able to contact you from your site, here’s a good way to do it.
Kadence Blocks – If you want to expand what’s possible in the standard WordPress block editor, there are many plugins available for that. I like this one though, it covers everything I could ask for.
The SEO Framework – You may or may not have any need for an SEO plugin, it depends on what you’re trying to accomplish. But if you do want one, give this one a try instead of the typical choice of Yoast.
AddToAny Share Buttons – If you want to encourage visitors to share your posts elsewhere, a plugin like this is a good idea to make it easier and faster for them.
PowerPress – Do you host a podcast? Do you want to host a podcast? This is the plugin to do it with.
ActivityPub – This will make your website a fully functioning part of the fediverse. If you don’t know what that is, it’s worth learning about sometime I think. Users of federated social platforms like Mastodon will be able to follow your site and interact with your posts seamlessly from their platform.
IndieWeb – This one will take a lot more words to explain than ActivityPub, and to be honest, I’m probably not the right person to do that. I like the IndieWeb concept and feel that it’s worth sharing, so if you want to learn more about it, there’s a lot of reading material available about that. If you do end up using this and some of its extensions, you can use Brid.gy to make replies to your posts on social media appear as comments on your site using webmentions, which also allow entire websites to network back and forth which is much cooler.

The Big Example
If you need an example for what to do with your site, here’s an example of how to do many different things with basically the same process and a single page. If you didn’t install Elementor yet, do it now because that’s what we’ll be using for all of this. The first step for all of the coming examples is to click on the Pages button on the left of the WordPress dashboard, and either edit the sample page or create and edit a new one, then click on the Edit with Elementor button at the top of the screen. You’ll end up here.

Click on the tiny cog on the bottom left corner of the sidebar and change Page Layout to Elementor Full Width, or if you want this page to have absolutely nothing on it except for what you specifically add to it, Elementor Canvas. Your result will look like this, and you’ll have the full page to play with instead of whatever small area your theme restricts you to.

Changing that option should automatically bring you back to the element selection screen, but if it doesn’t, you can get back there by clicking the grid icon at the top right of the sidebar. Now we can get started.
Art gallery
Want to make an art/photo portfolio? Install the Essential Addons plugin, linked above. When you activate it, I’d recommend choosing the Custom option and deselecting everything you don’t think you’ll use. You can enable the other options later if you want, but for now all we need is Filterable Gallery. Don’t install the extras after clicking next either. Go back to editing the page, then scroll down in the menu on the left until you find the Filterable Gallery option under Essential Addons, then drag and drop it onto the page.

Most of the options should explain themselves, so feel free to experiment. You can add or remove items from the gallery in the Gallery Items section, and to make it filterable, you add a category name under Filterable Controls, then copy and paste that name into the Control Name box for each item you want in that category. When you want to add more stuff, you come back here to do it. As far as I know, there’s no limit to how many things you can add to a single gallery, so make sure to enable the Load More button if you have a lot of stuff to show.

Is your maximum upload size too low? We can fix that. If you followed the VPS guide, do this – there will be a Restart PHP button on the advanced config page, no need to enter a command like that says – and it should be fixed just like that. If that didn’t work, click Websites, List Websites, click Manage next to your website, scroll down and click on File Manager, then find and edit the files as shown here. That article also applies to you if you followed the shared hosting guide, but if none of those solutions work for you in that case, submit a ticket to your host and they should help you out.
Video gallery
If you have a YouTube channel that you want to show on your site, you can add videos one by one using the same method as above, or install Embed Plus for YouTube to make it much easier. They have extensive documentation and how-to videos about all the different features if you want to learn more about all the details, but for all we’re doing, it’s very simple. Edit your page in Elementor again and drag the Text Editor element onto the page. At the top of the sidebar on the left, there should be a YouTube button. Click on that and you’ll be greeted by this window that walks you through whatever it is you want to do.

Once you add your link, it will give you a code. Copy that code, close the popup window, and paste the code into the text editor in the sidebar. It may not display properly in the editor, but once you publish and view the page, it’ll be there.

Embedding a whole channel or a playlist in gallery layout requires an API key to function and show up, however, but there is a simple step-by-step guide on how to get an API key in both written and video form linked above.
Music gallery
Want to show all your music in one place? That’s easy too. First, click on the big plus button in the editor and select the structure you want. I’m going with three columns. Click on one of the plus signs in an empty column to bring back the element selector on the sidebar, scroll down and find the HTML element and drag it in.
If you’re not using Bandcamp for your music already, I urge you to start now, because it’s a fantastic platform. To embed a Bandcamp album or track, simply go to the Bandcamp page for it and there will be a Share / Embed link below the cover art. Click on that, click on the embed option, choose a style, and you’ll see a window where you can change the appearance of the embed. Once you have it set the way you want it, copy the HTML code it gives you, and paste it into the HTML box in Elementor.