{
    "schema_version": "portfolio-visibility-checker-comparison/v1",
    "published_at": "2026-10-28",
    "scope": "Three public homepage URLs, each submitted to all three public checker APIs on October 28, 2026.",
    "interpretation": "Checker scores measure the tested page against each tool's content and technical checks. They do not measure Google ranking share, traffic share or AI citations. Instant Read displays its overall result as degrees on a 0 to 100 scale. Compare each tool with its own later reading rather than averaging across tools.",
    "rank_based_score": "A ranking-based search visibility score requires a defined tracked search set, search volumes and a CTR model. These homepage checks are a separate measurement and are not used as that score.",
    "comparisons": [
        {
            "name": "AI Symantix",
            "tested_url": "https://www.aisymantix.com/",
            "words": 1358,
            "scores": [
                {
                    "tool": "AI Symantix",
                    "tool_url": "https://www.aisymantix.com/ai-search-visibility-checker/",
                    "value": 88,
                    "unit": "points out of 100",
                    "observed_at": "2026-10-28T14:17:24.764Z",
                    "checked_at": "2026-10-28T14:17:28+00:00",
                    "final_url": "https://www.aisymantix.com/"
                },
                {
                    "tool": "QuickRankAI",
                    "tool_url": "https://www.quickrankai.com/",
                    "value": 90,
                    "unit": "points out of 100",
                    "observed_at": "2026-10-28T14:17:35.264Z",
                    "checked_at": "2026-10-28T14:17:37+00:00",
                    "final_url": "https://www.aisymantix.com/"
                },
                {
                    "tool": "Instant Read Visibility",
                    "tool_url": "https://www.instantreadvisibility.com/",
                    "value": 91,
                    "unit": "degrees on a 0 to 100 scale",
                    "observed_at": "2026-10-28T14:17:41.750Z",
                    "checked_at": "2026-10-28T14:17:44+00:00",
                    "final_url": "https://www.aisymantix.com/"
                }
            ]
        },
        {
            "name": "BellyUp! Birmingham",
            "tested_url": "https://bellyupbirmingham.com/",
            "words": 689,
            "scores": [
                {
                    "tool": "AI Symantix",
                    "tool_url": "https://www.aisymantix.com/ai-search-visibility-checker/",
                    "value": 88,
                    "unit": "points out of 100",
                    "observed_at": "2026-10-28T14:17:28.258Z",
                    "checked_at": "2026-10-28T14:17:33+00:00",
                    "final_url": "https://bellyupbirmingham.com/"
                },
                {
                    "tool": "QuickRankAI",
                    "tool_url": "https://www.quickrankai.com/",
                    "value": 96,
                    "unit": "points out of 100",
                    "observed_at": "2026-10-28T14:17:36.842Z",
                    "checked_at": "2026-10-28T14:17:39+00:00",
                    "final_url": "https://bellyupbirmingham.com/"
                },
                {
                    "tool": "Instant Read Visibility",
                    "tool_url": "https://www.instantreadvisibility.com/",
                    "value": 88,
                    "unit": "degrees on a 0 to 100 scale",
                    "observed_at": "2026-10-28T14:17:43.980Z",
                    "checked_at": "2026-10-28T14:17:46+00:00",
                    "final_url": "https://bellyupbirmingham.com/"
                }
            ]
        },
        {
            "name": "Real SEO Life",
            "tested_url": "https://www.realseolife.com/",
            "words": 1833,
            "scores": [
                {
                    "tool": "AI Symantix",
                    "tool_url": "https://www.aisymantix.com/ai-search-visibility-checker/",
                    "value": 96,
                    "unit": "points out of 100",
                    "observed_at": "2026-10-28T14:17:33.307Z",
                    "checked_at": "2026-10-28T14:17:35+00:00",
                    "final_url": "https://www.realseolife.com/"
                },
                {
                    "tool": "QuickRankAI",
                    "tool_url": "https://www.quickrankai.com/",
                    "value": 98,
                    "unit": "points out of 100",
                    "observed_at": "2026-10-28T14:17:39.440Z",
                    "checked_at": "2026-10-28T14:17:42+00:00",
                    "final_url": "https://www.realseolife.com/"
                },
                {
                    "tool": "Instant Read Visibility",
                    "tool_url": "https://www.instantreadvisibility.com/",
                    "value": 93,
                    "unit": "degrees on a 0 to 100 scale",
                    "observed_at": "2026-10-28T14:17:45.803Z",
                    "checked_at": "2026-10-28T14:17:47+00:00",
                    "final_url": "https://www.realseolife.com/"
                }
            ]
        }
    ],
    "results": [
        {
            "tool": {
                "id": "aisymantix",
                "name": "AI Symantix",
                "url": "https://www.aisymantix.com/ai-search-visibility-checker/",
                "endpoint": "https://www.aisymantix.com/api/visibility-check/"
            },
            "site": {
                "name": "AI Symantix",
                "url": "https://www.aisymantix.com/"
            },
            "observed_at": "2026-10-28T14:17:24.764Z",
            "http_status": 200,
            "result": {
                "ok": true,
                "url": "https://www.aisymantix.com/",
                "score": 88,
                "verdict": "Strong. The page states what it is, who published it, and what it answers, in a form a retrieval system can use without guessing.",
                "groups": {
                    "Retrievability": {
                        "earned": 30,
                        "total": 30,
                        "pct": 100
                    },
                    "Extractability": {
                        "earned": 24,
                        "total": 34,
                        "pct": 71
                    },
                    "Entity clarity": {
                        "earned": 36,
                        "total": 36,
                        "pct": 100
                    },
                    "Machine-readable signals": {
                        "earned": 8,
                        "total": 12,
                        "pct": 67
                    }
                },
                "checks": [
                    {
                        "group": "Retrievability",
                        "label": "AI crawlers are allowed",
                        "weight": 12,
                        "pass": true,
                        "detail": "robots.txt does not block the major AI crawlers.",
                        "fix": "Allow GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, and Google-Extended in robots.txt. Blocking them removes you from AI answers entirely, whatever else the page does well."
                    },
                    {
                        "group": "Retrievability",
                        "label": "Content is in the HTML, not built by script",
                        "weight": 12,
                        "pass": true,
                        "detail": "1358 words of text were present in the raw HTML response.",
                        "fix": "Under 250 words came back in the server response. If the page looks full in a browser, the content is being assembled client-side. Most AI retrievers read the raw response, so render the main content server-side."
                    },
                    {
                        "group": "Retrievability",
                        "label": "Canonical URL declared",
                        "weight": 6,
                        "pass": true,
                        "detail": "A canonical tag tells retrieval systems which URL is the real one.",
                        "fix": "Add <link rel=\"canonical\"> pointing at the preferred URL. Without it, duplicate URLs split whatever authority the page earns."
                    },
                    {
                        "group": "Extractability",
                        "label": "Exactly one H1",
                        "weight": 8,
                        "pass": true,
                        "detail": "1 H1 elements found.",
                        "fix": "Use one H1 that states what the page is about. Zero leaves the topic ambiguous; several make the machine guess which one counts."
                    },
                    {
                        "group": "Extractability",
                        "label": "Title is present and a usable length",
                        "weight": 6,
                        "pass": true,
                        "detail": "Title is 47 characters.",
                        "fix": "Write a title between about 15 and 70 characters that names the subject directly. It is the strongest single label a retrieval system has for the page."
                    },
                    {
                        "group": "Extractability",
                        "label": "Meta description is present",
                        "weight": 5,
                        "pass": true,
                        "detail": "Description is 139 characters.",
                        "fix": "Add a 50 to 200 character description that summarizes the answer rather than advertising the page. Answer engines lift this often."
                    },
                    {
                        "group": "Extractability",
                        "label": "Answers before it explains",
                        "weight": 10,
                        "pass": false,
                        "detail": "No substantial paragraph was found right after the H1.",
                        "fix": "Put a direct, self-contained answer in the first paragraph after the H1. Retrieval systems quote the first passage that stands alone, and an introduction that warms up for three paragraphs gives them nothing to lift."
                    },
                    {
                        "group": "Extractability",
                        "label": "Sectioned with H2 headings",
                        "weight": 5,
                        "pass": true,
                        "detail": "11 H2 headings found.",
                        "fix": "Break the page into labelled sections with H2s. Headings are how a retriever finds the part of the page that answers a specific question."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Structured data present",
                        "weight": 12,
                        "pass": true,
                        "detail": "34 JSON-LD nodes found.",
                        "fix": "Add JSON-LD. Without it, everything a machine concludes about this page is inferred from prose, and inference is where misrepresentation starts."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Publisher identified as an entity",
                        "weight": 10,
                        "pass": true,
                        "detail": "An Organization or Person node is declared.",
                        "fix": "Declare who publishes this, as an Organization or Person node. An answer engine deciding whether to trust a claim needs to know whose claim it is."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Entity linked to external references",
                        "weight": 8,
                        "pass": true,
                        "detail": "sameAs references are declared.",
                        "fix": "Add sameAs links to the profiles that corroborate this entity elsewhere: Wikipedia, Wikidata, LinkedIn, Crunchbase, an official register. This is how a name becomes a resolvable entity rather than a string."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Page type declared",
                        "weight": 6,
                        "pass": true,
                        "detail": "A content type is declared in JSON-LD.",
                        "fix": "Declare what kind of page this is: Article, FAQPage, HowTo, Product, Dataset, or DefinedTerm. The type tells a retriever what shape of answer it can expect to find."
                    },
                    {
                        "group": "Machine-readable signals",
                        "label": "llms.txt published",
                        "weight": 5,
                        "pass": true,
                        "detail": "An llms.txt or llm.txt file was found.",
                        "fix": "Publish an llms.txt at the site root describing what the site covers and which pages matter. Support is still uneven, so treat this as cheap insurance rather than a ranking factor."
                    },
                    {
                        "group": "Machine-readable signals",
                        "label": "Open Graph metadata",
                        "weight": 3,
                        "pass": true,
                        "detail": "Open Graph tags are present.",
                        "fix": "Add Open Graph tags. They are a second, redundant statement of the page title and summary, and redundancy helps when a parser trips on your primary markup."
                    },
                    {
                        "group": "Machine-readable signals",
                        "label": "Question and answer markup",
                        "weight": 4,
                        "pass": false,
                        "detail": "No FAQ or QA markup found.",
                        "fix": "Where the page genuinely answers discrete questions, mark them up as FAQPage. Pre-paired questions and answers are the easiest thing in the world for an answer engine to reuse."
                    }
                ],
                "words": 1358,
                "elapsed": 31,
                "redirects": 0,
                "checked_at": "2026-10-28T14:17:28+00:00"
            }
        },
        {
            "tool": {
                "id": "aisymantix",
                "name": "AI Symantix",
                "url": "https://www.aisymantix.com/ai-search-visibility-checker/",
                "endpoint": "https://www.aisymantix.com/api/visibility-check/"
            },
            "site": {
                "name": "BellyUp! Birmingham",
                "url": "https://bellyupbirmingham.com/"
            },
            "observed_at": "2026-10-28T14:17:28.258Z",
            "http_status": 200,
            "result": {
                "ok": true,
                "url": "https://bellyupbirmingham.com/",
                "score": 88,
                "verdict": "Strong. The page states what it is, who published it, and what it answers, in a form a retrieval system can use without guessing.",
                "groups": {
                    "Retrievability": {
                        "earned": 30,
                        "total": 30,
                        "pct": 100
                    },
                    "Extractability": {
                        "earned": 24,
                        "total": 34,
                        "pct": 71
                    },
                    "Entity clarity": {
                        "earned": 36,
                        "total": 36,
                        "pct": 100
                    },
                    "Machine-readable signals": {
                        "earned": 8,
                        "total": 12,
                        "pct": 67
                    }
                },
                "checks": [
                    {
                        "group": "Retrievability",
                        "label": "AI crawlers are allowed",
                        "weight": 12,
                        "pass": true,
                        "detail": "robots.txt does not block the major AI crawlers.",
                        "fix": "Allow GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, and Google-Extended in robots.txt. Blocking them removes you from AI answers entirely, whatever else the page does well."
                    },
                    {
                        "group": "Retrievability",
                        "label": "Content is in the HTML, not built by script",
                        "weight": 12,
                        "pass": true,
                        "detail": "689 words of text were present in the raw HTML response.",
                        "fix": "Under 250 words came back in the server response. If the page looks full in a browser, the content is being assembled client-side. Most AI retrievers read the raw response, so render the main content server-side."
                    },
                    {
                        "group": "Retrievability",
                        "label": "Canonical URL declared",
                        "weight": 6,
                        "pass": true,
                        "detail": "A canonical tag tells retrieval systems which URL is the real one.",
                        "fix": "Add <link rel=\"canonical\"> pointing at the preferred URL. Without it, duplicate URLs split whatever authority the page earns."
                    },
                    {
                        "group": "Extractability",
                        "label": "Exactly one H1",
                        "weight": 8,
                        "pass": true,
                        "detail": "1 H1 elements found.",
                        "fix": "Use one H1 that states what the page is about. Zero leaves the topic ambiguous; several make the machine guess which one counts."
                    },
                    {
                        "group": "Extractability",
                        "label": "Title is present and a usable length",
                        "weight": 6,
                        "pass": true,
                        "detail": "Title is 62 characters.",
                        "fix": "Write a title between about 15 and 70 characters that names the subject directly. It is the strongest single label a retrieval system has for the page."
                    },
                    {
                        "group": "Extractability",
                        "label": "Meta description is present",
                        "weight": 5,
                        "pass": true,
                        "detail": "Description is 154 characters.",
                        "fix": "Add a 50 to 200 character description that summarizes the answer rather than advertising the page. Answer engines lift this often."
                    },
                    {
                        "group": "Extractability",
                        "label": "Answers before it explains",
                        "weight": 10,
                        "pass": false,
                        "detail": "No substantial paragraph was found right after the H1.",
                        "fix": "Put a direct, self-contained answer in the first paragraph after the H1. Retrieval systems quote the first passage that stands alone, and an introduction that warms up for three paragraphs gives them nothing to lift."
                    },
                    {
                        "group": "Extractability",
                        "label": "Sectioned with H2 headings",
                        "weight": 5,
                        "pass": true,
                        "detail": "8 H2 headings found.",
                        "fix": "Break the page into labelled sections with H2s. Headings are how a retriever finds the part of the page that answers a specific question."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Structured data present",
                        "weight": 12,
                        "pass": true,
                        "detail": "33 JSON-LD nodes found.",
                        "fix": "Add JSON-LD. Without it, everything a machine concludes about this page is inferred from prose, and inference is where misrepresentation starts."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Publisher identified as an entity",
                        "weight": 10,
                        "pass": true,
                        "detail": "An Organization or Person node is declared.",
                        "fix": "Declare who publishes this, as an Organization or Person node. An answer engine deciding whether to trust a claim needs to know whose claim it is."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Entity linked to external references",
                        "weight": 8,
                        "pass": true,
                        "detail": "sameAs references are declared.",
                        "fix": "Add sameAs links to the profiles that corroborate this entity elsewhere: Wikipedia, Wikidata, LinkedIn, Crunchbase, an official register. This is how a name becomes a resolvable entity rather than a string."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Page type declared",
                        "weight": 6,
                        "pass": true,
                        "detail": "A content type is declared in JSON-LD.",
                        "fix": "Declare what kind of page this is: Article, FAQPage, HowTo, Product, Dataset, or DefinedTerm. The type tells a retriever what shape of answer it can expect to find."
                    },
                    {
                        "group": "Machine-readable signals",
                        "label": "llms.txt published",
                        "weight": 5,
                        "pass": true,
                        "detail": "An llms.txt or llm.txt file was found.",
                        "fix": "Publish an llms.txt at the site root describing what the site covers and which pages matter. Support is still uneven, so treat this as cheap insurance rather than a ranking factor."
                    },
                    {
                        "group": "Machine-readable signals",
                        "label": "Open Graph metadata",
                        "weight": 3,
                        "pass": true,
                        "detail": "Open Graph tags are present.",
                        "fix": "Add Open Graph tags. They are a second, redundant statement of the page title and summary, and redundancy helps when a parser trips on your primary markup."
                    },
                    {
                        "group": "Machine-readable signals",
                        "label": "Question and answer markup",
                        "weight": 4,
                        "pass": false,
                        "detail": "No FAQ or QA markup found.",
                        "fix": "Where the page genuinely answers discrete questions, mark them up as FAQPage. Pre-paired questions and answers are the easiest thing in the world for an answer engine to reuse."
                    }
                ],
                "words": 689,
                "elapsed": 48,
                "redirects": 0,
                "checked_at": "2026-10-28T14:17:33+00:00"
            }
        },
        {
            "tool": {
                "id": "aisymantix",
                "name": "AI Symantix",
                "url": "https://www.aisymantix.com/ai-search-visibility-checker/",
                "endpoint": "https://www.aisymantix.com/api/visibility-check/"
            },
            "site": {
                "name": "Real SEO Life",
                "url": "https://www.realseolife.com/"
            },
            "observed_at": "2026-10-28T14:17:33.307Z",
            "http_status": 200,
            "result": {
                "ok": true,
                "url": "https://www.realseolife.com/",
                "score": 96,
                "verdict": "Strong. The page states what it is, who published it, and what it answers, in a form a retrieval system can use without guessing.",
                "groups": {
                    "Retrievability": {
                        "earned": 30,
                        "total": 30,
                        "pct": 100
                    },
                    "Extractability": {
                        "earned": 34,
                        "total": 34,
                        "pct": 100
                    },
                    "Entity clarity": {
                        "earned": 36,
                        "total": 36,
                        "pct": 100
                    },
                    "Machine-readable signals": {
                        "earned": 8,
                        "total": 12,
                        "pct": 67
                    }
                },
                "checks": [
                    {
                        "group": "Retrievability",
                        "label": "AI crawlers are allowed",
                        "weight": 12,
                        "pass": true,
                        "detail": "robots.txt does not block the major AI crawlers.",
                        "fix": "Allow GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, and Google-Extended in robots.txt. Blocking them removes you from AI answers entirely, whatever else the page does well."
                    },
                    {
                        "group": "Retrievability",
                        "label": "Content is in the HTML, not built by script",
                        "weight": 12,
                        "pass": true,
                        "detail": "1833 words of text were present in the raw HTML response.",
                        "fix": "Under 250 words came back in the server response. If the page looks full in a browser, the content is being assembled client-side. Most AI retrievers read the raw response, so render the main content server-side."
                    },
                    {
                        "group": "Retrievability",
                        "label": "Canonical URL declared",
                        "weight": 6,
                        "pass": true,
                        "detail": "A canonical tag tells retrieval systems which URL is the real one.",
                        "fix": "Add <link rel=\"canonical\"> pointing at the preferred URL. Without it, duplicate URLs split whatever authority the page earns."
                    },
                    {
                        "group": "Extractability",
                        "label": "Exactly one H1",
                        "weight": 8,
                        "pass": true,
                        "detail": "1 H1 elements found.",
                        "fix": "Use one H1 that states what the page is about. Zero leaves the topic ambiguous; several make the machine guess which one counts."
                    },
                    {
                        "group": "Extractability",
                        "label": "Title is present and a usable length",
                        "weight": 6,
                        "pass": true,
                        "detail": "Title is 51 characters.",
                        "fix": "Write a title between about 15 and 70 characters that names the subject directly. It is the strongest single label a retrieval system has for the page."
                    },
                    {
                        "group": "Extractability",
                        "label": "Meta description is present",
                        "weight": 5,
                        "pass": true,
                        "detail": "Description is 155 characters.",
                        "fix": "Add a 50 to 200 character description that summarizes the answer rather than advertising the page. Answer engines lift this often."
                    },
                    {
                        "group": "Extractability",
                        "label": "Answers before it explains",
                        "weight": 10,
                        "pass": true,
                        "detail": "A substantive paragraph follows the H1 directly.",
                        "fix": "Put a direct, self-contained answer in the first paragraph after the H1. Retrieval systems quote the first passage that stands alone, and an introduction that warms up for three paragraphs gives them nothing to lift."
                    },
                    {
                        "group": "Extractability",
                        "label": "Sectioned with H2 headings",
                        "weight": 5,
                        "pass": true,
                        "detail": "7 H2 headings found.",
                        "fix": "Break the page into labelled sections with H2s. Headings are how a retriever finds the part of the page that answers a specific question."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Structured data present",
                        "weight": 12,
                        "pass": true,
                        "detail": "53 JSON-LD nodes found.",
                        "fix": "Add JSON-LD. Without it, everything a machine concludes about this page is inferred from prose, and inference is where misrepresentation starts."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Publisher identified as an entity",
                        "weight": 10,
                        "pass": true,
                        "detail": "An Organization or Person node is declared.",
                        "fix": "Declare who publishes this, as an Organization or Person node. An answer engine deciding whether to trust a claim needs to know whose claim it is."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Entity linked to external references",
                        "weight": 8,
                        "pass": true,
                        "detail": "sameAs references are declared.",
                        "fix": "Add sameAs links to the profiles that corroborate this entity elsewhere: Wikipedia, Wikidata, LinkedIn, Crunchbase, an official register. This is how a name becomes a resolvable entity rather than a string."
                    },
                    {
                        "group": "Entity clarity",
                        "label": "Page type declared",
                        "weight": 6,
                        "pass": true,
                        "detail": "A content type is declared in JSON-LD.",
                        "fix": "Declare what kind of page this is: Article, FAQPage, HowTo, Product, Dataset, or DefinedTerm. The type tells a retriever what shape of answer it can expect to find."
                    },
                    {
                        "group": "Machine-readable signals",
                        "label": "llms.txt published",
                        "weight": 5,
                        "pass": true,
                        "detail": "An llms.txt or llm.txt file was found.",
                        "fix": "Publish an llms.txt at the site root describing what the site covers and which pages matter. Support is still uneven, so treat this as cheap insurance rather than a ranking factor."
                    },
                    {
                        "group": "Machine-readable signals",
                        "label": "Open Graph metadata",
                        "weight": 3,
                        "pass": true,
                        "detail": "Open Graph tags are present.",
                        "fix": "Add Open Graph tags. They are a second, redundant statement of the page title and summary, and redundancy helps when a parser trips on your primary markup."
                    },
                    {
                        "group": "Machine-readable signals",
                        "label": "Question and answer markup",
                        "weight": 4,
                        "pass": false,
                        "detail": "No FAQ or QA markup found.",
                        "fix": "Where the page genuinely answers discrete questions, mark them up as FAQPage. Pre-paired questions and answers are the easiest thing in the world for an answer engine to reuse."
                    }
                ],
                "words": 1833,
                "elapsed": 52,
                "redirects": 0,
                "checked_at": "2026-10-28T14:17:35+00:00"
            }
        },
        {
            "tool": {
                "id": "quickrankai",
                "name": "QuickRankAI",
                "url": "https://www.quickrankai.com/",
                "endpoint": "https://www.quickrankai.com/api/quick-inspect/"
            },
            "site": {
                "name": "AI Symantix",
                "url": "https://www.aisymantix.com/"
            },
            "observed_at": "2026-10-28T14:17:35.264Z",
            "http_status": 200,
            "result": {
                "ok": true,
                "url": "https://www.aisymantix.com/",
                "score": 90,
                "label": "Running Clean",
                "tone": "good",
                "summary": "We found 3 quick fixes and 1 thing worth a closer look. The fundamentals are in place.",
                "categories": {
                    "discovery": {
                        "label": "Discovery",
                        "pct": 100
                    },
                    "structure": {
                        "label": "Page Structure",
                        "pct": 100
                    },
                    "entity": {
                        "label": "Entity Clarity",
                        "pct": 95
                    },
                    "ai_readiness": {
                        "label": "AI Readiness",
                        "pct": 86
                    },
                    "content": {
                        "label": "Content Signals",
                        "pct": 58
                    }
                },
                "findings": [
                    {
                        "category": "content",
                        "title": "Opens with a real answer",
                        "weight": 9,
                        "class": "quick_fix",
                        "evidence": "The first paragraph after the H1 is only 2 words.",
                        "explanation": "Retrieval systems quote the first passage that stands on its own. An introduction that warms up for three paragraphs gives them nothing to lift.",
                        "action": "Put a direct, self-contained answer in the first paragraph under the H1. Say the thing, then explain it.",
                        "learn_url": "/field-guides/the-answer-belongs-in-the-first-paragraph/",
                        "learn_label": "Put the answer first"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Main content is inside a semantic landmark",
                        "weight": 6,
                        "class": "quick_fix",
                        "evidence": "No main, article, or role=\"main\" element was found.",
                        "explanation": "A landmark is how an extractor separates the article from the header, menu, sidebar, and footer wrapped around it.",
                        "action": "Wrap the primary content of the template in a main or article element. One line, applies to every page.",
                        "learn_url": "/glossary/semantic-landmark/",
                        "learn_label": "Mark the main content"
                    },
                    {
                        "category": "content",
                        "title": "Question and answer structure is marked up",
                        "weight": 5,
                        "class": "quick_fix",
                        "evidence": "The page has question-shaped headings but no FAQPage markup.",
                        "explanation": "Pre-paired questions and answers are the easiest thing on the web for an answer engine to reuse.",
                        "action": "This page already asks and answers questions in its headings. Mark those pairs up as FAQPage so they can be reused directly.",
                        "learn_url": "/glossary/faqpage-markup/",
                        "learn_label": "Mark up real questions and answers"
                    },
                    {
                        "category": "entity",
                        "title": "Naming is consistent across signals",
                        "weight": 4,
                        "class": "investigate",
                        "evidence": "Structured data says \"Krisada\" while og:site_name says \"AI Symantix\".",
                        "explanation": "Two names for the same publisher is how one entity becomes two half-strength ones.",
                        "action": "Pick one name and use it everywhere: structured data, og:site_name, the title suffix, the footer, and every external profile.",
                        "learn_url": "/glossary/entity-consistency/",
                        "learn_label": "Repair entity-name conflicts"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Content is in the HTML, not assembled by script",
                        "weight": 12,
                        "class": "pass",
                        "evidence": "1358 words of readable text came back in the server response.",
                        "explanation": "Most AI retrievers read the raw response and do not wait for JavaScript. If the content is assembled in the browser, they see an empty frame.",
                        "action": "",
                        "learn_url": "/field-guides/content-is-in-the-html-or-it-is-not/",
                        "learn_label": "Fix content missing from the HTML"
                    },
                    {
                        "category": "discovery",
                        "title": "This URL is not disallowed in robots.txt",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "No robots.txt rule blocks this URL for the default crawler group.",
                        "explanation": "A disallowed URL is removed from consideration before any of its content is read. Everything else on this page is moot while that rule stands.",
                        "action": "",
                        "learn_url": "/field-guides/robots-txt-is-blocking-the-crawlers-you-want/",
                        "learn_label": "Repair a blocking robots rule"
                    },
                    {
                        "category": "discovery",
                        "title": "AI crawlers are allowed",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "robots.txt does not block the major AI crawlers.",
                        "explanation": "Blocking these agents removes the site from AI answers entirely, regardless of how good the page is.",
                        "action": "",
                        "learn_url": "/glossary/ai-crawler/",
                        "learn_label": "See which AI crawlers matter"
                    },
                    {
                        "category": "discovery",
                        "title": "Page is indexable",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "No noindex directive was found in the headers or the markup.",
                        "explanation": "A noindex tag is often left behind after a staging build or applied by a template to a whole section by accident.",
                        "action": "",
                        "learn_url": "/field-guides/the-noindex-nobody-meant-to-ship/",
                        "learn_label": "Repair an accidental noindex"
                    },
                    {
                        "category": "entity",
                        "title": "Structured data is present",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "34 JSON-LD nodes were found.",
                        "explanation": "Without structured data, everything a machine concludes about this page is inferred from prose, and inference is where it starts getting you wrong.",
                        "action": "",
                        "learn_url": "/field-guides/structured-data-that-says-who-you-are/",
                        "learn_label": "Build useful structured data"
                    },
                    {
                        "category": "entity",
                        "title": "Publisher is declared as an entity",
                        "weight": 9,
                        "class": "pass",
                        "evidence": "A Person node is declared.",
                        "explanation": "Anything deciding whether to trust a claim on this page needs to know whose claim it is.",
                        "action": "",
                        "learn_url": "/glossary/publisher-entity/",
                        "learn_label": "Declare the publisher entity"
                    },
                    {
                        "category": "discovery",
                        "title": "Served over HTTPS",
                        "weight": 8,
                        "class": "pass",
                        "evidence": "The page answered over HTTPS.",
                        "explanation": "Plain HTTP is a server and certificate problem, not a content one. Nothing on the page can compensate for it.",
                        "action": "",
                        "learn_url": "/faq/when-is-a-rebuild-actually-justified/",
                        "learn_label": "Decide whether this is structural"
                    },
                    {
                        "category": "structure",
                        "title": "Title tag is present and usable",
                        "weight": 8,
                        "class": "pass",
                        "evidence": "The title is 47 characters: \"AI Search Visibility Checker Tool | AI Symantix\"",
                        "explanation": "The title is the strongest single label anything reading this page has for it.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Page has enough readable text to be useful",
                        "weight": 8,
                        "class": "pass",
                        "evidence": "1358 words of visible text were found.",
                        "explanation": "A page with almost nothing on it cannot answer anything, however well marked up it is.",
                        "action": "",
                        "learn_url": "/field-guides/the-answer-belongs-in-the-first-paragraph/",
                        "learn_label": "Make the page answer something"
                    },
                    {
                        "category": "structure",
                        "title": "Exactly one H1",
                        "weight": 7,
                        "class": "pass",
                        "evidence": "One H1 was found: \"AI Search Visibility Checker Tool\"",
                        "explanation": "Zero H1s leaves the subject unstated. Several make a machine pick one, and it will not always pick yours.",
                        "action": "",
                        "learn_url": "/field-guides/one-h1-and-why-your-template-has-three/",
                        "learn_label": "Repair the H1 structure"
                    },
                    {
                        "category": "entity",
                        "title": "Entity is linked to outside references",
                        "weight": 7,
                        "class": "pass",
                        "evidence": "sameAs references are declared.",
                        "explanation": "sameAs is what turns a name into something resolvable instead of a string that happens to appear on a page.",
                        "action": "",
                        "learn_url": "/glossary/sameas/",
                        "learn_label": "Use sameAs references correctly"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Body text survives boilerplate stripping",
                        "weight": 7,
                        "class": "pass",
                        "evidence": "Readable text is 12 percent of the response by size.",
                        "explanation": "When markup and script dwarf the text this heavily, extractors often keep the navigation and discard the article.",
                        "action": "",
                        "learn_url": "/glossary/boilerplate-ratio/",
                        "learn_label": "Improve the boilerplate ratio"
                    },
                    {
                        "category": "discovery",
                        "title": "XML sitemap is discoverable",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "robots.txt declares 1 sitemap.",
                        "explanation": "A sitemap is how pages that nothing links to yet get found at all.",
                        "action": "",
                        "learn_url": "/glossary/xml-sitemap/",
                        "learn_label": "Make the sitemap discoverable"
                    },
                    {
                        "category": "structure",
                        "title": "Page links onward into the site",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "111 internal links found in the raw HTML.",
                        "explanation": "Internal links are how a crawler discovers the rest of the site and how it works out what this page relates to.",
                        "action": "",
                        "learn_url": "/glossary/internal-link/",
                        "learn_label": "Add useful internal links"
                    },
                    {
                        "category": "entity",
                        "title": "Page type is declared",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "A recognizable content type is declared in JSON-LD.",
                        "explanation": "The type tells a retriever what shape of answer it can expect to find before it reads a word.",
                        "action": "",
                        "learn_url": "/glossary/structured-data/",
                        "learn_label": "Declare the page type"
                    },
                    {
                        "category": "content",
                        "title": "Claims are specific rather than general",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "The text carries figures, dates, or measurable claims.",
                        "explanation": "Generic copy is interchangeable with everyone else writing generic copy on the same subject, and nothing has a reason to quote it.",
                        "action": "",
                        "learn_url": "/field-guides/20-homepages-what-failed/",
                        "learn_label": "See the measured homepage evidence"
                    },
                    {
                        "category": "discovery",
                        "title": "Canonical URL declared",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "Canonical points at https://www.aisymantix.com/",
                        "explanation": "Without a canonical, every URL variant of this page competes with the others for the same credit.",
                        "action": "",
                        "learn_url": "/glossary/canonical-url/",
                        "learn_label": "Read the canonical repair"
                    },
                    {
                        "category": "discovery",
                        "title": "Canonical points at this site",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "The canonical stays on this hostname.",
                        "explanation": "A cross-host canonical hands credit for this page to another domain. That is correct for syndicated content and a serious mistake everywhere else.",
                        "action": "",
                        "learn_url": "/glossary/canonical-url/",
                        "learn_label": "Check the canonical decision"
                    },
                    {
                        "category": "discovery",
                        "title": "Server responded promptly",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "The page took 20ms to answer this inspection.",
                        "explanation": "Response time this slow is a hosting, database, or application problem. No amount of content editing changes it.",
                        "action": "",
                        "learn_url": "/faq/when-is-a-rebuild-actually-justified/",
                        "learn_label": "Decide whether the build needs work"
                    },
                    {
                        "category": "structure",
                        "title": "Meta description is present and usable",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "The description is 139 characters.",
                        "explanation": "Search and answer systems lift this text directly when it summarizes rather than advertises.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "structure",
                        "title": "Page is broken into sections",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "11 H2 headings found.",
                        "explanation": "A wall of text has no addressable parts. Sections give a retriever somewhere specific to point.",
                        "action": "",
                        "learn_url": "/glossary/heading-hierarchy/",
                        "learn_label": "Build useful page sections"
                    },
                    {
                        "category": "entity",
                        "title": "Structured data uses stable identifiers",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "@id identifiers are in use.",
                        "explanation": "Without @id, each block of markup is an island. With it, the nodes reference each other and describe one thing instead of several unrelated ones.",
                        "action": "",
                        "learn_url": "/glossary/stable-identifier/",
                        "learn_label": "Connect the structured-data graph"
                    },
                    {
                        "category": "content",
                        "title": "Page carries a freshness signal",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "A date is declared in structured data: 2026-10-28T13:32:19Z",
                        "explanation": "Undated content is treated as content of unknown age, and unknown age loses to dated content on anything that moves.",
                        "action": "",
                        "learn_url": "/glossary/freshness-signal/",
                        "learn_label": "Add a reliable freshness signal"
                    },
                    {
                        "category": "discovery",
                        "title": "robots.txt is published",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "robots.txt was found and read.",
                        "explanation": "A missing robots.txt is not fatal, but it is the file crawlers ask for first and the only place a sitemap can be declared to a crawler that has never seen your site.",
                        "action": "",
                        "learn_url": "/glossary/robots-txt/",
                        "learn_label": "Read the robots.txt repair"
                    },
                    {
                        "category": "discovery",
                        "title": "Reached without a redirect chain",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "The URL answered directly with no redirect.",
                        "explanation": "Each hop costs crawl budget and time, and long chains are usually the fossil record of several migrations stacked on each other.",
                        "action": "",
                        "learn_url": "/glossary/redirect-chain/",
                        "learn_label": "Collapse a redirect chain"
                    },
                    {
                        "category": "structure",
                        "title": "Heading levels do not skip",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "Heading levels descend in order.",
                        "explanation": "Skipped levels break the outline a retrieval system builds to work out which section answers what.",
                        "action": "",
                        "learn_url": "/glossary/heading-hierarchy/",
                        "learn_label": "Repair the heading hierarchy"
                    },
                    {
                        "category": "structure",
                        "title": "Anchor text describes the destination",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "No generic anchor text was found.",
                        "explanation": "Anchor text is one of the few places you get to tell a machine what the page you are linking to is about.",
                        "action": "",
                        "learn_url": "/glossary/anchor-text/",
                        "learn_label": "Write useful anchor text"
                    },
                    {
                        "category": "structure",
                        "title": "Images carry alt text",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "All 4 images carry an alt attribute.",
                        "explanation": "Alt text is the only description of an image that anything other than a person can read.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "llms.txt published",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "An llms.txt or llm.txt file was found at the site root.",
                        "explanation": "Support for this is still uneven, so treat it as cheap insurance rather than something that moves a number.",
                        "action": "",
                        "learn_url": "/glossary/llms-txt/",
                        "learn_label": "Publish a useful llms.txt"
                    },
                    {
                        "category": "content",
                        "title": "Page cites something outside itself",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "8 outbound links found.",
                        "explanation": "A page that references nothing outside itself reads like a closed loop, and closed loops are hard to corroborate.",
                        "action": "",
                        "learn_url": "/field-guides/20-homepages-what-failed/",
                        "learn_label": "See how the study cites its evidence"
                    },
                    {
                        "category": "content",
                        "title": "Headings describe their sections",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "No generic section headings were found.",
                        "explanation": "A heading is a retrieval target. \"Overview\" is not a question anybody asks.",
                        "action": "",
                        "learn_url": "/glossary/heading-hierarchy/",
                        "learn_label": "Write useful section headings"
                    },
                    {
                        "category": "structure",
                        "title": "Mobile viewport declared",
                        "weight": 3,
                        "class": "pass",
                        "evidence": "A viewport meta tag is present.",
                        "explanation": "Without it, mobile browsers render the page at desktop width and shrink it.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Document language is declared",
                        "weight": 3,
                        "class": "pass",
                        "evidence": "The html element declares a language.",
                        "explanation": "Language is the cheapest disambiguation signal there is and it is one attribute.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Open Graph metadata present",
                        "weight": 3,
                        "class": "pass",
                        "evidence": "Open Graph tags are present.",
                        "explanation": "Open Graph is a second, redundant statement of the title and summary, and redundancy helps whenever a parser trips on the primary markup.",
                        "action": "",
                        "learn_url": "/glossary/open-graph/",
                        "learn_label": "Add Open Graph metadata"
                    }
                ],
                "counts": {
                    "pass": 34,
                    "quick_fix": 3,
                    "investigate": 1,
                    "structural": 0
                },
                "recommendation": {
                    "route": "tune-up",
                    "headline": "This page needs a tune-up.",
                    "body": "Most of what we found is repairable without rebuilding anything. Work the quick fixes in order, then decide whether the same problems are showing up on every other page too.",
                    "cta": {
                        "label": "See the Fix Options",
                        "url": "/tune-up/"
                    }
                },
                "meta": {
                    "words": 1358,
                    "elapsed_ms": 20,
                    "redirects": 0,
                    "bytes": 71366
                },
                "inspected_at": "2026-10-28T14:17:37+00:00"
            }
        },
        {
            "tool": {
                "id": "quickrankai",
                "name": "QuickRankAI",
                "url": "https://www.quickrankai.com/",
                "endpoint": "https://www.quickrankai.com/api/quick-inspect/"
            },
            "site": {
                "name": "BellyUp! Birmingham",
                "url": "https://bellyupbirmingham.com/"
            },
            "observed_at": "2026-10-28T14:17:36.842Z",
            "http_status": 200,
            "result": {
                "ok": true,
                "url": "https://bellyupbirmingham.com/",
                "score": 96,
                "label": "Running Clean",
                "tone": "good",
                "summary": "We found 1 quick fix. The fundamentals are in place.",
                "categories": {
                    "discovery": {
                        "label": "Discovery",
                        "pct": 100
                    },
                    "structure": {
                        "label": "Page Structure",
                        "pct": 100
                    },
                    "entity": {
                        "label": "Entity Clarity",
                        "pct": 100
                    },
                    "ai_readiness": {
                        "label": "AI Readiness",
                        "pct": 100
                    },
                    "content": {
                        "label": "Content Signals",
                        "pct": 73
                    }
                },
                "findings": [
                    {
                        "category": "content",
                        "title": "Opens with a real answer",
                        "weight": 9,
                        "class": "quick_fix",
                        "evidence": "The first paragraph after the H1 is only 14 words.",
                        "explanation": "Retrieval systems quote the first passage that stands on its own. An introduction that warms up for three paragraphs gives them nothing to lift.",
                        "action": "Put a direct, self-contained answer in the first paragraph under the H1. Say the thing, then explain it.",
                        "learn_url": "/field-guides/the-answer-belongs-in-the-first-paragraph/",
                        "learn_label": "Put the answer first"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Content is in the HTML, not assembled by script",
                        "weight": 12,
                        "class": "pass",
                        "evidence": "689 words of readable text came back in the server response.",
                        "explanation": "Most AI retrievers read the raw response and do not wait for JavaScript. If the content is assembled in the browser, they see an empty frame.",
                        "action": "",
                        "learn_url": "/field-guides/content-is-in-the-html-or-it-is-not/",
                        "learn_label": "Fix content missing from the HTML"
                    },
                    {
                        "category": "discovery",
                        "title": "This URL is not disallowed in robots.txt",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "No robots.txt rule blocks this URL for the default crawler group.",
                        "explanation": "A disallowed URL is removed from consideration before any of its content is read. Everything else on this page is moot while that rule stands.",
                        "action": "",
                        "learn_url": "/field-guides/robots-txt-is-blocking-the-crawlers-you-want/",
                        "learn_label": "Repair a blocking robots rule"
                    },
                    {
                        "category": "discovery",
                        "title": "AI crawlers are allowed",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "robots.txt does not block the major AI crawlers.",
                        "explanation": "Blocking these agents removes the site from AI answers entirely, regardless of how good the page is.",
                        "action": "",
                        "learn_url": "/glossary/ai-crawler/",
                        "learn_label": "See which AI crawlers matter"
                    },
                    {
                        "category": "discovery",
                        "title": "Page is indexable",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "No noindex directive was found in the headers or the markup.",
                        "explanation": "A noindex tag is often left behind after a staging build or applied by a template to a whole section by accident.",
                        "action": "",
                        "learn_url": "/field-guides/the-noindex-nobody-meant-to-ship/",
                        "learn_label": "Repair an accidental noindex"
                    },
                    {
                        "category": "entity",
                        "title": "Structured data is present",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "33 JSON-LD nodes were found.",
                        "explanation": "Without structured data, everything a machine concludes about this page is inferred from prose, and inference is where it starts getting you wrong.",
                        "action": "",
                        "learn_url": "/field-guides/structured-data-that-says-who-you-are/",
                        "learn_label": "Build useful structured data"
                    },
                    {
                        "category": "entity",
                        "title": "Publisher is declared as an entity",
                        "weight": 9,
                        "class": "pass",
                        "evidence": "A Organization node is declared.",
                        "explanation": "Anything deciding whether to trust a claim on this page needs to know whose claim it is.",
                        "action": "",
                        "learn_url": "/glossary/publisher-entity/",
                        "learn_label": "Declare the publisher entity"
                    },
                    {
                        "category": "discovery",
                        "title": "Served over HTTPS",
                        "weight": 8,
                        "class": "pass",
                        "evidence": "The page answered over HTTPS.",
                        "explanation": "Plain HTTP is a server and certificate problem, not a content one. Nothing on the page can compensate for it.",
                        "action": "",
                        "learn_url": "/faq/when-is-a-rebuild-actually-justified/",
                        "learn_label": "Decide whether this is structural"
                    },
                    {
                        "category": "structure",
                        "title": "Title tag is present and usable",
                        "weight": 8,
                        "class": "pass",
                        "evidence": "The title is 62 characters: \"Birmingham Restaurants, Bars & Nightlife | BellyUp! Birmingham\"",
                        "explanation": "The title is the strongest single label anything reading this page has for it.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Page has enough readable text to be useful",
                        "weight": 8,
                        "class": "pass",
                        "evidence": "689 words of visible text were found.",
                        "explanation": "A page with almost nothing on it cannot answer anything, however well marked up it is.",
                        "action": "",
                        "learn_url": "/field-guides/the-answer-belongs-in-the-first-paragraph/",
                        "learn_label": "Make the page answer something"
                    },
                    {
                        "category": "structure",
                        "title": "Exactly one H1",
                        "weight": 7,
                        "class": "pass",
                        "evidence": "One H1 was found: \"Birmingham Restaurants, Bars & Nightlife\"",
                        "explanation": "Zero H1s leaves the subject unstated. Several make a machine pick one, and it will not always pick yours.",
                        "action": "",
                        "learn_url": "/field-guides/one-h1-and-why-your-template-has-three/",
                        "learn_label": "Repair the H1 structure"
                    },
                    {
                        "category": "entity",
                        "title": "Entity is linked to outside references",
                        "weight": 7,
                        "class": "pass",
                        "evidence": "sameAs references are declared.",
                        "explanation": "sameAs is what turns a name into something resolvable instead of a string that happens to appear on a page.",
                        "action": "",
                        "learn_url": "/glossary/sameas/",
                        "learn_label": "Use sameAs references correctly"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Body text survives boilerplate stripping",
                        "weight": 7,
                        "class": "pass",
                        "evidence": "Readable text is 8.1 percent of the response by size.",
                        "explanation": "When markup and script dwarf the text this heavily, extractors often keep the navigation and discard the article.",
                        "action": "",
                        "learn_url": "/glossary/boilerplate-ratio/",
                        "learn_label": "Improve the boilerplate ratio"
                    },
                    {
                        "category": "discovery",
                        "title": "XML sitemap is discoverable",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "robots.txt declares 1 sitemap.",
                        "explanation": "A sitemap is how pages that nothing links to yet get found at all.",
                        "action": "",
                        "learn_url": "/glossary/xml-sitemap/",
                        "learn_label": "Make the sitemap discoverable"
                    },
                    {
                        "category": "structure",
                        "title": "Page links onward into the site",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "41 internal links found in the raw HTML.",
                        "explanation": "Internal links are how a crawler discovers the rest of the site and how it works out what this page relates to.",
                        "action": "",
                        "learn_url": "/glossary/internal-link/",
                        "learn_label": "Add useful internal links"
                    },
                    {
                        "category": "entity",
                        "title": "Page type is declared",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "A recognizable content type is declared in JSON-LD.",
                        "explanation": "The type tells a retriever what shape of answer it can expect to find before it reads a word.",
                        "action": "",
                        "learn_url": "/glossary/structured-data/",
                        "learn_label": "Declare the page type"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Main content is inside a semantic landmark",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "A main or article element marks the primary content.",
                        "explanation": "A landmark is how an extractor separates the article from the header, menu, sidebar, and footer wrapped around it.",
                        "action": "",
                        "learn_url": "/glossary/semantic-landmark/",
                        "learn_label": "Mark the main content"
                    },
                    {
                        "category": "content",
                        "title": "Claims are specific rather than general",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "The text carries figures, dates, or measurable claims.",
                        "explanation": "Generic copy is interchangeable with everyone else writing generic copy on the same subject, and nothing has a reason to quote it.",
                        "action": "",
                        "learn_url": "/field-guides/20-homepages-what-failed/",
                        "learn_label": "See the measured homepage evidence"
                    },
                    {
                        "category": "discovery",
                        "title": "Canonical URL declared",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "Canonical points at https://bellyupbirmingham.com/",
                        "explanation": "Without a canonical, every URL variant of this page competes with the others for the same credit.",
                        "action": "",
                        "learn_url": "/glossary/canonical-url/",
                        "learn_label": "Read the canonical repair"
                    },
                    {
                        "category": "discovery",
                        "title": "Canonical points at this site",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "The canonical stays on this hostname.",
                        "explanation": "A cross-host canonical hands credit for this page to another domain. That is correct for syndicated content and a serious mistake everywhere else.",
                        "action": "",
                        "learn_url": "/glossary/canonical-url/",
                        "learn_label": "Check the canonical decision"
                    },
                    {
                        "category": "discovery",
                        "title": "Server responded promptly",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "The page took 40ms to answer this inspection.",
                        "explanation": "Response time this slow is a hosting, database, or application problem. No amount of content editing changes it.",
                        "action": "",
                        "learn_url": "/faq/when-is-a-rebuild-actually-justified/",
                        "learn_label": "Decide whether the build needs work"
                    },
                    {
                        "category": "structure",
                        "title": "Meta description is present and usable",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "The description is 154 characters.",
                        "explanation": "Search and answer systems lift this text directly when it summarizes rather than advertises.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "structure",
                        "title": "Page is broken into sections",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "8 H2 headings found.",
                        "explanation": "A wall of text has no addressable parts. Sections give a retriever somewhere specific to point.",
                        "action": "",
                        "learn_url": "/glossary/heading-hierarchy/",
                        "learn_label": "Build useful page sections"
                    },
                    {
                        "category": "entity",
                        "title": "Structured data uses stable identifiers",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "@id identifiers are in use.",
                        "explanation": "Without @id, each block of markup is an island. With it, the nodes reference each other and describe one thing instead of several unrelated ones.",
                        "action": "",
                        "learn_url": "/glossary/stable-identifier/",
                        "learn_label": "Connect the structured-data graph"
                    },
                    {
                        "category": "content",
                        "title": "Question and answer structure is marked up",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "No question and answer pattern was detected, so none is expected.",
                        "explanation": "Pre-paired questions and answers are the easiest thing on the web for an answer engine to reuse.",
                        "action": "",
                        "learn_url": "/glossary/faqpage-markup/",
                        "learn_label": "Mark up real questions and answers"
                    },
                    {
                        "category": "content",
                        "title": "Page carries a freshness signal",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "A date is declared in structured data: 2026-10-28T04:16:50Z",
                        "explanation": "Undated content is treated as content of unknown age, and unknown age loses to dated content on anything that moves.",
                        "action": "",
                        "learn_url": "/glossary/freshness-signal/",
                        "learn_label": "Add a reliable freshness signal"
                    },
                    {
                        "category": "discovery",
                        "title": "robots.txt is published",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "robots.txt was found and read.",
                        "explanation": "A missing robots.txt is not fatal, but it is the file crawlers ask for first and the only place a sitemap can be declared to a crawler that has never seen your site.",
                        "action": "",
                        "learn_url": "/glossary/robots-txt/",
                        "learn_label": "Read the robots.txt repair"
                    },
                    {
                        "category": "discovery",
                        "title": "Reached without a redirect chain",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "The URL answered directly with no redirect.",
                        "explanation": "Each hop costs crawl budget and time, and long chains are usually the fossil record of several migrations stacked on each other.",
                        "action": "",
                        "learn_url": "/glossary/redirect-chain/",
                        "learn_label": "Collapse a redirect chain"
                    },
                    {
                        "category": "structure",
                        "title": "Heading levels do not skip",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "Heading levels descend in order.",
                        "explanation": "Skipped levels break the outline a retrieval system builds to work out which section answers what.",
                        "action": "",
                        "learn_url": "/glossary/heading-hierarchy/",
                        "learn_label": "Repair the heading hierarchy"
                    },
                    {
                        "category": "structure",
                        "title": "Anchor text describes the destination",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "No generic anchor text was found.",
                        "explanation": "Anchor text is one of the few places you get to tell a machine what the page you are linking to is about.",
                        "action": "",
                        "learn_url": "/glossary/anchor-text/",
                        "learn_label": "Write useful anchor text"
                    },
                    {
                        "category": "structure",
                        "title": "Images carry alt text",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "All 2 images carry an alt attribute.",
                        "explanation": "Alt text is the only description of an image that anything other than a person can read.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "entity",
                        "title": "Naming is consistent across signals",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "The declared entity name and the site name agree.",
                        "explanation": "Two names for the same publisher is how one entity becomes two half-strength ones.",
                        "action": "",
                        "learn_url": "/glossary/entity-consistency/",
                        "learn_label": "Repair entity-name conflicts"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "llms.txt published",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "An llms.txt or llm.txt file was found at the site root.",
                        "explanation": "Support for this is still uneven, so treat it as cheap insurance rather than something that moves a number.",
                        "action": "",
                        "learn_url": "/glossary/llms-txt/",
                        "learn_label": "Publish a useful llms.txt"
                    },
                    {
                        "category": "content",
                        "title": "Page cites something outside itself",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "32 outbound links found.",
                        "explanation": "A page that references nothing outside itself reads like a closed loop, and closed loops are hard to corroborate.",
                        "action": "",
                        "learn_url": "/field-guides/20-homepages-what-failed/",
                        "learn_label": "See how the study cites its evidence"
                    },
                    {
                        "category": "content",
                        "title": "Headings describe their sections",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "No generic section headings were found.",
                        "explanation": "A heading is a retrieval target. \"Overview\" is not a question anybody asks.",
                        "action": "",
                        "learn_url": "/glossary/heading-hierarchy/",
                        "learn_label": "Write useful section headings"
                    },
                    {
                        "category": "structure",
                        "title": "Mobile viewport declared",
                        "weight": 3,
                        "class": "pass",
                        "evidence": "A viewport meta tag is present.",
                        "explanation": "Without it, mobile browsers render the page at desktop width and shrink it.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Document language is declared",
                        "weight": 3,
                        "class": "pass",
                        "evidence": "The html element declares a language.",
                        "explanation": "Language is the cheapest disambiguation signal there is and it is one attribute.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Open Graph metadata present",
                        "weight": 3,
                        "class": "pass",
                        "evidence": "Open Graph tags are present.",
                        "explanation": "Open Graph is a second, redundant statement of the title and summary, and redundancy helps whenever a parser trips on the primary markup.",
                        "action": "",
                        "learn_url": "/glossary/open-graph/",
                        "learn_label": "Add Open Graph metadata"
                    }
                ],
                "counts": {
                    "pass": 37,
                    "quick_fix": 1,
                    "investigate": 0,
                    "structural": 0
                },
                "recommendation": {
                    "route": "monitor",
                    "headline": "You are running clean.",
                    "body": "The fundamentals are in place. What is worth your attention now is keeping them that way and watching discovery signals over time instead of finding out months later that something drifted.",
                    "cta": {
                        "label": "Explore Digital Karma",
                        "url": "/digital-karma/"
                    }
                },
                "meta": {
                    "words": 689,
                    "elapsed_ms": 40,
                    "redirects": 0,
                    "bytes": 52038
                },
                "inspected_at": "2026-10-28T14:17:39+00:00"
            }
        },
        {
            "tool": {
                "id": "quickrankai",
                "name": "QuickRankAI",
                "url": "https://www.quickrankai.com/",
                "endpoint": "https://www.quickrankai.com/api/quick-inspect/"
            },
            "site": {
                "name": "Real SEO Life",
                "url": "https://www.realseolife.com/"
            },
            "observed_at": "2026-10-28T14:17:39.440Z",
            "http_status": 200,
            "result": {
                "ok": true,
                "url": "https://www.realseolife.com/",
                "score": 98,
                "label": "Running Clean",
                "tone": "good",
                "summary": "We found 1 quick fix. The fundamentals are in place.",
                "categories": {
                    "discovery": {
                        "label": "Discovery",
                        "pct": 100
                    },
                    "structure": {
                        "label": "Page Structure",
                        "pct": 100
                    },
                    "entity": {
                        "label": "Entity Clarity",
                        "pct": 100
                    },
                    "ai_readiness": {
                        "label": "AI Readiness",
                        "pct": 100
                    },
                    "content": {
                        "label": "Content Signals",
                        "pct": 88
                    }
                },
                "findings": [
                    {
                        "category": "content",
                        "title": "Page cites something outside itself",
                        "weight": 4,
                        "class": "quick_fix",
                        "evidence": "No outbound links to other sites were found.",
                        "explanation": "A page that references nothing outside itself reads like a closed loop, and closed loops are hard to corroborate.",
                        "action": "Link out to the sources, standards, or evidence the page relies on. Citing something is not a leak, it is a signal.",
                        "learn_url": "/field-guides/20-homepages-what-failed/",
                        "learn_label": "See how the study cites its evidence"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Content is in the HTML, not assembled by script",
                        "weight": 12,
                        "class": "pass",
                        "evidence": "1833 words of readable text came back in the server response.",
                        "explanation": "Most AI retrievers read the raw response and do not wait for JavaScript. If the content is assembled in the browser, they see an empty frame.",
                        "action": "",
                        "learn_url": "/field-guides/content-is-in-the-html-or-it-is-not/",
                        "learn_label": "Fix content missing from the HTML"
                    },
                    {
                        "category": "discovery",
                        "title": "This URL is not disallowed in robots.txt",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "No robots.txt rule blocks this URL for the default crawler group.",
                        "explanation": "A disallowed URL is removed from consideration before any of its content is read. Everything else on this page is moot while that rule stands.",
                        "action": "",
                        "learn_url": "/field-guides/robots-txt-is-blocking-the-crawlers-you-want/",
                        "learn_label": "Repair a blocking robots rule"
                    },
                    {
                        "category": "discovery",
                        "title": "AI crawlers are allowed",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "robots.txt does not block the major AI crawlers.",
                        "explanation": "Blocking these agents removes the site from AI answers entirely, regardless of how good the page is.",
                        "action": "",
                        "learn_url": "/glossary/ai-crawler/",
                        "learn_label": "See which AI crawlers matter"
                    },
                    {
                        "category": "discovery",
                        "title": "Page is indexable",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "No noindex directive was found in the headers or the markup.",
                        "explanation": "A noindex tag is often left behind after a staging build or applied by a template to a whole section by accident.",
                        "action": "",
                        "learn_url": "/field-guides/the-noindex-nobody-meant-to-ship/",
                        "learn_label": "Repair an accidental noindex"
                    },
                    {
                        "category": "entity",
                        "title": "Structured data is present",
                        "weight": 10,
                        "class": "pass",
                        "evidence": "53 JSON-LD nodes were found.",
                        "explanation": "Without structured data, everything a machine concludes about this page is inferred from prose, and inference is where it starts getting you wrong.",
                        "action": "",
                        "learn_url": "/field-guides/structured-data-that-says-who-you-are/",
                        "learn_label": "Build useful structured data"
                    },
                    {
                        "category": "entity",
                        "title": "Publisher is declared as an entity",
                        "weight": 9,
                        "class": "pass",
                        "evidence": "A Organization node is declared.",
                        "explanation": "Anything deciding whether to trust a claim on this page needs to know whose claim it is.",
                        "action": "",
                        "learn_url": "/glossary/publisher-entity/",
                        "learn_label": "Declare the publisher entity"
                    },
                    {
                        "category": "content",
                        "title": "Opens with a real answer",
                        "weight": 9,
                        "class": "pass",
                        "evidence": "A 31 word paragraph follows the H1 directly.",
                        "explanation": "Retrieval systems quote the first passage that stands on its own. An introduction that warms up for three paragraphs gives them nothing to lift.",
                        "action": "",
                        "learn_url": "/field-guides/the-answer-belongs-in-the-first-paragraph/",
                        "learn_label": "Put the answer first"
                    },
                    {
                        "category": "discovery",
                        "title": "Served over HTTPS",
                        "weight": 8,
                        "class": "pass",
                        "evidence": "The page answered over HTTPS.",
                        "explanation": "Plain HTTP is a server and certificate problem, not a content one. Nothing on the page can compensate for it.",
                        "action": "",
                        "learn_url": "/faq/when-is-a-rebuild-actually-justified/",
                        "learn_label": "Decide whether this is structural"
                    },
                    {
                        "category": "structure",
                        "title": "Title tag is present and usable",
                        "weight": 8,
                        "class": "pass",
                        "evidence": "The title is 51 characters: \"Real SEO: Data First AI SEO Systems | Real SEO Life\"",
                        "explanation": "The title is the strongest single label anything reading this page has for it.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Page has enough readable text to be useful",
                        "weight": 8,
                        "class": "pass",
                        "evidence": "1833 words of visible text were found.",
                        "explanation": "A page with almost nothing on it cannot answer anything, however well marked up it is.",
                        "action": "",
                        "learn_url": "/field-guides/the-answer-belongs-in-the-first-paragraph/",
                        "learn_label": "Make the page answer something"
                    },
                    {
                        "category": "structure",
                        "title": "Exactly one H1",
                        "weight": 7,
                        "class": "pass",
                        "evidence": "One H1 was found: \"Real SEO Data First AI SEO Systems\"",
                        "explanation": "Zero H1s leaves the subject unstated. Several make a machine pick one, and it will not always pick yours.",
                        "action": "",
                        "learn_url": "/field-guides/one-h1-and-why-your-template-has-three/",
                        "learn_label": "Repair the H1 structure"
                    },
                    {
                        "category": "entity",
                        "title": "Entity is linked to outside references",
                        "weight": 7,
                        "class": "pass",
                        "evidence": "sameAs references are declared.",
                        "explanation": "sameAs is what turns a name into something resolvable instead of a string that happens to appear on a page.",
                        "action": "",
                        "learn_url": "/glossary/sameas/",
                        "learn_label": "Use sameAs references correctly"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Body text survives boilerplate stripping",
                        "weight": 7,
                        "class": "pass",
                        "evidence": "Readable text is 12.8 percent of the response by size.",
                        "explanation": "When markup and script dwarf the text this heavily, extractors often keep the navigation and discard the article.",
                        "action": "",
                        "learn_url": "/glossary/boilerplate-ratio/",
                        "learn_label": "Improve the boilerplate ratio"
                    },
                    {
                        "category": "discovery",
                        "title": "XML sitemap is discoverable",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "robots.txt declares 1 sitemap.",
                        "explanation": "A sitemap is how pages that nothing links to yet get found at all.",
                        "action": "",
                        "learn_url": "/glossary/xml-sitemap/",
                        "learn_label": "Make the sitemap discoverable"
                    },
                    {
                        "category": "structure",
                        "title": "Page links onward into the site",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "146 internal links found in the raw HTML.",
                        "explanation": "Internal links are how a crawler discovers the rest of the site and how it works out what this page relates to.",
                        "action": "",
                        "learn_url": "/glossary/internal-link/",
                        "learn_label": "Add useful internal links"
                    },
                    {
                        "category": "entity",
                        "title": "Page type is declared",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "A recognizable content type is declared in JSON-LD.",
                        "explanation": "The type tells a retriever what shape of answer it can expect to find before it reads a word.",
                        "action": "",
                        "learn_url": "/glossary/structured-data/",
                        "learn_label": "Declare the page type"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Main content is inside a semantic landmark",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "A main or article element marks the primary content.",
                        "explanation": "A landmark is how an extractor separates the article from the header, menu, sidebar, and footer wrapped around it.",
                        "action": "",
                        "learn_url": "/glossary/semantic-landmark/",
                        "learn_label": "Mark the main content"
                    },
                    {
                        "category": "content",
                        "title": "Claims are specific rather than general",
                        "weight": 6,
                        "class": "pass",
                        "evidence": "The text carries figures, dates, or measurable claims.",
                        "explanation": "Generic copy is interchangeable with everyone else writing generic copy on the same subject, and nothing has a reason to quote it.",
                        "action": "",
                        "learn_url": "/field-guides/20-homepages-what-failed/",
                        "learn_label": "See the measured homepage evidence"
                    },
                    {
                        "category": "discovery",
                        "title": "Canonical URL declared",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "Canonical points at https://www.realseolife.com/",
                        "explanation": "Without a canonical, every URL variant of this page competes with the others for the same credit.",
                        "action": "",
                        "learn_url": "/glossary/canonical-url/",
                        "learn_label": "Read the canonical repair"
                    },
                    {
                        "category": "discovery",
                        "title": "Canonical points at this site",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "The canonical stays on this hostname.",
                        "explanation": "A cross-host canonical hands credit for this page to another domain. That is correct for syndicated content and a serious mistake everywhere else.",
                        "action": "",
                        "learn_url": "/glossary/canonical-url/",
                        "learn_label": "Check the canonical decision"
                    },
                    {
                        "category": "discovery",
                        "title": "Server responded promptly",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "The page took 43ms to answer this inspection.",
                        "explanation": "Response time this slow is a hosting, database, or application problem. No amount of content editing changes it.",
                        "action": "",
                        "learn_url": "/faq/when-is-a-rebuild-actually-justified/",
                        "learn_label": "Decide whether the build needs work"
                    },
                    {
                        "category": "structure",
                        "title": "Meta description is present and usable",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "The description is 155 characters.",
                        "explanation": "Search and answer systems lift this text directly when it summarizes rather than advertises.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "structure",
                        "title": "Page is broken into sections",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "7 H2 headings found.",
                        "explanation": "A wall of text has no addressable parts. Sections give a retriever somewhere specific to point.",
                        "action": "",
                        "learn_url": "/glossary/heading-hierarchy/",
                        "learn_label": "Build useful page sections"
                    },
                    {
                        "category": "entity",
                        "title": "Structured data uses stable identifiers",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "@id identifiers are in use.",
                        "explanation": "Without @id, each block of markup is an island. With it, the nodes reference each other and describe one thing instead of several unrelated ones.",
                        "action": "",
                        "learn_url": "/glossary/stable-identifier/",
                        "learn_label": "Connect the structured-data graph"
                    },
                    {
                        "category": "content",
                        "title": "Question and answer structure is marked up",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "No question and answer pattern was detected, so none is expected.",
                        "explanation": "Pre-paired questions and answers are the easiest thing on the web for an answer engine to reuse.",
                        "action": "",
                        "learn_url": "/glossary/faqpage-markup/",
                        "learn_label": "Mark up real questions and answers"
                    },
                    {
                        "category": "content",
                        "title": "Page carries a freshness signal",
                        "weight": 5,
                        "class": "pass",
                        "evidence": "A date is declared in structured data: 2026-10-28",
                        "explanation": "Undated content is treated as content of unknown age, and unknown age loses to dated content on anything that moves.",
                        "action": "",
                        "learn_url": "/glossary/freshness-signal/",
                        "learn_label": "Add a reliable freshness signal"
                    },
                    {
                        "category": "discovery",
                        "title": "robots.txt is published",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "robots.txt was found and read.",
                        "explanation": "A missing robots.txt is not fatal, but it is the file crawlers ask for first and the only place a sitemap can be declared to a crawler that has never seen your site.",
                        "action": "",
                        "learn_url": "/glossary/robots-txt/",
                        "learn_label": "Read the robots.txt repair"
                    },
                    {
                        "category": "discovery",
                        "title": "Reached without a redirect chain",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "The URL answered directly with no redirect.",
                        "explanation": "Each hop costs crawl budget and time, and long chains are usually the fossil record of several migrations stacked on each other.",
                        "action": "",
                        "learn_url": "/glossary/redirect-chain/",
                        "learn_label": "Collapse a redirect chain"
                    },
                    {
                        "category": "structure",
                        "title": "Heading levels do not skip",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "Heading levels descend in order.",
                        "explanation": "Skipped levels break the outline a retrieval system builds to work out which section answers what.",
                        "action": "",
                        "learn_url": "/glossary/heading-hierarchy/",
                        "learn_label": "Repair the heading hierarchy"
                    },
                    {
                        "category": "structure",
                        "title": "Anchor text describes the destination",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "No generic anchor text was found.",
                        "explanation": "Anchor text is one of the few places you get to tell a machine what the page you are linking to is about.",
                        "action": "",
                        "learn_url": "/glossary/anchor-text/",
                        "learn_label": "Write useful anchor text"
                    },
                    {
                        "category": "structure",
                        "title": "Images carry alt text",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "All 2 images carry an alt attribute.",
                        "explanation": "Alt text is the only description of an image that anything other than a person can read.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "entity",
                        "title": "Naming is consistent across signals",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "The declared entity name and the site name agree.",
                        "explanation": "Two names for the same publisher is how one entity becomes two half-strength ones.",
                        "action": "",
                        "learn_url": "/glossary/entity-consistency/",
                        "learn_label": "Repair entity-name conflicts"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "llms.txt published",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "An llms.txt or llm.txt file was found at the site root.",
                        "explanation": "Support for this is still uneven, so treat it as cheap insurance rather than something that moves a number.",
                        "action": "",
                        "learn_url": "/glossary/llms-txt/",
                        "learn_label": "Publish a useful llms.txt"
                    },
                    {
                        "category": "content",
                        "title": "Headings describe their sections",
                        "weight": 4,
                        "class": "pass",
                        "evidence": "No generic section headings were found.",
                        "explanation": "A heading is a retrieval target. \"Overview\" is not a question anybody asks.",
                        "action": "",
                        "learn_url": "/glossary/heading-hierarchy/",
                        "learn_label": "Write useful section headings"
                    },
                    {
                        "category": "structure",
                        "title": "Mobile viewport declared",
                        "weight": 3,
                        "class": "pass",
                        "evidence": "A viewport meta tag is present.",
                        "explanation": "Without it, mobile browsers render the page at desktop width and shrink it.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Document language is declared",
                        "weight": 3,
                        "class": "pass",
                        "evidence": "The html element declares a language.",
                        "explanation": "Language is the cheapest disambiguation signal there is and it is one attribute.",
                        "action": "",
                        "learn_url": "/tune-up/",
                        "learn_label": "See the page tune-up plan"
                    },
                    {
                        "category": "ai_readiness",
                        "title": "Open Graph metadata present",
                        "weight": 3,
                        "class": "pass",
                        "evidence": "Open Graph tags are present.",
                        "explanation": "Open Graph is a second, redundant statement of the title and summary, and redundancy helps whenever a parser trips on the primary markup.",
                        "action": "",
                        "learn_url": "/glossary/open-graph/",
                        "learn_label": "Add Open Graph metadata"
                    }
                ],
                "counts": {
                    "pass": 37,
                    "quick_fix": 1,
                    "investigate": 0,
                    "structural": 0
                },
                "recommendation": {
                    "route": "monitor",
                    "headline": "You are running clean.",
                    "body": "The fundamentals are in place. What is worth your attention now is keeping them that way and watching discovery signals over time instead of finding out months later that something drifted.",
                    "cta": {
                        "label": "Explore Digital Karma",
                        "url": "/digital-karma/"
                    }
                },
                "meta": {
                    "words": 1833,
                    "elapsed_ms": 43,
                    "redirects": 0,
                    "bytes": 87623
                },
                "inspected_at": "2026-10-28T14:17:42+00:00"
            }
        },
        {
            "tool": {
                "id": "instantread",
                "name": "Instant Read Visibility",
                "url": "https://www.instantreadvisibility.com/",
                "endpoint": "https://www.instantreadvisibility.com/api/instant-read/"
            },
            "site": {
                "name": "AI Symantix",
                "url": "https://www.aisymantix.com/"
            },
            "observed_at": "2026-10-28T14:17:41.750Z",
            "http_status": 200,
            "result": {
                "ok": true,
                "url": "https://www.aisymantix.com/",
                "host": "www.aisymantix.com",
                "temperature": 91,
                "band": "hot",
                "band_label": "Hot",
                "band_short": "Everything observable is in place.",
                "band_blurb": "Every signal a thermometer can see from outside is present. From here the work stops being technical and starts being editorial: what the page actually says, who else cites it, and whether it deserves the position it is asking for.",
                "readings": {
                    "search": {
                        "key": "search",
                        "label": "Search Visibility",
                        "question": "Can a search engine reach this page, index it, and work out what it is a result for?",
                        "weight": 30,
                        "temp": 100,
                        "band": "hot",
                        "band_label": "Hot",
                        "token": "temp-hot",
                        "failing": 0
                    },
                    "ai": {
                        "key": "ai",
                        "label": "AI Discoverability",
                        "question": "Can an AI answer engine retrieve this page and lift a usable answer out of it?",
                        "weight": 30,
                        "temp": 79,
                        "band": "warm",
                        "band_label": "Warm",
                        "token": "temp-warm",
                        "failing": 2
                    },
                    "technical": {
                        "key": "technical",
                        "label": "Technical Accessibility",
                        "question": "Can a machine get this page cleanly, quickly, and on the first try?",
                        "weight": 20,
                        "temp": 100,
                        "band": "hot",
                        "band_label": "Hot",
                        "token": "temp-hot",
                        "failing": 0
                    },
                    "entity": {
                        "key": "entity",
                        "label": "Content and Entity Strength",
                        "question": "Does this page say what it is, who published it, and why it should be believed?",
                        "weight": 20,
                        "temp": 84,
                        "band": "warm",
                        "band_label": "Warm",
                        "token": "temp-warm",
                        "failing": 2
                    }
                },
                "signal_count": 37,
                "words": 1358,
                "elapsed": 21,
                "redirects": 0,
                "bytes": 71366,
                "checked_at": "2026-10-28T14:17:44+00:00",
                "strengths": [
                    {
                        "label": "AI crawlers are allowed",
                        "detail": "robots.txt does not block the major AI crawlers.",
                        "reading": "AI Discoverability",
                        "weight": 16
                    },
                    {
                        "label": "Open to indexing",
                        "detail": "Nothing on the page or in its headers asks search engines to stay away.",
                        "reading": "Search Visibility",
                        "weight": 14
                    },
                    {
                        "label": "Content is in the HTML, not built by script",
                        "detail": "1358 words of text came back in the raw HTML response.",
                        "reading": "AI Discoverability",
                        "weight": 14
                    }
                ],
                "problems": [
                    {
                        "label": "Answers before it explains",
                        "detail": "The first paragraph after the H1 carries only 2 words.",
                        "reading": "AI Discoverability",
                        "weight": 10
                    },
                    {
                        "label": "Question and answer markup",
                        "detail": "No FAQ or QA markup was found.",
                        "reading": "AI Discoverability",
                        "weight": 6
                    },
                    {
                        "label": "Entity name is consistent across the page",
                        "detail": "The publisher name in the structured data does not appear in the title or og:site_name.",
                        "reading": "Content and Entity Strength",
                        "weight": 6
                    }
                ],
                "passing_count": 33,
                "failing_count": 4,
                "withheld_count": 1,
                "token": "2e4ecefb860f8153",
                "share_url": "https://www.instantreadvisibility.com/reading/2e4ecefb860f8153/",
                "badge_url": "https://www.instantreadvisibility.com/badge/2e4ecefb860f8153.svg/"
            }
        },
        {
            "tool": {
                "id": "instantread",
                "name": "Instant Read Visibility",
                "url": "https://www.instantreadvisibility.com/",
                "endpoint": "https://www.instantreadvisibility.com/api/instant-read/"
            },
            "site": {
                "name": "BellyUp! Birmingham",
                "url": "https://bellyupbirmingham.com/"
            },
            "observed_at": "2026-10-28T14:17:43.980Z",
            "http_status": 200,
            "result": {
                "ok": true,
                "url": "https://bellyupbirmingham.com/",
                "host": "bellyupbirmingham.com",
                "temperature": 88,
                "band": "hot",
                "band_label": "Hot",
                "band_short": "Everything observable is in place.",
                "band_blurb": "Every signal a thermometer can see from outside is present. From here the work stops being technical and starts being editorial: what the page actually says, who else cites it, and whether it deserves the position it is asking for.",
                "readings": {
                    "search": {
                        "key": "search",
                        "label": "Search Visibility",
                        "question": "Can a search engine reach this page, index it, and work out what it is a result for?",
                        "weight": 30,
                        "temp": 100,
                        "band": "hot",
                        "band_label": "Hot",
                        "token": "temp-hot",
                        "failing": 0
                    },
                    "ai": {
                        "key": "ai",
                        "label": "AI Discoverability",
                        "question": "Can an AI answer engine retrieve this page and lift a usable answer out of it?",
                        "weight": 30,
                        "temp": 71,
                        "band": "warm",
                        "band_label": "Warm",
                        "token": "temp-warm",
                        "failing": 3
                    },
                    "technical": {
                        "key": "technical",
                        "label": "Technical Accessibility",
                        "question": "Can a machine get this page cleanly, quickly, and on the first try?",
                        "weight": 20,
                        "temp": 100,
                        "band": "hot",
                        "band_label": "Hot",
                        "token": "temp-hot",
                        "failing": 0
                    },
                    "entity": {
                        "key": "entity",
                        "label": "Content and Entity Strength",
                        "question": "Does this page say what it is, who published it, and why it should be believed?",
                        "weight": 20,
                        "temp": 84,
                        "band": "warm",
                        "band_label": "Warm",
                        "token": "temp-warm",
                        "failing": 2
                    }
                },
                "signal_count": 37,
                "words": 689,
                "elapsed": 37,
                "redirects": 0,
                "bytes": 52038,
                "checked_at": "2026-10-28T14:17:46+00:00",
                "strengths": [
                    {
                        "label": "AI crawlers are allowed",
                        "detail": "robots.txt does not block the major AI crawlers.",
                        "reading": "AI Discoverability",
                        "weight": 16
                    },
                    {
                        "label": "Open to indexing",
                        "detail": "Nothing on the page or in its headers asks search engines to stay away.",
                        "reading": "Search Visibility",
                        "weight": 14
                    },
                    {
                        "label": "Content is in the HTML, not built by script",
                        "detail": "689 words of text came back in the raw HTML response.",
                        "reading": "AI Discoverability",
                        "weight": 14
                    }
                ],
                "problems": [
                    {
                        "label": "Answers before it explains",
                        "detail": "The first paragraph after the H1 carries only 14 words.",
                        "reading": "AI Discoverability",
                        "weight": 10
                    },
                    {
                        "label": "Question and answer markup",
                        "detail": "No FAQ or QA markup was found.",
                        "reading": "AI Discoverability",
                        "weight": 6
                    },
                    {
                        "label": "Extractable structure on the page",
                        "detail": "The page is unbroken prose with no lists or tables.",
                        "reading": "AI Discoverability",
                        "weight": 6
                    }
                ],
                "passing_count": 32,
                "failing_count": 5,
                "withheld_count": 2,
                "token": "cfd3daebdeb45a73",
                "share_url": "https://www.instantreadvisibility.com/reading/cfd3daebdeb45a73/",
                "badge_url": "https://www.instantreadvisibility.com/badge/cfd3daebdeb45a73.svg/"
            }
        },
        {
            "tool": {
                "id": "instantread",
                "name": "Instant Read Visibility",
                "url": "https://www.instantreadvisibility.com/",
                "endpoint": "https://www.instantreadvisibility.com/api/instant-read/"
            },
            "site": {
                "name": "Real SEO Life",
                "url": "https://www.realseolife.com/"
            },
            "observed_at": "2026-10-28T14:17:45.803Z",
            "http_status": 200,
            "result": {
                "ok": true,
                "url": "https://www.realseolife.com/",
                "host": "www.realseolife.com",
                "temperature": 93,
                "band": "hot",
                "band_label": "Hot",
                "band_short": "Everything observable is in place.",
                "band_blurb": "Every signal a thermometer can see from outside is present. From here the work stops being technical and starts being editorial: what the page actually says, who else cites it, and whether it deserves the position it is asking for.",
                "readings": {
                    "search": {
                        "key": "search",
                        "label": "Search Visibility",
                        "question": "Can a search engine reach this page, index it, and work out what it is a result for?",
                        "weight": 30,
                        "temp": 100,
                        "band": "hot",
                        "band_label": "Hot",
                        "token": "temp-hot",
                        "failing": 0
                    },
                    "ai": {
                        "key": "ai",
                        "label": "AI Discoverability",
                        "question": "Can an AI answer engine retrieve this page and lift a usable answer out of it?",
                        "weight": 30,
                        "temp": 87,
                        "band": "hot",
                        "band_label": "Hot",
                        "token": "temp-hot",
                        "failing": 2
                    },
                    "technical": {
                        "key": "technical",
                        "label": "Technical Accessibility",
                        "question": "Can a machine get this page cleanly, quickly, and on the first try?",
                        "weight": 20,
                        "temp": 100,
                        "band": "hot",
                        "band_label": "Hot",
                        "token": "temp-hot",
                        "failing": 0
                    },
                    "entity": {
                        "key": "entity",
                        "label": "Content and Entity Strength",
                        "question": "Does this page say what it is, who published it, and why it should be believed?",
                        "weight": 20,
                        "temp": 84,
                        "band": "warm",
                        "band_label": "Warm",
                        "token": "temp-warm",
                        "failing": 2
                    }
                },
                "signal_count": 37,
                "words": 1833,
                "elapsed": 41,
                "redirects": 0,
                "bytes": 87623,
                "checked_at": "2026-10-28T14:17:47+00:00",
                "strengths": [
                    {
                        "label": "AI crawlers are allowed",
                        "detail": "robots.txt does not block the major AI crawlers.",
                        "reading": "AI Discoverability",
                        "weight": 16
                    },
                    {
                        "label": "Open to indexing",
                        "detail": "Nothing on the page or in its headers asks search engines to stay away.",
                        "reading": "Search Visibility",
                        "weight": 14
                    },
                    {
                        "label": "Content is in the HTML, not built by script",
                        "detail": "1833 words of text came back in the raw HTML response.",
                        "reading": "AI Discoverability",
                        "weight": 14
                    }
                ],
                "problems": [
                    {
                        "label": "Question and answer markup",
                        "detail": "No FAQ or QA markup was found.",
                        "reading": "AI Discoverability",
                        "weight": 6
                    },
                    {
                        "label": "Cites something outside itself",
                        "detail": "0 outbound links to other domains were found.",
                        "reading": "Content and Entity Strength",
                        "weight": 6
                    },
                    {
                        "label": "At least one heading asks a question",
                        "detail": "No subheading on the page is phrased as a question.",
                        "reading": "AI Discoverability",
                        "weight": 4
                    }
                ],
                "passing_count": 33,
                "failing_count": 4,
                "withheld_count": 1,
                "token": "4c5be73433c6205b",
                "share_url": "https://www.instantreadvisibility.com/reading/4c5be73433c6205b/",
                "badge_url": "https://www.instantreadvisibility.com/badge/4c5be73433c6205b.svg/"
            }
        }
    ],
    "refresh": "Submit the same exact homepage URLs to the same public checker APIs. Preserve this dated snapshot and publish a new one with timestamps and full public responses. Do not replace historical scores after page improvements. No contact, diagnostic-request or lead forms were submitted."
}
