SEO & GEO — Relatório de Oportunidades
Documento interno. Análise do estado atual e oportunidades de otimização para busca orgânica (Google) e busca gerada por IA (ChatGPT, Perplexity, Gemini, Claude).
1. O que já está implementado (pontos positivos)
lang="pt-BR"no HTML — sinaliza idioma e região corretamente<title>e<meta name="description">em todas as páginas via Layout<link rel="canonical">dinâmico gerado pelo Astrorobotsmeta commax-snippet:-1, max-image-preview:large— permite previews ricos no Googlenoindex/nofollowpor página via Keystatic (controle granular)- Sitemap XML gerado automaticamente pelo
@astrojs/sitemap - Site estático (Astro) — carregamento extremamente rápido, favorece Core Web Vitals
- Breadcrumbs visuais em páginas internas
- URLs limpas e semânticas (
/servicos/manutencao/computador/) - Busca interna com índice estático (
search.json) — não prejudica performance
2. O que está faltando — Alta Prioridade
2.1 Open Graph e Twitter Card (Social + IA)
Nenhuma tag OG está implementada. Isso afeta:
- Compartilhamento em redes sociais (preview sem imagem/título)
- Indexação por crawlers de IA (Perplexity, ChatGPT usam OG para contexto)
O que adicionar no <head> do Layout:
<meta property="og:type" content="website" />
<meta property="og:url" content={canonicalUrl} />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:image" content="https://henrique.pro/og-default.jpg" />
<meta property="og:locale" content="pt_BR" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={title} />
<meta name="twitter:description" content={description} />
<meta name="twitter:image" content="https://henrique.pro/og-default.jpg" />
Criar uma imagem OG padrão (1200x630px) e versões específicas por página de serviço.
2.2 JSON-LD — Dados Estruturados (Schema.org)
Ausência total de dados estruturados. Este é o maior gap técnico. O Google e os modelos de IA usam schema.org para entender o negócio com precisão.
Schema LocalBusiness (na home e em todas as páginas)
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Henrique.pro",
"description": "Suporte técnico de TI e informática avançado para residências e empresas em todo o Brasil.",
"url": "https://henrique.pro",
"telephone": "+55-xx-xxxxx-xxxx",
"areaServed": "BR",
"priceRange": "$$",
"knowsAbout": ["Suporte TI", "Manutenção de Computadores", "Redes", "Programação"],
"serviceType": "Serviço de TI"
}
Schema Service (em cada página de serviço)
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Manutenção de Computador",
"provider": { "@type": "LocalBusiness", "name": "Henrique.pro" },
"description": "...",
"areaServed": "BR"
}
Schema BreadcrumbList (em todas as páginas internas)
Já existe o breadcrumb visual — basta adicionar o schema equivalente. O Google exibe isso como sitelinks nos resultados.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Início", "item": "https://henrique.pro" },
{ "@type": "ListItem", "position": 2, "name": "Serviços", "item": "https://henrique.pro/servicos" },
{ "@type": "ListItem", "position": 3, "name": "Manutenção", "item": "https://henrique.pro/servicos/manutencao" }
]
}
Schema Person (na página Sobre)
Posiciona você como autoridade, não só o negócio.
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Henrique",
"jobTitle": "Especialista em TI",
"url": "https://henrique.pro/sobre",
"knowsAbout": ["Suporte TI", "Redes", "Desenvolvimento Web", "Manutenção"]
}
Schema FAQPage (alto valor para IA e featured snippets)
Em qualquer página que tiver perguntas e respostas. O Google destaca FAQs nos resultados e os modelos de IA as consomem diretamente.
2.3 Imagem OG por serviço
Criar imagens OG dinâmicas ou estáticas por categoria de serviço aumenta o CTR em compartilhamentos e o entendimento por crawlers visuais de IA.
3. SEO de Conteúdo — Oportunidades
3.1 Páginas de serviço precisam de mais conteúdo
As páginas de subcategoria (/servicos/manutencao/computador/) provavelmente têm pouco texto. Para ranquear, cada página precisa responder perguntas reais:
- O que é o serviço
- Quando contratar
- Como funciona o atendimento
- Quanto tempo leva
- Quais regiões são atendidas
Mínimo recomendado: 300-500 palavras por página de serviço.
3.2 Blog ou Cheatsheet como vetor de tráfego
A página /cheatsheet já existe — é um canal perfeito para capturar buscas informacionais. Conteúdo tipo:
- "Como resolver erro X no Windows"
- "O que fazer quando o notebook não liga"
- "Diferença entre formatação e reinstalação"
Essas buscas têm intenção de solução de problema — o leitor que resolve com seu conteúdo tende a contratar quando não consegue.
3.3 Páginas por cidade/região
A estrutura /br/[cidade]/ já existe no código. Conteúdo localizado rankeia muito bem para buscas como "suporte técnico São Paulo" ou "técnico de informática Campinas".
Cada página regional deveria ter:
- H1 com cidade + serviço
- Parágrafo mencionando bairros e regiões
- Schema LocalBusiness com endereço/área específica
4. GEO — Otimização para IA (ChatGPT, Perplexity, Gemini, Claude)
Os modelos de linguagem respondem perguntas de usuários sobre serviços. Para aparecer nessas respostas:
4.1 Escreva como os modelos leem
IA prefere conteúdo estruturado e diretivo:
- Use listas, subtítulos claros, definições explícitas
- Responda a pergunta no primeiro parágrafo, depois aprofunde
- Evite linguagem de marketing vaga ("soluções inovadoras") — seja específico ("atendimento em até 2 horas")
4.2 Autoridade de entidade
Os LLMs vinculam profissionais a áreas de conhecimento pelo volume de menções consistentes. Estratégias:
- Presença no LinkedIn com especialidades listadas
- Google Business Profile atualizado com categorias corretas
- Menções em diretórios técnicos (Reclame Aqui, GetNinjas como presença, não dependência)
- Citações em fóruns técnicos (GitHub, Stack Overflow com perfil linkando o site)
4.3 Criar um arquivo llms.txt
Padrão emergente (proposto por Jeremy Howard) — arquivo /llms.txt na raiz do site com uma descrição clara do negócio, serviços e propósito. Crawlers de IA como o do Perplexity já o consomem.
# henrique.pro > Suporte técnico de TI e informática avançado para residências e empresas em todo o Brasil. Especialidades: manutenção de computadores, notebooks, redes, suporte remoto, programação, consultoria de TI. Diferencial: atendimento para casos complexos que outros técnicos não conseguem resolver. ## Serviços - [Suporte TI](https://henrique.pro/servicos/suporte-ti/) - [Manutenção](https://henrique.pro/servicos/manutencao/) - [Programação](https://henrique.pro/servicos/programacao/) - [Segmentos](https://henrique.pro/servicos/segmentos/)
4.4 Schema speakable (para assistentes de voz e IA)
{
"@context": "https://schema.org",
"@type": "WebPage",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".hero-content", ".subcat-group-title"]
}
}
5. Core Web Vitals e Performance
O site já tem vantagem por ser Astro estático. Pontos a monitorar:
- LCP (Largest Contentful Paint): garantir que a fonte Inter não bloqueie render. Já tem
preconnectpara Google Fonts — considerarfont-display: swapexplícito. - CLS (Cumulative Layout Shift): a barra sticky que aparece ao scroll pode causar CLS se não estiver fora do fluxo. Está com
position: fixed— correto. - INP (Interaction to Next Paint): os scripts
is:inlineexecutam no main thread. Verificar se os observers causam jank em mobile.
Ferramenta: Google Search Console (configurar se ainda não estiver) + PageSpeed Insights por URL.
6. Avaliações — Rich Snippets e Sistema Próprio
6.1 O que são Review Snippets e por que importam
Review snippets são as estrelas douradas que aparecem nos resultados do Google abaixo do título da página. Eles aumentam o CTR em até 35% e são um sinal de confiança tanto para usuários quanto para modelos de IA ao recomendar profissionais.
O Google exibe estrelas quando a página contém o schema Review ou AggregateRating com dados verificáveis. A regra central: as avaliações precisam ser coletadas no próprio site — o Google não aceita schema de reviews que redireciona para dados de terceiros (Google Maps, Reclame Aqui etc.) como justificativa para exibir estrelas nas suas próprias páginas.
6.2 Schema de Avaliação Nativa
Para que o Google exiba estrelas nos resultados de páginas de serviço:
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Manutenção de Computador",
"provider": { "@type": "LocalBusiness", "name": "Henrique.pro" },
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "47",
"bestRating": "5",
"worstRating": "1"
},
"review": [
{
"@type": "Review",
"author": { "@type": "Person", "name": "Carlos M." },
"reviewRating": { "@type": "Rating", "ratingValue": "5" },
"reviewBody": "Resolveu um problema que dois outros técnicos não conseguiram. Atendimento rápido e claro.",
"datePublished": "2025-03-15"
}
]
}
O aggregateRating pode ser colocado também no schema LocalBusiness da home para que as estrelas apareçam no resultado da página principal.
6.3 Ideia de Implementação — Sistema de Avaliação Próprio
Dado o projeto futuro de diretório para profissionais de alto nível, um sistema nativo de avaliação é estratégico por três razões: controle total dos dados, schema válido para rich snippets, e diferenciação frente a plataformas genéricas como GetNinjas.
Arquitetura sugerida (Astro + backend leve)
O site atual é estático (Astro), o que exige um backend para receber e armazenar avaliações. Opções viáveis sem adicionar complexidade desnecessária:
Opção A — Formulário + banco simples (recomendada para início)
- Frontend: formulário de avaliação em Astro com componente React (já suportado no projeto)
- Backend: endpoint em
src/pages/api/avaliar.tsusando Astro SSR (o projeto já usa@astrojs/node) - Armazenamento: banco simples como PlanetScale (MySQL serverless) ou Supabase (PostgreSQL)
- Moderação: avaliação entra com status
pendente, você aprova antes de publicar - Geração do schema: na hora do build, as avaliações aprovadas são buscadas e injetadas no JSON-LD de cada página de serviço
Opção B — Solução headless de reviews (para escalar como diretório)
- Usar um serviço como Trustindex ou uma implementação própria com Keystatic como CMS de moderação
- Cada avaliação aprovada vira um arquivo
.jsonemsrc/data/avaliacoes/[servico]/ - O build lê esses arquivos e gera os schemas automaticamente
Fluxo de avaliação confiável (anti-fake)
Para que o Google e os usuários confiem nas avaliações, o sistema precisa de autenticidade verificável:
- Avaliação vinculada a atendimento: o cliente só recebe o link de avaliação após conclusão do serviço, enviado via WhatsApp ou email com token único de uso único
- Token com validade: o link expira em 7 dias e só pode ser usado uma vez por CPF/email
- Campos mínimos: nome (pode ser parcial), tipo de serviço realizado, nota (1-5), comentário livre
- Moderação manual: toda avaliação passa por aprovação antes de aparecer no site e no schema
- Data e serviço no schema: o
datePublishede o vínculo com o serviço específico são obrigatórios para o Google considerar o review legítimo
Estrutura de dados sugerida
{
"id": "av_20250315_001",
"servico_slug": "manutencao/computador",
"autor_nome": "Carlos M.",
"nota": 5,
"comentario": "Resolveu um problema que dois outros técnicos não conseguiram.",
"data": "2025-03-15",
"token_usado": "tk_abc123",
"status": "aprovado"
}
Quando fizer sentido construir
O sistema de avaliações nativo compensa quando você tiver volume mínimo de atendimentos para popular com reviews reais. Com menos de 10 avaliações, o schema de AggregateRating pode ser contraproducente (Google penaliza ratings com poucos reviews se parecerem manipulados). Estratégia:
- Fase 1 (agora): coletar avaliações no Google Business Profile e no WhatsApp, guardar os textos
- Fase 2 (ao lançar o diretório): migrar as avaliações reais para o sistema próprio com consentimento do cliente, construindo o banco inicial com credibilidade
6.4 Reviews e IA (GEO)
Modelos como ChatGPT e Perplexity, ao responder "qual técnico de TI contratar", ponderam menções positivas consistentes em múltiplas fontes. Além do sistema próprio:
- Peça avaliações no Google Business Profile ativamente — é a fonte com maior peso nos LLMs hoje
- Avaliações com texto descritivo ("resolveu problema de placa-mãe") valem mais que notas sem comentário, tanto para SEO quanto para IA
- Responda todas as avaliações recebidas — o Google lê as respostas como sinal de engajamento ativo
7. Priorização — O que fazer primeiro
| Prioridade | Ação | Impacto |
|---|---|---|
| 1 | JSON-LD LocalBusiness na home | Alto — identidade do negócio para Google e IA |
| 2 | Open Graph + Twitter Card no Layout | Alto — CTR e indexação de IA |
| 3 | JSON-LD BreadcrumbList nas páginas internas | Médio — sitelinks e navegação |
| 4 | Conteúdo nas páginas de serviço (300+ palavras) | Alto — ranqueamento orgânico |
| 5 | llms.txt na raiz | Baixo esforço, alto potencial GEO |
| 6 | JSON-LD Service por subcategoria | Médio — rich results para serviços |
| 7 | Google Business Profile completo + coleta ativa de reviews | Alto — busca local, Maps e IA |
| 8 | JSON-LD FAQPage em páginas-chave | Médio — featured snippets |
| 9 | Schema Person na página Sobre | Médio — autoridade de entidade |
| 10 | Imagens OG por serviço | Médio — CTR em compartilhamentos |
| 11 | Sistema de avaliação nativo (Fase 1: coleta via token) | Alto — rich snippets de estrelas + base para diretório |
| 12 | Schema AggregateRating nas páginas de serviço | Alto — estrelas nos resultados do Google |
| 13 | SEO de imagens (alt, WebP, lazy, schema ImageObject) | Médio — busca de imagens + velocidade |
| 14 | HTML semântico (article, section, aside, time, address) | Médio — compreensão por IA e acessibilidade |
| 15 | Heading hierarchy auditada por página | Alto — fator de ranqueamento direto |
| 16 | Internal linking estratégico entre serviços | Alto — PageRank interno + descoberta |
| 17 | hreflang para futura expansão regional | Baixo (agora), Alto (ao escalar) |
8. SEO de Imagens — Práticas de Ponta
Imagens são o segundo maior vetor de tráfego orgânico depois do texto. A busca de imagens do Google e os crawlers de IA consomem atributos e formatos específicos.
8.1 Formato e peso
- WebP obrigatório — 25-35% menor que JPEG/PNG com qualidade equivalente. Astro tem
@astrojs/imagepara conversão automática no build. - AVIF quando possível — ainda mais eficiente que WebP, já suportado por 95% dos browsers modernos. Use
<picture>com fallback:
<picture> <source srcset="/imagem.avif" type="image/avif" /> <source srcset="/imagem.webp" type="image/webp" /> <img src="/imagem.jpg" alt="Técnico realizando manutenção de computador em São Paulo" width="800" height="600" loading="lazy" decoding="async" /> </picture>
- Tamanho máximo por imagem: 100-150KB para imagens de conteúdo, 200KB para hero
- Sempre declarar
widtheheightexplícitos para evitar CLS
8.2 Atributo alt — a parte mais negligenciada
O alt é lido pelo Google, pelos modelos de IA e pelos leitores de tela. Regras:
- Descritivo e específico: "técnico consertando notebook Dell com tela quebrada" em vez de "foto"
- Com palavra-chave natural quando fizer sentido contextual — nunca forçado
- Imagens decorativas:
alt=""(string vazia, nunca omitir o atributo) - Ícones SVG:
aria-hidden="true"(já implementado no projeto) - Máximo 125 caracteres
Exemplos corretos para este site:
alt="Manutenção de computador desktop sendo realizada por técnico especializado" alt="Diagrama de rede local configurada para empresa de pequeno porte" alt="Notebook com tela azul da morte sendo diagnosticado"
8.3 Nomes de arquivo
O Google indexa o nome do arquivo como sinal contextual:
manutencao-computador-sao-paulo.webp ✓ IMG_20240315_001.jpg ✗ foto1.png ✗
Use kebab-case, palavras-chave relevantes, sem caracteres especiais.
8.4 Schema ImageObject
Para imagens principais de páginas de serviço, adicionar schema:
{
"@context": "https://schema.org",
"@type": "ImageObject",
"url": "https://henrique.pro/imagens/manutencao-computador.webp",
"width": 1200,
"height": 800,
"caption": "Manutenção de computador — Henrique.pro",
"encodingFormat": "image/webp"
}
8.5 Lazy loading e prioridade
<!-- Hero (above the fold): NUNCA lazy, deve carregar imediatamente --> <img src="hero.webp" alt="..." loading="eager" fetchpriority="high" /> <!-- Conteúdo abaixo do fold: sempre lazy --> <img src="servico.webp" alt="..." loading="lazy" decoding="async" />
8.6 Sitemap de imagens
O @astrojs/sitemap não inclui imagens por padrão. Para indexação de imagens no Google Image Search, adicionar ao sitemap:
<url>
<loc>https://henrique.pro/servicos/manutencao/computador/</loc>
<image:image>
<image:loc>https://henrique.pro/imagens/manutencao-computador.webp</image:loc>
<image:title>Manutenção de Computador</image:title>
<image:caption>Serviço especializado de manutenção de computadores</image:caption>
</image:image>
</url>
9. HTML Semântico — Tags que o Google e a IA leem
O HTML semântico não é só acessibilidade — é sinal direto de estrutura de conteúdo para crawlers.
9.1 Hierarquia de headings (H1-H6)
Regra absoluta: uma única H1 por página, descrevendo exatamente o tema central.
H1: Manutenção de Computador em São Paulo ← uma só
H2: O que inclui o serviço ← seções principais
H3: Diagnóstico de hardware ← subsections
H3: Limpeza e substituição de componentes
H2: Como funciona o atendimento
H2: Perguntas frequentes
H3: Qual o prazo de entrega?
Erros comuns a evitar:
- H1 vazio ou genérico ("Bem-vindo")
- Pular níveis (H1 → H3 sem H2)
- Usar headings para estilo em vez de estrutura
- Múltiplas H1 na mesma página
9.2 Tags semânticas essenciais
<!-- Conteúdo principal da página -->
<main>...</main>
<!-- Artigo autônomo (post de blog, case study) -->
<article>
<header>
<h1>Como resolver erro de tela azul no Windows 11</h1>
<time datetime="2025-03-15">15 de março de 2025</time>
</header>
<p>...</p>
<footer>
<address>
Por <a href="/sobre">Henrique</a> — Especialista em TI
</address>
</footer>
</article>
<!-- Seção temática com heading próprio -->
<section aria-labelledby="titulo-servicos">
<h2 id="titulo-servicos">Serviços de Manutenção</h2>
</section>
<!-- Conteúdo complementar (relacionados, sidebar) -->
<aside aria-label="Serviços relacionados">...</aside>
<!-- Navegação nomeada (múltiplos nav na página) -->
<nav aria-label="Navegação principal">...</nav>
<nav aria-label="Breadcrumb">...</nav>
9.3 Tag <address> para dados de contato
O Google usa <address> para extrair informações de contato do negócio:
<address> <strong>Henrique.pro</strong><br /> Atendimento em todo o Brasil<br /> <a href="tel:+5511999999999">+55 (11) 99999-9999</a><br /> <a href="mailto:contato@henrique.pro">contato@henrique.pro</a> </address>
9.4 Tag <time> para datas
Importante para crawlers identificarem frescor do conteúdo:
<time datetime="2025-03-15T10:00:00-03:00">15 de março de 2025</time>
9.5 Atributos aria-label e aria-labelledby
Além de acessibilidade, ajudam crawlers a entender regiões da página:
<section aria-labelledby="h-avaliacoes"> <h2 id="h-avaliacoes">O que nossos clientes dizem</h2> </section>
9.6 Meta tags complementares (além de title e description)
<!-- Autor do conteúdo --> <meta name="author" content="Henrique" /> <!-- Data de publicação/atualização (para artigos) --> <meta property="article:published_time" content="2025-03-15" /> <meta property="article:modified_time" content="2025-06-01" /> <!-- Tema de cor para mobile (aparece na barra do navegador) --> <meta name="theme-color" content="#0284c7" /> <!-- Prevenção de tradução automática para conteúdo técnico --> <meta name="google" content="notranslate" /> <!-- só se necessário -->
10. Internal Linking — PageRank Interno e Descoberta
O Google distribui autoridade de página em página via links internos. Um site bem linkado internamente ranqueia melhor mesmo com menos backlinks externos.
10.1 Estratégia de hub and spoke
/servicos (hub)
└── /servicos/manutencao (hub secundário)
├── /servicos/manutencao/computador (spoke)
├── /servicos/manutencao/notebook (spoke)
└── /servicos/manutencao/pc-gamer (spoke)
- Cada hub deve linkar para todos os spokes filhos
- Cada spoke deve linkar de volta ao hub pai
- Spokes relacionados devem se linkar entre si ("Veja também: Manutenção de Notebook")
10.2 Anchor text descritivo
<!-- Ruim --> <a href="/servicos/manutencao/computador">clique aqui</a> <a href="/servicos/manutencao/computador">saiba mais</a> <!-- Bom --> <a href="/servicos/manutencao/computador">manutenção de computador</a> <a href="/servicos/manutencao/computador">serviço de formatação e limpeza de PC</a>
10.3 Links contextuais no conteúdo
Nos textos de cada página de serviço, mencionar naturalmente serviços relacionados com links. Exemplo em página de manutenção de computador:
"Após a limpeza física, verificamos também a integridade da rede local. Se precisar de configuração de redes, oferecemos atendimento combinado com desconto."
10.4 Footer como âncora de link interno
O rodapé é uma oportunidade de linkar todas as categorias principais, presente em todas as páginas. Já existe footer no projeto — verificar se linka para páginas de serviço além da navegação principal.
11. Sinais de Autoridade — E-E-A-T
O Google avalia Experiência, Expertise, Autoridade e Confiança. Para um técnico de TI independente, isso é crítico.
11.1 Experience (Experiência)
- Fotos reais do trabalho (não stock photos) com alt descritivo
- Cases reais: "problema X resolvido em Y horas" com resultado concreto
- Vídeos curtos de diagnóstico (podem ser linkados da página de serviço)
11.2 Expertise (Especialização)
- Página "Sobre" detalhada com formação, certificações, anos de experiência
- Schema
PersoncomhasCredentialealumniOf - Publicações técnicas no Cheatsheet com autoria explícita (
<address>+ schemaArticle)
11.3 Authoritativeness (Autoridade)
- Backlinks de qualidade: fóruns técnicos, comunidades Linux/Windows, GitHub com projetos reais
- Participação em comunidades como Stack Overflow, Reddit r/techsupport (com link no perfil)
- Menções em veículos de TI locais
11.4 Trustworthiness (Confiança)
- HTTPS ativo (já deve estar com Cloudflare ou similar)
- Política de privacidade e termos de serviço vinculados no footer
- CNPJ/MEI visível no site (reforça legitimidade)
- Número de telefone real e verificável
- Schema
ContactPointno LocalBusiness
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+55-11-99999-9999",
"contactType": "customer service",
"availableLanguage": "Portuguese",
"hoursAvailable": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "08:00",
"closes": "18:00"
}
}
12. Checklist Final — Auditoria por Página
Use isto para auditar cada página antes de publicar:
Técnico
- [ ] Title único, 50-60 caracteres, com palavra-chave principal
- [ ] Meta description única, 120-160 caracteres, com CTA implícito
- [ ] H1 único e descritivo com palavra-chave
- [ ] Canonical URL correta
- [ ] Open Graph completo (og:title, og:description, og:image, og:url)
- [ ] JSON-LD apropriado para o tipo de página
Conteúdo
- [ ] Mínimo 300 palavras (páginas de serviço), 600+ (artigos/cheatsheet)
- [ ] Heading hierarchy lógica (H1 → H2 → H3)
- [ ] Internal links para páginas relacionadas
- [ ] Anchor text descritivo nos links
Imagens
- [ ] Formato WebP ou AVIF
- [ ]
altdescritivo em todas as imagens de conteúdo - [ ]
widtheheightdeclarados - [ ]
loading="lazy"exceto above-the-fold - [ ] Nome de arquivo semântico
Acessibilidade e semântica
- [ ]
<main>envolve o conteúdo principal - [ ]
<nav aria-label>nomeado - [ ] Contraste de cor adequado (já tem toggle de acessibilidade)
- [ ] Links com texto significativo (sem "clique aqui")