{
  "id": "review-ai-generated-seo-pages",
  "type": "checklists",
  "category": "checklists",
  "locale": "es",
  "url": "/es/checklists/review-ai-generated-seo-pages",
  "title": "Lista de verificación para revisar páginas SEO generadas por IA",
  "description": "Una lista de verificación para revisión humana de páginas orientadas a SEO escritas por agentes de codificación de IA: metadatos, datos estructurados, URLs canónicas y Core Web Vitals para Astro y Next.js.",
  "tools": [
    "Cursor",
    "Claude Code",
    "Codex",
    "Windsurf"
  ],
  "stack": [
    "Next.js",
    "Astro",
    "TypeScript"
  ],
  "tags": [
    "seo",
    "review",
    "nextjs",
    "astro"
  ],
  "difficulty": null,
  "updated": "2026-06-08",
  "markdown": "La IA genera páginas SEO que parecen correctas pero que contienen etiquetas canónicas duplicadas, descripciones genéricas, datos estructurados rotos o scripts que bloquean el renderizado y que perjudican las puntuaciones de Core Web Vitals.\n\n## Corrección\n\n```txt\n[ ] Every page has a unique, descriptive title tag (50–60 characters)\n[ ] Every page has a unique meta description (120–160 characters)\n[ ] Title and description are dynamically generated from page content — not one shared static string\n[ ] Canonical URL is set to the preferred URL — absolute URL with the correct domain\n[ ] Only one canonical tag is emitted per page — check for duplicates from layout + page\n[ ] Open Graph og:title, og:description, og:image, og:url, and og:type are all present\n[ ] og:image is an absolute URL, minimum 1200x630px, and actually resolves\n[ ] twitter:card is set (summary_large_image for most content pages)\n[ ] Heading hierarchy is correct — one h1 per page, h2/h3 for subsections, no skipped levels\n[ ] The h1 contains the primary keyword and is not identical to the title tag\n[ ] Internal links use descriptive anchor text — not \"click here\" or \"read more\"\n[ ] noindex is not accidentally set on pages that should be indexed\n[ ] robots.txt does not disallow the pages you want indexed\n[ ] sitemap.xml includes all indexable pages with correct lastmod dates\n[ ] hreflang tags are present and correct on multilingual or multi-region pages\n[ ] Pagination uses rel=\"next\" and rel=\"prev\" or canonical to the first page\n```\n\n## Datos estructurados\n\n```txt\n[ ] JSON-LD is valid — paste into Google's Rich Results Test before deploying\n[ ] @context is https://schema.org (HTTPS, not HTTP)\n[ ] @type matches the actual content (Article, Product, FAQPage, BreadcrumbList, etc.)\n[ ] datePublished and dateModified are ISO 8601 format\n[ ] author.name is a real name, not \"AI\" or a placeholder\n[ ] BreadcrumbList item positions start at 1 and are sequential\n[ ] FAQPage only lists questions that are actually answered on the page\n[ ] Product schema includes price, currency, and availability\n[ ] No fabricated schema properties — verify each property at schema.org\n[ ] Structured data is in a script tag with type=\"application/ld+json\" — not inline attributes\n```\n\n## Rendimiento\n\n```txt\n[ ] Largest Contentful Paint (LCP) element is an img with priority (Next.js) or fetchpriority=\"high\"\n[ ] Hero images are served in WebP or AVIF format — not PNG or unoptimized JPEG\n[ ] No render-blocking third-party scripts in the head without async or defer\n[ ] Google Fonts are loaded via next/font or with font-display: swap\n[ ] Cumulative Layout Shift (CLS) is minimized — images have explicit width and height\n[ ] Time to First Byte (TTFB) is acceptable — page is statically generated or edge-cached\n[ ] Unused CSS (Tailwind purge, CSS modules) is not bloating the page payload\n[ ] Pagespeed Insights score is verified in a staging environment before publishing\n```\n\n## Riesgos específicos de la IA\n\n```txt\n[ ] AI has not generated keyword-stuffed or duplicate descriptions across multiple pages\n[ ] AI has not set noindex: true on the page component while generating a sitemap entry\n[ ] AI-generated JSON-LD contains no template literal leftovers or undefined values\n[ ] AI has not used Next.js Pages Router metadata patterns inside the App Router\n[ ] AI has not duplicated canonical tags by adding one in a layout and another in the page\n[ ] AI has not used relative URLs in og:image or canonical — these must be absolute\n[ ] AI has not invented schema.org types or properties that do not exist\n[ ] Sitemap generation includes correct priority and changefreq values for each content type\n[ ] AI has not set the same title and og:title — they can and often should differ\n```\n\n## Prompt de corrección\n\n```txt title=\"Fix Prompt\"\nReview this page and its metadata against the SEO checklist above. Fix any\nduplicate canonical tags, relative og:image URLs, invalid JSON-LD, or missing\nmeta tags. Ensure each page has a unique title and description derived from the\nactual page content. Return the corrected metadata component and JSON-LD block,\nthen list each issue found with a one-line explanation.\n```"
}