Topics

On this page

Last updated on Nov 6, 2024

HTML Best Practices

Markup best practices are essential to ensure clean, well-structured, and accessible code. They include using semantic HTML to improve SEO and accessibility, ensuring proper nesting of elements, using consistent indentation, and minimizing inline styles to keep the code readable and maintainable. Additionally, validating the markup helps prevent errors, while writing code that adheres to standards ensures compatibility across different browsers and devices. These practices lead to better performance, easier maintenance, and a more user-friendly experience.

Following these best practices ensures clean, maintainable, and accessible HTML code:

Use Semantic HTML5 Elements

Use HTML5 elements such as <header>, <nav>, <main>, and <article> for better structure, accessibility, and SEO.

Example:

<header>

  <h1>Website Title</h1>

</header>

<nav>

  <!-- Navigation Links -->

</nav>

<main>

  <article>

    <h2>Article Title</h2>

    <p>Content goes here...</p>

  </article>

</main>

Semantic HTML makes it easier for search engines and screen readers to interpret your content.

Implement Proper Heading Hierarchy

Maintain a logical order of headings (e.g., <h1>, <h2>, <h3>) for better readability and accessibility.

Example:

<h1>Main Heading</h1>

<h2>Subheading Level 1</h2>

<h3>Subheading Level 2</h3>

Skipping heading levels may confuse users or assistive technologies.

Use Descriptive and Meaningful Class Names

Create class names that describe the purpose or content of the element, avoiding cryptic or overly generic names.

Example:

<div class="product-card">

  <h2 class="product-title">Product Name</h2>

  <p class="product-description">Description of the product.</p>

</div>

Clear class names make the code more understandable for future developers.

Minimize Div Nesting to Reduce DOM Complexity

Avoid unnecessary <div> elements to keep the DOM shallow, improving performance and readability.

<div><div><div>Content</div></div></div>

Anti-Pattern Example.

<div>Content</div>

Better Approach.

Implement Microdata or JSON-LD for Enhanced SEO

Use microdata or JSON-LD to provide structured data for search engines, improving visibility in search results.

Example of JSON-LD:

<script type="application/ld+json">

{

  "@context": "https://schema.org",

  "@type": "Article",

  "headline": "Title of the Article",

  "author": "Author Name"

}

</script>

This helps search engines understand the structure of your content.

Ensure Proper Use of Landmark Roles for Accessibility

Use HTML5 landmarks or ARIA roles (e.g., role="navigation", role="main") to improve accessibility for users with screen readers.

Example:

<nav role="navigation">

</nav>

<main role="main">

</main>

Landmark roles help assistive technologies identify key sections of the page.

Use async or defer Attributes for Non-Critical Scripts

For better performance, defer loading of non-essential JavaScript files using async or defer attributes to prevent blocking page rendering.

Example:

<script src="non-critical.js" async></script>

This allows the script to load asynchronously without blocking the page load.

Implement Lazy Loading for Images and Iframes

Use the loading="lazy" attribute on images and iframes to defer their loading until they are in the viewport, improving page load speed.

Example:

<img src="image.jpg" alt="Image description" loading="lazy" />

<iframe src="video.html" loading="lazy"></iframe>

Ensure Valid HTML Structure (Use W3C Validator)

Ensure your HTML is valid by using tools like the W3C Markup Validation Service. Valid HTML is less prone to browser rendering issues and ensures proper SEO and accessibility.

Example:

Run your HTML code through the W3C Validator to check for syntax errors and missing tags.

By following these best practices, you can create more efficient, accessible, and SEO-friendly websites that are easier to maintain over time.


Contributor

Utsav Patel

Utsav

Utsav Patel

Software Engineer