I was recently talking with my buddy Scott Hawksworth about a project he’s starting on. He had a relatively simple question for me:
Jimbo, how do you go about setting up a new site from scratch?
I spent the better part of 30 minutes explaining it all to him in great detail. After we hung up, I thought: why not turn this into a super guide?
So here, for the first time ever, is an in-depth explanation of my preferred website stack. This is exactly how I layer everything together to create a site that is all of the following:
- SEO friendly
- Mobile responsive
- Beautifully designed
- Lightning fast and reliable
Layer #0: The Domain Name
OK, admittedly I did not even discuss this with Scott. He’s been building websites for a while, so he knows how to register a domain name.
Still, it’s important enough to label this as Step 0, in case you do not already have a domain name. Believe it or not, this was once a daunting task. I remember 20 years ago when I registered my first domain name that I had to wait over a week and send in payment via check before everything started working. Nowadays, you can purchase a domain name and hook it up to your website within minutes.
I’ve used a lot of domain name registers over the years. But my favorite is Hover.
Hover offers simple, no-frills domain registration. They don’t try to upsell you at every turn (ahem, GoDaddy). The user interface is simple and uncluttered. And domain name privacy is turned on and included in the price by default. (This is an additional fee at the vast majority of domain registrars.)
Layer #1: The Web Host
Alright, now let’s get on to the good stuff. This is where you can start to make mistakes if you’re not careful.
For the masses, $3/month* shared hosting from HostGator or HostMonster or Bluehost or one of the other many web hosting companies out there is fine. See that asterisk? There’s almost always a catch with these rock-bottom prices. Usually, the price spikes upward after your first few months. So be on the lookout for the fine print.
The beauty of shared hosting is the price. (Even with the asterisk.) But beware: you get what you pay for. Shared hosting performance can fluctuate wildly from day to day (even minute to minute). And it’s far cry from what I would describe as “lightning fast.” This is because on a typical shared hosting plan, you are sharing a server with dozens (sometimes hundreds) of other accounts just like yours. If someone else has a site with bloated code that drags on the server’s resources, or receives a surge of traffic that leads to a CPU load spike, your site suffers.
This is why I recommend VPS hosting, which is somewhat of a hybrid between a dedicated server and a shared server. You can read more about the distinctions between shared, dedicated, and VPS here. But suffice it to say that for most small businesses who are interested in a lightning fast site, VPS hosting is the way to go.
My recommendation: Get a VPS plan at iWF Hosting.
I’ve had VPS hosting at iWF Hosting for a little over a year. And I cannot say enough good things about the support that I’ve received over that time. Their customer service is second to none.
I’ve probably contacted their support team via their web chat feature more than a dozen times. I’ve never had to wait more than 2 minutes to chat with tech support. And yet, their team appears to be small and definitely not outsourced. I’ve gotten Jacob as my tech support guy at least three times. And he always remembers me from our previous chats.
Layer #2: The CDN and DNS Network
The traditional method of hooking up your domain name to your website is to point your domain name servers directly to your web host. But using a content delivery network (CDN) and authoritative DNS network (like Cloudflare) has its advantages.
The benefits of using Cloudflare include improved performance and improved security.
On the security front, Cloudflare offers the following advantages:
- Free SSL certificate
- DDOS attack mitigation
In terms of performance, Cloudflare offers:
- Rapid DNS lookup speeds
- A content delivery network
- Caching options
Just to name a few. Cloudflare offers a few different paid plans. But this is where I’ve skimped out and just gone with the free plan, because it’s so good.
Layer #3: The Content Management System
Your site needs a content management system (CMS). WordPress is the most popular CMS on the Internet. It’s open source; it’s free; there are numerous design themes and plugins developed for it; and it’s maintained with regular security updates.
Many web hosts offer a 1-click WordPress installation. But beware that certain hosts cram their 1-click solutions with a bunch of plugins that you don’t need. Note: the Softaculous 1-click install of WordPress on iWF is bloat-free.
For information on installing WordPress manually, check out the Famous 5-Minute Installation instructions on WordPress.org.
Once WordPress is installed, delete all sample pages and posts. And create the following pages. (You can leave them blank for now and fill in the content later.)
- Home — Your site’s homepage.
- Blog — Where your site’s blog posts or articles will be presented.
- About — The page all about you and your business.
- Contact — List your business address, phone number, email address, FAX number (is that still a thing?), etc. And maybe a map to your location if you’re a local business.
Layer #4: The Base Theme
WordPress is great and all, but the default theme — well, er, it kinda sucks. 🙂
Do yourself a favor and install GeneratePress. It’s a clean coded, lightweight theme with just the very basics. (Don’t worry — we’ll spice it up with the next layer.) There’s a free version, but I recommend upgrading to the Pro version for the extra features and support.
Check out this video to see GeneratePress in action.
Once GeneratePress is installed, you can delete any old themes that you’re no longer using to keep your WordPress installation nice and tidy.
Layer #5: The Visual Builder
This is where we take our clean coded, lightweight GeneratePress theme and add some spice. 🌶️
There are a few good visual WordPress builders out there. Beaver Builder and Thrive Themes are two of the most popular.
But my #1 favorite is Elementor. There’s a free version, but you’re gonna want Elementor Pro… trust me!
Designing beautiful, mobile-responsive websites is a breeze with Elementor Pro — once you get over the learning curve. And yes, with any tool as powerful as Elementor Pro, there is a learning curve. But once you get over the hump, you’ll be well on your way.
Generally, I use Elementor Pro to design just four different templates:
- Header template that can be used site-wide.
- Footer template that can be used site-wide.
- The Homepage, which is a one-off design.
- A Single Page template, which can be used everywhere else.
That will usually do it for most simple sites. If you have a blog, you may want to make a Single Post template in addition to your Single Page template. If you have a WooCommerce store, Elementor Pro allows you to create templates for different WooCommerce pages, including the Shop homepage, Product Category pages, and Single Product pages.
Layer #6: The Essential WordPress Plugins
The vast majority of WordPress plugins available are garbage. But there are a few essentials that will improve every site. Here are my favorites that I include with every WordPress site I ever build (in addition to GeneratePress Premium and Elementor Pro, which are technically plugins):
- Autoptimize — Plugin that cleans up your site’s code for improved performance.
- Imagify — Image compression plugin that reduces page load size, thereby improving performance.
- WP Fastest Cache — Caching plugin that greatly improves site performance.
- Yoast SEO — The definitive SEO plugin that helps with meta tags and sitemap creation for better on-page SEO.
There are paid versions of all of these plugins. But I actually am getting away with using the free versions for now.
And of course, there are numerous other plugins that may be essentials for certain sites. I’ll list a few more here, which you may need depending on the purpose of your website.
- Akismet Anti-Spam — A good idea to use this plugin if you allow commenting on your site.
- Gravity Forms — If you need a contact form on your site, this plugin is the best.
- WooCommerce — By far the best and most widely used shopping cart platform for WordPress.
Layer #7: A Few Final Tweaks
Here are a few final steps I make to the web server and the WordPress installation before I officially “go live” to the world.
- Convert database tables from MyISAM to InnoDB — For most WordPress sites, InnoDB usually provides a performance boost over MyISAM. Here’s how.
- Install NGINX — This is web server software that usually boosts site performance over Apache (which is often the default). Your web host should be able to help you with this. Read more here.
- Install MariaDB — MariaDB may offer some performance advantages over a traditional MySQL database. Again, this is something that your web host should be able to help with. Read more here.
- Under Reading, you want your homepage to display a static page. The homepage should be set to your Home page. And the posts page can be set to the Blog page.
- Under Permalinks, I prefer using the “Month and Name” structure. Using a custom structure with the category name is also an option, so long as you consistently categorize your posts on a 1-to-1 basis. Whatever you do, avoid the default “Plain” structure, which is the least SEO-friendly option.
Replicate this stack, and you’ll be well on your way to website success.
Need help getting your WordPress site up and running? Contact me!