🕵️ 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. 🆙
🗃️ Table of Contents
- 2.8.1. Browser caching
- 2.8.2. Compression enabled
- 2.8.3. Resources minified
- 2.8.4. Images and fonts are optimized
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. One H1 per page
- 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
🆓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
Online tools that helps you locating and addressing issues that can hurt your ranking SEO Checkers
✔️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 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
⚙️ Technical SEO
☑️Identify crawl errors
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.
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:
- Test whether your page is able to be indexed
- Request URL to be (re)crawled by Google
- See current status of a URL
- See how google sees your page
☑️No broken links
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.
☑️No blocked pages
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
☑️Served over HTTPS
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.
☑️Page speed efficiency
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
<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.
✔️Images and fonts are optimized
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
Some tips for font optimization:
- Minimize number of font usage (both font family and variants)
- Subset font face
rel="preload"to treat resource with high priorty
- Cache & compress
📖Medium - How to Improve Page Speed by Optimizing Content
📖Web fundamentals - Measure Performance with the RAIL Model
📖Web fundamentals - Why Performance Matters
📖Varvy.com - Leverage browser caching
📖Varvy.com - Enable gzip compression
☑️Has valid robot.txt
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/
☑️Has valid sitemap.xml
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.
📜 On-Site SEO
☑️Has meta description
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" />
☑️Has meta viewport
Meta viewports optimize your app for mobile screens.
<meta name="viewport" content="width=device-width, initial-scale=1" />
☑️Has open graph tags
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
metatags to your head.
The four required properties are:
og:title- The title of the object, usually will match the content of your
og:type- The type of object, eg.:
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 object
og:url- The URL of your site where the object will take the user after interaction
To see all other available open graph tags, visit the official website of the open graph protocol.
<!-- 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" />
☑️Doctype is set to HTML5
<!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.
☑️Document has a title tag
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>
☑️Document has a valid hreflang
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.
<link rel="shortcut icon" href="/path/to/favicon.ico" />
☑️SEO friendly URLs
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.
<!-- 🔴 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>
☑️One H1 per page
H1 should only be used as your main title. Headings help Google understand your text and the context of the page.
☑️Image elements have [alt] attributes
Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute.
<!-- 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="" />
☑️Document uses legible font sizes
Font sizes less than 12px are too small to be legible and require mobile visitors to “pinch to zoom” in order to read.
☑️Tap targets are sized appropriately
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.
☑️Document avoids plugins
Search engines can't index plugin content, and many devices restrict plugins or don't support them.
Elements such as
appletare checked and if their MIME type matches any of the following:
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.
☑️Links have descriptive text
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.
☑️Use of keyphrases
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%)
☑️Use of passive voice
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.
☑️Use of transition words
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
☑️Length of paragraphs
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.
☑️Length of sentences
Longer sentences are generally more difficult to read than shorter sentences. Dividing longer sentences into shorter ones can help improve readability.
📊 Off-Site SEO
☑️Amount of links
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.
☑️Good vs bad links
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
☑️The use of rel
relattribute 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 an
hrefattribute 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.
📚 Other Resources 📖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 📺Ahrefs - SEO For Beginners 📺Ahrefs - SEO Checklist 2019 📺Backlinko - SEO Checklist 2020 📺WordPress - Yoast SEO Tutorial 2019