Semantic HTML means using tags according to their meaning. <div> alone could build everything, but that makes life harder for developers reading the code, search engines, and screen readers alike.
<header>, <main>, <article> and other semantic tags clearly explain "what kind of section this is."
html
<!-- Less meaningful -->
<div class="top"></div>
<div class="content"></div>
<!-- More meaningful -->
<header></header>
<main></main>You should see
It may look the same visually, but the meaning of the code becomes much clearer.