{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "GPAN GEO Audit Checklist — 50-Point Website AI-Readiness Assessment",
  "description": "A machine-readable checklist for AI agents to evaluate a website's readiness for Generative Engine Optimization (GEO). Each item can be programmatically checked. Designed to be ingested by AI assistants, GPTs, and automation tools.",
  "provider": {
    "@type": "Organization",
    "@id": "https://geo-partner-authority-network.com/#organization",
    "name": "GEO-Partner Authority Network"
  },
  "totalPoints": 50,
  "scoringGuide": {
    "0-15": "Critical — site is invisible to AI engines",
    "16-25": "Poor — minimal AI discoverability",
    "26-35": "Fair — some structured data but gaps remain",
    "36-45": "Good — strong AI-readiness with room for improvement",
    "46-50": "Excellent — fully optimized for AI consumption"
  },
  "categories": [
    {
      "name": "Schema.org Structured Data",
      "weight": "critical",
      "items": [
        {
          "id": 1,
          "check": "Organization or LocalBusiness JSON-LD present in <head>",
          "how": "Parse page HTML for <script type='application/ld+json'> containing @type Organization or LocalBusiness",
          "points": 1
        },
        {
          "id": 2,
          "check": "Unique @id entity anchor defined",
          "how": "JSON-LD contains '@id' with a stable URI like https://example.com/#organization",
          "points": 1
        },
        {
          "id": 3,
          "check": "sameAs links to authority platforms",
          "how": "JSON-LD 'sameAs' array contains URLs to LinkedIn, Google Maps, BBB, etc.",
          "points": 1
        },
        {
          "id": 4,
          "check": "hasCredential or award for certifications",
          "how": "JSON-LD includes 'hasCredential' or 'award' properties",
          "points": 1
        },
        {
          "id": 5,
          "check": "FAQPage schema present",
          "how": "Parse for @type FAQPage with Question/Answer pairs",
          "points": 1
        },
        {
          "id": 6,
          "check": "Review/endorsement schema present",
          "how": "JSON-LD includes 'review' with ReviewBody and author",
          "points": 1
        },
        {
          "id": 7,
          "check": "BreadcrumbList schema on subpages",
          "how": "Subpages contain @type BreadcrumbList with itemListElement",
          "points": 1
        },
        {
          "id": 8,
          "check": "WebSite schema with SearchAction",
          "how": "Homepage JSON-LD includes @type WebSite with potentialAction SearchAction",
          "points": 1
        }
      ]
    },
    {
      "name": "LLM & AI Crawler Accessibility",
      "weight": "critical",
      "items": [
        {
          "id": 9,
          "check": "llms.txt file served at /llms.txt",
          "how": "HTTP GET /llms.txt returns 200 with text content",
          "points": 1
        },
        {
          "id": 10,
          "check": "robots.txt allows AI crawlers",
          "how": "robots.txt does NOT disallow GPTBot, ClaudeBot, PerplexityBot, Bingbot",
          "points": 1
        },
        {
          "id": 11,
          "check": "robots.txt references llms.txt",
          "how": "robots.txt contains URL to /llms.txt in comments or directives",
          "points": 1
        },
        {
          "id": 12,
          "check": "AI-ready index available",
          "how": "HTTP GET /ai-ready/index.json returns a DataCatalog with resource listings",
          "points": 1
        },
        {
          "id": 13,
          "check": "Content is server-rendered (not client-only SPA)",
          "how": "View page source shows real content in HTML, not just a React/Vue mount point",
          "points": 1
        },
        {
          "id": 14,
          "check": "Meta description present on all pages",
          "how": "Each page has <meta name='description'> with substantive content",
          "points": 1
        },
        {
          "id": 15,
          "check": "Canonical URL set on all pages",
          "how": "Each page has <link rel='canonical'> pointing to the correct URL",
          "points": 1
        }
      ]
    },
    {
      "name": "Content Quality for AI Consumption",
      "weight": "high",
      "items": [
        {
          "id": 16,
          "check": "500-700 word content pages with fact-dense information",
          "how": "Measure word count on key pages; check for specific claims with data",
          "points": 1
        },
        {
          "id": 17,
          "check": "At least 5 FAQ pairs per topic page",
          "how": "Count Question/Answer structured data or FAQ sections",
          "points": 1
        },
        {
          "id": 18,
          "check": "Answer Nuggets — concise 2-3 sentence answers to common queries",
          "how": "Check for short, direct answers labeled as nuggets or concise answers",
          "points": 1
        },
        {
          "id": 19,
          "check": "Descriptive URL slugs (not /page?id=123)",
          "how": "URLs contain readable words like /services/seo-audit not numeric IDs",
          "points": 1
        },
        {
          "id": 20,
          "check": "Structured headings (H1 → H2 → H3 hierarchy)",
          "how": "Parse HTML heading tags for proper nesting",
          "points": 1
        },
        {
          "id": 21,
          "check": "Tables and/or charts present for data-rich content",
          "how": "Page contains <table> or chart markup with real data",
          "points": 1
        },
        {
          "id": 22,
          "check": "Alt text on all images",
          "how": "All <img> tags have non-empty alt attributes",
          "points": 1
        },
        {
          "id": 23,
          "check": "Last-modified or publication dates visible",
          "how": "Pages show dates and/or JSON-LD includes dateModified",
          "points": 1
        }
      ]
    },
    {
      "name": "Entity Authority Signals",
      "weight": "high",
      "items": [
        {
          "id": 24,
          "check": "Business listed on Google Business Profile",
          "how": "sameAs or Google Maps URL present in structured data",
          "points": 1
        },
        {
          "id": 25,
          "check": "LinkedIn company page linked",
          "how": "sameAs includes linkedin.com URL",
          "points": 1
        },
        {
          "id": 26,
          "check": "BBB, Clutch, or industry directory listed",
          "how": "sameAs includes bbb.org, clutch.co, or vertical-specific directories",
          "points": 1
        },
        {
          "id": 27,
          "check": "Wikipedia or Wikidata entity exists",
          "how": "sameAs includes wikipedia.org or wikidata.org URL",
          "points": 1
        },
        {
          "id": 28,
          "check": "NAP consistency (Name, Address, Phone match across platforms)",
          "how": "Compare business name, address, phone across website, Google, LinkedIn",
          "points": 1
        },
        {
          "id": 29,
          "check": "Partner/affiliate endorsements with named sources",
          "how": "Review schema includes author Organization with real names",
          "points": 1
        },
        {
          "id": 30,
          "check": "Co-occurrence with other verified entities",
          "how": "affiliation or mentions properties in JSON-LD reference other known entities",
          "points": 1
        },
        {
          "id": 31,
          "check": "Third-party verification badge (GPAN, BBB, etc.)",
          "how": "Page embeds a verification widget or badge with verifiable backlink",
          "points": 1
        }
      ]
    },
    {
      "name": "Technical SEO & Indexing",
      "weight": "medium",
      "items": [
        {
          "id": 32,
          "check": "XML sitemap present at /sitemap.xml",
          "how": "HTTP GET /sitemap.xml returns valid XML with <urlset>",
          "points": 1
        },
        {
          "id": 33,
          "check": "Sitemap includes lastmod dates",
          "how": "Each <url> in sitemap has <lastmod> element",
          "points": 1
        },
        {
          "id": 34,
          "check": "Page load time under 3 seconds",
          "how": "Measure time-to-first-byte and DOMContentLoaded",
          "points": 1
        },
        {
          "id": 35,
          "check": "HTTPS enabled",
          "how": "Site loads over https:// without mixed content warnings",
          "points": 1
        },
        {
          "id": 36,
          "check": "Mobile-responsive design",
          "how": "Viewport meta tag present; content adapts to mobile widths",
          "points": 1
        },
        {
          "id": 37,
          "check": "No broken internal links",
          "how": "Crawl internal links and check for 404 responses",
          "points": 1
        },
        {
          "id": 38,
          "check": "Open Graph tags for social sharing",
          "how": "Page has og:title, og:description, og:image meta tags",
          "points": 1
        }
      ]
    },
    {
      "name": "AI Action Readiness",
      "weight": "high",
      "items": [
        {
          "id": 39,
          "check": "Public API available for entity queries",
          "how": "Site offers a documented REST API for querying business data",
          "points": 1
        },
        {
          "id": 40,
          "check": "Machine-readable lead magnets (JSON/MD tools, not just PDFs)",
          "how": "Site provides .json or .md files AI agents can ingest and act on",
          "points": 1
        },
        {
          "id": 41,
          "check": "Action capabilities manifest exists",
          "how": "Site provides a capabilities.json or similar describing what AI can do",
          "points": 1
        },
        {
          "id": 42,
          "check": "Embeddable structured data snippets available",
          "how": "API endpoint provides injectable JSON-LD script tags",
          "points": 1
        },
        {
          "id": 43,
          "check": "Backlink verification endpoint",
          "how": "Site offers automated backlink/badge verification API",
          "points": 1
        },
        {
          "id": 44,
          "check": "AI Inclusion tracking available",
          "how": "Site tracks whether the business appears in AI model responses",
          "points": 1
        }
      ]
    },
    {
      "name": "Knowledge Graph & Citation Signals",
      "weight": "medium",
      "items": [
        {
          "id": 45,
          "check": "Knowledge graph JSON-LD with @graph structure",
          "how": "Site serves a JSON-LD file with @graph containing multiple connected entities",
          "points": 1
        },
        {
          "id": 46,
          "check": "Bi-directional entity references (mentions + affiliation)",
          "how": "JSON-LD includes both 'mentions' and 'affiliation' linking to partner entities",
          "points": 1
        },
        {
          "id": 47,
          "check": "Citation diversity — endorsements from different industries/locations",
          "how": "Review authors span multiple industries and geographic areas",
          "points": 1
        },
        {
          "id": 48,
          "check": "memberOf linking to authority organization",
          "how": "JSON-LD includes 'memberOf' referencing a recognized verification body",
          "points": 1
        },
        {
          "id": 49,
          "check": "Geographic entity markup (city, state, country)",
          "how": "PostalAddress in JSON-LD includes locality, region, country",
          "points": 1
        },
        {
          "id": 50,
          "check": "Industry/expertise declaration via knowsAbout",
          "how": "JSON-LD includes 'knowsAbout' array with specific industry terms",
          "points": 1
        }
      ]
    }
  ]
}