Tag - Generators

How We Made WordPress Faster than Static Site Generators (Case Study


On the 10th anniversary of WPBeginner, I shared that WPBeginner hosting infrastructure got a huge upgrade thanks to our web hosting partner, HostGator.

Shortly after, I started getting emails from readers asking me to share the details on how we made WPBeginner load blazing fast.

Yes, WPBeginner load faster than most static site generators and in some cases faster than Google AMP sites too.

In this article, I will give you behind the scenes look at how we made WordPress faster than static site generators and headless CMS platforms.

Speeding up WPBeginner - Behind the Scenes

Note: This article is a bit more technical than what we typically publish on WPBeginner. For non-techy users, I recommend following our ultimate guide on how to speed up WordPress.

Background

Lately WordPress has been getting a lot of bad rep from “modern” developers where they say WordPress is slow.

The statement is usually followed up with, you should switch to a JAMstack static site generator like GatsbyJS. Others in the enterprise world will say that you should switch to a headless CMS like Contentful.

Several of my very successful entrepreneur friends started asking me whether this was true.

Some even started the process of migrating to a headless CMS because they read case studies of how others unlocked huge speed improvements by switching from WordPress to static site generators.

This was very frustrating for me because I knew they were wasting tens of thousands of dollars in migration costs. Not to mention, the endless customization costs that will rack up in the future.

So I took it as a challenge to prove that a large WordPress content sites like WPBeginner can load just as fast if not faster than most modern static site generators.

You can call me old school, but at the end of the day, a static site is just a page loading from cache.

Results

Before I jump to the exact WordPress hosting infrastructure, server configurations, and plugins, I think its helpful to share the results.

Here’s how fast WPBeginner home page loads on Pingdom from their Washington, DC server:

WPBeginner Homepage Pingdom

Depending on the time of day and location you check from, this result will vary anywhere from 400ms – 700ms range which is pretty fast for a homepage.

Here’s a test that I ran for a single post page since it has bigger images and more content:

WPBeginner Single Posts Page Speed Test from Pingdom

We also got a perfect score of “100” in Google page speed test for desktop. Although we do have some room for improvement on mobile score.

WPBeginner Google Page Speed Test

The results above are for cached pages which is what our readers and search engine bots get when they view our website. The perceived load time of WPBeginner is near instant (more on this later).

For the sake of comparison, here’s a speed test result for Gatsby’s homepage. This is a popular static site generator that a lot of developers are raving about:

Gatsby Homepage Pingdom

Here’s the speed test result of Netlify’s homepage, a popular static site host, that a lot of developers recommend. Notice that they have half the amount of requests, and their page size is 30% of WPBeginner, yet it still loads slower than our homepage.

Netlify Homepage Pingdom

The homepage speed of Contentful, the headless CMS which is “how enterprises deliver better digital experiences” is just not optimized at all. This was the slowest website we tested.

Contentful Homepage Pingdom

I am sharing these stats not to discredit the other frameworks, but rather to give perspective that not all new things are as shiny as they may seem.

WordPress with a proper hosting infrastructure and optimizations can be just as fast as any static site generator. Furthermore, no other platform will even come close to the level of flexibility that WordPress offers to business owners through its large ecosystem of plugins and themes.

WPBeginner Hosting Infrastructure

When it comes to website speed, nothing plays a more important role than your web hosting infrastructure.

As many of you already know, I have been a HostGator customer since 2007. I started the WPBeginner blog in 2009 on a small HostGator shared hosting account.

As our website grew, we upgraded to their VPS hosting and then dedicated servers.

Over the last decade, I have gotten a chance to work closely with many of their team members, and they have become an extended part of the WPBeginner family.

So when I took on the challenge to make WPBeginner faster than static site generators, I turned to them for help.

I shared my vision with their leadership team, and they offered to help me build one of a kind enterprise hosting setup for WPBeginner.

They put the best engineers from both Bluehost and HostGator team to work closely with me to make WPBeginner blazing fast.

Here’s an overview of what the WPBeginner hosting setup looks like:

WPBeginner Hosting Infrastructure

As you can see, this is a multi-server setup spread across two geographical regions (Texas and Utah). There are a total of 9 servers not including the load balancer cloud. Each server is a Xeon-D CPU with 8 cores (16 threads) with 32GB RAM and 2 x 1TB SSD (RAID setup).

We are using Google’s Cloud Load Balancing platform, so we can have seamless autoscaling and load balancing, worldwide.

Once the hardware was setup with proper data syncing in place, the Bluehost and HostGator team worked together to optimize the server configurations for WordPress. My hope is that some of these optimizations will soon make it into future WordPress hosting plans :)

Server Configuration Summary

Summarizing the server configurations of this complex setup in just a few paragraph is very tough, but I will try my best.

We are using Apache for our web server software because the team is more familiar with it. I won’t go into the NGINX vs Apache debate.

We are using PHP 7.2 along with PHP-FPM pools, so we can handle high loads of processes and requests. If your hosting company is not using PHP 7+, then you’re missing out on serious speed optimization.

We’re using Opcode caching with an advanced cache warmer to ensure that no real user should experience an uncached pageview.

We’re also using Object cache with memcache, so we can improve the response time for uncached page hits and other API response times in the WordPress admin area for logged-in users (our writers). Here’s a network load tab of our “All Posts” screen in the WordPress admin:

WPBeginner Post Edit Screen

To put in perspective, our admin area experience is now 2X faster than what we had previously.

For our database server, we switched from MySQL to MariaDB which is a clone of MySQL but faster and better. We also switched from HyperDB to LudicrousDB because it helps us improve our database replication, failover, and load balancing.

There’s also a lot of other configurations that helps us with performance and scalability such as HTTP/2 and HSTS for faster connection + encryption, ability to spin up additional servers in new regions in case of datacenter outage, etc.

I feel like I’m not doing justice to the amazing setup that the team has built, but please know that my core strength is marketing. Yes, I am a blogger who writes about WordPress, but a lot of the technical optimizations here are way above my pay-grade.

They were done by super smart engineers in Endurance team including David Collins (chief architect of Endurance / CTO of HostGator), Mike Hansen (core WordPress developer), and others whom I’ll thank in the credits section below.

CDN, WAF, and DNS

Aside from web hosting, the other areas that play a significant role in your website speed is your DNS provider, your content delivery network (aka CDN), and your web application firewall (WAF).

While I have it listed as three separate things, a lot of companies are now offering these solutions in a bundled plan such as Sucuri, Cloudflare, MaxCDN (StackPath), etc.

Since I want to have maximum control and spread the risk, I am using three separate companies to handle each part efficiently.

WPBeginner DNS is powered by DNS Made Easy (same company as Constellix). They are consistently ranked as the fastest DNS providers in the world. The advantage of DNS Made Easy is that I can do global traffic direction when a specific data center on my CDN or WAF isn’t working properly to ensure maximum uptime.

Our CDN is powered by MaxCDN (StackPath). They basically allow us to serve our static assets (images, CSS files, and JavaScripts) from their large network of servers across the world.

We’re using Sucuri as our web application firewall. Aside from blocking attacks, they also act as another layer of CDN, and their overall performance is just amazing. I believe they have the best WordPress firewall solution in the market.

When working on website speed optimizations, shaving off every millisecond matters. That’s why using these solution providers combined with our new web hosting infrastructure makes a huge difference.

To illustrate, here’s the waterfall breakdown of WPBeginner.com vs GatsbyJS.org vs CloudFlare.com:

Waterfall Breakdown of Requests on WPBeginner

Notice that WPBeginner’s DNS time, SSL time, Connect time, and Wait time are all top notch when compared to these other popular websites. Each of these improvements compound to deliver the best results.

Instant.page, Optimized Images, and Other Best Practices

One of the things you might have noticed is the near instant load time when you browse WPBeginner posts and pages.

Aside from all the things I mentioned above, we’re also cheating latency by using a script called instant.page which uses just-in-time preloading.

Basically before a user clicks on a link, they have to hover their mouse over that link. When a user has hovered for 65ms (very short period of time), one out of two will actually click on the link.

Instant.page script starts preloading that page at this moment, so when the user actually clicks the link a lot of the heavy lifting is already done. This makes the human brain perceives website load time as nearly instant.

To enable Instant.page on your site, you can simply install and activate the Instant Page WordPress plugin.

Instant Page Script

This script is pretty neat. I highly recommend checking out their website and clicking on the “test your clicking speed” button to see how it cheats the brain.

Optimizing Images for Web

While there are new image formats being developed such as webp, we’re not using them yet. Instead we ask all of our writers to optimize each image using the TinyPNG tool.

You can also automate the image compression using plugins like Optimole or EWWW Image Optimizer.

However, I personally prefer to have the team do this manually, so we’re not uploading large files on the server.

Currently, we’re not doing any lazy loading for images, but I do plan to add it in the near future now that Google has lazy loading support built-in to Chrome 76.

There’s also a ticket in WordPress core to add this feature on all sites (really hoping that this happens soon), so I don’t have to write a custom plugin.

Limiting HTTP Queries + Best Practices

Reduce cross-domain HTTP requests

Depending on the WordPress plugins you use, some will add additional CSS and JavaScript files on each page load. These additional HTTP requests can get out of control if you have a lot of plugins on your website.

For more details, see how WordPress plugins can affect your site load time.

Now before you jump to the wrong conclusion that too many WordPress plugins are bad, I want to let you know that there are 62 active plugins running on the WPBeginner website.

What you need to do is combine CSS and JavaScript files where possible to reduce HTTP requests. Some WordPress caching plugins like WP Rocket can do this automatically with their minification feature.

You can also follow the instructions in this article to do it manually which is what our team at WPBeginner has done.

Aside from HTTP requests that plugins and themes add, you also want to be mindful of other third-party scripts that you add on your website because each script will impact your website speed.

For example, if you are running a lot of advertising scripts or retargeting scripts, then they will slow down your site. You may want to use a tool like Google Tag Manager to conditionally load scripts only when they’re needed.

If you’re an ad-supported website like TechCrunch or TheNextWeb, then there’s very little you can do about this since removing ads isn’t an option.

Luckily, WPBeginner doesn’t rely on third-party ad scripts to make money. Want to see how WPBeginner makes money? See my blog post on WPBeginner income.

Lessons Learned (so far) + My Final Thoughts

This is a brand new hosting infrastructure, and I’m sure there are tons of lessons I will be learning overtime.

So far I love the speed improvements because it has helped us boost our SEO rankings, and our admin area is much faster.

With the new multi-server setup, we introduced a new deployment workflow to bring WPBeginner up to par with the rest of Awesome Motive product sites.

What this means is that we now have proper version controlling built-in, and there are measures put in place to stop me from being reckless (i.e adding plugins without proper testing, updating plugins from the dashboard without testing, etc).

These changes also set the path for me to finally step out of development and hand over the reigns of WPBeginner site to our dev team.

I have been resisting this for years, but I think the time is coming, and I just need to accept it.

The new setup does not have cPanel or WHM, so this makes me practically useless anyways since I’m not very fluent with command line anymore.

So far we have learnt two big lessons:

First, updating WordPress isn’t as straight forward due to server sync / replication. When we upgraded my personal blog (SyedBalkhi.com) to WordPress 5.2, the update files didn’t sync properly on one of the web nodes, and debugging took much longer than anticipated. We’re working on building a better build / testing process for this.

Second, we need to have better communication across teams because we had a minor crisis with load balancer misconfigurations which resulted in some downtime. To make it worst, I was on a transatlantic flight on Turkish Airlines, and the WiFi wasn’t working.

Luckily everything got sorted thanks to the quick response time by the hosting team, but this helped us create several new Standard Operating Procedures (SOPs) to better handle the incident in the future.

Overall I’m very happy with the setup, and I know that some of the caching configurations / optimizations that were made for WPBeginner will become a standard part of HostGator Cloud and Bluehost WordPress hosting plans.

I think this should go without saying that if you’re just starting a website, blog, or an online store, then you DO NOT need this sophisticated enterprise setup.

I always recommend that you start small with HostGator shared or Bluehost shared plans like I did, and then upgrade your hosting infrastructure as your business grows.

You can apply a lot of the optimizations that I shared above on your current WordPress hosting plans.

For example, Bluehost standard plan already comes with a built-in caching plugin that you can use, and they offer PHP 7 by default as well.

You can combine that with a CDN + WAF like Sucuri to significantly speed up your website.

Now if you are a mid-market / enterprise company who wants a similar hosting setup, then please reach out to me via our contact form. I can help point you in the right direction.

Special Thanks + Credits

Thank you HostGator and Bluehost

While in the article above, I have given tons of shout out to HostGator and Bluehost brands, I want to take a moment to recognize and appreciate the individual people that worked behind the scenes to make it happen.

First, I want to say thank you to the Endurance leadership team Suhaib, Mitch, John Orlando, Mike Lillie, and Brady Nord for agreeing to help me with the challenge.

I also want to thank Mike Hansen, David Collins, Rick Radinger, Chris Miles, David Ryan, Jesse Cook, David Foster, Micah Wood, William Earnhardt, Robin Mendieta, Rod Johnson, Alfred Najem, and others in the data center team for actually doing the hard work and making it happen.

I want to give a special shout out to Steven Job (founder of DNSMadeEasy) for quickly answering my questions and helping me better understand some settings. Also want to give a shout out to Tony Perez and Daniel Cid at Sucuri for always having my back.

Last but not least, I want to give special recognition to Chris Christoff. He’s the co-founder of MonsterInsights, and he was kind enough to help me with a lot of the testing and deployment.

I really hope that you found this behind the scenes case study about WPBeginner hosting infrastructure to be helpful. You may also want to see our ultimate guide on how to speed up WordPress which is way more beginner friendly.

Bonus: Here are the best WordPress plugins and tools that I recommend for all WordPress sites.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.



Source link

7 Best Blog Name Generators to Help You Find Good Blog Name Ideas


Choosing your blog name is a very important decision. It plays a crucial role in your blog’s branding, marketing, and SEO (Search Engine Optimization).

However, with millions of blogs online already, it is a bit hard to find a catchy name for your blog. Luckily, there are several clever blog name generators that can help you find great blog name ideas.

These blog name generators are online tools which generate blog name ideas based on the keywords you enter. They use clever hacks to generate unique blog names that you can use.

In this article, we will share some of the best blog name generators to help you come up with a catchy and brandable blog name.

Best Blog Name Generators

What Makes a Good Blog Name?

A good blog name is something that is short, unique, memorable, and contains your main keywords.

Your blog’s main keyword is the primary topic of your entire website. This makes it easy for those who’re interested in that topic to discover your blog.

For example; our blog name is WPBeginner, which is short, simple, and easy to remember. It includes the keywords ‘WP’ (WordPress) and ‘Beginner’.

Making your blog name unique can help build a strong brand. Whereas if you pick a generic or common name, then it will be hard for people to distinguish your blog from others.

For example, ‘The Simple Dollar’ blog used a combination of common words to create an easy to remember and catchy blog name.

If you are creating a personal blog, then you can also use your name as your blog’s name. There are many popular blogs named after the bloggers’ names including Michael Hyatt, Syed Balkhi, and others.

To learn more about choosing blog names, see our full guide on how to pick the best domain for your blog.

With that said, let’s take a look at the best blog name generators to come up with great ideas for your next blog.

Best Blog Name Generators for 2019

These blog name generators use random word combinations with your main keyword to help you find available blog names that you can use to start a blog.

1. Nameboy

Nameboy Best Domain and Blog Name Generator

Nameboy is the oldest and most popular blog name generator available on the market. This free name searching machine is easy to use, quick, and highly efficient.

All you need to do is to enter your keyword(s) and click the ‘Submit’ button. Then, it will generate tons of creative blog names based on your keywords.

For example, if you want to start a blog about fitness, then, you can search the term ‘fitness.’ Here is how you will see the results.

Nameboy Blog Name Search Results

Now, you can pick the best name from hundreds of results. If you don’t find a perfect name, then you can search again using different keyword combinations, synonyms, and more.

Once you have selected a name for your blog, you can click the ‘View Details’ button next to your blog name chosen. Doing so will open the Bluehost website where you can register your blog name and also buy hosting for it.

At Bluehost, you will get 60% off on WordPress hosting, free SSL, and a free domain name.

2. IsItWP

IsItWP Blog Name Generator

IsItWP comes with an intelligent name generator tool. It creates tons of clever name suggestions and helps you to pick the best name for your blog.

Simply enter your keywords or brand name and then, click ‘Generate Names’ button. After that, it will come up with a list of names based on your keywords.

For example, if you are looking for lifestyle blog names, a possible keyword may be ‘happy life.’ If you search that on IsItWP name generator, here is how it will show results.

IsItWP Blog Name Generator Search Results

As you can see in the screenshot above, you will see a variety of combinations for your keywords. If you don’t find a suitable name, you can start a new search again.

3. Domain.com

Domain.com Blog Name Search and Registration

Domain.com is one of the best domain name registrars. It comes with a powerful blog and business name generator, which shows you dozens of blog names with the respective cost for registration.

When you search a keyword, it will first check the availability of the .com domain for the word. If it is not available, then it will reveal other related names for you. It shows both new and premium domain names.

For example, let’s try to find a name for a travel blog. If you enter ‘travel notes’ as your keyword, you will see the search results as below.

Domain.com Blog Name Search Results

The .com domain for this name is not available. The .net version is available for a premium price. And, there are more options with different extensions. Simply scroll down the page to see more blog name suggestions.

Once you pick your blog title, you can proceed to register that. Domain.com is a great place for domain registration.

Domain.com is offering WPBeginner readers 25% off discount on domain products. All you have to do is either click on the link from our website, or use our Domain.com coupon code: nameboy

4. Domain Wheel

Domain Wheel

Domain Wheel is an awesome blog name suggestion tool. It helps you identify the available domain names for your blog with your desired keyword quickly.

Simply add one or more keywords to the domain search field and click the ‘Search Domain’ button. Domain Wheel will come up with many top domain names for your search.

For example, we searched ‘yummy bites’ to find a name for a food blog.

Domain Wheel Blog Name Search Results

If you scroll down the results page, you can find random naming ideas from Domain Wheel. These are short names that it believes can be used to build a good brand.

If you think you can build a brand, then you can get started with one of these names. Many of today’s popular brands started out with uncommon words, for example, Google, Facebook, Reddit, etc.

5. NameMesh

Name Mesh

NameMesh makes it easy to find great blog names by offering name ideas in various categories. Once you search your keywords, it will display naming suggestions in categories like Common, New, Short, Similar, SEO, fun, etc.

For example, if you are want to start a sports blog with ‘sports lover’ in your blog name. Here is how NameMesh shows you naming ideas for your blog.

Name Mesh blog name generator search results

You will see multiple blog name suggestions for each category. The categories help you choose the perfect name for your blog.

Pick a name by clicking; then it will open the GoDaddy website for registration. However, you can also register with other registrars like Bluehost, and SiteGround.

6. Lean Domain Search

Lean Domain Search - Blog Domain Name Generator

Lean Domain Search is a simple and user-friendly blog name finder tool. It is run by Automattic, the company behind WordPress.com.

After you search your keyword(s), it will display a list of blog name suggestions in seconds.

For example, if you are planning to start a fashion blog, then you may want to use ‘top fashion’ in your blog name. Let’s search for the terms.

Lean Domain Search - Blog Name Generator Search Results

If you like any name in the list, click on it to check its availability. If it is available, you will see registration options with Bluehost or WordPress.com.

Selecting the WordPress.com means using the WordPress.com website builder. If you want to host your blog yourself, then you can register your blog name and buy hosting at Bluehost.

For more details, see our full comparison on fully hosted WordPress.com vs. self-hosted WordPress.org.

7. Panabee

Panabee

Panabee is yet another awesome tool for blog name research. It gives you a simple way to search for blog titles, company name generator, and social media usernames.

Similar to other tools above, it gives you a search field where you can describe your idea in two words. Enter your chosen words and click on the ‘Search’ button.

For example, if you are looking for a beauty blog name, ‘beauty buzz’ may be a keyword you want to search. Here is how Panabee generates names for your search terms.

Panabee Blog Name Suggestions

It is easy to figure out whether the names are available or not. The names with blue heart icons are available for registration whereas those broken hearts in orange color are already taken. However, some of the taken domains can be purchased as premium domains.

Once you choose a name, you can click on it to proceed for registration.

Want to Register Your Blog Name for Free?

Once you have chosen your blog name, you need to be quick to register it before anyone else does. You should also make sure that you are getting the best deal.

WPBeginner users can now register a blog name for free at Bluehost on purchase of WordPress hosting. The best part of this deal is that you will get 60% off on the hosting as well.

Normally, a domain/ blog name costs $14 per year and a hosting account costs around $7.99 per month. But Bluehost will enable you to start your blog just for $2.75 per month.

→ Click Here to Claim This Exclusive Bluehost Deal ←

If you need help in starting your blog, see our step by step guide on how to create a blog for beginners.

That’s all! We hope these blog name generators helped you to come up with a cool blog name. If you want to make big out of your blog, see our guide on 25 proven ways to make money online with a WordPress blog.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.



Source link