Technical SEO refers to all the behind-the-scenes code and files that describe your site to search engines.
There’s an excellent image at https://moz.com/learn/seo/on-page-factors that illustrates the perfect page from an SEO point of view, shown below. It addresses more than just code and files – it covers how important other factors such as speed, user experience, unique content are, to both people and search engines.
Most CMS (content management system) platforms these days have core SEO tagging capabilities built in, just waiting for you to enter good content. However that’s usually only about half of the full SEO tag set, and you may need to add an extra plugin to get a better result. Whether I’ve been coding Magento, WordPress, Shopify or Mura sites – I’ve always had to add extra plugins or code, to get a comprehensive solution.
Navigation and architecture
Navigation is part of information architecture.
Information architecture organises your site’s content:
- the list of pages, posts, images, files, content blocks;
- how they will be organised on your server;
- any hierarchies on how you will access different pages;
- which items will be in a top navigation menu, a side layered navigation or a footer navigation.
Historically most sites were designed for a desktop, and often had separate navigation menus for the header, footer and side.
As we move to a primarily mobile phone experience, it is even more important to structure the content of your site into distinct menus with hierarchies that allow people to drill down to the required page.
Most sites now use a “hamburger” menu (three horizontal lines) on mobile (and increasingly also desktop) that expands into a primary navigation menu. Or they may use the “kebab” icon (three vertical dots), to represent a settings/configuration page.
Plan your menu navigation, and then build a keyword mapping table to reflect it.
If you’ve done the planning described at the keyword research page, you’ll have an idea of what people are searching for – what information, product or service they are interested in. Your goal is to meet that need, by providing pages containing that content.
Balance this with user experience. Nobody wants to see a site with 100 pages addressing each possible combination – work-from-home-sydney, work-from-home-melbourne, work-from-home-in-your-underwear. You’ll get better results from a comprehensive page addressing your topic, as it will become a useful reference document, and be more likely to get people linking to it, which will boost your ranking.
So choose a meaningful set of keywords that you’d like to target.
Group them into logical related groups, so that each group can have a page optimised for it. Then draw up a table that lists all of your pages, with the keywords you want it to rank for, and optimise the content for those keywords. This is the start of your keyword mapping table. This will be a reference point when it comes to adding content, headings, images, urls.
You’ll end up with a table like this:
|1.0||Digital Marketing||Learn how to use digital marketing to drive traffic to your site.||digital marketing, online marketing|
|1.1||– Keyword Research||Keyword research helps you to choose the navigation and content for your site, for use in search engine optimisation.||keyword research, keyword usage|
Plan your URLs.
By default, most CMS platforms will generate a page URL based on your page title. So if you create a new page called “How to Sing” you’ll end up with a URL like mysite.com/how-to-sing/. It may end in .html or.php, depending on your platform. That’s good.
Other CMS platforms may not automatically do this – and you’ll end up with a page called mysite.com/p1234
This is a wasted opportunity for SEO. Using your keywords in the page URL does contribute to your rankings a bit, so you should use it. It also makes it clearer to people looking at search results, what your page is about. So take note of what your URL is, and adjust it before saving. (If you want to change it later you’ll need to think about redirects – discussed more below).
You also need to consider whether you want your category path included in the URL. This is most relevant for products and blogs, which are traditionally organised into categories. (or collections, if you use Shopify). So you need to decide whether you want to use:
There are two schools of thought about this.
The first option can be handy if your product name doesn’t include the category name. So if you have a category called bathrooms, and a product called stainless-steel-sink, then a URL that includes both bathrooms and stainless-steel-sink is informative. Somebody searching for a stainless steel bathroom sink is more likely to see and click on your url mysite.com/bathrooms/stainless-steel-sink.
However the overall length of a URL is also important.
A very long total URL lessens the relative importance of each word in the URL. If you have a category called bathrooms, a subcategory called sinks
and finally a product called stainless-steel-bathroom-sinks, you would end up with a full URL of mysite.com/bathrooms/sinks/stainless-steel-bathroom-sinks.
There is duplication of words, which can appear spammy to Google.
I prefer to have a longer product name, like stainless-steel-bathroom-sinks and to exclude the category path from the product URL.
This is the page title that shows in search results.
It is one of the most important fields for SEO. It contributes to your search ranking, and also has a marketing value, in that it can affect whether people click through to your site, from the search results.
The traditional format is “page title – sitename”.
Try to keep the total length under 60 characters.
It is frequently generated by your CMS based on the page title, but you should have the ability to change the Meta Title at any time.
There is an excellent resource at https://moz.com/learn/seo/title-tag
This is the page description that shows in search results.
It no longer contributes to search ranking, as historically SEOs would stuff keywords into it, so Google changed the algorithm to ignore it.
It primarily has marketing value, in that it can affect whether people click through to your site.
Try to keep the total length under 160 characters to avoid truncation.
If you leave this tag empty, Google will usually grab part of the content from your site, to display in search results. This may not be the description you want, so it is worth manually editing it via your CMS.
The most common mistake people make with WordPress is to install the Yoast SEO plugin, and then forget to edit the Meta Description on the page. I do it too – I get so caught up in creating the content, that I forget to go back and tweak the Meta Description. Oops.
There is an excellent resource at https://moz.com/learn/seo/meta-description
There are two parts to image SEO:
– the name of the image file
– and the “alt text”.
The alt text allows you to describe the image eg “stainless steel bathroom sink”. The alt text is usually used by screen-readers – programs that read websites for blind people, so it should be an actual description of the image, not just keywords you want it to rank for.
The alt text is also often used by email programs, where images are disabled by default to make the email load faster, and a placeholder space, with the alt text, is used instead. It can also be used in Google image search, and your ranking there – another potential source of traffic to your site.
Best practice is to name your image filenames meaningfully, and to ensure that all images also have a descriptive alt text.
https://moz.com/learn/seo/alt-text is an excellent resource.
Open Graph Tags
These tags allow you to control the way that your page is described, when you share it on social media.
Without these tags, Facebook may grab the first image it finds on your page – which may not be the one that you want.
Most CMS platforms will use the Meta Title and Meta Description as the default Open Graph Title and Open Graph Description, but you still need to plan the image that will be used.
Most CMS platforms will allow you to specify a “featured image” for your page. This is the ideal image to use for the Open Graph Image.
Given that WordPress is the most popular CMS platform in the world, and Yoast is the most popular SEO plugin, it’s worth reading his configuration tips at https://kb.yoast.com/kb/getting-open-graph-for-your-articles/
For extreme geekiness, you can read the Open Graph specifications at http://ogp.me/
There’s a handy tool called the Facebook Debugger at https://developers.facebook.com/tools/debug/ that allows you to preview how your page will be shared on Facebook.
It’s based on Open Graph Tags, and will also point out any errors you have with your current values.
Often the same page can be accessed via a number of different URLs. For example your homepage:
Similarly a product page within a category could be accessed via:
These all resolve to the same page, but Google treats them as separate URLs.
So the way to tell Google to treat one version as the main URL, for indexing and authority, is to use the Canonical Tag. Every page should have a Canonical Tag that informs which version of the URL should be indexed, and should have all of the authority.
Usually your CMS will have some configuration options where you decide:
– www or non-www
– http or https
– whether to include the category path in the URL
– whether to have a suffix such as index.php or a trailing slash
But even when your CMS has those options, you still need to check whether your theme/template actually included the tag on each page. Sometimes they forget..
The text content on a page can be organised into paragraphs, sections, and headings.
Headings are hierarchical, normally ranging from H1, H2, H3 down to H6.
Each page should have an H1 at the top, so that people (and search engines) know what the page is about.
Heading tags do contribute to rankings slightly, as they reinforce the content to search engines.
SEOs will often review pages to ensure that they all have an H1 tag, that it includes the keyword you are optimising for, and that the page is organised into logical groups with their own H2 or H3 headings, where applicable.
Redirects allow you to automatically redirect people (and search engines) from one page to another page.
They come in useful when:
- You’ve bought a new domain name, and want to redirect everybody from the old site to the new site
- You’ve decided that an old page isn’t useful anymore, and want everybody to see another page instead
- A product no longer exists, and you want to send people to a newer version/model
- You’ve reorganised your categories and deleted some, and want to send people to a new category
There are two types of redirects:
- Permanent (this sends an http status code of 301 to the browser)
- Temporary (this sends an http status code of 302 to the browser)
Permanent redirects are the most common, for the situations described above. In addition to providing a good user experience, sending people to the newer page, they also have the extremely important function of:
- telling search engines to update their index – to replace the old URL with the new URL
- transferring the authority from the old URL to the new URL, so that you don’t lose your hard-earned authority and position at search engines.
Temporary redirects might be useful when:
- A product is only temporarily unavailable – you want the URL to remain indexed at search engines, and will delete the redirect at a later stage;
- You have a specific sale URL offline (mysite.com/sale) and want to change which page it sends people to, at different times of the year (eg mysite.com/wintersale, mysite.com/summersale)
- A temporary redirect does not pass authority to the new URL – the old ranking is preserved.
Robots are programs that automatically do things – such as following the links on your page, going from page to page until they’ve discovered them all. This is called crawling a site.
Search engines and SEO tools are the most common web crawlers.
You’ll often hear people talking about bots crawling a site. That’s desirable – if it’s Google.
Although sometimes you have so many different bots crawling your site that it can put an excessive load on your site, overwhelming the server and bringing your site down.
There is a protocol (an agreed standard) that robots are supposed to follow, detailed at https://www.robotstxt.org/
So if you want to tell Google not to crawl the admin section of your site, or you don’t want Bing/Yahoo to crawl it at all, then you create a file called robots.txt, upload it to your server, and add some rules telling the robots what they can or can’t do.
However this isn’t actually enough.
If Google discovers those pages via another method (eg a link on somebody else’s page), then they will still crawl and possibly index your page.
You also need to have a robots tag on each page, to really tell Google what to do – whether to index the page, or whether it’s ok to follow links on the page, and pass authority to those pages.
In those cases you would add a robots tag to the page containing “noindex,nofollow”.
There are two types of sitemaps:
- HTML sitemap
- XML sitemap
An HTML sitemap often appears as a link in the footer of a site.
It’s intended to be viewed by people, as a way of seeing all pages (and sometimes page hierarchy) in a single location, in case you couldn’t find it via the navigation or search.
It also helps SEO, as it’s another way for search engines to discover all of your pages, and passes a bit of authority to each page, helping the ranking.
An XML sitemap is meant for search engines, not people.
It should be a list of all pages that you’d like the search engines to know about, and hopefully index.
It’s not a guarantee of indexing, but just a way to help.
Most CMS platforms will be able to generate an XML sitemap for you, and automatically upload it to the root of your server. Or else you can place it in another location, and let Google know by specifying it in the Google Search Console, or by adding a line to the robots.txt file.