This is the third entry in my series of improving a blog I have purchased.
This article is not only a good case study of what to do in a technical SEO audit but more importantly, the steps you can do and apply to your own website. No matter if it is a product review blog or an eCommerce website, a technical SEO audit is pretty much the same.
Also instead of covering every aspect that goes into a technical SEO audit, this checklist covers items I’ve seen missing from other audit checklists. I’m adding my own spin and experience of what I think is important with technical SEO.
These technical SEO changes, in my opinion, move the needle with SEO rankings. Though you should also check things like:
- If your sitemap is working and accurate
- “link:yourwebsitename.com” in Google to see what is indexed by Google and the SERP displayed
- Connecting Google Search Console and analyze that information
- Optimizing your website site speed and Core Web Vitals
- Removing articles that get no Google traffic and improving existing articles to increase ranking.
I’m assuming you’ve already done some of the basics. If not, you should do these as well.
There are many key takeaways from this article from either an affiliate blogger or anyone who wants to optimize their SEO. I cover in this article:
- Website Structure
- SEO Friendly URLs
- Internal Linking
- Broken Links And Internal Redirects
- Structured Data
- Affiliate Links
- Google Freshness
- My SEO Results So Far
Right now I’ve made very few changes to the website content other than moving content around on a page and fixing spelling and grammar mistakes. At some point, I plan on handling optimizing the content as well. There are still many Technical SEO changes I’m still working on. On-page SEO is a whole other topic and will be covered in a future article.
By very nature, technical SEO focuses on the mechanical process in which to facilitate SEO. I like to first address technical SEO problems because they hinder existing content from being found.
Sit back and relax and digest this monster of a post. This is perhaps one of the longest articles I’ve ever written. It will reveal many details on how the SEO sausage gets made on an affiliate blog.
As I mentioned in the previous blog post, I have updated the site’s website structure. The site’s categorization and menu structure play a critical part in SEO.
The existing menu didn’t represent the content properly and some content was four levels deep. After reading a website article, it made it very difficult to find other topics of interest.
In years past, adding right-side navigation items would be a way to facilitate a higher reader engagement.
Ever since Facebook has become a thing, right navigation links to pull readers to read other articles have decreased their effectiveness. Especially on mobile devices where there usually is no room for such layout.
Though with a site with hundreds, if not thousands, of links, how do you get better access to the content on your site?
I created a top-heavy menu to bubble up content from the various sections of the site and flattened the WordPress categories.
Flat website hierarchies (up to a point) seem to do better than very deep website hierarchies. As it stands today, top-heavy menus seem to work the best for a better user experience. Google seems to reward you with a better SEO ranking of your content as well.
Over the years, I’ve gotten a lot of flack with this design from graphic designers and clients alike. The menu looks busy with a lot of items to choose from and I agree.
Though I create sites for users and help facilitate better SEO. Your opinion quite frankly doesn’t count with conversion rate optimization. It simply requires fewer clicks to find the information a user wants. Which increases website engagement and time on site. Therefore helps with SEO ranking.
Larry’s Tip: When making SEO changes, follow what the analytics and users tell you not the opinions of others.
The next question I get often asked is which items do you add to your menu? For a site with hundreds of articles, it’s simply not reasonable to add every article to your menu. What you do is create a menu that mirrors your topics, highlights cornerstone articles, and popular articles.
I look at WordPress categorization, Google Analytics, and keyword search volume for hints.
The links in your menu are an important metric to alert Google which pages are of importance on your website. Don’t take this task lightly, spend considerable time on it and organize your website.
Not only menu hierarchy is important but the naming of menu links as well. The requirements I have for menu naming are:
- Brevity – Make it clear what the article is about in the clickable link
- Keyword Essense – Make it clear to Google as well what keywords you are going after
- One Line – The menu item looks much cleaner and easier to read if it fits on one line
- No More Than 7 Items Per Grouping – I break this rule sometimes myself, but try to keep each grouping to no more than 7 items per section.
- Primary and secondary menu items are clickable – Nothing more frustrating then a non-clickable item in a menu. I link to the category webpage in WordPress. If not a category page, then a cornerstone article. It should be a webpage which branches off to the other items in that section.
As you’ll notice, I don’t use full-length article titles and try to avoid keyword stuffing. Google is aware that keyword stuffing ‘review’ for each review in a menu is a way to help to rank. Yes, it helps to a degree but you must vary it up and not use the same keywords for each link on your site. Your menu structure is included in keyword stuffing.
Add Website Search
The other item I like to add to the menu is a website search tool. If a visitor is frustrated and trying to seek out a topic it can’t find via your menu, they often use website search as a last resort before they bounce.
Plus, if visitors are coming back to your website but did not bookmark the URL, you want them to be able to find your previously read content. Search is a common element missing from primary or secondary menus. If you don’t have a search box, add it to your website now.
The previous layout search was available in the right nav bar and on the footer of the page. It was using Google’s website search feature. While ok, I don’t like the fact it takes the visitor off-brand to show search results.
Though the search built into WordPress sucks for most themes. Not only how search works, but how it displays results. I much prefer to use SearchWP and use it on this very site and the sites I create.
Unlike the default search, SearchWP can not only tweak search results but also search Advanced Custom Fields data (which I’m using).
SEO Friendly URLs
According to the website Backlinko, the optimal length of a URL should be around 50-60 characters. From my own experience, I’ve seen shorter URLs do better than very-long-urls-that-no-one-can-remember. So this isn’t any surprise.
As the common saying goes – correlation does not equal causation. Recently, Google said URL length isn’t a ranking factor. I call BS!
It might just be the fact shorter URLs are easier to read and easier to remember. Then the URL is more likely to be shared and backlinked. Remember many social media platforms ellipse (…) long URLs and make it difficult to read. I don’t know about you but with URLs I can’t see the complete URL, I’m less likely to click.
Either way, I recommend shorter URLs.
WordPress Permalink Change
The blog I bought had all sorts of wonkiness going on with the permalink setting in WordPress. It is currently set up as:
This means blog posts shows up as:
/12345/your-blog-post/ which looks very messy.
Larry’s Tip: A permalink format is a critical SEO ranking metric.
Being the website was started 10 years ago, there were two valid reasons for this setup:
- The performance of WordPress was limited with a large (over 100 posts) website for other permalink formats. The best format was to use
%post_id%as part of the permalink so WordPress can generate the web pages faster.
- Google liked articles that contained numbers as part of the URL. At some point it looked like a freshness signal and was used by many newspapers.
This is no longer the case with either issue. Unfortunately, this makes the current URLs fugly and longer than needed.
How to Change The Permalink Per Post
My first step was to change existing URLs that don’t rank on the first page of Google for their primary keyword. The reasoning is these articles don’t rank well already, and by making changes to these existing articles I should only stand to gain.
I wanted to change the permalink slug to be:
I considered adding
/%category% in front of the
/%postname%/ but thought the site will only be 400-500 articles (even after merging with this website) in size and I don’t think justifies that type of structure. I think keeping it short and simple is more effective for this particular blog.
But there’s a problem with adjusting an existing permalink setup.
With WordPress the only way to make a permalink change is site-wide. Most bloggers and SEO consultants would bite the bullet and make this global change.
I don’t want to disrupt too much of the site at once. Interestingly enough, I had this same exact problem when I owned the blog Investor Junkie. In my research, I discovered a unique WordPress plugin that solved my problem.
Permalink Manger Pro is perhaps the best plugin to solve this unique problem. The software allows you to modify the permalink on a post-by-post basis and without changing the site-wide permalink.
This tool makes the URL changeover much less painful.
There are a few articles that rank on the first page of Google for the intended keywords. For now, these are the last articles I will change.
Permalink Manager Pro allows for SEOs to test URL structure and see how it affects ranking.
It even allows the nesting of WordPress posts which isn’t possible with WordPress. It’s a highly recommend WordPress plugin if you have the need to tailor your WordPress URL structure.
Redirecting To The New Permalink
Let me get this common misconception out of the way about backlinks. Many SEO consultants believe changing a URL will hurt your ranking because the backlinks are no longer a direct link to the page.
I can tell you this statement is outright false.
Since Google started requiring websites to use SSL, they’ve made direct linking and redirects with pretty the same level of ‘link juice’ to the destination URL. From tests I’ve seen, it’s not 100% the same but for all intents and purposes, it is.
Look at it from this perspective, links change all the time and Google realizes that penalizing an article just because it’s not exactly the same link from the source web page is silly.
Obviously, if you can avoid changing URLs you are better off. Though how many websites are built correctly from the start. It is typically rare and the blog I acquired is no exception.
The other thing I wanted to mention is how quickly Google recognizes new URLs. With some keywords, it can be the very next day if you submit a URL reindex to Google Search Console.
Let me be clear. You must use 301 HTTP redirects and not a 302 redirect since this change is permanent. If you use a 302 redirect it signals to Google that the redirection may change in the future and therefore will not send as much ‘link juice’ to the destination URL.
Managing redirection is a core part of managing a WordPress blog. If you don’t have a tool to manage your redirects I suggest you get one ASAP. I use SEOPress Pro. The redirection management is built into the Pro version of their software.
Lastly, I still like to remove stop words in the URL. I do this not only for SEO but are shorter and cleaner URLs.
WordPress Category Permalink Change
Typically with WordPress category pages, the beginning part of the permalink has /category/ as part of the URL.
It makes the URL unnecessarily wordy and redundant information. Depending upon the WordPress SEO plugin you use, you can remove this part of the URL for all category pages.
From my SEO technical audit, I discovered this site did not have this disabled.
With SEOPress, it’s just a matter of checking off this option.
Internal linking is an often missed opportunity to improve the ranking of your content.
Most SEO linking tutorials focus on how to get external backlinks, but often overlook is the power of linking related articles within your own website.
The previous owner had some interesting linking techniques.
Often the very first word would be the brand name (on say a review) would be a link to their affiliate link. Also when mentioning a competing brand in an article, they would also link to their affiliate program instead of the review.
These are lost opportunities to better interlink your articles within your website.
Look at it from the reader’s perspective. When a reader sees a brand mentioned in passing they aren’t typically ready to convert via an affiliate link. The reader wants to learn more about the product and what better way to do this is the review on your own website.
If you link directly to an affiliate link, the intent is then therefore off. This can not only hurt the user experience but conversions are also decreased from the affiliate click as well.
Though it can depend upon where on the page. From my experience on a review when you discuss alternatives near the end of the review, you can add links to reviews and affiliate links as well (see my Semrush review for an example).
In addition, the blog did not have a related article plugin for WordPress installed. If there were related posts listed it was via manual work. At the end of the post, you should have clear (possibility multiple) calls-to-action as you want the reader to see what else is available on your blog.
Be it with YouTube or your own website, Google likes to see readers engage with a brand and go down the link rabbit-hole. The more readers engage with your brand, typically the better it does with SEO. Make sure you have a reader do something next after reading your articles.
To help better manage and report internal linking, I installed the WordPress plugin LinkWhisper.
Broken Links And Internal Redirects
As I’ve said previously, I like to make sure my house (website) is clean and neat before I go out and improve the content and link-building techniques.
If you haven’t already, pick up the tool Screaming Frog SEO Spider. Screaming Frog’s spider tool should be in every SEO consultant. It is a very powerful technical SEO tool but starts with the basics of scanning for broken links and internal redirections.
A large amount of broken links (internal AND external) shows a webmaster is asleep at the wheel and the site is poorly maintained.
I could imagine (while I’ve not seen any SEO research paper on it) since Google places links as a heavy ranking metric, a large number of bad links would count negatively towards as website’s “quality” factor.
If you are making global site changes, make sure you spider your own website to find broken links. In addition, the same goes for fixing or removing bad external links. Webmasters often remove links and you must either find a new article to link to or remove the link outright.
As a side note, if you are purposely removing pages on your site, use the HTTP 410 code over 404 error. A 404 page implies that the page was removed and may return. A 410 error code means it was purposely removed and will get deindexed by Google faster.
You obviously can’t control links to your website when you make changes, but there is absolutely NO reason to have internal redirections.
Any mention of an article on your site should link directly to the article.
Scan for any internal redirections and replace them with direct links.
Just like broken links, I have no proof that Google uses the number of redirects as an SEO metric, but wouldn’t be surprised if they did as it shows a messy and unorganized website.
Either way, you should clean up your internal linking. After you find the links that need fixing, you’ll need a tool to update the links in mass.
Tools To Mass Search and Replace Links
If you are making URL changes to your blog, you’ll need a tool to find all of the old URLs.
My favorite WordPress tool is WP-CLI. Which is a command-line tool that allows you to automate WordPress tasks. One of the basic features is:
If your WordPress host doesn’t support it, I would even suggest transferring web hosts just to get this feature.
Many bloggers fear command-line tools and prefer a WordPress plugin. If that means you, I’ve had clients use the plugin Better Search Replace with similar success to change sitewide links.
Though with any mass changes you make, I suggest backing your website first. Use a service likeBlogVault.
Structured data is one of the newer SEO features that’s underutilized even by SEO professionals. Make sure your website has at least the schema entries I mention below.
The purpose of SEO structured data is often misunderstood.
It won’t do wonders with poorly written content and badly matching intent. That’s not the point of using a structured data schema. The purpose of using schema is to make it easier for Google to figure out the purpose of your content and where your content fits in the knowledge graph.
Structured data like breadcrumbs, FAQs, and reviews help can help improve your SERP as well.
Though in a technical SEO audit, your job is to figure out which ones are missing or perhaps do not contain correct markup information.
Some themes(like the Genesis Framework) and SEO plugins (like SEOPress) already come with a wide array of schema markup in JSON-LD format. They either automatically generate the markup for you, or you manually add it within their configuration.
If you are curious if your structured data is correct, Google has built-in to their Search Console. Currently, Google shows the markup for:
- Review snippets
- Sitelinks searchbox
Google uses others but does not show other structured data in the Google Search Console. You should also use Google’s Rich Results Tester to show a more complete view of your schema and if it is in the correct format.
Schema.org also has a great validator and peek at another website’s schema.
To learn about the schema that Google officially supports visit: Google Search Central Feature guides. There are a few undocumented markups and if you are curious about more schema options you can visit Schema.org.
The use of breadcrumb schema markup should be the first thing you add to pretty much any blog. It helps Google understand your website organization. It also helps with a better user experience as well since your readers know about your website.
The blog I purchased did use breadcrumbs but with the change in the URL structure, they had to be adjusted as well. It helps not only with SERP (since it is displayed) but makes it easier for the reader to know where in your site’s menu structure they are located.
While you may not realize it, the HTML you see at the top of a webpage is not the markup uses for breadcrumbs with SERP.
A plugin like SEOPress will generate breadcrumb schema markup for you automatically. But I’m also a fan of shortening the page’s breadcrumb to the core keywords on the page like the example below.
You’ll notice, the breadcrumb title is short and the primary SEO keyword of the article. Whereas the <h1> title is the full title. It may be to your advantage to shorten the breadcrumb title only to make it more readable. Though I don’t think this helps with SEO. I just like the way the breadcrumb looks on the page.
FAQ schema is a bit of a double-edged sword. On one hand, if Google picks up your FAQ schema it expands your SERP real estate by 75 pixels (currently limited to two selected FAQs entries on the page). It certainly makes your website stand out compared to the competing websites.
The downside risk is you have such an effective FAQ answer that then yields a no-click to your website. This effectively decreases your CTR to your blog.
The trick is to then pique one’s interest with the question but not answer the question completely in the FAQ. When creating FAQ entires your goal is to lead a reader to your website.
It’s often not realized, you can add links within an FAQ answer and link to other pages on your website. Better yet, there’s no rule preventing you from linking to the same article in the FAQ answer back to the same web page on your website!
The other issue with FAQ schema (like any SERP), there’s no guarantee Google will use your FAQ schema. While there’s no hardened rule, Google seems to like FAQ schema on more informational intent than transactional pages.
If unsure, scan the existing SERP and see if any results display FAQs, but also see if the first 10 results are using FAQ schema. If the competing websites are using FAQ schema, yet Google isn’t showing their FAQ then for the most part you are wasting your time creating FAQ content for that article.
The previous owner did have FAQ entries on the reviews which was good, the bad they were using the Rank Math SEO plugin (which I’m not a fan). So I had to convert the FAQ entries to another plugin.
I found a great FAQ plugin for WordPress that supports the Gutenberg editor which I’m a fan of using and my theme is setup to use it.
Gutenberg Blocks has a number of block options. Their FAQ plugin helps generate not only visually appealing FAQ entries on your page but can optionally generate JSON-LD FAQ schema.
If your website is of the review and comparison niche or sell your own products, review schema is a great way to improve your SERP.
The star ratings stand out compared to other search results that do not.
The previous owner of the blog did create review snippets via the SEO plugin Rank Math (Rank Meth as I like to call it). Though Rank Math only generates the schema. You still need to present that information in the article’s content in order to create a better user experience, which the previous owner did not.
So SERP showed a rating that didn’t exist anywhere on the page. Which I’m sure confused the reader upon reading a review. Instead of using one of the pre-built review schema plugins like WP Review, I decided to build my own product database and generate my own review schema.
I’ve had to create code to generate the review schema using Advanced Custom Fields.
This of course is way beyond the scope of what most can do on their own. Either use a plugin like WP Review as a starting point or hire a developer to create your own. It gives your website a much more professional look and isn’t a generic-looking review that other WordPress blogs also use.
In my opinion, this is one part of your website you should spend money on custom development.
Google has a specific policy regarding affiliate links. Any link you get paid from (either by flat rate, click, or per action) should not be counted towards ‘link juice’.
If you have any affiliate links, it is recommended by Google you use the
rel="sponsored"anywhere used on your site. This prevents the links will getting indexed by Google.
I prefer to use
rel="sponsored nofollow” because other search engines (like Bing) currently do not recognize the use of sponsored.
Like on this very website, all of my affiliate links go through an interstitial web page before arriving at the merchant’s landing page. All affiliate links begin with /go/ in the URL.
With WordPress currently, you must manually add
rel="sponsored nofollow"for every single link. It is a tedious task. My LinkClicky software adds sponsored and nofollow automatically to every link, so I don’t need to do this manually.
The blog I acquired also used the same /go/ for its affiliate links. The problem the blog I acquired was some affiliate links were showing up in Google’s ‘site:domainname.com’ search results. This is not good.
If they are indexed, you must add
rel="sponsored nofollow"to those links. Though there is a better way to block Google from indexing those pages.
Keep in mind the sponsored tag (or even nofollow that matter) does not prevent Google from visiting the affiliate link. Google will still traverse these links, it just won’t index them.
I prefer a stricter method to prevent any possible indexing or Google even touching the affiliate links. This is why I add to my
robots.txtthe entry of:
This blocks any possible access to my affiliate links. Google will not even visit those pages. If you want to see an example you can check out this website’s robots.txt file.
If you are currently manually inserting affiliate links, not only can it cause problems like this but it’s much more difficult to change your affiliate links (which happens often). You must use a link shortener like Pretty Links.
Obviously the better the ranking in Google the better the click-through rate (CTR) right?
You must optimize your SERP (Search Engine Results Pages) so a person is more likely to click on your article than competing websites. You can optimize your search title and description to yield a higher CTR.
Those are not your only options. You can add schema and other items to get your SERP result to take up more search real estate. By very nature, more screen real estate increases your chances of getting seen and ultimately clicked on.
Here are some items you can add to your posts that are not schema related I already mentioned above.
This is an easy one to add and works wonders for SERP and on-page experience. Long articles (aka skyscraper posts like this one) users typically get lost in a sea of text. Since people scan (not read) content, you must make your content skimmable.
This is where jump links are an effective user experience.
You must allow the reader to jump to sections they wish to read more about. There are many WordPress plugins that facilitate this. A great free plugin to use is Easy Table of Contents.
It creates links in SERP like you see below.
Be mindful of your jump link (<h2> subheading) length. Otherwise, ellipses (…) show up cutting off a jump link mid-sentence in your SERP. If you are seeing a jump too long, adjust your subheadings to look more presentable.
Vertical HTML Tables
This is another underutilized feature to increase your SERP. This one has the potential of increasing your SERP by 44 pixels. It’s been around for years and many mistake it for a schema you must add to an article.
The blog I acquired doesn’t use this technique anywhere on the website. It is something I will need to add to improve SERP.
If you check out my ThriveCart review article, you’ll spot the table where it grabbed this information. You do have to be careful when using this technique, especially if you have more than 4 items in a vertical table.
The requirements of a vertical table to get displayed should be in a name and value in column format.
For the above example if I set up a WordPress table like below it should display
Keep in mind this is only for product pages or product review pages. Other types of pages with different intent may work or not.
|Price||$495 – $690 One-Time Fee|
|Promotion||Lifetime License Only $495|
This is something all WordPress users can add to their blog posts. The caveat this result only shows on the first page of SERP.
Google certainly uses the recency of an article as an important ranking metric. Google Freshness, as it’s called, uses date as an accuracy indicator. Nothing is worse for a user experience than to visit a website and realize the content is wrong.
By very nature, older articles are out-of-date. But in some niches, freshness matters more than others.
For example, a how-to article detailing the steps to change an oil filter for a specific make and model automobile is a very stable topic. The accuracy of the content shouldn’t change over time. Whereas a blog post about bank CD rates is something that can change daily. Niche matters how much Google uses the freshness factor.
Though if all other ranking metrics are equal, an article from one month ago will typically rank higher than an article from three years ago.
At my previous blog, approximately 80% of our time was spent updating existing content.
After you get to a certain amount of articles within a niche, there are only so many ways to discuss a topic without repeating yourself.
Larry’s Tip: You are far better off updating an existing article than creating a new one on the same topic.
On Investor Junkie, there were many changes going on in the Fintech niche. Services would announce new features on a weekly basis. My goal was to make sure the content was accurate as of the day of the announcement.
So instead of creating a new review, that meant updating the existing WordPress blog post. The problem with most WordPress themes they only display the date published.
From my audit of the new blog, it too used the published date, which then Google defaulted to using in SERP.
To get around Google freshness, some SEO consultants recommend disabling the date in your WordPress theme. Though the problem is if your niche likes to see updated content this will work to your disadvantage.
Instead, I recommend not only publishing a last modified date (simultaneously removing the published date) but really updating your content.
Don’t just update the date of the post without any changes to your article.
I don’t have any evidence that Google does this, but would not be surprised that Google stores the difference between content updates.
Meaning Google knows how much a URL’s content has changed over time. It wouldn’t surprise me in the least bit because it is an easy search engine task and can be used to see how your SEO metrics have improved over time (or haven’t) and use that as a ranking factor.
Either way, I recommend keeping your content updated.
Don’t Let WordPress Mess Your Updated Date
As a side note, I should mention if you allow comments on a blog post. Sometimes Google gets confused and uses the oldest comment date (a comment from say three years ago) as the age of the post. This hurts your post freshness.
A workaround is to obfuscate the comment dates by not following the standard date format like MM/DD/YYYY and using relative dates like 8 months ago.
I’ve found the WordPress plugin WPDiscuz can do this effectively, plus add many other features to make your comments more interactive.
So far Google’s algorithm isn’t smart enough to know dates in relative formats…yet.
My SEO Results So Far
Ok, what matters isn’t just a bunch of technical SEO changes, but how has the blog been affected by these changes?
Starting the first week of September 2021 I took over the blog and started making changes.
What have been the results so far?
The results shown in Ahrefs speak for themselves.
In Ahrefs, I use their Rank Tracker tool extensively to track the keywords I care about. Here’s one example that’s representative of the site overall. For this example, ‘bluehost review’ is the target keyword.
This SERP improvement is representative of the technical SEO changes I made to the blog. Very little content was changed (other than grammar and spelling changes) to improve the ranking this much.
As you can see, Google wasn’t liking the original website, and just by making the technical SEO changes pushed the review to the second page of search results. While this specific keyword didn’t make it to page one, it shows how much technical SEO plays its part in improving SEO. If you ignore technical SEO you are missing out on a big part of improving your website.
Since I’ve taken over, SEO has taken off like a rocketship, but as of late has flattened. More than likely this is attributed to maxing out the technical SEO improvements. Though, I still have a decent amount of technical SEO changes to be made and I am not completely finished yet.
Next up will be the improvements of the content.