Semantic HTML Layout
Semantic HTML uses tags that describe their meaning — not just their appearance. HTML5 introduced layout tags like <header>, <nav>, <main>, <article>, <aside>, and <footer> to replace meaningless <div> soup.
Complete Semantic Page Layout
<body> <!-- Site-wide header with logo and navigation --> <header> <a href="/">CIWeb</a> <nav aria-label="Main navigation"> <a href="/">Home</a> <a href="/courses">Courses</a> </nav> </header> <!-- Main content area --> <main> <!-- A self-contained blog post --> <article> <h1>Learn HTML in 22 Lessons</h1> <p>HTML is the foundation...</p> <!-- Section within the article --> <section> <h2>Why Learn HTML?</h2> <p>HTML is used by every website...</p> </section> </article> <!-- Sidebar with related content --> <aside> <h2>Related Courses</h2> <ul> <li><a href="/css">CSS Course</a></li> </ul> </aside> </main> <!-- Site-wide footer --> <footer> <p>© 2026 CIWeb. All rights reserved.</p> </footer> </body>
HTML is the foundation...
HTML is used by every website...
• CSS Course
Semantic Tags Reference
When Google crawls your page, semantic tags are ranking signals. A page with proper header, nav, main, article, footer structure gets crawled and understood faster than one with only divs. Google knows what is navigation, what is the main article, and what is a sidebar — which helps it rank your content accurately.
article: makes complete sense on its own (could be shared or syndicated). section: groups related content, needs context of the surrounding page. div: has zero semantic meaning — use only when no semantic tag fits.
Before 2014, every page looked like div.header, div.nav, div.content, div.sidebar, div.footer. Developers used CSS class names to describe purpose. HTML5 semantic tags replaced this entirely. Modern code uses actual nav, header, main, footer — which any browser, screen reader, or search engine understands without a class name.