agentsclimarketplace

Riligar dev website seo

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

RiLiGar Agents Kit - Curated collection of AI Agent templates, skills, and rules designed to standardize and supercharge your AI-driven development workflows.

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.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

5.2 KB, 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/.

Keep looking

Skills are one crate of 328,083. 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.