Files
claude-plugins/marketing/skills/seo-report/references/implementacao-tecnica.md
Emanuel Almeida 6b3a6f2698 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>
2026-03-12 15:05:03 +00:00

3.4 KiB

Implementacao Tecnica - SEO Report

Workflow Tecnico

graph LR
    A[Input: URL] --> B{Site em GSC?}
    B -->|Sim| C[Recolher dados GSC]
    B -->|Nao| D[Skip GSC, aviso]

    C --> E[Lighthouse Desktop]
    D --> E

    E --> F[Lighthouse Mobile]
    F --> G[Core Web Vitals]
    G --> H[SEO Tools API]
    H --> I{Ahrefs habilitado?}

    I -->|Sim| J[Recolher DR/UR]
    I -->|Nao| K[Skip Ahrefs]

    J --> L[Processar dados]
    K --> L

    L --> M[Gerar relatorio Markdown]
    M --> N[Criar Google Doc]
    N --> O[Partilhar com email]

    O --> P[Retornar link]

Implementacao

async function generateSEOReport(url, options = {}) {
  const {
    email = 'emanuelalmeidaa@gmail.com',
    competitors = [],
    includeAhrefs = true
  } = options;

  // 1. Validar URL
  if (!isValidURL(url)) {
    throw new Error('URL invalido');
  }

  // 2. Recolher dados em paralelo (melhor performance)
  const [
    lighthouseDesktop,
    lighthouseMobile,
    coreWebVitals,
    seoToolsData,
    gscData,
    ahrefsData
  ] = await Promise.allSettled([
    mcp__lighthouse__run_audit(url, 'desktop'),
    mcp__lighthouse__run_audit(url, 'mobile'),
    mcp__lighthouse__get_core_web_vitals(url),
    fetch(`http://localhost:3000/seo-audit?url=${url}`).then(r => r.json()),
    getGSCData(url),
    includeAhrefs ? getAhrefsData(url) : null
  ]);

  // 3. Processar e formatar
  const reportData = {
    url,
    date: new Date().toISOString().split('T')[0],
    scores: extractScores(lighthouseDesktop, lighthouseMobile),
    cwv: processCoreWebVitals(coreWebVitals),
    gsc: processGSCData(gscData),
    onPage: processOnPageData(seoToolsData),
    backlinks: processBacklinks(ahrefsData),
    recommendations: generateRecommendations(/* all data */)
  };

  // 4. Gerar documento Markdown
  const markdown = generateReportMarkdown(reportData);

  // 5. Criar Google Doc
  const docResult = await mcp__google-workspace__create_doc({
    title: `Relatorio SEO - ${extractDomain(url)} - ${reportData.date}`,
    body_content: markdown,
    user_google_email: email
  });

  // 6. Retornar link
  return {
    success: true,
    doc_url: docResult.url,
    summary: reportData.recommendations.slice(0, 5)
  };
}

Propriedades GSC Disponiveis

const GSC_PROPERTIES = [
  'sc-domain:descomplicar.pt',
  'https://emanuelalmeida.pt/',
  'https://carstuff.pt/',
  'https://solarfvengenharia.com/',
  'https://aquisevende.pt/',
  'https://alojadamaria.com/',
  'https://e-commerce.descomplicar.pt/'
];

async function getGSCData(url) {
  const domain = extractDomain(url);
  const property = GSC_PROPERTIES.find(p => p.includes(domain));

  if (!property) {
    console.warn(`Site ${domain} nao esta no GSC. Dados GSC nao disponiveis.`);
    return null;
  }

  const analytics = await mcp__gsc__get_search_analytics({
    site_url: property,
    start_date: daysAgo(90),
    end_date: 'today',
    dimensions: ['query'],
    row_limit: 100
  });

  return analytics;
}

Notas Tecnicas

Requisitos

  • SEO Tools API a correr: ~/mcp-servers/seo-tools-api/start.sh
  • Google Workspace MCP configurado
  • GSC authentication (OAuth primeira vez)

Performance

  • Execucao paralela de tools (1m40s total)
  • Cache Lighthouse results (5 min TTL)
  • Rate limiting Ahrefs API (100 req/day free)

Erros Comuns

  • Site nao em GSC: Relatorio gerado sem dados GSC
  • Lighthouse timeout: Retry automatico (3x)
  • Ahrefs rate limit: Skip backlinks, aviso no relatorio