π΅οΈ The SEO Checklist is a comprehensive list of SEO requirements you need to address to rank higher and elevate your SEO game to the next level. π
β’ β’ β’
π Performance Checklist
-
π οΈ Tools
1.1. Analytics Tools
1.2. SEO Checkers
1.3. Chrome Extensions
1.4. Other Tools -
βοΈ Technical SEO
2.1. Identify crawl errors
2.2. URL inspection
2.3. No broken links
2.4. No blocked pages
2.5. Optimized 404
2.6. Served over HTTPS
2.7. Mobile friendly
2.8. Page speed efficiency- 2.8.1. Browser caching
- 2.8.2. Compression enabled
- 2.8.3. Resources minified
- 2.8.4. Images and fonts are optimized
2.9. Has valid robot.txt
2.10. Has valid sitemap.xml
2.11. Structured Data
2.12. Core web vitals- 2.12.1. Largest Contentful Paint
- 2.12.2. First Input Delay
- 2.12.3. Cumulative Layout Shift
-
π On-Site SEO
3.1. Meta information- 3.1.1. Has meta description
- 3.1.2. Has meta viewport
- 3.1.3. Has open graph tags
3.2. Document head
- 3.2.1. Doctype is set to HTML5
- 3.2.2. Document has a title tag
- 3.2.3. Document has a valid hreflang
- 3.2.4. Favicon exists
3.3. Document structure
- 3.3.1. SEO friendly URLs
- 3.3.2. Headings in order
- 3.3.3. Image elements have [alt] attributes
- 3.3.4. Document uses legible font sizes
- 3.3.5. Tap targets are sized appropriately
- 3.3.6. Document avoids plugins
3.4. Readability
- 3.4.1. Title width
- 3.4.2. Subheading distribution
- 3.4.3. Links have descriptive text
- 3.4.4. Internal links
- 3.4.5. Outbound links
- 3.4.6. Use of keyphrases
- 3.4.7. Use of passive voice
- 3.4.8. Use of transition words
- 3.4.9. Text length
- 3.4.10. Length of paragraphs
- 3.4.11. Length of sentences
-
π Off-Site SEO
4.1. Link building- 4.1.1. Amount of links
- 4.1.2. Good vs bad links
- 4.1.3. The use of rel
-
π Other Resources
βΉοΈ If you can't measure it, you can't improve it - The first step is to put analytics tools in place which can help you draw conclusions and locate potential issues
π The tools listed below are free to use
-
- π Google Analytics - Analyse traffic and behaviour of users on your site. Launch experiments and track conversions
- π Google Search Console - Measure your site's search traffic and performance, shows click-through rate and issues such as unreachable links
- π Google Keyword Planner - Plan your content around keywords that you want to rank for. Compare keywords to check number of searches and competitiveness
- π Google Trends - Discover what the world is searching for
- π Bing Webmaster Tools - Track impressions, plan keywords and many more for Bing
- π SimilarWeb - Identify traffic sources
- π LSIGraph - Generate latent semantic indexing terms for your keywords
- π WordPress - Yoast SEO - WordPress plugin for on-page content analysis
- π WordPress - RankMath - WordPress plugin for seo analysis
- π Keyword.com - Accurate keyword rank tracking software with daily updates
-
Online tools that helps you locating and addressing issues that can hurt your ranking
- βοΈ Lighthouse - Addressing technical and on-site seo issues
- Built inside Chrome DevTools.
- Apart from SEO, it can be used to audit for performance, pwa, best practices and accessibility issues
- βοΈ Webhint - Checks for issues such as: accessibility, compatibility, pwa, performance, pitfalls and security
- βοΈ Googleβs Mobile-Friendly Test - Test if page is mobile friendly
- βοΈ Varvy SEO tool - Checks for:
- Accessibility issues
- Excessive amount of links and they are findable
- Performance: page speed is optimal
- Robots.txt and sitemap are available
- Security: page is served over HTTPS
- Site availability: Google has access to your CSS and JavaScript resources
- Site is responsive
- Validates document
- βοΈ SEO Tester Online - *Analyse your site based on 4 different aspects:
- Structure of document
- Content on page
- Web & mobile performance
- Social presence (open graph tags)
- βοΈ Sitechecker Pro
- βοΈ Seobility - Factors includes meta information, page quality and structure, links and server configuration
- βοΈ SEO Site Checkup - Apart from general SEO, also checks for: speed, server & security and mobile usability
- βοΈ Web Check - A powerful all-in-one tool for discovering information about a website/host.
- βοΈ Lighthouse - Addressing technical and on-site seo issues
-
- π οΈ Facebook Sharing Debugger - Validate open graph tags
- π οΈ JSON-LD Schema Markup Generator
- π οΈ Structured Data Testing Tool
- π οΈ Structured Data Linter
- π οΈ W3C Markup Validation Service
- π οΈ LinkedIn Post Inspector
- π οΈ Pinterest Rich Pins Validator
- π οΈ Twitter Card Validator
βΉοΈ The purpose of Technical SEO is to help search engines find and crawl your website without any problems.
Use the coverage tool (previously Crawl Errors Report) in Google's Search Console to see which of your pages have been indexed and any problems encountered during indexing.
π Google Search Console - Coverage status report
π Google Search Console - Migrating from old Search Console
Make sure your URLs are properly indexed by Google. Google's URL Inspection tool provides information about the indexed version of a specific page. With it, you can perform various tasks such as:
Pages with unsuccessful HTTP status codes (pages that return 400s, 500s) may not be indexed properly. Make sure that you don't index error pages such as 404.
Page is not blocked from indexing. Search engines are unable to include your pages in search results if they don't have permission to crawl them.
<!-- this will prevent all crawlers from accessing your page: -->
<meta name="robots" content="noindex" />
# This response header also blocks crawlers
X-Robots-Tag: noindex
404 (Page not found) pages should be optimized. Default 404 error pages can result in poor user experience. It can mislead users into thinking an entire site is down or broken which increases the chance they leave the site entirely.
Things you can do to optimize your 404 page:
- Include notification that the page the user is looking for cannot be found
- Include a link to your home page
- Include a search bar
- Your navigation should be present
Ensure that your site's connection is secured with HTTPS. Data sent using HTTPS is encrypted which improves security and makes sure that data cannot be modified during transfer without being detected. Also make sure that you redirect all HTTP requests to the equivalent HTTPS version.
Strong sense of security will build trust over time which will only benefit your business.
Internet usage has turned around in 2016: more people are accessing the web from mobile devices than from desktop. By making your site mobile friendly, you ensure that your pages work properly across all devices.
π οΈ Googleβs Mobile-Friendly Test
π Google Developers: Be mobile-friendly
π Google Developers: Responsive Web Design Basics
π Varvy: Mobile optimization guide
Optimizing page speed is a whole topic in itself, but there are some key aspects from which you can leverage the most.
Leverage browser caching for static resources such as images or fonts. This way, you can reduce page load time for recurring visitors by storing website information in their cache. Rather than accessing these from the server, they are requested from the cache.
Browser caching set for images in a
.htaccess
file<IfModule mod_expires.c> ExpiresActive On # Expiration date set for images ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/gif "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType image/webp "access plus 1 year" ExpiresByType image/svg+xml "access plus 1 year" ExpiresByType image/x-icon "access plus 1 year" </IfModule>
gzip or brotli compression is enabled on the server side. This further reduces the network request size which will result in a faster page load and less bandwidth used.
All resources (HTML, CSS, JavaScript) should be minified to reduce their size
Compressing images and fonts can result in most saved bytes of data.
Some tips for image optimization:
- Try to utilize CSS3 effects instead of using images
- Use vector images, perferably SVG
- Minify SVG markup
- Choose the right raster format
- GIF for animation
- JPG for fine detailed images
- PNG-8/24 for transparent / low colour palette images
- Intrinsic size should be as close to display size as possible
- Compress
Some tips for font optimization:
- Minimize number of font usage (both font family and variants)
- Subset font face
- Use
rel="preload"
to treat resource with high priorty- Cache & compress
π Webtips.dev - 10 Critical Performance Optimization Steps You Should Take
π Webtips.dev - How to Improve Page Speed by Optimizing Content
π Webtips.dev - 3 Ways to Benchmark Your JavaScript
π Web fundamentals - Measure Performance with the RAIL Model
π Web fundamentals - Why Performance Matters
π Varvy.com - Leverage browser caching
π Varvy.com - Enable gzip compression
If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed.
Example for a valid robot.txt file
user-agent: *
disallow: /downloads/
A sitemap is a file where you provide information about the pages on your site. Search engines like Google read this file to more intelligently crawl your site. It tells Google which pages are important in your site.
Cases where you might not need a sitemap:
- If you only have a landing page or a small site (500 pages or less)
- You're using a hosting service like Wix or Webflow which generates a sitemap automatically
- Your site is comprehensively linked internally
Site has a valid structured data. Run the Structured Data Testing Tool and the Structured Data Linter to validate. Marking up your content with structured data makes it more likely that it will be included in rich search results.
π Webtips.dev - How to Use Schema Markup in HTML
π Web.dev - Structured data is valid
π Learn more - Schema.org
The core web vitals are three core metrics that focuses on three aspects of the user experience; loading, interactivity, and visual stability. These are measured by the following metrics:
LCP for short, measures the time it takes for the browser to fully render the main content of your page. LCP is considered good when it happens within 2.5 seconds.
FID for short, measures the time it takes for the first user input to be processed. Anything below 100ms is considered good.
CLS for short, measures the amount of layout shifts on your page that causes elements to change position unexpectedly. A good CLS score is less than 0.1.
π Webtips.dev - Core Web Vitals
π Web.dev - Largest Contentful Paint (LCP)
π Web.dev - First Input Delay (FID)
π Web.dev - Cumulative Layout Shift (CLS)
βΉοΈ On-Site SEO is about the structure and content of your page. It's goal is to guide you how to create SEO friendly content that is easily understandable by search engines.
βΉοΈ Meta information provides details about the webpage. Metadata will not be displayed but will be parsed by search engines
Meta descriptions provides a summary of a page's content that search engines include in search results
<meta name="description" content="Meta descriptions should not be more than 150 characters, but should be above 120 characters" />
Meta viewports optimize your app for mobile screens.
<meta name="viewport" content="width=device-width, initial-scale=1" />
The Open Graph protocol enables any web page to become a rich object in a social graph. To turn a web page into a rich object, you need to add additional
meta
tags to your head.
The four required properties are:
og:title
- The title of the object, usually will match the content of yourtitle
tagog:type
- The type of object, eg.:article
,profile
,website
. (To see all available object types visit the object types section on the official page of open graph.)og:image
- The URL of the image which will represent the objectog:url
- The URL of your site where the object will take the user after interactionTo see all other available open graph tags, visit the official website of the open graph protocol.
π The Open Graph protocol
π οΈ Facebook - Open Graph Object Debugger
<!-- Example markup for the movie "The Rock" on IMDB -->
<meta property="og:title" content="The Rock" />
<meta property="og:type" content="video.movie" />
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
<meta property="og:image" content="http://ia.media-imdb.com/images/rock.jpg" />
βΉοΈ Apart from meta tags, there are a number of other tags in the head of the document that you should take care of.
The
<!DOCTYPE>
declaration must be the very first thing in your HTML document. It tells browsers what version of HTML the page is written in. You should always use the latest version which is HTML5.π W3Schools - HTML <!DOCTYPE> Declaration
π οΈ SEO Site Checkup - Doctype Test
<!DOCTYPE html>
The title gives screen reader users an overview of the page, and search engine users rely on it heavily to determine if a page is relevant to their search. Titles shouldn't be too long or too short, try to keep the character count around 50-60.
<!doctype html>
<html lang="en">
<head>
β¦
<title>SEO Checklist</title>
β¦
</head>
<body>
β¦
</body>
</html>
hreflang links tell search engines what version of a page they should list in search results for a given language or region.
<link rel="alternate" hreflang="en" href="https://my-site.com" />
<link rel="alternate" hreflang="es" href="https://es.my-site.com" />
<link rel="alternate" hreflang="de" href="https://de.my-site.com" />
If your site has a favion, it can be included in the search results page.
π Google Search Console - Define favicon to show in search results
<link rel="shortcut icon" href="/path/to/favicon.ico" />
βΉοΈ Document structure outlines how your html should be built up and shows what are the key factors that can affect your SEO.
SEO friendly URLs should only contain letters and number, dashes (-) or underscores (_). Try to avoid using spaces, signs or other special characters. Make them short and relevant to the topic. Try to incorporate keywords into them.
π Google Search Console - Keep a simple URL structure
π Moz - URLs
π οΈ SEO Site Checkup - SEO Friendly URL Test
<!-- π΄ Don't -->
<a href="https://example.com/index.php?page=articles&order=desc">Latest articles</a>
<!-- β
Do -->
<a href="http://example.com/articles/latest">Latest articles</a>
Headings help Google understand your text and the context of the page. Headings should be created in hierarchical order. This means an
h1
should be followed by anh2
, and not anh3
.π Webtips.dev - 10 Best Practices for HTML
π Yoast - More than one H1
<!-- β Don't -->
<h1>Title of your page</h1>
<h3>Heading</h3>
<!-- β Don't -->
<h3>Title of your page</h3>
<h1>Heading</h1>
<!-- βοΈ Do -->
<h1>Title of your page</h1>
<h2>Heading</h2>
<h3>Sub-heading</h3>
Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. For images, provide
width
andheight
attributes to avoid layout shifts. Always lazy load off-screen images by setting theloading
attribute tolazy
.
<!-- Images should have a short, descriptive alt text -->
<img src="..." alt="Diagram showing the steps of critical rendering path" />
<!-- If the image doesn't provide any value, still give it an empty alt tag -->
<img src="..." alt="" />
<!-- Use `width` and `height` attributes to avoid layout shifts -->
<!-- Lazy load off-screen images -->
<!-- β οΈ Never lazy load ATF (above-the-fold) images -->
<img src="..." alt="" width="100" height="100" loading="lazy" />
Font sizes less than 12px are too small to be legible and require mobile visitors to βpinch to zoomβ in order to read.
Interactive elements like buttons and links should be large enough (48x48px), and have enough space around them, to be easy enough to tap without overlapping onto other elements.
Search engines can't index plugin content, and many devices restrict plugins or don't support them.
Elements such as
embed
,object
orapplet
are checked and if their MIME type matches any of the following:
application/x-java-applet
application/x-java-bean
application/x-shockwave-flash
application/x-silverlight
application/x-silverlight-2
Then it will be flagged as a plugin.
The document title not only shows up in the tab but is also shown in the Google search results page as a blue link. This is what users first see about your website on the search result page. To grab user attention, be short and to the point. Titles wider than 600px will be cut off so make sure your title is not too long. Also try to incorporate your main keyword.
Most texts of over 300 words need subheadings to help the reader scan the text more easily. Using subheadings will not only make your text more readable and accessible, but will also help Google figure out what your content is about.
If you can, also incorporate your main keyphrase in the subheading.
Descriptive link text helps search engines understand your content.
<!-- π΄ Don't -->
<p>To see more articles like this, <a href="articles.html">click here</a>.</p>
<!-- β
Do -->
<p>Are you interesed in more? Check out these <a href="articles.html">similar articles</a>.</p>
Use internal links throughout your site. It helps Google get an idea about the structure and hierarchy of your page. You should have the most internal links pointing to a cornerstone content. This ways, the most important content on your site recieves the highest link value.
By adding internal links, you enable Google to understand:
- The relevance of pages
- The relationship between the pages
- The value of each page
Last but not least, it can help both users and search engines to nagivate your site more easily.
Outbound or external links are links that are pointing to other websites from your page. Using external links and linking to other relevant pages on the web can help search engines better understand the context of your site.
π Moz - External Links
The focus keyphrase β or keyword β is the search term that you want your page to rank for most. For blog posts, you should usually aim for long-tail keywords (keywords containing multiple words) as competition is lower for these. To help you decide on keywords, you can use tools such as Google Trends, Google Keyword Planner, Answer The Public or simply search for your proposed term on Google and let autosuggest show you what other people are searching for.
Make sure that your keyphrase:
- Appear in the title tag
- Appears in subheadings
- Appears in first paragraph
- is unique, not used it before throughout your site
- is used in the slug (your SEO friendly URL)
- is used in meta description
- is used in image [alt] attributes
- is not too long
- Density is between 1-3% (number of times your keyphrase appears in a copy, eg.: your text is 100 words and 5 of those are your keywords than you have a keyword density of 5%)
π Yoast - The importance of keyword density
π Yoast - The length of your focus keyword
In most cases, active sentences are easier to understand than passive sentences. After writing your text, scan it for passive voice constructions. Always ask yourself: is a better, active alternative available? If there is, use it. If not, use the passive voice.
Transition words like and, but, so, because make it easier to read and understand a text. Although transition words donβt influence your SEO directly, they are one of the key factors to readability.
You have a higher chance of ranking in Google if you have plenty of content on your page, preferably posts with 1000 words or more.
The reason this will help you rank higher:
- Google will have more clue to determine what your page is about
- The longer the text, the more often your keywords will appear in it
- The more content there is, the more value it can give to users, making your site more relevant
Paragraphs help break down your text into bite-size and easy-to-understand chunks. Big walls of text are hardly readable and tend to scare off visitors. Try to limit the length of your paragraphs to 200 words.
Longer sentences are generally more difficult to read than shorter sentences. Dividing longer sentences into shorter ones can help improve readability.
βΉοΈ Off-Site SEO is not about technical details, but about marketing and promotion techniques.
βΉοΈ Link building is the process of getting other websites link back to your site. Backlinks are an important factor for search engines to determine which site to rank higher for which keyword.
Amount of links should not be excessive. Having too many links on a single page can hurt your SEO ranking as it is usually a sign of spam. The limit can depend on the type of site you have, whether you report news or provide services as a freelancer on a single landing page.
When dealing with links, quality is more important than quantity. The type of links you use on your website and you receive traffic from, can make or break your ranking.
We can divide good and bad links into two sub-categories: incoming and outgoing links. Some examples for both are listed below.Links that can be considered good links:
- Links from high authority websites
- Editorial links
- Guest posting
- Niche specific directories
Links that can be considered bad links:
- Links pointing to user profile pages
- Links pointing to comments
- Links pointing to dead websites
- Links created with link builders
- Links from foreign sites
- Links from unrelated content
- Links from paid links
- Links from spammy comments
π Moz - Types of Links
π Ahrefs - Bad links
The
rel
attribute on a link tag specifies the relationship between the page and the linked URL. Used by Google to specify whether search spiders should follow the link. Only use if anhref
attribute is present linking to an external resource.The attribute it can take that is relevant to SEO:
- nofollow: Indicates that the linked document is not endorsed by the author of this one. Do not confuse with noopener or noreferrer.
π MDN web docs - Link types
π W3Schools - rel attribute
- π Google Search Console - SEO Starter Guide
- π Google Search Console - Webmaster Guidelines
- π Moz - SEO Learning Center
- π Moz - The Beginners Guide to SEO
- π TutorialsPoint - SEO Tutorials
- π Ahrefs - The Noob Friendly Guide To Link Building
- π Mastering SEO for Developers
- πΊ Ahrefs - SEO For Beginners
- πΊ Ahrefs - SEO Checklist 2019
- πΊ Backlinko - SEO Checklist 2020
- πΊ WordPress - Yoast SEO Tutorial 2019