Layout Semântico no HTML
Depois de entender a base do documento HTML, o próximo passo é organizar o conteúdo da página com semântica.
Neste post, você vai entender como estruturar o layout com elementos que comunicam função, contexto e hierarquia.
O que é layout semântico?
Layout semântico é a prática de estruturar uma página com tags que descrevem o papel real de cada bloco.
Em vez de montar tudo com div, você usa elementos como:
headernavmainsectionarticleasidefooteraddress
Isso ajuda o navegador, os mecanismos de busca, leitores de tela e até outros desenvolvedores a entenderem melhor a página.
Por que usar semântica no HTML?
Usar semântica melhora vários aspectos do projeto ao mesmo tempo.
SEO
Mecanismos de busca entendem melhor a estrutura da página e o peso de cada bloco.
Acessibilidade
Leitores de tela conseguem navegar com mais clareza entre áreas importantes da interface.
Organização do código
O HTML fica mais legível e mais fácil de manter.
Escalabilidade
Projetos maiores ficam menos confusos quando cada bloco já nasce com função clara.
Comunicação entre design e desenvolvimento
A estrutura deixa de ser apenas visual e passa a refletir intenção.
Quando usar tags semânticas em vez de div?
Sempre que existir uma tag que represente corretamente o papel daquele conteúdo, ela deve ser priorizada.
Use div quando:
- o bloco for apenas estrutural
- não houver uma tag semântica mais adequada
- o objetivo for somente agrupamento visual, CSS ou JavaScript
Use uma tag semântica quando o bloco tiver uma função clara dentro da página.
Como imaginar uma página semântica?
Pense em uma página como um conjunto de áreas com papéis diferentes:
- um topo com branding e menu
- uma navegação principal
- um conteúdo central
- blocos temáticos
- conteúdos independentes
- áreas complementares
- um rodapé
A semântica existe justamente para nomear isso de forma correta.
Exemplo de estrutura semântica completa
<body>
<header>
<nav>
<a href="/">Início</a>
<a href="/servicos">Serviços</a>
<a href="/contato">Contato</a>
</nav>
</header>
<main>
<section>
<h1>Título principal da página</h1>
<p>Introdução do conteúdo.</p>
</section>
<section>
<h2>Serviços</h2>
<article>
<h3>Serviço 1</h3>
<p>Descrição do serviço 1.</p>
</article>
<article>
<h3>Serviço 2</h3>
<p>Descrição do serviço 2.</p>
</article>
</section>
<aside>
<h2>Conteúdo complementar</h2>
<p>Informações relacionadas.</p>
</aside>
</main>
<footer>
<p>© 2026 Placeholder</p>
</footer>
</body>
O que é a tag <header>?
A tag <header> representa o cabeçalho de uma página ou de uma seção.
Ela não significa apenas “a parte de cima visualmente”, mas sim uma área introdutória de um contexto.
O que costuma existir dentro do header?
É comum encontrar dentro dela:
- logo
- nome da marca
- menu
- call to action
- título introdutório
- elementos de identidade
- busca
- breadcrumb em alguns casos
Exemplo de header da página
<header>
<a href="/" class="logo">Placeholder Logo</a>
<nav aria-label="Navegação principal">
<a href="/">Início</a>
<a href="/blog">Blog</a>
<a href="/contato">Contato</a>
</nav>
</header>
header só pode existir uma vez?
Não.
Você pode ter um header da página e também header dentro de article ou section.
Exemplo de header dentro de artigo
<article>
<header>
<h2>Título do artigo</h2>
<p>Publicado em 06/03/2026</p>
</header>
<p>Conteúdo do artigo...</p>
</article>
Regra prática
Use header quando o bloco apresentar ou introduzir aquele contexto.
O que é a tag <nav>?
A tag <nav> representa uma área de navegação importante.
Ela deve ser usada quando aquele conjunto de links ajuda o usuário a se mover pela estrutura principal do conteúdo.
Onde a nav costuma aparecer?
Casos comuns:
- menu principal
- menu lateral
- breadcrumb
- navegação entre páginas
- índice interno relevante
- paginação
Exemplo de navegação principal
<nav aria-label="Navegação principal">
<ul>
<li><a href="/">Início</a></li>
<li><a href="/sobre">Sobre</a></li>
<li><a href="/servicos">Serviços</a></li>
<li><a href="/contato">Contato</a></li>
</ul>
</nav>
Todo conjunto de links deve ser nav?
Não. Se for apenas um grupo de links secundários, sociais ou contextuais, talvez não precise.
Exemplo de links que nem sempre precisam de nav
<p>
Siga a marca:
<a href="https://instagram.com">Instagram</a>
<a href="https://youtube.com">YouTube</a>
</p>
Boa prática
Se a navegação tiver importância estrutural, use nav.
Se for apenas uma lista ocasional de links, um container comum pode bastar.
O que é a tag <main>?
A tag <main> representa o conteúdo principal da página.
É dentro dela que fica o conteúdo central daquela URL, excluindo áreas repetidas como cabeçalho, menu principal e rodapé.
Por que o main é importante?
Ele ajuda:
- leitores de tela a pularem direto para o conteúdo principal
- a separar o núcleo da página do conteúdo recorrente
- a deixar a estrutura mais clara para manutenção
Pode ter mais de um main?
Não.
Cada página deve ter apenas um main.
Exemplo
<main>
<h1>Título principal</h1>
<p>Conteúdo central da página.</p>
</main>
O que normalmente fica fora do main?
Geralmente ficam fora:
headerglobalfooter- navegações repetidas do site
- elementos estruturais recorrentes
Regra prática
Se aquele conteúdo define o motivo principal de existir daquela página, ele deve estar dentro do main.
O que é a tag <section>?
A tag <section> agrupa conteúdo relacionado por tema.
Ela é ideal quando existe uma parte da página com assunto próprio, geralmente acompanhada de título.
Quando faz sentido usar section?
Use quando houver:
- um bloco temático
- um agrupamento de conteúdo com unidade própria
- uma área que faça sentido como seção do documento
Exemplos comuns
- seção de benefícios
- seção de FAQ
- seção de serviços
- seção de depoimentos
- seção de contato
Exemplo
<section aria-labelledby="beneficios-titulo">
<h2 id="beneficios-titulo">Benefícios</h2>
<p>Conheça os principais benefícios da solução.</p>
</section>
Toda área visual deve ser section?
Não.
Se o bloco não tiver tema próprio, talvez seja melhor usar div.
Regra prática
Se você consegue dar um título real para aquele bloco e ele representa uma parte temática da página, há grande chance de ser section.
O que é a tag <article>?
A tag <article> representa um conteúdo independente.
Ela é usada quando aquele bloco poderia existir sozinho, ser distribuído isoladamente ou reaproveitado fora do contexto atual.
Onde article costuma ser usado?
Casos comuns:
- posts de blog
- notícias
- cards de artigos
- reviews
- comentários
- itens de feed
- cards de produto em alguns contextos editoriais
- publicações independentes
Exemplo de artigo completo
<article>
<h2>Título do artigo</h2>
<p>Resumo do conteúdo.</p>
<a href="/artigo/exemplo">Ler mais</a>
</article>
Exemplo em listagem
<section aria-labelledby="blog-titulo">
<h2 id="blog-titulo">Últimos artigos</h2>
<article>
<h3>Post 1</h3>
<p>Resumo do post 1.</p>
</article>
<article>
<h3>Post 2</h3>
<p>Resumo do post 2.</p>
</article>
</section>
article é a mesma coisa que section?
Não.
sectionagrupa um temaarticlerepresenta uma unidade independente
Regra prática
Se o bloco poderia ser publicado sozinho, provavelmente é article.
O que é a tag <aside>?
A tag <aside> representa conteúdo complementar ao conteúdo principal.
Ela não é o núcleo da página, mas adiciona contexto, apoio ou extensão ao que já está sendo apresentado.
Onde aside costuma aparecer?
Casos comuns:
- barra lateral
- posts relacionados
- caixa de destaque
- bio do autor
- CTA complementar
- glossário lateral
- bloco de contexto adicional
Exemplo
<aside>
<h2>Conteúdo relacionado</h2>
<ul>
<li><a href="/post-1">Post relacionado 1</a></li>
<li><a href="/post-2">Post relacionado 2</a></li>
</ul>
</aside>
aside precisa estar na lateral?
Não necessariamente. O nome sugere isso, mas o valor semântico está no fato de ser complementar, não na posição visual.
Regra prática
Se o conteúdo é útil, mas não central, aside pode ser a melhor escolha.
O que é a tag <footer>?
A tag <footer> representa o rodapé de uma página ou de uma seção.
Assim como o header, ela também pode aparecer em mais de um contexto.
O que costuma existir dentro do footer?
Exemplos comuns:
- copyright
- links legais
- política de privacidade
- termos de uso
- contato
- autor
- navegação complementar
Exemplo de rodapé global
<footer>
<p>© 2026 Criativiarte</p>
<a href="/politica-de-privacidade">Política de Privacidade</a>
</footer>
Exemplo de footer dentro de artigo
<article>
<h2>Título do artigo</h2>
<p>Conteúdo do artigo...</p>
<footer>
<p>Escrito por Placeholder Autor</p>
</footer>
</article>
Regra prática
Use footer para encerrar semanticamente um contexto.
O que é a tag <address>?
A tag <address> representa informações de contato relacionadas ao autor de um documento, artigo ou organização.
Ela não deve ser usada para qualquer endereço aleatório dentro do conteúdo. Seu uso faz mais sentido para marcar contato institucional ou autoral.
Exemplo
<address>
<p>Criativiarte</p>
<a href="mailto:contato@placeholder.com">contato@placeholder.com</a>
<a href="tel:+5531999999999">(31) 99999-9999</a>
</address>
Onde ela costuma aparecer?
Normalmente em:
- rodapé do site
- rodapé de artigo
- assinatura institucional
- contato da empresa
- dados do autor
Regra prática
Se a informação for claramente contato oficial daquele contexto, address faz sentido.
Qual é a diferença entre section, article e div?
Essa é uma das dúvidas mais comuns no HTML semântico.
section
Use quando houver um agrupamento temático.
article
Use quando o conteúdo for independente.
div
Use quando o bloco for apenas estrutural ou visual.
Comparação prática
<section>
<h2>Serviços</h2>
<div class="cards-grid">
<article>
<h3>Serviço 1</h3>
<p>Descrição do serviço 1.</p>
</article>
<article>
<h3>Serviço 2</h3>
<p>Descrição do serviço 2.</p>
</article>
</div>
</section>
Nesse exemplo:
sectionagrupa o tema “Serviços”articlerepresenta cada item independentedivorganiza visualmente o grid
Qual é a diferença entre header e head?
Essa diferença gera muita confusão no começo.
head
Fica na estrutura do documento e guarda metadados da página.
header
Fica no conteúdo visível e representa um cabeçalho semântico.
Exemplo de head
<head>
<title>Minha página</title>
<meta name="description" content="Descrição da página" />
</head>
Exemplo de header
<header>
<h1>Título visível da página</h1>
</header>
Regra prática
headconfigura a páginaheaderapresenta a página ou uma seção
Como montar uma página semântica simples?
Abaixo está um exemplo direto e limpo de estrutura bem organizada:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Layout Semântico no HTML | Criativiarte</title>
<meta
name="description"
content="Aprenda a estruturar páginas com tags semânticas do HTML5."
/>
</head>
<body>
<header>
<a href="/" class="logo">Criativiarte</a>
<nav aria-label="Navegação principal">
<a href="/">Início</a>
<a href="/blog">Blog</a>
<a href="/contato">Contato</a>
</nav>
</header>
<main>
<section aria-labelledby="intro-titulo">
<h1 id="intro-titulo">Layout Semântico no HTML</h1>
<p>Este conteúdo explica como estruturar uma página com semântica.</p>
</section>
<section aria-labelledby="servicos-titulo">
<h2 id="servicos-titulo">Serviços</h2>
<div class="grid">
<article>
<h3>Criação de Sites</h3>
<p>Projetos com foco em estrutura, performance e conversão.</p>
</article>
<article>
<h3>Landing Pages</h3>
<p>Páginas orientadas para captação e vendas.</p>
</article>
</div>
</section>
<aside>
<h2>Leitura complementar</h2>
<p>Veja também outros conteúdos sobre HTML e acessibilidade.</p>
</aside>
</main>
<footer>
<address>
<a href="mailto:contato@criativiarte.com">contato@criativiarte.com</a>
</address>
<p>© 2026 Criativiarte</p>
</footer>
</body>
</html>
Quais são os erros mais comuns no layout semântico?
Usar div para tudo
Esse é o erro mais clássico. Funciona visualmente, mas perde clareza semântica.
Colocar múltiplos main
Cada página deve ter apenas um main.
Usar section sem tema real
Se o bloco não representa um assunto próprio, talvez ele não precise ser section.
Usar article em conteúdo que não é independente
Nem todo card é article.
Depende do grau de autonomia daquele conteúdo.
Usar nav em qualquer grupo de links
Só use nav quando os links forem realmente importantes para navegação.
Achar que aside precisa ficar na lateral
O valor semântico está na função complementar, não na posição.
Não usar títulos nas seções
Muitas section ficam mais claras quando possuem heading.
Como decidir a tag certa?
Faça perguntas simples para cada bloco da interface.
Esse conteúdo apresenta a página ou a seção?
Use header.
Esse bloco é navegação importante?
Use nav.
Esse é o conteúdo central da URL?
Use main.
Esse bloco tem um tema próprio?
Use section.
Esse conteúdo poderia existir sozinho?
Use article.
Esse bloco é complementar?
Use aside.
Esse bloco encerra ou traz informações finais?
Use footer.
Esse conteúdo é contato oficial?
Use address.
Nenhuma dessas opções faz sentido?
Use div.
Resumo prático das tags de layout semântico
header
Cabeçalho de página ou seção.
nav
Navegação importante.
main
Conteúdo principal da página.
section
Agrupamento temático.
article
Conteúdo independente.
aside
Conteúdo complementar.
footer
Rodapé de página ou seção.
address
Informações de contato relacionadas ao contexto.
Checklist rápido de semântica no layout
Antes de finalizar uma página, vale conferir:
- existe apenas um
main? - o topo principal está em
header? - o menu principal está em
nav? - os blocos temáticos fazem sentido como
section? - conteúdos independentes foram marcados como
article? - áreas complementares estão em
aside? - o rodapé está em
footer? - o contato institucional usa
address, quando fizer sentido? divfoi usada apenas quando necessário?
Conclusão
HTML semântico não serve apenas para “deixar bonito no código”. Ele serve para comunicar a função real de cada parte da interface.
Quando você usa as tags corretas:
- melhora SEO
- melhora acessibilidade
- melhora manutenção
- melhora clareza estrutural
- melhora a qualidade geral do projeto
Depois de dominar a base do documento e o layout semântico, o próximo passo natural é aprofundar em:
- textos e hierarquia de títulos
- links e navegação
- imagens e mídia
- formulários
- ARIA e acessibilidade avançada