{
  "id": "review-ai-generated-seo-pages",
  "type": "checklists",
  "category": "checklists",
  "locale": "fr",
  "url": "/fr/checklists/review-ai-generated-seo-pages",
  "title": "Liste de vérification pour la révision des pages SEO générées par IA",
  "description": "Une liste de vérification humaine pour les pages ciblées SEO rédigées par des agents de codage IA — métadonnées, données structurées, URL canoniques et Core Web Vitals pour Astro et 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": "L'IA génère des pages SEO qui semblent correctes mais qui livrent des balises canoniques en double, des descriptions génériques, des données structurées cassées ou des scripts bloquant le rendu qui font chuter les scores Core Web Vitals.\n\n## Exactitude\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## Données structurées\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## Performance\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## Risques spécifiques à l'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## Invite de correction\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```"
}