### Google Search Console Setup
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Confirms Google Search Console is installed and correctly configured to monitor site presence in search results.
```APIDOC
Search Console:
Status: Installed and correctly configured.
Purpose: Monitor, maintain, and troubleshoot site's presence in Google Search results.
Dependencies: Google account.
Tools:
- https://search.google.com/search-console/about
```
--------------------------------
### Google Analytics Setup
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Ensures Google Analytics is installed and correctly configured for website tracking.
```APIDOC
Google Analytics:
Status: Installed and correctly configured.
Purpose: Website traffic monitoring and analysis.
Dependencies: Google Analytics account.
Tools:
- https://analytics.google.com/analytics/web/
- http://www.gachecker.com/
```
--------------------------------
### BrowserConfig.xml for Windows Tiles
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
The minimum required XML markup for the `browserconfig.xml` file, defining various tile sizes and their corresponding image sources for Windows Start tiles.
```xml
```
--------------------------------
### Preload CSS using loadCSS
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Provides an example of how to preload CSS files using the loadCSS utility from filament group. This technique helps to prevent render-blocking and improve perceived performance by loading non-critical CSS asynchronously.
```html
```
--------------------------------
### Windows Tiles Configuration
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Specifies the configuration for Windows tiles, linking to a `browserconfig.xml` file that defines tile sizes and icons for Windows devices.
```html
```
--------------------------------
### Performance Best Practices
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Optimizes website performance by setting goals for load times and file sizes, minifying HTML, implementing lazy loading, managing cookie sizes, and optimizing third-party components.
```APIDOC
Performance Goals:
Description: Achieve specific performance metrics for user experience.
Metrics:
- First Meaningful Paint: Under 1 second
- Time To Interactive: Under 5 seconds (average config, slow 3G), under 2 seconds (repeat visits)
- Critical file size: Under 170Kb gzipped
Resources:
- Website Page Analysis: https://tools.pingdom.com
- WebPageTest: https://www.webpagetest.org/
- Size Limit: https://evilmartians.com/chronicles/size-limit-make-the-web-lighter
Minified HTML:
Description: Ensure HTML is minified for faster loading.
Lazy loading:
Description: Implement lazy loading for images, scripts, and CSS to improve initial response time.
Cookie size:
Description: Limit cookie size to 4096 bytes and domain to 20 cookies.
Resources:
- RFC 6265: https://tools.ietf.org/html/rfc6265
- MDN Cookies: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
- Browser Cookie Limits: http://browsercookielimits.squawky.net/
Third party components:
Description: Replace third-party iframes or JS components with static alternatives where possible to limit external API calls and preserve privacy.
Resources:
- Simple sharing buttons generator: https://simplesharingbuttons.com/
```
--------------------------------
### Responsive Images with Srcset
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Guidance on using the `picture` and `srcset` attributes to deliver appropriately sized images based on the user's viewport. Improves performance and user experience.
```link
```
--------------------------------
### Image Optimization Tools
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
A collection of tools and services for optimizing images for the web, including format conversion, compression, and SVG optimization.
```link
```
--------------------------------
### Responsive Design Testing Tools
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Tools to test website responsiveness across various screen sizes and devices. Essential for ensuring a consistent user experience on all platforms.
```link
```
--------------------------------
### Preconnection with preconnect
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Performs DNS lookup, TCP handshake, and TLS negotiation with services in advance during idle time using preconnect. This reduces latency for future connections.
```html
```
--------------------------------
### Preloading Resources with preload
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Loads critical resources needed for the current page (e.g., scripts at the end of body) in advance using preload. This ensures essential resources are available quickly.
```html
```
--------------------------------
### Apple Web App Meta Tags
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Configures how the web application appears when added to the home screen on Apple devices, including the touch icon and status bar style.
```html
```
--------------------------------
### Image Alt Text Best Practices
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Guidelines for writing effective alternative text for images. Crucial for accessibility and SEO, providing context for visually impaired users and search engines.
```link
```
--------------------------------
### Prefetching Resources with prefetch
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Requests resources that will be needed soon (e.g., lazy-loaded images) in advance during idle time using prefetch. This improves perceived performance by having resources ready.
```html
```
--------------------------------
### Lazy Loading Images
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Implements lazy loading for images to improve initial page load times. Includes a polyfill for native lazy loading support.
```javascript
import 'loading-attribute-polyfill';
```
--------------------------------
### DNS Resolution with dns-prefetch
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Resolves DNS of third-party services in advance during idle time using dns-prefetch. This helps to speed up subsequent requests to these services.
```html
```
--------------------------------
### Meta Description Tag
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Provides a brief summary of the page's content for search engines and social media previews. It should be unique and under 150 characters.
```html
```
--------------------------------
### HTML Sitemap Provision
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Confirms that an HTML sitemap is provided and accessible, typically linked from the website's footer.
```APIDOC
HTML Sitemap:
Status: Provided and accessible via footer link.
Purpose: Offer users an overview of the website's structure.
Guidelines:
- https://support.google.com/webmasters/answer/183668?hl=en
```
--------------------------------
### sitemap.xml Verification
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Checks for the existence of sitemap.xml and its submission to Google Search Console.
```APIDOC
sitemap.xml:
Status: Exists and submitted to Google Search Console.
Purpose: Help search engines crawl and index website content.
Tools:
- https://websiteseochecker.com/html-sitemap-generator/
```
--------------------------------
### Security Best Practices
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Ensures the website is secure by implementing HTTPS, HSTS, CSRF, XSS prevention, Content Type Options, X-Frame-Options, and Content Security Policy.
```APIDOC
HTTPS:
Description: Use HTTPS on every page and for all external content.
Resources:
- Lets Encrypt: https://letsencrypt.org/
- Free SSL Server Test: https://www.ssllabs.com/ssltest/index.html
- Strict Transport Security: http://caniuse.com/#feat=stricttransportsecurity
HTTP Strict Transport Security (HSTS):
Description: Set the HTTP header to 'Strict-Transport-Security'.
Resources:
- Check HSTS preload status: https://hstspreload.org/
- OWASP HSTS Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Strict_Transport_Security_Cheat_Sheet.html
- OWASP Transport Layer Protection Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Protection_Cheat_Sheet.html
Cross Site Request Forgery (CSRF):
Description: Ensure server-side requests are legitimate and originate from the website/app.
Resources:
- OWASP CSRF Prevention Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Request_Forgery_Prevention_Cheat_Sheet.html
Cross Site Scripting (XSS):
Description: Ensure the page or website is free from XSS vulnerabilities.
Resources:
- OWASP XSS Prevention Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html
- OWASP DOM based XSS Prevention Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.html
Content Type Options:
Description: Prevent browsers from MIME-sniffing the content type.
Resources:
- X-Content-Type-Options: https://scotthelme.co.uk/hardening-your-http-response-headers/#x-content-type-options
X-Frame-Options (XFO):
Description: Protect against clickjacking attacks.
Resources:
- X-Frame-Options: https://scotthelme.co.uk/hardening-your-http-response-headers/#x-frame-options
- RFC7034: https://tools.ietf.org/html/rfc7034
Content Security Policy:
Description: Define allowed content sources and protect against clickjacking.
Resources:
- Content Security Policy Introduction: https://scotthelme.co.uk/content-security-policy-an-introduction/
- CSP Cheat Sheet (Scott Helme): https://scotthelme.co.uk/csp-cheat-sheet/
- CSP Cheat Sheet (OWASP): https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
- Content Security Policy Reference: https://content-security-policy.com/
```
--------------------------------
### Structured Data Implementation and Testing
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Validates that structured data is implemented correctly and passes testing without errors, aiding crawlers in understanding page content.
```APIDOC
Structured Data:
Status: Tested and without errors.
Purpose: Help crawlers understand page content.
Technologies:
- JSON-LD (https://json-ld.org/)
- Microdata (https://www.w3.org/TR/microdata/)
Testing Tools:
- https://search.google.com/test/rich-results
Vocabularies:
- Schema.org Full Hierarchy (http://schema.org/docs/full.html)
```
--------------------------------
### RTL Language Support Resources
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Resources for understanding and implementing Right-to-Left (RTL) language support in web applications. Crucial for internationalization.
```link
```
--------------------------------
### HTML5 Doctype Declaration
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Ensures the browser renders the page in HTML5 mode. This declaration must be the very first thing in your HTML document.
```html
```
--------------------------------
### Favicon Links
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Links to various favicon formats, including standard ICO, recommended PNG, and modern SVG. Favicons are essential for branding and site identification in browser tabs.
```html
```
--------------------------------
### Heading Logic Check
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Verifies that heading text logically structures and helps users understand page content.
```APIDOC
Heading Logic:
Purpose: Improve content understanding through logical heading structure.
Tools:
- http://khan.github.io/tota11y/#Try-it (Tota11y, tab Headings)
```
--------------------------------
### robots.txt Validation
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Ensures the robots.txt file is not blocking access to important webpages.
```APIDOC
robots.txt:
Status: Not blocking webpages.
Purpose: Control search engine crawler access to website sections.
Tools:
- https://www.google.com/webmasters/tools/robots-testing-tool
```
--------------------------------
### Pixel Perfect Chrome Extension
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
A Chrome extension to compare creatives with code implementation for design fidelity. Helps ensure visual consistency between design mockups and the actual website.
```link
```
--------------------------------
### Viewport Meta Tag
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Configures the viewport for responsive web design, ensuring proper scaling and display across different devices. It's crucial for mobile-first development.
```html
```
--------------------------------
### Page Title Tag
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Sets the title of the HTML document, which appears in the browser tab and is important for SEO. Keep titles concise, ideally under 55 characters.
```html
Page Title less than 55 characters
```
--------------------------------
### Facebook Open Graph Meta Tags
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Essential and recommended Facebook Open Graph meta tags for social media sharing. Includes type, URL, title, image, description, site name, locale, and optional image dimensions for better rendering.
```html
```
--------------------------------
### Front-End Checklist Structure
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
This snippet outlines the structure and categorization of the Front-End Checklist. It details the different levels of flexibility (low, medium, high) for checklist items and the types of resources (documentation, tools, media) that may be included.
```markdown
# 🗂 Front-End Checklist
## 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). We choose to use
3 levels of flexibility:
- ![Low][low_img] indicates that the item is recommended but can be omitted in certain situations.
- ![Medium][medium_img] indicates that the item is highly recommended but can potentially be omitted in very specific
cases. However, omitting these elements can negatively impact performance or SEO.
- ![High][high_img] indicates that the item cannot be omitted under any circumstances. Removing these elements may
result in page malfunctions or cause accessibility and SEO issues. Testing should prioritize these elements first.
Some resources possess an emoticon to help you understand which type of content / help you may find on the checklist:
- 📖: documentation or article
- 🛠: online tool / testing tool
- 📹: media or video content
## Head
> [!NOTE]
> You can find [a list of everything](https://github.com/joshbuchea/HEAD) that could be found in the `` of an HTML document.
```
--------------------------------
### Twitter Card Meta Tags
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Standard Twitter Card meta tags for optimizing content display on Twitter. Includes card type, site and creator handles, URL, title, description, and image.
```html
```
--------------------------------
### Character Encoding Declaration
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Declares the character encoding for the document, typically UTF-8, which supports a wide range of characters. This should be one of the first meta tags in the ``.
```html
```
--------------------------------
### Alternate Language and x-default Tags
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Uses rel="alternate" with hreflang attributes to indicate alternate language versions of a page and specifies a default version for international landing pages with hreflang="x-default".
```html
```
```html
```
--------------------------------
### CSS Linting with Stylelint
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Ensures all CSS or SCSS files are free of errors using Stylelint. This tool helps maintain code quality and consistency.
```bash
npm install stylelint --save-dev
npx stylelint "**/*.css"
```
--------------------------------
### HTML Language and Direction Attributes
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Specifies the language of the page content using the 'lang' attribute and the text direction (left-to-right or right-to-left) using the 'dir' attribute on the html tag.
```html
```
```html
```
--------------------------------
### Critical CSS Implementation
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Embeds critical CSS (styles for above-the-fold content) directly within `
```
--------------------------------
### Noscript Tag Usage
Source: https://github.com/thedaviddias/front-end-checklist/blob/main/README.md
Demonstrates the use of the `