The Front-End Checklist

November 28, 2017 (6y ago)

An Exhaustive List of all the Elements you need to have/test Before Launching your Website To Production.

The Front-End Checklist is an exhaustive list of all elements you need to have / to test before launching your site / HTML page to production.

It is based on Front-End developers’ years of experience, with additions coming from other open-source checklists. David Dias is the main author/creator and posted the guide to GitHub where it has taken off! The guide is also available below. Don’t forget to thank David for an awesome guide!

Table of Contents

  1. Head
  2. HTML
  3. Webfonts
  4. CSS
  5. Images
  6. JavaScript
  7. Security
  8. Performance
  9. Accessibility
  10. SEO

How To Use

All items in the Front-End Checklist are required for the majority of the projects, but some elements can be omitted or are not essential (in the case of an administration web app, you may not need RSS feed for example).

Some resources possess an emoticon to help you understand which type of content / help you may find on the checklist:


Notes: You can find a list of everything that could be found in the <head> of an HTML document.

Meta tag

<!-- Doctype HTML5 -->
<!doctype html>

📖 Determining the character encoding — HTML5 W3C

The next 3 meta tags (Charset, X-UA Compatible and Viewport) need to come first in the head.

<!-- Set character encoding for the document -->
<meta charset="utf-8" />
<!-- Instruct Internet Explorer to use its latest rendering engine -->
<meta http-equiv="x-ua-compatible" content="ie=edge" />

📖 Specifying legacy document modes (Internet Explorer)

<!-- Viewport for responsive web design -->
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- Document Title -->
<title>Page Title less than 65 characters</title>

📖 Title — HTML — MDN

🛠 SERP Snippet Generator

<!-- Meta Description -->
<meta
  name="description"
  content="Description of the page less than 150 characters"
/>

📖Meta Description — HTML — MDN

<!-- Standard favicon -->
<link rel="icon" type="image/x-icon" href="https://example.com/favicon.ico" />
<!-- Recommended favicon format -->
<link rel="icon" type="image/png" href="https://example.com/favicon.png" />

🛠 Favicon Generator

🛠 RealFaviconGenerator

📖 Favicon Cheat Sheet

📖 Favicons, Touch Icons, Tile Icons, etc. Which Do You Need? — CSS Tricks

📖 PNG favicons — caniuse

<!-- Apple Touch Icon -->
<link rel="apple-touch-icon" href="/custom-icon.png" />

📖 Configuring Web Applications

<!-- Microsoft Tiles -->
<meta name="msapplication-config" content="browserconfig.xml" />

Minimum required xml markup for the browserconfig.xml file is as follows:

<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
   <msapplication>
     <tile>
        <square70x70logo src="small.png"/>
        <square150x150logo src="medium.png"/>
        <wide310x150logo src="wide.png"/>
        <square310x310logo src="large.png"/>
     </tile>
   </msapplication>
</browserconfig>

📖 Browser configuration schema reference

<!-- Helps prevent duplicate content issues -->
<link
  rel="canonical"
  href="http://example.com/2017/09/a-new-article-to-red.html"
/>

📖 Use canonical URLs — Search Console Help — Google Support

📖 5 common mistakes with rel=canonical — Google Webmaster Blog

HTML tags

<html lang="en"></html>
<html dir="rtl"></html>

📖 dir — HTML — MDN

<link rel="alternate" href="https://es.example.com/" hreflang="es" />

📖 About conditional comments (Internet Explorer) — MSDN — Microsoft

🛠 Critical by Addy Osmani on Github automates this

Social meta

Facebook OG and Twitter Cards are, for any website, highly recommended. The other social media tags can be considered if you target a particular presence on those and want to ensure the display.

<meta property="og:type" content="website" />
<meta property="og:url" content="https://example.com/page.html" />
<meta property="og:title" content="Content Title" />
<meta property="og:image" content="https://example.com/image.jpg" />
<meta property="og:description" content="Description Here" />
<meta property="og:site_name" content="Site Name" />
<meta property="og:locale" content="en_US" />

📖 A Guide to Sharing for Webmasters

🛠 Test your page with the Facebook OG testing

<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@site_account" />
<meta name="twitter:creator" content="@individual_account" />
<meta name="twitter:url" content="https://example.com/page.html" />
<meta name="twitter:title" content="Content Title" />
<meta
  name="twitter:description"
  content="Content description less than 200 characters"
/>
<meta name="twitter:image" content="https://example.com/image.jpg" />

📖 Getting started with cards — Twitter Developers

🛠 Test your page with the Twitter card validator


HTML

Best practices

📖 HTML Reference

📖 About rel=noopener

HTML testing

🛠 W3C validator

🛠 Dirty markup

🛠 W3C Link Checker


Webfonts

📖 WOFF — Web Open Font Format — Caniuse.

📖 WOFF 2.0 — Web Open Font Format — Caniuse.

📖 TTF/OTF — TrueType and OpenType font support

📖 Using @font-face — CSS-Tricks


CSS

Notes: Take a look at CSS guidelines and Sass Guidelines followed by most Front-End developers. If you have a doubt about CSS properties, you can visit CSS Reference.

📖 Reset.css

📖 Normalize.css

📖 Reboot

<div id="js-slider" class="my-slider">
  <!-- Or -->
  <div id="id-used-by-cms" class="js-slider my-slider"></div>
</div>

🛠 Autoprefixer CSS online

Performance

📖 loadCSS by filament group

📖 Example of preload CSS using loadCSS

🛠 UnCSS Online 🛠

🛠 PurifyCSS

🛠 Chrome DevTools Coverage

CSS testing

🛠 stylelint, a CSS linter

📖 Sass guidelines

🛠 CSS Validator

Pixel Perfect — Chrome Extension

📖 Building RTL-Aware Web Apps & Websites: Part 1 — Mozilla Hacks

📖 Building RTL-Aware Web Apps & Websites: Part 2 — Mozilla Hacks


Images

Notes: For a complete understanding of image optimization, check the free ebook Essential Image Optimizationfrom Addy Osmani.

Best practices

🛠 Imagemin

🛠 Use ImageOptim to optimise your images for free.

📖 How to Build Responsive Images with srcset

📖 Alt-texts: The Ultimate Guide


JavaScript

Best practices

📖 Minify Resources (HTML, CSS, and JavaScript)

📖 Guidelines for Developing Secure Applications Utilizing JavaScript

📖 Remove Render-Blocking JavaScript

🛠 Customize your Modernizr

JavaScript testing

📖 ESLint — The pluggable linting utility for JavaScript and JSX


Security

Scan and check your web site

securityheaders.io

Observatory by Mozilla

ASafaWeb — Automated Security Analyser for ASP.NET Websites

Best practices

🛠 Let’s Encrypt — Free SSL/TLS Certificates

🛠 Free SSL Server Test

📖 Strict Transport Security

🛠 Check HSTS preload status and eligibility

📖 HTTP Strict Transport Security Cheat Sheet — OWASP

📖 Transport Layer Protection Cheat Sheet — OWASP

📖 Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet — OWASP

📖 XSS (Cross Site Scripting) Prevention Cheat Sheet — OWASP

📖 DOM based XSS Prevention Cheat Sheet — OWASP

📖 X-Content-Type-Options — Scott Helme

📖 X-Frame-Options — Scott Helme

📖 RFC7034 — HTTP Header Field X-Frame-Options


Performance

Best practices

🛠 Website Page Analysis

📖 Size Limit: Make the Web lighter

🛠 W3C Validator

📖 Cookie specification: RFC 6265

📖 Cookies

🛠 Browser Cookie Limits

🛠 Simple sharing buttons generator

Preparing upcoming requests

📖 Explanation of the following techniques

<link rel="dns-prefetch" href="https://example.com">
<link rel="preconnect" href="https://example.com">
<link rel="prefetch" href="image.png">
<link rel="preload" href="app.js">

📖 Difference between prefetch and preload

Performance testing

🛠 Google PageSpeed

🛠 Test your mobile speed with Google

🛠 WebPagetest — Website Performance and Optimization Test


Accessibility

Notes: You can watch the playlist A11ycasts with Rob Dodson 📹

Best practices

📖 Enable / Disable JavaScript in Chrome Developer Tools

🛠 Contrast ratio

Headings

📹 Why headings and landmarks are so important — A11ycasts #18

Landmarks

📖 Using ARIA landmarks to identify regions of a page

Semantics

📖 Mobile Input Types

Form

📖 Using the aria-label attribute — MDN

Accessibility testing

🛠 Wave testing

📹 Managing Focus — A11ycasts #22


SEO

🛠 Test your robots.txt with Google Robots Testing Tool

📖 Introduction to Structured Data — Search — Google Developers

🛠 Test your page with the Structured Data Testing Tool

🛠 Complete list of vocabularies that can be used as structured data. Schema.org Full Heirarchy

📖 Sitemap guidelines — Google Support

🛠 Sitemap generator