{"componentChunkName":"component---src-templates-checklist-template-tsx","path":"/checklist/website-launch","result":{"data":{"markdownRemark":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"PERFORMANCE"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Web Page Size should be under 1MB"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nThe webpage size consists of all the files that make up a page. A typical web page is made up of several files that may include HTML, CSS, Javascript, or image files, as well as other resources.Keep this below 1MB so that its quicker to download."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Minify your Web Page"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nMinify your HTML,CSS and JavaScript files to reduce page weight. Minification works by removing or transforming the content of these files in a way that preserves the behaviour of the code but reduces the file size.Read More below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://developers.google.com/speed/pagespeed/insights/"},"children":[{"type":"text","value":"google minification guide"}]},{"type":"element","tagName":"br","properties":{},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Compress your WebPage Resources"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nConfigure your server to send data in a compressed format to reduce transfer times.Text-based data formats such as HTML, CSS, JavaScript, plain text, XML, JSON and SVG should almost always be sent with compression enabled.Read More below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://web.dev/optimizing-content-efficiency-optimize-encoding-and-transfer/"},"children":[{"type":"text","value":"google compression guide"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding"},"children":[{"type":"text","value":"mozilla compression guide"}]},{"type":"element","tagName":"br","properties":{},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check for Cookie Size Limits"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nIf you are using cookies be sure each cookie doesn't exceed 4096 bytes and your domain name doesn't have more than 20 cookies.Read More below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://datatracker.ietf.org/doc/html/rfc6265"},"children":[{"type":"text","value":"Cookie specification: RFC 6265 "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Minimize Third Party domains and components"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nThird party iframes or components relying on external JS.For each of different domains , the browser needs to make a DNS look-up, which is slow. Avoid having to many different domains and the page should render faster."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Enable Caching with long caching times"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nEnable caching of your page resources so browsers can reuse resources that have already been downloaded.Configure page resources to have long caching times so browser caches will retain them for longer. Read More below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://web.dev/http-cache/"},"children":[{"type":"text","value":"HTTP Caching Guide by Google "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Avoid Inline and Blocking JavaScript"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nEnsure You don't have any JavaScript code inline (mixed with your HTML code).JavaScript files should be loaded asynchronously using async or deferred using defer attribute. Read More below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://developers.google.com/speed/docs/insights/BlockingJS/"},"children":[{"type":"text","value":"Non Blocking JS Guide by Google "}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"SEO"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Set proper page titles"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nEvery page should be given a title that describes its content. Well-written titles are vital for improving the search rank of pages because search engines look for keywords in titles to determine how relevant pages are to search queries."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://support.google.com/webmasters/answer/35624?hl=en"},"children":[{"type":"text","value":"google page title guide"}]},{"type":"element","tagName":"br","properties":{},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Set proper meta description"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nEvery page should be given a title that describes its content. Well-written titles are vital for improving the search rank of pages because search engines look for keywords in titles to determine how relevant pages are to search queries."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://support.google.com/webmasters/answer/35624?hl=en"},"children":[{"type":"text","value":"google page title guide"}]},{"type":"element","tagName":"br","properties":{},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Set proper page headings"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nA meta description is provided, it is unique and doesn't possess more than 150 characters.Read More below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML#adding_an_author_and_description"},"children":[{"type":"text","value":"Meta Description - HTML - MDN"}]},{"type":"element","tagName":"br","properties":{},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Robot.txt is present and updated"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nAdd a robots.txt file to every subdomain so you can specify sitemap locations and set web crawler rules. Robots.txt files are always located in the root folder with the name robots.txt.Read More below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://developers.google.com/search/docs/crawling-indexing/robots/intro"},"children":[{"type":"text","value":"Robot.txt guide by google"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Setup Sitemap page and Keep it updated"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nAn HTML sitemap is provided and is accessible via a link in the footer of your website.Sitemap files contain a list of page URLs that you want indexed and are read by search bots. These files can also include metadata that describes when pages were last updated.Read More below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap?hl=en&visit_id=638264877284613311-2158601090&rd=1"},"children":[{"type":"text","value":"Sitemap guide by google"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check and Avoid Broken Links"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nAll internal and external  links on your website should be valid and working.Broken links can signal to search engines that your site is poor quality and will frustrate users. "}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Handle Error Pages for Broken Urls"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nEnsure Error pages are created for standard errors like 404,500 errors . Read More below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://developers.google.com/search/docs/crawling-indexing/http-network-errors?hl=en&visit_id=638264878507918336-198191165&rd=1#soft-404-errors"},"children":[{"type":"text","value":"Error Page Guide by Google "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check for social meta tags for shared links preview"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nFacebook OG and Twitter Cards are, for any website, highly recommended but you can check more depending on social media where you want to share.You Can Check more below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://developers.facebook.com/tools/debug/"},"children":[{"type":"text","value":"Facebook OG testing"}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://cards-dev.twitter.com/validator"},"children":[{"type":"text","value":"Twitter card validator\n"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"SECURITY"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Always use HTTPS"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nHTTPS is used on every page and for all external content (links,plugins, images,etc..). Read More below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://web.dev/why-https-matters/"},"children":[{"type":"text","value":"Why HTTPS by Google"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check HSTS is enabled"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nConfigure HSTS (HTTP Strict Transport Security) response headers to force browsers to always use HTTPS instead of HTTP on your site.. Read More below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://hstspreload.org/"},"children":[{"type":"text","value":"HSTS Check"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check updated TLS in use"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nCheck weather your page or website is on latest TLS 1.3 as TLS 1.1 and 1.2 are deprecated. "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://www.appviewx.com/blogs/why-is-tls-1-3-better-and-safer-than-tls-1-2/"},"children":[{"type":"text","value":"Why OLD TLS is unsecured?"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check X-Frame-Options (XFO) header is Enabled"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nCheck X-Frame-Options (XFO) header is Enabled which protects your visitors against clickjacking attacks. "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"hhttps://owasp.org/www-project-web-security-testing-guide/v41/4-Web_Application_Security_Testing/11-Client_Side_Testing/09-Testing_for_Clickjacking"},"children":[{"type":"text","value":"Clickjacking by OWASP"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check Content Security Policy is Enabled"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nDefines how content is loaded on your site and from where it is permitted to be loaded. Can also be used to protect against clickjacking attacks. "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://content-security-policy.com/"},"children":[{"type":"text","value":"CSP Check"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check XSS protection is Enabled"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nCheck weather your page or website is free from XSS possible issues to avoid malicious code injections. "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection"},"children":[{"type":"text","value":"XSS Check"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"DESIGN"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check for Responsive Web Design"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nThe website is using responsive web design. All pages were tested at the following breakpoints: 320px, 768px, 1024px (can be more / different according to your analytics).Check  below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://responsivedesignchecker.com/"},"children":[{"type":"text","value":"Responsive Test"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check On Different Browsers"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nAll pages were tested on all current desktop browsers (Chrome , Firefox, Safari, EDGE...) as well as mobile browsers (Native browser, Chrome, Safari...)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check for Webfont format"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nWOFF, WOFF2 and TTF are supported by all modern browsers. Ensure Webfont sizes don't exceed 2 MB. Check  below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://caniuse.com/woff/"},"children":[{"type":"text","value":"WOFF Compatibility"}]},{"type":"text","value":" "}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check for Favicons Setup"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nFavicon has been created and displays correctly. PNG format is recommended over .ico format (dimensions: 32x32px). Check  below "},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://caniuse.com/link-icon-png"},"children":[{"type":"text","value":"Favicon Compatibility"}]},{"type":"text","value":" "}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"ACCESSIBILITY"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check for Proper Headings"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nHeadings should be used properly and in the right order (H1 to H6). There should be only 1 H1 per page"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check for Form Labels"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nA label is associated with each input form element. In case a label can't be displayed, use aria-label instead."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label/"},"children":[{"type":"text","value":"Using Labels"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check for Image Setups"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nProvide layout images 2x or 3x, support retina display.Set width and height attributes on "},{"type":"element","tagName":"img","properties":{},"children":[]},{"type":"text","value":" if the final rendered image size is known. Also All "},{"type":"element","tagName":"img","properties":{},"children":[]},{"type":"text","value":" have an alternative text which describes the image visually."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check for Color contrast"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nColor contrast should at least pass WCAG AA (AAA for mobile)."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"element","tagName":"a","properties":{"href":"https://color.a11y.com/"},"children":[{"type":"text","value":"Contrast Check"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{"className":["task-list-item"]},"children":[{"type":"element","tagName":"input","properties":{"type":"checkbox","disabled":true},"children":[]},{"type":"text","value":" Check for Keyboard navigation"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nTest your website using only your keyboard in a previsible order. All interactive elements are reachable and usable. "}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"frontmatter":{"title":"WebSite Launch","tags":["launch","website"],"category":"Front-End","description":"Checklist for all things you need before you launch your website or webpage."},"fields":{"categorySlug":"front-end","filePath":"checklists/web-launch.md"}},"relatedChecklists":{"nodes":[]}},"pageContext":{"slug":"website-launch","categorySlug":"front-end"}},"staticQueryHashes":[]}