{
  "id": "ai-rules-for-seo-content-sites",
  "type": "rules",
  "category": "rules",
  "locale": "pt",
  "url": "/pt/rules/ai-rules-for-seo-content-sites",
  "title": "Regras de Codificação de IA para Sites de Conteúdo SEO",
  "description": "Regras do AGENTS.md para sites de conteúdo focados em SEO que previnem metadados duplicados, impõem dados estruturados e impedem que agentes quebrem a capacidade de rastreamento.",
  "tools": [
    "Cursor",
    "Claude Code",
    "Codex",
    "Windsurf"
  ],
  "stack": [
    "Astro",
    "Next.js",
    "TypeScript"
  ],
  "tags": [
    "agents-md",
    "seo",
    "astro",
    "nextjs",
    "typescript",
    "conventions"
  ],
  "difficulty": null,
  "updated": "2026-06-08",
  "markdown": "Coloque isso na raiz do seu repositório como `AGENTS.md`. Ele tem como alvo qualquer site com muito conteúdo onde o tráfego de busca orgânica é a principal alavanca de crescimento — blogs, sites de documentação, sites de marketing e bibliotecas de recursos.\n\n## AGENTS.md\n\n```md title=\"AGENTS.md\"\n# Project Rules — SEO Content Site\n\n## Stack\n- Astro (static) or Next.js (App Router, static export or ISR).\n- TypeScript strict. Content schema enforced via Zod (content collections or manual).\n- Tailwind CSS for styling.\n\n## Hard rules — SEO correctness\n- Every page MUST have a unique `<title>` (50–60 chars) and a unique\n  `<meta name=\"description\">` (120–160 chars). Duplicate titles and descriptions\n  cause Google to de-rank or rewrite them. Check both before marking a task done.\n- Every page MUST render a `<link rel=\"canonical\" href=\"...\">` pointing to its own\n  canonical URL. This is required even on pages that are not duplicated — it is a\n  signal, not just a deduplication tool.\n- Never generate two pages with the same slug or URL path. Before adding a new content\n  file or route, confirm the path does not already exist in `src/pages/` or the\n  content collection.\n- Every blog post or article MUST include JSON-LD structured data: at minimum\n  `Article` with `headline`, `datePublished`, `dateModified`, and `author`.\n  Product pages need `Product` schema. FAQ pages need `FAQPage` schema.\n- Open Graph tags (`og:title`, `og:description`, `og:image`, `og:url`) must be\n  present on every page. The `og:image` must be an absolute URL (not a relative path).\n- Do NOT use `noindex` on pages that should rank. Do NOT remove `noindex` from pages\n  in `src/pages/api/`, `src/pages/admin/`, or any route that should not be crawled.\n\n## URL and routing conventions\n- URLs are lowercase, hyphen-separated, no trailing slashes (or consistently with\n  trailing slash if the framework default — pick one and enforce it with a redirect).\n- Never rename a published URL without adding a 301 redirect from the old path.\n  Broken inbound links are ranking signals that are lost permanently.\n- Paginated series use `/page/2/` style paths, not query strings (`?page=2`).\n  Query-string pagination is not indexed by Google.\n\n## Content and performance\n- All images must have descriptive `alt` text that includes the target keyword where\n  natural. Empty `alt=\"\"` is only correct for decorative images.\n- Images must be served in WebP or AVIF format. No JPEG or PNG without a `<picture>`\n  element providing a next-gen fallback.\n- Every page must load without render-blocking scripts. No `<script>` without `defer`\n  or `async` in the `<head>` unless it is a critical inline script.\n- Internal links must use the full path and must not 404. Before adding a link, verify\n  the target page exists.\n\n## Definition of done\n- `astro check` or `tsc --noEmit` passes.\n- `astro build` completes without warnings.\n- Running a spot-check: `curl -s <page-url> | grep -c 'canonical'` returns 1.\n- No duplicate `<title>` values across built HTML (run `grep -r '<title>'` on dist/).\n- JSON-LD is present and valid (use schema.org validator).\n```\n\n## Por que essas regras\n\n- **Título e descrição únicos por página** é a regra de SEO mais impactante para sites de conteúdo. Agentes que geram páginas de conteúdo em lote frequentemente reutilizam o mesmo modelo de metadados, produzindo dezenas de páginas que são tecnicamente distintas, mas que parecem idênticas para os rastreadores — desencadeando penalidades de deduplicação suave.\n- **Canônico em todas as páginas, não apenas duplicatas** é frequentemente mal compreendido. Agentes que leem documentação de SEO geralmente adicionam canônicos apenas onde o conteúdo é claramente duplicado (ex.: paginação). Na prática, toda página deve autoreferenciar seu canônico para evitar que variantes de rastreamento injetadas por parâmetros dividam a equidade de links.\n\n## Adequado\n\n- Blogs, sites de documentação, hubs de conteúdo SEO e sites de marketing onde a busca orgânica é o principal canal de aquisição.\n\n## Não adequado\n\n- Ferramentas internas, painéis ou aplicativos onde SEO é irrelevante — os requisitos de canônico/dados estruturados adicionam custo sem benefício."
}