agentsclimarketplace

Riligar dev website seo

Skill riligar/agents-kit/.agent/skills/riligar-dev-website-seo

Implementação de infraestrutura de SEO técnico seguindo a stack RiLiGar (React, Vite, Bun, Elysia). Use para configurar sitemaps, robots.txt, meta tags, OpenGraph, dados estruturados (JSON-LD) e URLs canônicas.From its SKILL.md

Install
npx -y skills add riligar/agents-kit --skill riligar-dev-website-seo

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.2 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

SEO Técnico (RiLiGar Tech Stack)

Arquivos da Skill

Esta skill utiliza os seguintes arquivos de referência:

  • SKILL.md (este arquivo): Guia central de implementação
  • references/implementation.md: Templates de código para React/Vite e Bun/Elysia
  • references/checklist.md: Checklist pré-lançamento
  • references/structured-data.md: Templates de markup JSON-LD

O que esta Skill cobre

  1. Sitemaps → Geração dinâmica via Bun/Elysia ou estática via Vite/public.
  2. Robots.txt → Diretivas para crawlers.
  3. Meta Tags → OpenGraph, Twitter Cards, descrições e títulos.
  4. Dados Estruturados → Schema markup (JSON-LD) para rich snippets.
  5. URLs Canônicas → Prevenção de conteúdo duplicado.
  6. Performance & Vitals → Otimização para os Core Web Vitals.

Part 1: Implementação de Sitemap

Em projetos RiLiGar, o sitemap pode ser estático (em public/sitemap.xml) ou dinâmico via backend Elysia.

Sitemap Estático (Vite public/sitemap.xml)

Para sites institucionais simples:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://riligar.com/</loc>
    <lastmod>2025-01-20</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
</urlset>

Sitemap Dinâmico (Elysia /backend)

Se o site tiver conteúdo dinâmico (postagens de blog, produtos), crie um endpoint no Elysia:

// src/routes/seo.js
import { Elysia } from 'elysia'
import { db } from '../database/db'

export const seoRoutes = new Elysia().get('/sitemap.xml', async ({ set }) => {
    const posts = await db.query.posts.findMany()
    const baseUrl = 'https://riligar.com'

    const xml = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>${baseUrl}</loc>
        <priority>1.0</priority>
    </url>
    ${posts
        .map(
            post => `
    <url>
        <loc>${baseUrl}/blog/${post.slug}</loc>
        <lastmod>${post.updatedAt.toISOString().split('T')[0]}</lastmod>
        <priority>0.7</priority>
    </url>`
        )
        .join('')}
</urlset>`

    set.headers['Content-Type'] = 'application/xml'
    return xml
})

Part 2: Implementação de Robots.txt

O robots.txt deve ficar na pasta public/ do frontend ou ser servido pelo backend.

User-agent: *
Allow: /
Disallow: /api/
Disallow: /dashboard/
Disallow: /admin/

# Block AI training bots
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
User-agent: CCBot
Disallow: /

Sitemap: https://riligar.com/sitemap.xml

Part 3: Metadata e Meta Tags

Em SPAs (Single Page Applications) React/Vite, use metadados estáticos no index.html ou gerencie dinamicamente.

No index.html (Baseline)

<title>RiLiGar — Sua Tagline</title>
<meta
    name="description"
    content="Descrição chamativa de 150-160 caracteres."
/>

<!-- OpenGraph -->
<meta
    property="og:type"
    content="website"
/>
<meta
    property="og:title"
    content="RiLiGar — Sua Tagline"
/>
<meta
    property="og:description"
    content="Descrição para redes sociais."
/>
<meta
    property="og:image"
    content="https://riligar.com/og-image.png"
/>

<!-- Twitter -->
<meta
    name="twitter:card"
    content="summary_large_image"
/>
<meta
    name="twitter:title"
    content="RiLiGar — Sua Tagline"
/>
<meta
    name="twitter:image"
    content="https://riligar.com/og-image.png"
/>

Dinâmico (Server-side Injection no Elysia)

Para melhores resultados de SEO em conteúdo dinâmico, o Elysia pode injetar as tags no HTML enviado:

// Exemplo simples de injeção no Elysia
app.get('/*', async ({ path }) => {
    let html = await Bun.file('dist/index.html').text()

    if (path.startsWith('/blog/')) {
        const post = await getPost(path.split('/')[2])
        html = html.replace('<title>RiLiGar</title>', `<title>${post.title} | RiLiGar</title>`)
        html = html.replace('content="RiLiGar description"', `content="${post.excerpt}"`)
    }

    return new Response(html, { headers: { 'Content-Type': 'text/html' } })
})

Part 4: Variáveis de Ambiente

Sempre configure a URL base nos arquivos de ambiente:

# .env.development
VITE_SITE_URL=http://localhost:5173
SITE_URL=http://localhost:3000

# .env.production
VITE_SITE_URL=https://riligar.com
SITE_URL=https://riligar.com

Checklist de Implementação

  1. robots.txt configurado e bloqueando /admin e /dashboard.
  2. sitemap.xml gerado e acessível.
  3. Meta tags OpenGraph e Twitter presentes em todas as páginas públicas.
  4. Imagem OG de 1200x630px em public/og-image.png.
  5. Canonical URLs apontando para a versão preferencial.
  6. Dados estruturados (JSON-LD) para Organização no Home.
  7. Headers de performance (preload de fontes) no index.html.

Para detalhes específicos, consulte os arquivos na pasta references/.

What ships with it: 3 files

11.0 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.