feat: refactor 30+ skills to Anthropic progressive disclosure pattern
- All SKILL.md files now <500 lines (avg reduction 69%) - Detailed content extracted to references/ subdirectories - Frontmatter standardised: only name + description (Anthropic standard) - New skills: brand-guidelines, spec-coauthor, report-templates, skill-creator - Design skills: anti-slop guidelines, premium-proposals reference - Removed non-standard frontmatter fields (triggers, version, author, category) Plugins affected: infraestrutura, marketing, dev-tools, crm-ops, gestao, core-tools, negocio, perfex-dev, wordpress, design-media Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,25 +1,36 @@
|
||||
---
|
||||
name: seo-content-optimization
|
||||
description: Content optimization for search engines. Improves existing content with
|
||||
keywords, structure, and readability. Use when user mentions "seo content", "optimize
|
||||
content", "content optimization", "improve seo", "keyword optimization".
|
||||
author: Descomplicar® Crescimento Digital
|
||||
version: 2.0.0
|
||||
quality_score: 75
|
||||
user_invocable: true
|
||||
desk_task: 1482
|
||||
allowed-tools: Task
|
||||
description: Optimizacao de conteudo para motores de busca. Melhora conteudo existente com palavras-chave, estrutura e legibilidade.
|
||||
---
|
||||
|
||||
# SEO Content Optimization
|
||||
|
||||
Skill para optimização SEO técnico e de conteúdo com standards Google 2026.
|
||||
Skill para optimizacao SEO tecnico e de conteudo com standards Google 2026.
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Quando Usar
|
||||
## Contexto NotebookLM
|
||||
|
||||
- Optimizar páginas para motores de busca
|
||||
ANTES de executar, consultar notebook para contexto especializado:
|
||||
|
||||
| Notebook | ID | Consultar quando |
|
||||
|----------|-----|-----------------|
|
||||
| Marketing Digital PT | `4c595973` | Sempre |
|
||||
|
||||
```
|
||||
mcp__notebooklm__notebook_query({
|
||||
notebook_id: "4c595973-ba10-420a-a3bf-e4389e424ad3",
|
||||
query: "<adaptar ao contexto — ex: SEO on-page, keyword research, E-E-A-T, Core Web Vitals>"
|
||||
})
|
||||
```
|
||||
|
||||
**Procedimento relacionado:** `PROC-DMARC-Email-Entregabilidade.md` -- consultar quando o contexto SEO envolve email deliverability.
|
||||
|
||||
---
|
||||
|
||||
## Quando Usar
|
||||
|
||||
- Optimizar paginas para motores de busca
|
||||
- Implementar meta tags e structured data
|
||||
- Melhorar Core Web Vitals
|
||||
- Fazer keyword research
|
||||
@@ -28,358 +39,93 @@ Skill para optimização SEO técnico e de conteúdo com standards Google 2026.
|
||||
|
||||
---
|
||||
|
||||
## 📖 Google Updates 2026 - Novos Standards
|
||||
|
||||
### E-E-A-T Evolution
|
||||
## E-E-A-T 2026
|
||||
|
||||
| Factor | 2024-2025 | **2026 Standards** |
|
||||
|--------|-----------|-----|
|
||||
| **Experience** | Sugerido | **OBRIGATÓRIO** - Demonstração de experiência real |
|
||||
| **Expertise** | Credenciais | Credenciais **VERIFICÁVEIS** (LinkedIn, certificações) |
|
||||
| **Authoritativeness** | Backlinks | Backlinks + **menções media** + **citações académicas** |
|
||||
| **Experience** | Sugerido | **Obrigatorio** - Demonstracao de experiencia real |
|
||||
| **Expertise** | Credenciais | Credenciais **verificaveis** (LinkedIn, certificacoes) |
|
||||
| **Authoritativeness** | Backlinks | Backlinks + **mencoes media** + **citacoes academicas** |
|
||||
| **Trust** | HTTPS | HTTPS + **About page completo** + **Contactos reais** |
|
||||
|
||||
**Impacto:** Sites sem E-E-A-T perderam -15% a -40% tráfego orgânico Q1 2026.
|
||||
**Impacto:** Sites sem E-E-A-T perderam -15% a -40% trafego organico Q1 2026.
|
||||
|
||||
### Helpful Content Update Q1 2026
|
||||
|
||||
**Penalizações Automáticas:**
|
||||
- Conteúdo AI sem edição humana: -30% rankings
|
||||
**Penalizacoes Automaticas:**
|
||||
- Conteudo AI sem edicao humana: -30% rankings
|
||||
- Keyword stuffing (densidade > 3%): -50% rankings
|
||||
- Thin content (< 300 palavras): Desindexação
|
||||
- Conteúdo duplicado: Canibalização severa
|
||||
- Thin content (< 300 palavras): Desindexacao
|
||||
- Conteudo duplicado: Canibalizacao severa
|
||||
|
||||
**Boas Práticas:**
|
||||
- Conteúdo original, profundo (> 1200 palavras para topics competitivos)
|
||||
- Múltiplos formatos (texto + imagem + vídeo)
|
||||
- Actualização regular (timestamp visível)
|
||||
**Boas Praticas:**
|
||||
- Conteudo original, profundo (> 1200 palavras para topics competitivos)
|
||||
- Multiplos formatos (texto + imagem + video)
|
||||
- Actualizacao regular (timestamp visivel)
|
||||
|
||||
---
|
||||
|
||||
## ✅ Regras Core
|
||||
|
||||
### Meta Tags Essenciais 2026
|
||||
## Heading Structure (Hierarquia Correcta)
|
||||
|
||||
```html
|
||||
<!-- ✅ Title tag (50-60 caracteres) -->
|
||||
<title>Keyword Principal | Nome Marca 2026</title>
|
||||
<!-- CORRECTO: Hierarquia logica -->
|
||||
<h1>Titulo Principal da Pagina (1 por pagina, keyword principal)</h1>
|
||||
<h2>Seccao 1 (keyword secundaria)</h2>
|
||||
<h3>Sub-seccao 1.1</h3>
|
||||
<h3>Sub-seccao 1.2</h3>
|
||||
<h2>Seccao 2 (keyword secundaria)</h2>
|
||||
|
||||
<!-- ✅ Meta description (150-160 caracteres, CTA claro) -->
|
||||
<meta name="description" content="Descrição apelativa com keyword, benefício claro e CTA subtil. Actualizado 2026.">
|
||||
|
||||
<!-- ✅ Canonical URL (evita duplicação) -->
|
||||
<link rel="canonical" href="https://site.pt/pagina/">
|
||||
|
||||
<!-- ✅ Open Graph (essencial para social shares) -->
|
||||
<meta property="og:title" content="Título para Social (60 chars)">
|
||||
<meta property="og:description" content="Descrição social (65 palavras max)">
|
||||
<meta property="og:image" content="https://site.pt/og-image.jpg">
|
||||
<meta property="og:url" content="https://site.pt/pagina/">
|
||||
<meta property="og:type" content="article">
|
||||
|
||||
<!-- ✅ Twitter Card -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="Título Twitter">
|
||||
<meta name="twitter:description" content="Descrição Twitter">
|
||||
<meta name="twitter:image" content="https://site.pt/twitter-image.jpg">
|
||||
|
||||
<!-- 🆕 2026: Article metadata -->
|
||||
<meta property="article:published_time" content="2026-02-03T10:00:00Z">
|
||||
<meta property="article:modified_time" content="2026-02-03T15:30:00Z">
|
||||
<meta property="article:author" content="Nome Autor">
|
||||
<meta property="article:section" content="Categoria">
|
||||
<meta property="article:tag" content="tag1, tag2, tag3">
|
||||
<!-- ERRADO: Saltar niveis -->
|
||||
<h1>Titulo</h1>
|
||||
<h4>Sub-titulo</h4> <!-- Saltou H2 e H3 -->
|
||||
```
|
||||
|
||||
### Structured Data (Schema.org) 2026
|
||||
|
||||
```json
|
||||
// ✅ Organization (Homepage)
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
"name": "Nome Empresa",
|
||||
"url": "https://site.pt",
|
||||
"logo": "https://site.pt/logo.png",
|
||||
"sameAs": [
|
||||
"https://linkedin.com/company/...",
|
||||
"https://facebook.com/...",
|
||||
"https://instagram.com/..."
|
||||
],
|
||||
"contactPoint": {
|
||||
"@type": "ContactPoint",
|
||||
"telephone": "+351-XXX-XXX-XXX",
|
||||
"contactType": "Customer Service",
|
||||
"areaServed": "PT",
|
||||
"availableLanguage": ["pt", "en"]
|
||||
}
|
||||
}
|
||||
|
||||
// ✅ Article/BlogPosting (EEAT compliant)
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Article",
|
||||
"headline": "Título do Artigo",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "Nome Autor",
|
||||
"url": "https://site.pt/autor/nome",
|
||||
"jobTitle": "Especialista em...",
|
||||
"knowsAbout": ["Área 1", "Área 2"]
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Nome Empresa",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "https://site.pt/logo.png"
|
||||
}
|
||||
},
|
||||
"datePublished": "2026-02-03",
|
||||
"dateModified": "2026-02-03",
|
||||
"image": "https://site.pt/imagem.jpg",
|
||||
"articleBody": "Conteúdo completo...",
|
||||
"wordCount": 1500,
|
||||
"inLanguage": "pt-PT"
|
||||
}
|
||||
|
||||
// ✅ FAQPage (featured snippets)
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "FAQPage",
|
||||
"mainEntity": [
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Pergunta completa?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Resposta completa e detalhada (min 40 palavras para snippets)."
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Segunda pergunta?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Resposta detalhada..."
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
// 🆕 2026: HowTo Schema (aparece em rich results)
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "HowTo",
|
||||
"name": "Como fazer X",
|
||||
"description": "Guia completo passo a passo",
|
||||
"totalTime": "PT30M",
|
||||
"estimatedCost": {
|
||||
"@type": "MonetaryAmount",
|
||||
"currency": "EUR",
|
||||
"value": "50"
|
||||
},
|
||||
"step": [
|
||||
{
|
||||
"@type": "HowToStep",
|
||||
"name": "Passo 1",
|
||||
"text": "Descrição detalhada passo 1",
|
||||
"image": "https://site.pt/passo1.jpg"
|
||||
},
|
||||
{
|
||||
"@type": "HowToStep",
|
||||
"name": "Passo 2",
|
||||
"text": "Descrição detalhada passo 2",
|
||||
"image": "https://site.pt/passo2.jpg"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
// 🆕 2026: Review/Rating Schema (produtos/serviços)
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Product",
|
||||
"name": "Nome Produto",
|
||||
"image": "https://site.pt/produto.jpg",
|
||||
"description": "Descrição produto",
|
||||
"brand": {
|
||||
"@type": "Brand",
|
||||
"name": "Nome Marca"
|
||||
},
|
||||
"aggregateRating": {
|
||||
"@type": "AggregateRating",
|
||||
"ratingValue": "4.8",
|
||||
"reviewCount": "127"
|
||||
},
|
||||
"offers": {
|
||||
"@type": "Offer",
|
||||
"price": "95.00",
|
||||
"priceCurrency": "EUR",
|
||||
"availability": "https://schema.org/InStock"
|
||||
}
|
||||
}
|
||||
```
|
||||
**Boas Praticas 2026:**
|
||||
- H1: Unica, 60-70 chars, keyword principal
|
||||
- H2: Keywords secundarias, variacoes LSI
|
||||
- H3-H6: Long-tail keywords, questoes especificas
|
||||
- Incluir numeros quando possivel ("7 Formas de...", "Top 10...")
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Heading Structure (Hierarquia Correcta)
|
||||
## On-Page SEO Checklist 2026
|
||||
|
||||
```html
|
||||
<!-- ✅ CORRECTO: Hierarquia lógica -->
|
||||
<h1>Título Principal da Página (1 por página, keyword principal)</h1>
|
||||
### Conteudo
|
||||
|
||||
<h2>Secção 1 (keyword secundária)</h2>
|
||||
<h3>Sub-secção 1.1</h3>
|
||||
<h3>Sub-secção 1.2</h3>
|
||||
|
||||
<h2>Secção 2 (keyword secundária)</h2>
|
||||
<h3>Sub-secção 2.1</h3>
|
||||
<h4>Detalhe 2.1.1</h4>
|
||||
<h3>Sub-secção 2.2</h3>
|
||||
|
||||
<h2>Secção 3 (keyword secundária)</h2>
|
||||
|
||||
<!-- ❌ ERRADO: Saltar níveis -->
|
||||
<h1>Título</h1>
|
||||
<h4>Sub-título</h4> <!-- Saltou H2 e H3 - PENALIZADO 2026 -->
|
||||
|
||||
<!-- ❌ ERRADO: Múltiplos H1 -->
|
||||
<h1>Título 1</h1>
|
||||
<h1>Título 2</h1> <!-- Só 1 H1 permitido -->
|
||||
```
|
||||
|
||||
**Boas Práticas 2026:**
|
||||
- H1: Única, 60-70 chars, keyword principal
|
||||
- H2: Keywords secundárias, variações LSI
|
||||
- H3-H6: Long-tail keywords, questões específicas
|
||||
- Incluir números quando possível ("7 Formas de...", "Top 10...")
|
||||
|
||||
---
|
||||
|
||||
## ⚡ Core Web Vitals 2026
|
||||
|
||||
| Métrica | Bom | Necessita Melhoria | Mau | **2026 Change** |
|
||||
|---------|-----|-------------------|-----|-----------------|
|
||||
| **LCP** | < 2.5s | 2.5-4s | > 4s | Threshold mais rigoroso Q2 (< 2.0s) |
|
||||
| **INP** | < 200ms | 200-500ms | > 500ms | **Substituiu FID em Jan 2026** |
|
||||
| **CLS** | < 0.1 | 0.1-0.25 | > 0.25 | Sem mudanças |
|
||||
|
||||
### Optimizações LCP 2026
|
||||
|
||||
```html
|
||||
<!-- ✅ Preload imagem hero (crítico) -->
|
||||
<link rel="preload" as="image" href="/hero.jpg" fetchpriority="high">
|
||||
|
||||
<!-- ✅ Lazy loading imagens below-fold -->
|
||||
<img src="image.jpg" loading="lazy" alt="Descrição">
|
||||
|
||||
<!-- ✅ Responsive images (servir tamanho correcto) -->
|
||||
<img srcset="small.jpg 480w, medium.jpg 800w, large.jpg 1200w"
|
||||
sizes="(max-width: 600px) 480px, (max-width: 1000px) 800px, 1200px"
|
||||
src="large.jpg" alt="Descrição">
|
||||
|
||||
<!-- ✅ WebP format (60% menor que JPEG) -->
|
||||
<picture>
|
||||
<source srcset="image.webp" type="image/webp">
|
||||
<img src="image.jpg" alt="Descrição">
|
||||
</picture>
|
||||
|
||||
<!-- 🆕 2026: Priority hints -->
|
||||
<img src="hero.jpg" fetchpriority="high" alt="Hero">
|
||||
<img src="secondary.jpg" fetchpriority="low" alt="Secondary">
|
||||
```
|
||||
|
||||
### Optimizações INP 2026 (Novo)
|
||||
|
||||
```javascript
|
||||
// ✅ Debounce event handlers
|
||||
function debounce(func, wait) {
|
||||
let timeout;
|
||||
return function executedFunction(...args) {
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(() => func(...args), wait);
|
||||
};
|
||||
}
|
||||
|
||||
const handleInput = debounce((e) => {
|
||||
// Processar input
|
||||
}, 300);
|
||||
|
||||
// ✅ Code splitting (carregar só necessário)
|
||||
// Webpack/Vite config
|
||||
const component = () => import('./HeavyComponent.js');
|
||||
|
||||
// ✅ Web Workers (tarefas pesadas off main thread)
|
||||
const worker = new Worker('worker.js');
|
||||
worker.postMessage({ task: 'heavy-computation', data });
|
||||
|
||||
// ❌ EVITAR: Event listeners síncronos pesados
|
||||
button.addEventListener('click', () => {
|
||||
// EVITAR processamento síncrono pesado aqui
|
||||
for (let i = 0; i < 1000000; i++) { /* ... */ }
|
||||
});
|
||||
```
|
||||
|
||||
### Optimizações CLS 2026
|
||||
|
||||
```css
|
||||
/* ✅ Definir width/height em imagens */
|
||||
img {
|
||||
width: 800px;
|
||||
height: 600px;
|
||||
aspect-ratio: 4 / 3;
|
||||
}
|
||||
|
||||
/* ✅ Reservar espaço para ads/embeds */
|
||||
.ad-container {
|
||||
min-height: 250px;
|
||||
background: #f0f0f0;
|
||||
}
|
||||
|
||||
/* ✅ Font loading optimizado */
|
||||
@font-face {
|
||||
font-family: 'Custom Font';
|
||||
src: url('/font.woff2') format('woff2');
|
||||
font-display: swap; /* ou optional */
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 On-Page SEO Checklist 2026
|
||||
|
||||
```markdown
|
||||
### Conteúdo
|
||||
- [ ] Keyword no título (primeiros 60 chars)
|
||||
- [ ] Keyword no H1 (única vez)
|
||||
- [ ] Keyword no titulo (primeiros 60 chars)
|
||||
- [ ] Keyword no H1 (unica vez)
|
||||
- [ ] Keyword nos primeiros 100 caracteres
|
||||
- [ ] Keywords secundárias em H2/H3
|
||||
- [ ] LSI keywords distribuídas naturalmente
|
||||
- [ ] Conteúdo > 1200 palavras (topics competitivos)
|
||||
- [ ] Keyword density 1-2% (não > 3%)
|
||||
- [ ] Keywords secundarias em H2/H3
|
||||
- [ ] LSI keywords distribuidas naturalmente
|
||||
- [ ] Conteudo > 1200 palavras (topics competitivos)
|
||||
- [ ] Keyword density 1-2% (nao > 3%)
|
||||
|
||||
### Autor e E-E-A-T
|
||||
|
||||
- [ ] **Autor identificado** (nome + foto)
|
||||
- [ ] **Bio autor** (credenciais, experiência)
|
||||
- [ ] **Data publicação + última actualização**
|
||||
- [ ] **Experiência real demonstrada** (exemplos, casos)
|
||||
- [ ] **Bio autor** (credenciais, experiencia)
|
||||
- [ ] **Data publicacao + ultima actualizacao**
|
||||
- [ ] **Experiencia real demonstrada** (exemplos, casos)
|
||||
- [ ] Links para perfis autor (LinkedIn, Twitter)
|
||||
|
||||
### Media
|
||||
|
||||
- [ ] Alt text descritivo em TODAS as imagens
|
||||
- [ ] Imagens optimizadas (WebP, < 200KB)
|
||||
- [ ] Vídeo embed (aumenta tempo na página)
|
||||
- [ ] Infográficos (linkable assets)
|
||||
- [ ] Video embed (aumenta tempo na pagina)
|
||||
- [ ] Infograficos (linkable assets)
|
||||
|
||||
### Links
|
||||
|
||||
- [ ] 3-5 internal links relevantes
|
||||
- [ ] 1-3 external links para fontes autoritativas
|
||||
- [ ] Anchor text descritivo (não "clique aqui")
|
||||
- [ ] Anchor text descritivo (nao "clique aqui")
|
||||
- [ ] Links abrem em nova tab (external)
|
||||
|
||||
### Técnico
|
||||
- [ ] URL amigável (curto, keyword, sem parâmetros)
|
||||
- [ ] Meta description única (150-160 chars)
|
||||
### Tecnico
|
||||
|
||||
- [ ] URL amigavel (curto, keyword, sem parametros)
|
||||
- [ ] Meta description unica (150-160 chars)
|
||||
- [ ] Canonical URL definido
|
||||
- [ ] Open Graph completo
|
||||
- [ ] Schema.org implementado
|
||||
@@ -388,101 +134,65 @@ img {
|
||||
- [ ] Core Web Vitals green
|
||||
|
||||
### Engagement
|
||||
|
||||
- [ ] CTA claro (call-to-action)
|
||||
- [ ] FAQ section (featured snippets)
|
||||
- [ ] Formulário/contacto
|
||||
- [ ] Formulario/contacto
|
||||
- [ ] Social share buttons
|
||||
- [ ] Comentários activos (engagement signal)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Keyword Research 2026
|
||||
## Anti-Patterns SEO 2026
|
||||
|
||||
### Ferramentas
|
||||
|
||||
| Ferramenta | Uso | Métricas |
|
||||
|------------|-----|----------|
|
||||
| **Google Keyword Planner** | Volume, CPC | Volume mensal, competição |
|
||||
| **Ahrefs** | KD, SERP analysis | Keyword Difficulty, DR necessário |
|
||||
| **Semrush** | Concorrência | Gap analysis, trending |
|
||||
| **AnswerThePublic** | Long-tail questions | Questões reais utilizadores |
|
||||
| **Google Trends** | Sazonalidade | Tendência temporal |
|
||||
|
||||
### Processo
|
||||
|
||||
```
|
||||
1. **Seed Keywords** - Brainstorm inicial (5-10 keywords principais)
|
||||
2. **Expand** - Ferramentas para 100+ variações
|
||||
3. **Filter** - Volume > 50/mês, KD < 60 (para começar)
|
||||
4. **Analyse Intent** - Informacional, Navegacional, Transacional
|
||||
5. **Prioritize** - Matriz Volume vs KD vs Relevância
|
||||
6. **Cluster** - Agrupar por topic, criar pillar content
|
||||
```
|
||||
|
||||
### Keyword Difficulty Benchmarks
|
||||
|
||||
| KD | Dificuldade | DR Necessário | Backlinks Estimados |
|
||||
|----|-------------|---------------|---------------------|
|
||||
| 0-20 | Muito Fácil | < 20 | 0-5 |
|
||||
| 21-40 | Fácil | 20-35 | 5-20 |
|
||||
| 41-60 | Médio | 35-50 | 20-50 |
|
||||
| 61-80 | Difícil | 50-70 | 50-200 |
|
||||
| 81-100 | Muito Difícil | > 70 | 200+ |
|
||||
|
||||
**Estratégia:** Começar por KD 0-40, escalar para 41-60 após DR > 35.
|
||||
| Anti-Pattern | Penalizacao 2026 | Solucao |
|
||||
|--------------|------------------|---------|
|
||||
| **Keyword stuffing** (> 3%) | -50% rankings | Escrita natural, 1-2% |
|
||||
| **Conteudo duplicado** | Canibalizacao | Canonical, consolidar |
|
||||
| **Meta descriptions iguais** | Menos impressoes | Unica por pagina |
|
||||
| **Imagens sem alt** | -10% accessibility | Alt descritivo |
|
||||
| **JavaScript-only content** | Nao indexado | SSR/SSG |
|
||||
| **Redirect chains** | Timeout, bounce | Redirect directo |
|
||||
| **Thin content** (< 300 palavras) | Desindexacao | Min 800 palavras |
|
||||
| **Conteudo AI nao editado** | -30% rankings | Edicao humana |
|
||||
| **Links comprados** | Penalizacao manual | Earn links, guest posts |
|
||||
| **Hidden text** | Desindexacao | Texto visivel |
|
||||
|
||||
---
|
||||
|
||||
## 🌐 URL Structure Best Practices
|
||||
## Ferramentas Recomendadas
|
||||
|
||||
```
|
||||
✅ CORRECTO:
|
||||
https://site.pt/categoria/keyword-principal/
|
||||
https://site.pt/blog/como-fazer-energia-solar-2026/
|
||||
https://site.pt/servicos/instalacao-paineis-solares/
|
||||
### Validacao
|
||||
|
||||
❌ ERRADO:
|
||||
https://site.pt/p?id=123&cat=5&lang=pt (parâmetros)
|
||||
https://site.pt/este-url-e-muito-longo-com-muitas-palavras-desnecessarias-que-ninguem-le/ (> 60 chars)
|
||||
https://site.pt/artigo_novo_23_final_v2/ (underscores, versões)
|
||||
```
|
||||
- **Google Search Console** - Monitorizacao, indexacao
|
||||
- **PageSpeed Insights** - Core Web Vitals
|
||||
- **Schema Validator** - Testar structured data (schema.org/validator)
|
||||
- **Mobile-Friendly Test** - Google mobile test
|
||||
- **Rich Results Test** - Google rich results
|
||||
|
||||
**Regras 2026:**
|
||||
- Máximo 60 caracteres
|
||||
- Hífens (não underscores)
|
||||
- Lowercase
|
||||
- Keyword no início se possível
|
||||
- Sem stop words (de, o, a, em) quando possível
|
||||
- Estrutura lógica (site.pt/categoria/subcategoria/artigo)
|
||||
### Analise
|
||||
|
||||
- **Screaming Frog** - Auditoria tecnica completa
|
||||
- **Ahrefs/Semrush** - Keyword research, backlinks
|
||||
- **AnswerThePublic** - Long-tail questions
|
||||
- **Google Trends** - Sazonalidade keywords
|
||||
|
||||
### Optimizacao
|
||||
|
||||
- **TinyPNG/Squoosh** - Comprimir imagens
|
||||
- **Cloudflare** - CDN, cache
|
||||
- **WP Rocket/Autoptimize** - WordPress performance
|
||||
|
||||
---
|
||||
|
||||
## 🚫 Anti-Patterns SEO 2026
|
||||
## Checklist Pre-Publicacao
|
||||
|
||||
| Anti-Pattern | Problema | Penalização 2026 | Solução |
|
||||
|--------------|----------|------------------|---------|
|
||||
| **Keyword stuffing** | Densidade > 3% | -50% rankings | Escrita natural, 1-2% |
|
||||
| **Conteúdo duplicado** | Canibalização | Ambas páginas caem | Canonical, consolidar |
|
||||
| **Meta descriptions iguais** | CTR baixo | Menos impressões | Única por página |
|
||||
| **Imagens sem alt** | A11y + SEO | -10% accessibility score | Alt descritivo |
|
||||
| **JavaScript-only content** | Indexação | Não indexado | SSR/SSG |
|
||||
| **Redirect chains** | Page speed | Timeout, bounce alto | Redirect directo |
|
||||
| **Thin content** | < 300 palavras | Desindexação | Min 800 palavras |
|
||||
| **Conteúdo AI não editado** | Detectável | -30% rankings | Edição humana, fact-check |
|
||||
| **Links comprados** | Spam | Penalização manual | Earn links, guest posts |
|
||||
| **Hidden text** | Spam | Desindexação | Texto visível |
|
||||
### Tecnico
|
||||
|
||||
---
|
||||
|
||||
## ✅ Checklist Pré-Publicação
|
||||
|
||||
### Técnico
|
||||
- [ ] Title tag optimizado (50-60 chars, keyword início)
|
||||
- [ ] Meta description única (150-160 chars, CTA)
|
||||
- [ ] H1 único com keyword principal
|
||||
- [ ] Title tag optimizado (50-60 chars, keyword inicio)
|
||||
- [ ] Meta description unica (150-160 chars, CTA)
|
||||
- [ ] H1 unico com keyword principal
|
||||
- [ ] Imagens com alt text descritivo
|
||||
- [ ] URL amigável (< 60 chars, keyword)
|
||||
- [ ] URL amigavel (< 60 chars, keyword)
|
||||
- [ ] Canonical definido
|
||||
- [ ] Open Graph configurado (title, description, image)
|
||||
- [ ] Schema.org implementado (Article/FAQPage)
|
||||
@@ -490,171 +200,43 @@ https://site.pt/artigo_novo_23_final_v2/ (underscores, versões)
|
||||
- [ ] HTTPS activo
|
||||
- [ ] Core Web Vitals green (LCP, INP, CLS)
|
||||
|
||||
### Conteúdo
|
||||
### Conteudo
|
||||
|
||||
- [ ] > 1200 palavras (topics competitivos)
|
||||
- [ ] Keyword density 1-2%
|
||||
- [ ] 2-3 internal links relevantes
|
||||
- [ ] 1-2 external links autoritativos (DR > 40)
|
||||
- [ ] Autor identificado + bio
|
||||
- [ ] Data publicação visível
|
||||
- [ ] Experiência real demonstrada
|
||||
- [ ] Data publicacao visivel
|
||||
- [ ] Experiencia real demonstrada
|
||||
- [ ] FAQ section (min 3 perguntas)
|
||||
|
||||
### Engagement
|
||||
- [ ] CTA claro e visível
|
||||
- [ ] Formulário/contacto (se aplicável)
|
||||
|
||||
- [ ] CTA claro e visivel
|
||||
- [ ] Formulario/contacto (se aplicavel)
|
||||
- [ ] Social share buttons
|
||||
- [ ] Imagens optimizadas (< 200KB, WebP)
|
||||
- [ ] Vídeo embed (se relevante)
|
||||
- [ ] Video embed (se relevante)
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Ferramentas Recomendadas
|
||||
## Referencias Detalhadas
|
||||
|
||||
### Validação
|
||||
- **Google Search Console** - Monitorização, indexação
|
||||
- **PageSpeed Insights** - Core Web Vitals
|
||||
- **Schema Validator** - Testar structured data (schema.org/validator)
|
||||
- **Mobile-Friendly Test** - Google mobile test
|
||||
- **Rich Results Test** - Google rich results
|
||||
Para conteudo tecnico detalhado, consultar:
|
||||
|
||||
### Análise
|
||||
- **Screaming Frog** - Auditoria técnica completa
|
||||
- **Ahrefs/Semrush** - Keyword research, backlinks
|
||||
- **AnswerThePublic** - Long-tail questions
|
||||
- **Google Trends** - Sazonalidade keywords
|
||||
|
||||
### Optimização
|
||||
- **TinyPNG/Squoosh** - Comprimir imagens
|
||||
- **Cloudflare** - CDN, cache
|
||||
- **WP Rocket/Autoptimize** - WordPress performance
|
||||
- [references/structured-data.md](references/structured-data.md) - Meta tags completas, Schema.org (Organization, Article, FAQ, HowTo, Product), Core Web Vitals (LCP, INP, CLS com codigo), URL structure, Keyword Research com benchmarks
|
||||
|
||||
---
|
||||
|
||||
## 📚 Datasets Dify (Consulta Obrigatória)
|
||||
## Protocolo de Execucao
|
||||
|
||||
| Dataset | ID | Prioridade | Uso |
|
||||
|---------|----|-----------:|-----|
|
||||
| **SEO (Search Engine Optimization)** | `b93c6475-2f22-412e-ba9d-666eb081b872` | 1 | Técnicas SEO, Google updates |
|
||||
| **Neil Patel** | `6ff761b3-a054-435c-8fc3-a6e6c3a0afaf` | 1 | Link building, estratégias |
|
||||
| **Marketing de Conteúdo** | `061f19a3-d4b6-4383-9f44-620742167201` | 2 | E-E-A-T, criação conteúdo |
|
||||
| **Marketing Digital** | `c1ec779f-4cb1-4ecf-ba11-6b39b93d4e24` | 2 | Estratégia geral |
|
||||
|
||||
### Como Consultar
|
||||
|
||||
```javascript
|
||||
// Pesquisar técnicas SEO on-page
|
||||
mcp__notebooklm__notebook_query, mcp__dify-kb__dify_kb_retrieve_segments({
|
||||
dataset_id: "b93c6475-2f22-412e-ba9d-666eb081b872",
|
||||
query: "keyword research on-page optimization 2026"
|
||||
})
|
||||
|
||||
// Estratégias Neil Patel para link building
|
||||
mcp__dify-kb__dify_kb_retrieve_segments({
|
||||
dataset_id: "6ff761b3-a054-435c-8fc3-a6e6c3a0afaf",
|
||||
query: "backlinks content strategy guest posting"
|
||||
})
|
||||
|
||||
// Implementação E-E-A-T
|
||||
mcp__dify-kb__dify_kb_retrieve_segments({
|
||||
dataset_id: "061f19a3-d4b6-4383-9f44-620742167201",
|
||||
query: "google EEAT author credibility experience"
|
||||
})
|
||||
|
||||
// Core Web Vitals optimização
|
||||
mcp__dify-kb__dify_kb_retrieve_segments({
|
||||
dataset_id: "b93c6475-2f22-412e-ba9d-666eb081b872",
|
||||
query: "core web vitals LCP INP CLS optimization"
|
||||
})
|
||||
```
|
||||
|
||||
### Quando Consultar
|
||||
- **Keyword research** - Validar abordagem e ferramentas
|
||||
- **Optimização meta tags** - Exemplos best practices
|
||||
- **Structured data** - Templates schema.org
|
||||
- **Link building** - Estratégias white-hat
|
||||
- **Core Web Vitals** - Soluções técnicas específicas
|
||||
- **E-E-A-T** - Implementação correcta
|
||||
1. **Analise Inicial** - Verificar requisitos e contexto
|
||||
2. **Preparacao** - Validar acesso a recursos
|
||||
3. **Execucao** - Operacoes incrementais com validacao
|
||||
4. **Validacao** - Verificar resultados obtidos
|
||||
5. **Conclusao** - Documentar alteracoes e proximos passos
|
||||
|
||||
---
|
||||
|
||||
## 📈 Instrumentação Automática
|
||||
|
||||
```sql
|
||||
INSERT INTO tblskill_agent_metrics (
|
||||
type, name, duration_ms, status, staff_id,
|
||||
kb_consulted, kb_cache_hit, tool_calls, project_id
|
||||
) VALUES (
|
||||
'skill', '/seo-content-optimization', {DURACAO_MS}, '{STATUS}', 25,
|
||||
{KB_CONSULTADO}, {CACHE_HIT}, {TOOL_CALLS}, {PROJECT_ID}
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Versão**: 2.0.0 | **Autor**: Descomplicar® | **Data**: 2026-02-03
|
||||
**Desk Task:** #1482 | **Standards:** Google 2026 (E-E-A-T, INP, Helpful Content)
|
||||
|
||||
---
|
||||
|
||||
|
||||
## Quando NÃO Usar
|
||||
|
||||
- Para tarefas fora do domínio de especialização desta skill
|
||||
- Quando outra skill mais específica está disponível
|
||||
- Para operações que requerem aprovação manual obrigatória
|
||||
- Quando os requisitos não estão claramente definidos
|
||||
|
||||
|
||||
## Protocolo de Execução
|
||||
|
||||
1. **Análise Inicial**
|
||||
- Verificar requisitos e contexto
|
||||
- Identificar ferramentas necessárias
|
||||
|
||||
2. **Preparação**
|
||||
- Validar acesso a recursos
|
||||
- Preparar ambiente de trabalho
|
||||
|
||||
3. **Execução**
|
||||
- Executar operações de forma incremental
|
||||
- Validar cada passo antes de prosseguir
|
||||
|
||||
4. **Validação**
|
||||
- Verificar resultados obtidos
|
||||
- Confirmar sucesso da operação
|
||||
|
||||
5. **Conclusão**
|
||||
- Documentar alterações realizadas
|
||||
- Reportar status final e próximos passos
|
||||
|
||||
|
||||
## Exemplos de Uso
|
||||
|
||||
### Exemplo 1: Caso Básico
|
||||
```
|
||||
User: [requisição simples relacionada com seo-content-optimization]
|
||||
Skill: [execução directa com validação]
|
||||
Output: [resultado conciso e accionável]
|
||||
```
|
||||
|
||||
### Exemplo 2: Caso Complexo
|
||||
```
|
||||
User: [requisição multi-passo ou complexa]
|
||||
Skill:
|
||||
1. Análise dos requisitos
|
||||
2. Planeamento da abordagem
|
||||
3. Execução faseada
|
||||
4. Validação contínua
|
||||
Output: [resultado detalhado com próximos passos]
|
||||
```
|
||||
|
||||
### Exemplo 3: Caso com Dependências
|
||||
```
|
||||
User: [requisição que depende de outros sistemas]
|
||||
Skill:
|
||||
1. Verificar dependências disponíveis
|
||||
2. Coordenar com skills/MCPs necessários
|
||||
3. Executar workflow integrado
|
||||
Output: [resultado completo com referências]
|
||||
```
|
||||
**Standards:** Google 2026 (E-E-A-T, INP, Helpful Content)
|
||||
|
||||
@@ -0,0 +1,270 @@
|
||||
# /seo-content-optimization - Structured Data e Meta Tags
|
||||
|
||||
## Meta Tags Essenciais 2026
|
||||
|
||||
```html
|
||||
<!-- Title tag (50-60 caracteres) -->
|
||||
<title>Keyword Principal | Nome Marca 2026</title>
|
||||
|
||||
<!-- Meta description (150-160 caracteres, CTA claro) -->
|
||||
<meta name="description" content="Descrição apelativa com keyword, benefício claro e CTA subtil. Actualizado 2026.">
|
||||
|
||||
<!-- Canonical URL -->
|
||||
<link rel="canonical" href="https://site.pt/pagina/">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:title" content="Título para Social (60 chars)">
|
||||
<meta property="og:description" content="Descrição social (65 palavras max)">
|
||||
<meta property="og:image" content="https://site.pt/og-image.jpg">
|
||||
<meta property="og:url" content="https://site.pt/pagina/">
|
||||
<meta property="og:type" content="article">
|
||||
|
||||
<!-- Twitter Card -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="Título Twitter">
|
||||
<meta name="twitter:description" content="Descrição Twitter">
|
||||
<meta name="twitter:image" content="https://site.pt/twitter-image.jpg">
|
||||
|
||||
<!-- 2026: Article metadata -->
|
||||
<meta property="article:published_time" content="2026-02-03T10:00:00Z">
|
||||
<meta property="article:modified_time" content="2026-02-03T15:30:00Z">
|
||||
<meta property="article:author" content="Nome Autor">
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Structured Data (Schema.org) 2026
|
||||
|
||||
### Organization (Homepage)
|
||||
|
||||
```json
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
"name": "Nome Empresa",
|
||||
"url": "https://site.pt",
|
||||
"logo": "https://site.pt/logo.png",
|
||||
"sameAs": [
|
||||
"https://linkedin.com/company/...",
|
||||
"https://facebook.com/...",
|
||||
"https://instagram.com/..."
|
||||
],
|
||||
"contactPoint": {
|
||||
"@type": "ContactPoint",
|
||||
"telephone": "+351-XXX-XXX-XXX",
|
||||
"contactType": "Customer Service",
|
||||
"areaServed": "PT",
|
||||
"availableLanguage": ["pt", "en"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Article/BlogPosting (E-E-A-T compliant)
|
||||
|
||||
```json
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Article",
|
||||
"headline": "Título do Artigo",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "Nome Autor",
|
||||
"url": "https://site.pt/autor/nome",
|
||||
"jobTitle": "Especialista em...",
|
||||
"knowsAbout": ["Área 1", "Área 2"]
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Nome Empresa",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "https://site.pt/logo.png"
|
||||
}
|
||||
},
|
||||
"datePublished": "2026-02-03",
|
||||
"dateModified": "2026-02-03",
|
||||
"image": "https://site.pt/imagem.jpg",
|
||||
"wordCount": 1500,
|
||||
"inLanguage": "pt-PT"
|
||||
}
|
||||
```
|
||||
|
||||
### FAQPage (featured snippets)
|
||||
|
||||
```json
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "FAQPage",
|
||||
"mainEntity": [
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Pergunta completa?",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "Resposta completa e detalhada (min 40 palavras para snippets)."
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### HowTo Schema (rich results 2026)
|
||||
|
||||
```json
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "HowTo",
|
||||
"name": "Como fazer X",
|
||||
"description": "Guia completo passo a passo",
|
||||
"totalTime": "PT30M",
|
||||
"step": [
|
||||
{
|
||||
"@type": "HowToStep",
|
||||
"name": "Passo 1",
|
||||
"text": "Descrição detalhada passo 1",
|
||||
"image": "https://site.pt/passo1.jpg"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Review/Rating Schema (produtos)
|
||||
|
||||
```json
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Product",
|
||||
"name": "Nome Produto",
|
||||
"brand": { "@type": "Brand", "name": "Nome Marca" },
|
||||
"aggregateRating": {
|
||||
"@type": "AggregateRating",
|
||||
"ratingValue": "4.8",
|
||||
"reviewCount": "127"
|
||||
},
|
||||
"offers": {
|
||||
"@type": "Offer",
|
||||
"price": "95.00",
|
||||
"priceCurrency": "EUR",
|
||||
"availability": "https://schema.org/InStock"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Core Web Vitals 2026
|
||||
|
||||
| Métrica | Bom | Necessita Melhoria | Mau | Mudança 2026 |
|
||||
|---------|-----|-------------------|-----|--------------|
|
||||
| **LCP** | < 2.5s | 2.5-4s | > 4s | Threshold < 2.0s Q2 |
|
||||
| **INP** | < 200ms | 200-500ms | > 500ms | Substituiu FID em Jan 2026 |
|
||||
| **CLS** | < 0.1 | 0.1-0.25 | > 0.25 | Sem mudanças |
|
||||
|
||||
### Optimizações LCP
|
||||
|
||||
```html
|
||||
<!-- Preload imagem hero -->
|
||||
<link rel="preload" as="image" href="/hero.jpg" fetchpriority="high">
|
||||
|
||||
<!-- Lazy loading imagens below-fold -->
|
||||
<img src="image.jpg" loading="lazy" alt="Descrição">
|
||||
|
||||
<!-- Responsive images -->
|
||||
<img srcset="small.jpg 480w, medium.jpg 800w, large.jpg 1200w"
|
||||
sizes="(max-width: 600px) 480px, (max-width: 1000px) 800px, 1200px"
|
||||
src="large.jpg" alt="Descrição">
|
||||
|
||||
<!-- WebP format -->
|
||||
<picture>
|
||||
<source srcset="image.webp" type="image/webp">
|
||||
<img src="image.jpg" alt="Descrição">
|
||||
</picture>
|
||||
```
|
||||
|
||||
### Optimizações INP (novo 2026)
|
||||
|
||||
```javascript
|
||||
// Debounce event handlers
|
||||
function debounce(func, wait) {
|
||||
let timeout;
|
||||
return function executedFunction(...args) {
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(() => func(...args), wait);
|
||||
};
|
||||
}
|
||||
|
||||
// Code splitting
|
||||
const component = () => import('./HeavyComponent.js');
|
||||
|
||||
// Web Workers para tarefas pesadas
|
||||
const worker = new Worker('worker.js');
|
||||
worker.postMessage({ task: 'heavy-computation', data });
|
||||
```
|
||||
|
||||
### Optimizações CLS
|
||||
|
||||
```css
|
||||
/* Definir width/height em imagens */
|
||||
img {
|
||||
width: 800px;
|
||||
height: 600px;
|
||||
aspect-ratio: 4 / 3;
|
||||
}
|
||||
|
||||
/* Reservar espaço para ads */
|
||||
.ad-container { min-height: 250px; }
|
||||
|
||||
/* Font loading */
|
||||
@font-face {
|
||||
font-family: 'Custom Font';
|
||||
src: url('/font.woff2') format('woff2');
|
||||
font-display: swap;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## URL Structure Best Practices
|
||||
|
||||
```
|
||||
CORRECTO:
|
||||
https://site.pt/categoria/keyword-principal/
|
||||
https://site.pt/blog/como-fazer-energia-solar-2026/
|
||||
|
||||
ERRADO:
|
||||
https://site.pt/p?id=123&cat=5&lang=pt
|
||||
https://site.pt/este-url-e-muito-longo-com-muitas-palavras-desnecessarias/
|
||||
```
|
||||
|
||||
**Regras 2026:**
|
||||
- Máximo 60 caracteres
|
||||
- Hífens (não underscores)
|
||||
- Lowercase
|
||||
- Keyword no início se possível
|
||||
- Sem stop words quando possível
|
||||
|
||||
---
|
||||
|
||||
## Keyword Research
|
||||
|
||||
### Ferramentas
|
||||
|
||||
| Ferramenta | Uso | Métricas |
|
||||
|------------|-----|----------|
|
||||
| Google Keyword Planner | Volume, CPC | Volume mensal, competição |
|
||||
| Ahrefs | KD, SERP analysis | Keyword Difficulty, DR necessário |
|
||||
| Semrush | Concorrência | Gap analysis, trending |
|
||||
| AnswerThePublic | Long-tail questions | Questões reais utilizadores |
|
||||
| Google Trends | Sazonalidade | Tendência temporal |
|
||||
|
||||
### Keyword Difficulty Benchmarks
|
||||
|
||||
| KD | Dificuldade | DR Necessário |
|
||||
|----|-------------|---------------|
|
||||
| 0-20 | Muito Fácil | < 20 |
|
||||
| 21-40 | Fácil | 20-35 |
|
||||
| 41-60 | Médio | 35-50 |
|
||||
| 61-80 | Difícil | 50-70 |
|
||||
| 81-100 | Muito Difícil | > 70 |
|
||||
|
||||
**Estratégia:** Começar por KD 0-40, escalar para 41-60 após DR > 35.
|
||||
Reference in New Issue
Block a user