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:
@@ -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