# Planejamento de Heads - Portal Allminds

O `<head>` das páginas do Portal Allminds deverá seguir uma estrutura-base comum, com variações apenas quando o modelo de página exigir propriedades específicas.

Os principais elementos serão:

- Meta Title;
- Meta Description;
- Robots;
- Canonical;
- Theme Color;
- Open Graph;
- Twitter Card;
- Dados estruturados em JSON-LD.

---

# Estrutura-base

```html
<!doctype html>
<html lang="pt-BR" prefix="og: https://ogp.me/ns#">
<head>
    <meta charset="UTF-8">
    <title>{Title da página}</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="theme-color" content="{Cor do branding}">
    <meta name="description" content="{Description da página}">
    <meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large">
    <link rel="canonical" href="{URL canônica}">
    <meta property="og:locale" content="pt_BR">
    <meta property="og:type" content="{Tipo Open Graph}">
    <meta property="og:title" content="{Title da página}">
    <meta property="og:description" content="{Description da página}">
    <meta property="og:url" content="{URL canônica}">
    <meta property="og:site_name" content="Allminds">
    <meta property="og:image" content="{URL da imagem}">
    <meta property="og:image:width" content="1200">
    <meta property="og:image:height" content="630">
    <meta property="og:image:alt" content="{Descrição da imagem}">
    <meta property="og:image:type" content="image/webp">
    <meta name="twitter:card" content="summary_large_image">
    <script type="application/ld+json">
        {Schema correspondente ao modelo da página}
    </script>
</head>
```

---

# Mapeamento de `og:type`

A propriedade:

```html
<meta property="og:type" content="">
```

Deverá variar conforme o modelo de página.

| Modelo | `og:type` |
|---|---|
| Páginas com loops de profissionais | `website` |
| Páginas institucionais | `website` |
| Hubs de links | `website` |
| `/blog/` | `website` |
| `/topicos/{categoria-do-blog}/` | `website` |
| Artigo individual | `article` |
| `/perguntas/` | `website` |
| Tema de perguntas | `website` |
| Pergunta individual | `website` |
| Perfil profissional | `profile` |

---

# Artigo individual do Blog

Rota:

```text
/blog/{slug-do-post}/
```

Deverá utilizar:

```html
<meta property="og:type" content="article">
```

Além da estrutura-base, deverá acrescentar:

```html
<meta property="article:published_time" content="{Data de publicação em ISO 8601}">
<meta property="article:modified_time" content="{Data de modificação em ISO 8601}">
<meta property="article:author" content="{URL do perfil público do autor}">
<meta property="article:section" content="{Categoria primária do artigo}">
```

A categoria utilizada em `article:section` deverá corresponder à categoria primária definida para o artigo.

---

# Perfil profissional

Rota:

```text
/{cond-profissional}/{nome-do-profissional}/{cidade}/{uf}/
```

Deverá utilizar:

```html
<meta property="og:type" content="profile">
```

Além da estrutura-base, deverá acrescentar:

```html
<meta property="profile:first_name" content="{Primeiro nome}">
<meta property="profile:last_name" content="{Sobrenome}">
<meta property="profile:gender" content="{male|female}">
```

Exemplo:

```html
<meta property="profile:first_name" content="Cristina">
<meta property="profile:last_name" content="Linhares">
<meta property="profile:gender" content="female">
```

---

# Paginação

As URLs paginadas não deverão ser indexadas.

Exemplos:

```text
/psicologo/page/2/
/blog/page/2/
/topicos/ansiedade/page/2/
```

O canonical deverá apontar para a URL principal da sequência, sem paginação.

Exemplo:

```text
URL acessada:
https://portal.allminds.app/psicologo/page/2/

Canonical:
https://portal.allminds.app/psicologo/
```

Portanto:

```html
<link rel="canonical" href="https://portal.allminds.app/psicologo/">
```

O `og:url` deverá acompanhar a mesma URL canônica:

```html
<meta property="og:url" content="https://portal.allminds.app/psicologo/">
```

---

# Diretriz final

A maior parte das páginas utilizará exatamente o mesmo `<head>` base.

As principais exceções serão:

```text
Artigo
→ og:type = article
→ article:published_time
→ article:modified_time
→ article:author
→ article:section

Perfil
→ og:type = profile
→ profile:first_name
→ profile:last_name
→ profile:gender

Paginação
→ canonical = URL pai
→ og:url = URL pai
→ Title e Description identificam a página correspondente

Demais páginas
→ og:type = website
```

Essa estrutura deverá ser utilizada como base para o próximo mapeamento individual dos modelos de páginas do Portal Allminds.