How to check your site for SEO

A website without SEO is like a shop in the desert. Nobody is ever going to find it. The question is, how does one check one's site for good SEO?

7

The long and the short of this article is that there are many 3rd party services that helps you to check if your site is SEO friendly. As time goes on we'll update this post to mention some of them. One that we really like but actually aimed at web performance, is GT Metrix. It also does a ton of SEO analysis. For this article we stuck to using one tool thus far.

In general we're sceptical of paid services. SEO paid services can get very expensive and are usually subscription based. Often the need is just to see how your site or a page is doing, instead of paying someone to show you on an ongoing basis. Having said that, there are probably some incredible services out there that offers "more" than just the basics.

In the meanwhile we needed to analyse My Blog to see how we're doing. The software is growing and great SEO is a key design criteria. So what we did was google a bit and found at least one service that seems to do on-page SEO analysis that seems pretty decent. It's also paid, but at least their landing page allows analysis free of charge.

Note: If you want to do it more than once use incognito mode in your browser.

The service we tried is this one:
https://seositecheckup.com/

We want to know how SEO friendly this page is:

https://eugene.fintechsystems.net/e-commerce/payfast-onsite-payments

We ran this page through their engine and got the information below back. To see our programming progress, we're also keeping a history of the results, to see if or how we improve.

To see the actual results, we feed the URL above into the engine and then scroll to the bottom of the service to find the "Issues to fix" section.

Table of results

Date

SEO Score

High/Medium/Low

Comments

07 Mar 2023

95

0/2/0

Nearing perfection

05 Mar 2023

91

0/3/0

Incredible improvements over the last test with only a few improvements made

16 Feb 2023

87

1/3/4

Lots of "low" hanging fruit that should be easy to fix. Some interesting caching things to play around with.

11 Nov 2022

81

3/3/5

Fixed canonicals, added custom 404, now serving WebP

17 Oct 2022

8/6/2

Fifth set of results, 07 March 2023

It seems we are nearing perfection. There are only 2 items remaining in the issues to fix category. Most importantly, we can see what's left and how it can be addressed (or not).

Here is an image of this almost perfection:

Let's have a quick discussion of the remaining items:

From easy to hard to impossible:

Caching CSS and JavaScript

With regards to caching CSS and JavaScript, our first attempt at this gave us a corrupted site. We'll continue to experiment with CSS but in my opinion JavaScript on a modern website is simply too complex to cache. We can however categorically state that caching images for 7 days by updating the Forge NGinx configuration is probably a very good thing.

Responsive Image Test

This is interesting and will require some research.

Image Sizes

This is of interest because My Blog already compresses images when saving. It would be worthwhile to determine exactly what is a "good size" for a web page. There is also a part of me that doubts if beautiful photos and logos and other images can always be compressed to "the right size". Nevertheless we don't currently have the exact tool to determine when images are the wrong size so some research is required.

CDN Usage Test

I do see the point here but this implementation will only happen at a much later stage. CDNs are big and technical and doing this properly will take a lot of work.

Ads.txt Validation Test

This sounds like a load of croc but we googled it nevertheless. Although there is good information about it, we're going to completely ignore this crap because we don't like an ad-filled website.

Finally, here are the remaining two standout items from issue to fix. I'm pretty stoked with the progress thus far so for now I'm going to take along break and when time permits I'll work a bit on the images issues.

Issues to fix

MEDIUM

Consider adding cache headers for CSS resources to speed up the webpage for returning users.

MEDIUM

Serve properly sized images to reduce page loading times and to improve user's experience.

Fourth set of results, 05 March 2023

Incredibly it seems we now only have 3 medium results. This also exposes UI issues with SEO Site Checkup because when you scroll through the results there are actually three "red" items, however, the resultant "issues to fix" at the bottom of the page only shows three medium issues. Output:

  • SEO Score: 91/100

  • 3 Failed

  • 5 Warnings

  • 64 Passed

Graphic:

Issues to fix

MEDIUM

Consider adding cache headers for CSS resources to speed up the webpage for returning users.

MEDIUM

Consider adding cache headers for images to improve website performance. With cache headers, browsers can cache images and serve them quickly to returning visitors, rather than re-fetching them each time.

MEDIUM

Serve properly sized images to reduce page loading times and to improve user's experience.

So what did we address today? Here is a quick list:

  • NGinx changes

    • STS header was implemented on the Laravel Forge server (fixed before the test)

    • Added image ALT tag for the featured image (fixed after the test)

  • Location header for image handling was set to cache for 7 days (fixed after the test)

  • Meta Description was lengthened

The remaining red items that aren't shown by issues to fix are:

  • Responsive image test

  • Image caching test

  • CSS caching test

I find it super interesting that render blocking resources are now displaying anything.

Third set of results, 16 Feb 2023

I went to Laracon EU in Lisbon in January and travelled a bit haven't been spending too much time doing software development. But it seems the effort I put in after the 11th of November 2022 has paid off! As you can see, we've reach a new record of 1/3/4 compared to last time of 3/3/5. This is great!

A textual representation of the values we kept track of before is:

  • SEO Score: 87/100

  • 8 Failed

  • 5 Warnings

  • 59 Passed

Graphically we see this:

I'm actually super please with the Issues to fix section, because now all that apparently remains to make the page perfect is this:

Issues to fix

HIGH

This webpage is using render blocking resources! Eliminating render-blocking resources can help this webpage to load significantly faster and will improve the website experience for your visitors.

MEDIUM

This website is not using cache headers for images. Setting cache headers can help speed up the serving of a webpage for returning users. Learn more about how to add expires headers to your images.

MEDIUM

This webpage is not using cache headers for CSS resources! Setting cache headers can help to speed up the webpage for returning users.

MEDIUM

Not all images in this webpage are properly sized! This webpage is serving images that are larger than needed for the size of the user's viewport.

LOW

This DNS server is not using an SPF record! SPF (Sender Policy Framework) allows administrators to specify which hosts are allowed to send mail from a given domain by creating a specific SPF record or TXT record in the Domain Name System (DNS). You can find more information about SPF records here.

LOW

This webpage is not using the Strict-Transport-Security header! This is a security header that was created as a way to force the browser to use secure connections when a site is running over HTTPS.

LOW

This website either doesn't have a favicon or this has not been referenced correctly!

LOW

This webpage is using inline CSS styles!

Plan of Action

In order to eliminate a few more issues, this is our new plan:

  • Low

    • Implement a SPF record for 'eugene.fintechsystems.net'

    • Implement Strict-Transport-Security. We'll need to find a testing methodology and can create a Vander Host Knowledgebase article for it too.

      • Apparently this is as easy as adding this header section: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";

    • Fix the Favicon. We're using it in another project, most likely BankyStatement. It can be copied across from there...

    • Examine the page for inline CSS. To be honest, we're not going to give this high priority till right at the end.

  • Medium

    • For some reason the engine is still complaining about proper size for images. This should be fairly trivial to examine and fix.

    • We can add cache headers for images and CSS. Specifically, we can update My Blog to have a default setting for caching of images. If there is a value, use it. If not, don't use caching.

  • High

    • Eliminate rending blocking resources. My Blog is a very simple application. The fact that there is a complaint about render blocking resources makes me think something like Google Analytics is the culprit. I actually did a bit of research on Google Analytics and render blocking resources and got quite far but since it's before my overseas trip and quite long ago I can't remember. I'm tempted to leave this for last too, because at the moment I have no idea how to test for render blocking or what exactly it means.

In summary our plan is the above, and we'll focus on "Low" and "Medium" priority items first in order to leave space for the "High" priority items. But looking back to where we started this is really good progress. I'm also considering activating a cloud service linked to MyBlog so that I can start signing up users.

Just after having published this report I noticed that the meta description also can be improved so we'll be focussing on that as well:

This webpage is using a meta description tag with a length of 89 characters. We recommend using well-written and inviting meta descriptions with a length between 150 and 220 characters (spaces included).

Second Set of SEO Site Checkup Results 11 Nov 2022

  • SEO Score: 81/100

  • 11 Failed

  • 5 Warnings

  • 56 Passed

Almost a month later and we gave the tool another try. This time we score 81/100 and things are green which is pretty good. We've also gone from 8 high priority items to only 3, which again is pretty good.

Next comes the problem with the tool, point 3 of the high priority items:

"The loading time of this webpage (measured from N. Virginia, US) is around 16.26 seconds and is greater than the average loading speed which is 5 seconds!"

This is hogwash because the site is far from the tester. Hello?!! Yes, in internet there is something called latency. The tool never asked me how far is our website.

Next problem it appears the canonical work isn't fixing the problem with without WWW and with WWW:

"https://eugene.fintechsystems.net/e-commerce/payfast-onsite-payments and https://www.eugene.fintechsystems.net/e-commerce/payfast-onsite-payments should resolve to the same URL, but currently do not."

More research is required

The third one talks about render blocking resources and then as a joke I looked up if Google Analytics blocks rendering. As it turns out, entire pages are devoted to this:

https://pagespeedchecklist.com/defer-google-analytics

Interesting stuff.

First set of SEO Site Checkup Results

Issues to fix
Last found on Oct 17 2022, 11:49 AM

HIGH

https://eugene.fintechsystems.net/e-commerce/payfast-onsite-payments and https://www.eugene.fintechsystems.net/e-commerce/payfast-onsite-payments should resolve to the same URL, but currently do not.

HIGH

The most common keywords of this webpage are not distributed across the important HTML tags! Primary keywords should appear in title tag, meta description and heading tags to help Search Engines to properly identify the topic of this webpage.

HIGH

This webpage is not using a meta description tag! You should include this tag in order to provide a brief description of your page which can be used by search engines. Well-written and inviting meta descriptions may also help click-through rates to your site in search engine results.

HIGH

This website is not using a custom 404 error page! Default 404 error pages result in a poor experience - it can mislead users into thinking an entire site is down or broken, greatly increases the chance they leave the website entirely, and looks unprofessional. We recommend to have a custom 404 error page in order to improve the website's user experience by letting users know that only a specific page is missing/broken (and not the entire site), providing them helpful links, the opportunity to report bugs, and potentially track the source of broken links.

HIGH

This webpage doesn't take the advantages of HTML Microdata or JSON-LD specifications in order to use structured data! View Google's guide for getting started with structured data.

HIGH

This webpage is using render blocking resources! Eliminating render-blocking resources can help this webpage to load significantly faster and will improve the website experience for your visitors.

HIGH

This webpage is not serving images in a modern format! Image formats like JPEG 2000, JPEG XR, and WebP often provide better compression than PNG or JPEG, which means faster downloads and less data consumption.

HIGH

This webpage is using "img" tags with empty or missing "alt" attribute!

MEDIUM

This website lacks a sitemap file! Sitemaps can help robots index your content more thoroughly and quickly. Read more on Google's guidelines for implementing the sitemap protocol.

MEDIUM

This webpage is not using cache headers for CSS resources! Setting cache headers can help to speed up the webpage for returning users.

MEDIUM

This website is not using cache headers for images. Setting cache headers can help speed up the serving of a webpage for returning users. Learn more about how to add expires headers to your images.

MEDIUM

A Google Analytics script is not detected on this page. While there are several tools available to monitor your site's visitors and traffic sources, Google Analytics is a free, commonly recommended program to help diagnose potential SEO issues.

MEDIUM

Not all images in this webpage are properly sized! This webpage is serving images that are larger than needed for the size of the user's viewport.

MEDIUM

This webpage is not using social media meta tags! While this type of meta tags don't affect what people see when they visit the webpage, they exist to provide information about it to search engines and social media platforms.

LOW

This DNS server is not using an SPF record! SPF (Sender Policy Framework) allows administrators to specify which hosts are allowed to send mail from a given domain by creating a specific SPF record or TXT record in the Domain Name System (DNS). You can find more information about SPF records here.

LOW

This webpage is using inline CSS styles!


Updated: 1 year ago

© 2022 Eugene's Blog