### 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 `