| 1 | Document | Use <!doctype html>. | Do not skip the doctype. | It helps browsers render pages in standards mode. |
| 2 | Language | Use <html lang="en">. | Do not leave the page language undefined. | It improves accessibility, translation, and SEO. |
| 3 | Charset | Use <meta charset="UTF-8" />. | Do not rely on browser guessing. | It supports most characters and symbols correctly. |
| 4 | Responsive | Add the viewport meta tag. | Do not publish pages without mobile scaling. | It makes pages display correctly on mobile devices. |
| 5 | SEO | Write a unique page title. | Do not reuse the same title on every page. | Unique titles help search engines understand each page. |
| 6 | SEO | Add a helpful meta description. | Do not keyword-stuff descriptions. | Good descriptions improve search result clarity. |
| 7 | Headings | Use one clear <h1>. | Do not use headings only for visual size. | Headings define page structure for users and crawlers. |
| 8 | Headings | Use heading levels in order. | Do not jump randomly from <h1> to <h5>. | Logical headings improve readability and accessibility. |
| 9 | Semantic HTML | Use <main>, <article>, and <section>. | Do not use <div> for everything. | Semantic tags explain the meaning of content. |
| 10 | Navigation | Use <nav> for important menus. | Do not create navigation with unrelated wrappers only. | It helps screen readers and search engines identify navigation. |
| 11 | Links | Use descriptive link text. | Do not use vague text like “click here”. | Descriptive links improve SEO and accessibility. |
| 12 | Links | Use rel="noopener noreferrer" with new-tab external links. | Do not use target="_blank" alone. | It improves security and performance. |
| 13 | Images | Add meaningful alt text for useful images. | Do not use empty or vague alt text for important images. | Alt text improves accessibility and image SEO. |
| 14 | Images | Use alt="" for decorative images. | Do not describe purely decorative images unnecessarily. | It prevents screen readers from reading useless content. |
| 15 | Images | Set image width and height. | Do not allow images to cause layout shift. | Image dimensions improve visual stability. |
| 16 | Images | Use loading="lazy" for below-the-fold images. | Do not lazy-load important hero images unnecessarily. | Lazy loading improves performance when used correctly. |
| 17 | Forms | Use visible <label> elements. | Do not rely only on placeholder text. | Labels improve form accessibility and usability. |
| 18 | Forms | Use the correct input type. | Do not use type="text" for every field. | Correct input types improve validation and mobile keyboards. |
| 19 | Forms | Use name attributes on form fields. | Do not forget name when submitting data. | The name attribute identifies submitted form values. |
| 20 | Forms | Use required and validation attributes carefully. | Do not depend only on client-side validation. | Client-side validation improves UX, but server validation is still needed. |
| 21 | Tables | Use tables for tabular data. | Do not use tables for page layout. | Tables should represent rows and columns of data. |
| 22 | Tables | Use <th> and <caption>. | Do not create complex tables without headings. | Header cells and captions improve accessibility. |
| 23 | Media | Add captions or transcripts for videos. | Do not rely only on audio or video content. | Captions help accessibility and content understanding. |
| 24 | Media | Use controls for audio and video. | Do not autoplay media with sound. | Users should control playback. |
| 25 | Iframes | Add a meaningful iframe title. | Do not embed iframes without accessible labels. | Iframe titles help screen reader users understand embedded content. |
| 26 | Performance | Use defer for non-critical scripts. | Do not block HTML parsing with unnecessary scripts. | Deferred scripts can improve page loading. |
| 27 | Classes and IDs | Use classes for reusable styling. | Do not use IDs heavily for CSS styling. | Classes are easier to reuse and maintain. |
| 28 | Classes and IDs | Keep IDs unique on the page. | Do not duplicate ID values. | Duplicate IDs break labels, anchors, ARIA, and scripts. |
| 29 | Accessibility | Use native HTML before ARIA. | Do not add ARIA when native HTML already works. | Native elements are simpler and more reliable. |
| 30 | Code Quality | Use lowercase tags and attributes. | Do not mix random casing styles. | Consistent markup is easier to read and maintain. |