A SEO-friendly website needs to have specific technical requirements in its core. I listed 35 features or mega-features into 7 different groups: crawlability and indexability, user experience, loading performance, URLs, content, social and international.
1. Crawlability and indexability
- 1.01. The main XML sitemap is accessible at the root of the domain.
- 1.02. The XML sitemap(s) are updated automatically with the newest URLs.
- 1.03. The XML sitemap(s) include links to images.
- 1.04. The XML sitemap(s) exclude "not to be indexed" pages.
- 1.05. The robots.txt file is acessible at the root of the domain.
- 1.06. The link to the main XML sitemap is in the robots.txt file.
- 1.07. The robots.txt file lists all "disallow" pages.
- 1.08. Each page type of your website has valid HTML code on https://validator.w3.org/.
- 1.09. Each page type of your website has valid CSS code on https://jigsaw.w3.org/css-validator/.
- 1.10. Each page type of your website has structured data in JSON-LD format.
- 1.11. Your website has a 404 page with a proper 404 http status code.
- 1.12. Every "Not to be indexed" pages include a "noindex" meta tag.
2. User experience
- 2.1. Your website fits all screens (desktops, tablets, smartphones), with ideally Responsive Web Design (RWS).
- 2.2. Your website has a custom 404 page.
- 2.3. Your website does not have broken links (404 pages).
- 2.4. Your website has a high definition favicon.
3. Loading performance
- 3.1. The images of your website are optimized (compressed).
- 3.4. Your website uses premium hosting.
- 3.5. You serve cached content of your website with reverse proxy servers and/or a Content Delivery Network (CDN).
- 3.6. You serve an AMP version of the public content pages of your website.
- 4.1. All pages of your website are in HTTPS.
- 4.2. All versions of your domain have an automatic 301 redirection to your primary domain. Your primary domain should start with https and I recommend to keep the www. So, your primary domain should start with
- 4.3. When a URL is changed, the old URL should have an automatic 301 redirect to the new URL. Please note that this situation is to be avoided at all costs. Search engines hate changes of URLs.
- 4.4. All new URLs should be customizable, unique and clean. Clean = indexable and readable. In your URLs, use common words that human beings can easily understand.
- 4.5. 1 URL = 1 unique content. Avoid duplicate content. If you follow this rule, canonical URL tags are useless within the same website. If you have pages accessibles by selecting filters (facets), tags or categories, make sure that those filters, tags and categories are always ordered in the same way in the URL. If there is no systematic order set, canonical tags are needed.
- 4.6. Pagination: make sure URLs of generic pages are paginated. Infinite scroll, from an SEO perspective, is tricky. I would not recommend it.
- 5.1. Each page has a customizable title tag, with an optimal length of 50 to 60 characters.
- 5.2. Each page has a customizable meta description tag, with an optimal lenght of 50 to 300 characters.
- 5.3. Each page has customizable text zones at the top of the page, with customizable headings (h1 to h4).
- 5.4. Each image has customizable information: you can choose the name of the file (as it appears in the URL), the title tag (name of the image) and the alt tag.
- 6.1. Every public pages of your website have open graph metadata.
- 6.2. Every public pages of your website have complementary Twitter Cards tags.
7 | International
7.1 | For international websites, all pages have hreflang attributes with appropriate regions/languages codes.
How did I make this list?
- No need to say that I didn't invent the wheel with this. 90% of the technical requirements are good practices that can be found in Google official resources. I was also inspired by the following resources:
- Clay Cazier (2016-07-27). SEO requirements for a new website platform. Search Engine Land. This article is probably the best article on technical SEO I found, as it is really about technical SEO. Logically, many of the features listed by Clay Cazier are in my article. However, I was bothered by the lack of grouping between the features. I also felt that some features were too specific (feature 18 about AngularJS) and some were repetitive. The distinction between Platform SEO requirements and Platform SEO near-requirements wasn't relevant to me.
- Matthew Howells-Barby (2018-04-13). How We Increased Organic Traffic by Over 50% Using Technical SEO Updates. HubSpot. This article is an interesting case study that shows how important are the technical features for SEO. The article focuses on several features that are in my list: 404 pages (1.5), pagination (3.6), structured data (1.4), customizable text zones (4.3), Hreflang (6.1) and XML sitemap (1.1). The article also covers language meta tags, which, I think, are not necessary and should be replaced by a lang attribute in the HTML opening tag of the document.
Custom-developped websites versus CMS-based websites
- The added-value of this list depends on the type of website you use it for.
- For custom-developped websites, this list is a gold mine (or at least I hope it is!). You have an updated overview of what needs to be done for making a website SEO-friendly. Web developpers, this list is really for you.
- For websites based on CMS platforms, the majority of the technical features listed below should already be integrated in the CMS core code, even though it is not always the case. And if there are not, it not always possible to implement them without interfering whith the core of the CMS, which is not recommended. However, the list can be useful to compare CMS regarding their SEO friendlyness.
Technical SEO audit
- If you work in SEO, this checklist is also a solid basis to perform technical SEO audits. A technical SEO audit is not about spotting pages with missing meta descriptions. Technical SEO audit is really about checking the presence of technical requirements on a website.
Crawlability and indexability
- Crawlability and indexability is at the heart of how search engines work, so it's not surprising to put this section as the first one on my list.
Not to index pages
- There are mainly 2 reasons to prevent a page from being indexed :
- for security and privacy reasons: the page is only intended for one or several users. For example, the private back-office pages on an ecommerce website.
- for quality reasons: the content of a page is of low quality, due to poor or duplicate content.
- If you need to prevent a page from being indexed by search engines or de-index one that has already been inexed, you should read this : Block search indexing with 'noindex'
One or several XML sitemaps?
- There is no preference related to having a unique or several XML sitemaps for a website. But if a website has or can have a lot of pages, multiple sitemaps are the way to go. The only requirement is to create a sitemap index file, listing all sitemaps of the website. You can learn more about this here: Simplify multiple sitemap management.
Search-engine friendly code
- Search-engine friendly code is standard HTML (HTML5) and CSS (CSS3). To make sure your code is valid, you can use the W3C validation tools:
JSON-LD structured data
- For JSON-LD structured data, you should read:
- The Structured data section of the Google Developper Search guide.
- The Search feature gallery.
- Full Hierarchy of structured data available. This page lists all the possible data that can be structured with JSON-LD. Depending on what information you want to put on a page, you have to find what data can be structured. The more data you can structure on a page, the better it is to help indexation for search engines.
- A 404 page is necessary to indicate to users and search engine that a URL is no longer valid. Howerver, search engines hate 404 pages, as it it signlas broken links. The fewer the better for SEO. 404 pages generally appear in 2 cases:
- A page is deleted or a URL is changed. This scenario can be avoided by redirecting the non-valid URL to a valid one (301 redirect).
- An external website is linking to a page that never existed. A 301 redirect can also be put in place in this case, but only after you spot the existence of the 404 page.
- For the user, the best thing is to have a customized (and if possible original) 404 page. You can find some inspiration on these websites:
User experience and performance
- User experience and Performance are vast and complex issues. I recommend to start with these Google resources to get an overview of these subjects:
A website compatible with all devices
- There are 3 technical options to mobile compatibility:
- Responsive Web Design.
- Dynamic serving.
- Separte URLs.
- Google's stand on this is adamant: Responsive Web Design is the way to go.
- To learn more about this, I recommend the Google Developper Search guide, section Mobile-friendly website.
Optimized (compressed) images
- To know more about images:
Optimized code: code splitting, minification and compression
AMP version for public content pages
- Yeah, I know. AMP is quite controversial and I can understand the reluctance of using it:
- Also, AMP might not work for your website. Kinsta published a nice article about this: Google AMP Case Study – Leads Dropped by 59% (How to Disable It).
URLs - Infinite scroll
- Should you use infinite scroll or not? Even though there isn't a definitive answer to this question, we can state that:
- Infinite scroll seems offfer better user experience (except if you're trying to reach the footer).
- As stated in the list, pagination is the safest way to go in terms of SEO.
- However, if you do want to use infinite scroll, please refer to those articles:
Open graph metadata and Twitter Cards
- You can refer to these sources for implementation:
International - Hreflang attribute
- Tell Google about localized versions of your page.
- If you want to have different languages for a website, there are 3 recommendended options:
- One top level domain name per language.
- One sub-domain name per language, with the same top level domain name. This is what Wikipedia is doing.
- One subdirectory per language with the same top level domain name.
- You can read more about this in this article: Managing multi-regional and multilingual sites.
Initial publication date: 2018-06-20
Last updated: 2019-06-26
Get notified directly for the next updates
I publish or update articles only a few times a year. Let me send you a short e-mail to let you know when this happens.