Many of us who manage websites are familiar with Google’s ‘Search Console‘. The search console is a way for webmasters to manage how Google interacts with our web sites. It provides functions to tell Google what parts of the site to search, what parts to ignore, and determine what pages are doing better than others.
One of the functions it provides is a way to see what parts of a web site that Google has indexed and what part it hasn’t. It also can tell what parts of a site it is ignoring and, to a certian extent, why it’s ignoring them.
One of the reasons that Google might be ignoring a page is because it’s been to be determined to be a ‘Soft 404’.
What’s a Soft 404 error?
Well, a REAL 404 error is a page not found. It’s a function of the web server software. Most web servers provide the ability to use a custom page when a 404 error is encountered. You can see an example of one here.
As for a ‘Soft 404’ … according to Google …
A soft 404 means that a URL on your site returns a page telling the user that the page does not exist and also a 200-level (success) code to the browser.
While some sites might actually do that … handle a page not found error with a friendly page but indicate to the browser that it’s a normal page (200 status code) … I suspect it’s actually a minority of sites (granted, it may be a way to game the system).
However … it turns out that pages that contain the words ‘not found’, ‘error’, ‘authorized’, ‘not allowed’, etc., in the title or body are often treated by Google as a soft 404 error … even if the page isn’t a 404 at all. Additionally, the words do not even need to appear on the page at all. The details of what constitutes a ‘soft 404’ are very mysterious.
Amazon Lightsail started offering a managed database service a few months ago.
I took a look at it … and tried it out … a while back and wasn’t really happy with it.
Although it had some nice features, I wasn’t given a ‘root’ (or super user) account and (as I sometimes do) was able to completely trash the instance within a few hours of creating it (I tried to manipulate the permissions on the master database user and ended up revoking all of them).
So I was considering creating my own database server using MySQL on a stand alone Amazon Linux instance.
This would give me a stand alone database with the flexibility to do anything I wanted.
My big concern was network security. I wanted to make sure that only my Lightsail instances would be able to communicate with the database server.
A number of years ago I purchased a Road iD bracelet so, if I crashed during a ride, anyone who tried to help me would know who to contact if I wasn’t able to tell them.
I’ve worn that bracelet for most, if not all, my rides. It’s gotten kind of beat up over the years.
At this point the metal plate with the emergency contact information is pretty scuffed up and almost illegible.
While browsing the Road iD web site, I noticed they have a lifetime guarantee.
Yesterday I sent their customer service department a note indicating that the plate is scuffed and illegible … and they responded, within about an hour, indicating that they would provide a replacement.
They confirmed the information for the bracelet and shipping address … and said it would be sent out that day.
Today I got the shipping confirmation of the replacement.
This post only covers the technical details of how to implement http/2 on an Apache web server running in Amazon Linux on Lightsail. It does not go into the details of what http/2 is or why use it. For that information, I suggest https://http2.github.io.
First you have to switch the Multi-Processing Modules (MPMs) from pre-fork (the default) to another one. I chose the event mpm for no particular reason.
To do this, edit /etc/httpd/conf.modules.d/00-mpm.conf and make the following changes …