Skip to content

Every signal we score, documented

Every signal the audit checks, in one place: what it measures, why it matters for AI citation, the fix when it’s missing, and its source. Use it as a working checklist.

This is the checklist. How much each signal counts toward the score is not published.

Five classes, 47 signals

Structure

How parseable your page is to an AI engine. Schema, headings, lists, tables, alt-text, OG meta. The substrate that makes everything else legible.

13 signals in this class

  1. Structural depth (GEO-SFE)

    structural-depth

    What
    Heading hierarchy + nested structure depth: H1→H2→H3 nesting that mirrors a real outline.
    Why
    arXiv:2603.29979 shows a +17.3% citation lift for pages with measurable structural depth vs flat documents.
    Fix
    Group your content under named H2 subsections. Use H3 for sub-points. Don't skip levels.
    Source
    GEO-SFE (arXiv:2603.29979) + Aggarwal et al., KDD 2024
  2. Internal linking

    internal-linking

    What
    Links from this page to other pages on your site, a signal of a navigable graph.
    Why
    AI crawlers expand context via internal links the same way they crawl. Isolated pages get under-indexed.
    Fix
    Add 5–10 internal links per page to related concepts, glossary terms, or supporting pages.
    Source
    Anthropic web-search retrieval docs
  3. Page weight

    page-weight

    What
    Total HTML size, lower is better. We flag pages over 500 KB.
    Why
    AI render bots have shorter timeouts than humans. Heavy pages get truncated or skipped.
    Fix
    Strip unused JS, defer below-the-fold images, kill render-blocking third-party scripts.
    Source
    Google SGE crawler docs
  4. JSON-LD presence

    json-ld-presence

    What
    Whether the page ships at least one schema.org JSON-LD block.
    Why
    Schema.org is the single highest-leverage signal for AI Overview eligibility: engines parse it before text.
    Fix
    Add at minimum an Organization or Article block. Our /tools/schema-generator outputs valid JSON-LD.
    Source
    Google SGE evaluation guide
  5. JSON-LD validity

    json-ld-validity

    What
    Whether the JSON-LD parses, has @context = schema.org, and a valid @type.
    Why
    Malformed JSON-LD is worse than absent: engines log a parse error and downrank trust.
    Fix
    Run your JSON-LD through Google's Rich Results Test before shipping.
    Source
    Google SGE evaluation guide
  6. JSON-LD type relevance

    json-ld-relevance

    What
    Whether the @type matches the page intent (Article on a blog, Product on a PDP, FAQPage on a FAQ).
    Why
    Wrong-type schema gets ignored: Article markup on a homepage is parsed as noise.
    Fix
    Pick the closest schema.org type for the page's actual content, not a generic catch-all.
    Source
    schema.org documentation
  7. FAQ schema

    faq-schema

    What
    FAQPage JSON-LD with at least 2 Q&A pairs.
    Why
    FAQPage is the highest single-type lift for AI Overview citations per Google's own SGE guidance.
    Fix
    Add FAQPage schema with 3–5 question/answer pairs that mirror real buyer queries.
    Source
    Google SGE evaluation guide
  8. H1 quality

    h1-quality

    What
    Exactly one H1, length 20–70 chars, contains a primary query token.
    Why
    AI engines treat H1 as the page's claim. Multiple H1s confuse the topical model.
    Fix
    One H1 per page, descriptive, 30–60 chars, includes the page's primary topic.
    Source
    Google SGE crawler docs
  9. H2 coverage

    h2-coverage

    What
    ≥3 H2 subsections that segment the content for skim-readability.
    Why
    AI engines extract H2s as section anchors. Pages without them are harder to summarize.
    Fix
    Break content into 3–6 H2 subsections, each addressing a sub-question.
    Source
    Aggarwal et al., KDD 2024
  10. Lists

    lists

    What
    ≥1 <ul> or <ol> with ≥3 items.
    Why
    Lists are the unit AI engines preferentially extract for 'how to X' and 'best Y' queries.
    Fix
    Convert at least one paragraph of enumerated reasons or steps into a real <ul>/<ol>.
    Source
    Aggarwal et al., KDD 2024
  11. Tables

    tables

    What
    ≥1 <table> with proper <thead>/<tbody> for structured data.
    Why
    Tables are the highest-extraction-rate format for comparison and spec-sheet queries.
    Fix
    If you have specs, prices, or comparisons, render them as real <table>s, not images.
    Source
    Aggarwal et al., KDD 2024
  12. Alt-text

    alt-text

    What
    ≥80% of <img> tags have non-empty alt attributes.
    Why
    Multi-modal engines (Gemini, Claude, GPT-4o) read alt-text as page semantic context.
    Fix
    Add descriptive alt to every meaningful image. Decorative images get alt="".
    Source
    Google SGE evaluation guide
  13. Open Graph metadata

    open-graph

    What
    og:title, og:description, og:image, og:type all present.
    Why
    AI engine link previews + social shares use OG meta as the citation card.
    Fix
    Add the 4 OG tags. Use 1200×630 og:image. Our /tools/og-checker validates them.
    Source
    Open Graph Protocol

Authority

Whether your page reads as authored by an expert, citing real sources. Bylines, citations, statistics, quotations, freshness, technical terms.

8 signals in this class

  1. Citation density

    citation-density

    What
    Inline citations per 1000 words (target ≥2).
    Why
    Pages that cite sources get cited as sources. Citation density is the strongest non-link authority signal.
    Fix
    Replace 'studies show' with 'a 2024 Stanford study (link)'. Specificity wins.
    Source
    GEO paper §4.2
  2. Statistic density

    statistic-density

    What
    Quantitative claims with numbers per 1000 words (target ≥3).
    Why
    AI engines preferentially cite content with measurable claims over hand-wavy text.
    Fix
    Add real numbers (percentages, dollar amounts, time durations) to your claims.
    Source
    Aggarwal et al., KDD 2024
  3. Direct quotations

    quotations

    What
    Inline <blockquote> or quoted attributions.
    Why
    Quotations imply primary research. They lift citation rates ~12% in the GEO paper test set.
    Fix
    Quote one customer, one expert, or one primary source per long page.
    Source
    GEO paper
  4. Author byline

    author-byline

    What
    A named author with at least a real name in the byline area.
    Why
    Anonymous content is treated as low-E-E-A-T. AI engines surface authored content.
    Fix
    Add 'By [Name]' at the top. Link to a real author bio page. Use Person schema.
    Source
    Google SGE + E-E-A-T docs
  5. Date markup

    date-markup

    What
    datePublished + dateModified in JSON-LD or <time datetime>.
    Why
    Engines penalize undated content as potentially stale. Dated content gets freshness scoring.
    Fix
    Add JSON-LD datePublished + dateModified, or a visible <time datetime> tag.
    Source
    Google SGE evaluation guide
  6. Freshness

    freshness

    What
    Date modified within the last 365 days.
    Why
    Stale content gets downranked for time-sensitive queries. Re-publishing dates resets the clock.
    Fix
    Refresh top pages at least annually. Bump dateModified when you do.
    Source
    Google freshness algorithm docs
  7. Technical term density

    technical-terms

    What
    Domain-specific terminology indicating real expertise vs surface-level writing.
    Why
    Pages that use precise technical vocabulary signal genuine expertise.
    Fix
    Use the field's actual technical language. Glossary-link or define the first occurrence.
    Source
    GEO paper §4.3

Content

Whether the page actually answers the buyer query directly, completely, and in the right register. BLUF, query coverage, sub-question coverage, readability.

11 signals in this class

  1. Direct answer to query

    direct-answer

    What
    Whether the buyer query appears answered in the first 200 chars.
    Why
    AI engines preferentially extract direct answers. Burying the answer = no citation.
    Fix
    Lead the page with a 1–2 sentence direct answer to the primary query. Then expand.
    Source
    GEO paper §3.2
  2. BLUF (Bottom Line Up Front)

    bluf-answer

    What
    A clear thesis statement in the first paragraph stating the page's main claim.
    Why
    BLUF is a military-doctrine writing style that dramatically improves AI extractability.
    Fix
    Open with 'The answer is X. Here's why.' Don't bury the lede.
    Source
    U.S. military writing doctrine + adopted by Anthropic prompt eng team
  3. Query token coverage

    query-coverage

    What
    Fraction of query tokens that appear in the page body (target ≥80%).
    Why
    Coverage is a baseline relevance signal: missing tokens means the page misses the query.
    Fix
    Make sure every meaningful query token appears at least once in body content.
    Source
    BM25 + cosine retrieval fundamentals
  4. Entity coverage

    entity-coverage

    What
    Named entities mentioned that match the query's entity space.
    Why
    AI engines build an entity graph per page. Missing related entities reduces topical authority.
    Fix
    If the page is about X, mention X's known related entities (people, places, products).
    Source
    Knowledge graph extraction literature
  5. Readability (Flesch)

    readability

    What
    Flesch Reading Ease score (target 50–70 for general audiences).
    Why
    Engines extract from content humans can read. Sub-30 (academic) and 80+ (childlike) both underperform.
    Fix
    Shorten sentences. Cut adverbs. Aim for 16-word average sentence length.
    Source
    Flesch (1948) + adapted by SGE
  6. Page length

    length

    What
    Word count in the main content (target 800–3000).
    Why
    Too short = thin; too long = engines truncate. Sweet spot is medium-long form.
    Fix
    If under 600 words, expand with examples + sub-sections. If over 4000, split into hub + spokes.
    Source
    Empirical GEO paper data
  7. Information density

    info-density

    What
    Ratio of substantive content to filler.
    Why
    Dense content gets preferentially cited. Engines model 'value per token' implicitly.
    Fix
    Cut throat-clearing sentences. Replace 'It is important to note that' with the actual point.
    Source
    Empirical GEO paper data
  8. Mega-page coverage

    mega-page-coverage

    What
    Whether the page covers multiple closely-related sub-topics under one URL.
    Why
    Mega-pages outrank thin pages on AI engines because they cover entity neighborhoods.
    Fix
    Consolidate 3 thin pages into one comprehensive page with H2-segmented sub-topics.
    Source
    Ahrefs research + Cleartopic.io
  9. YouTube embed

    youtube-embed

    What
    Embedded YouTube video alongside the article.
    Why
    Multi-modal engines weight pages with on-topic video. 0.737 correlation with citation rate.
    Fix
    Create or embed a 2–4 minute video on the page topic. Mark up with VideoObject schema.
    Source
    Ahrefs 2025 study
  10. Sub-query coverage

    sub-query-coverage

    What
    Fraction of decomposed sub-questions answered in body content.
    Why
    Engines decompose seed queries into 4–6 sub-queries (Profound 'fanouts'). Missing answers = missing citations.
    Fix
    Add a Q&A section that explicitly addresses the top 5 sub-questions for your topic.
    Source
    Profound Query Fanouts methodology
  11. In-line definitions

    definitions

    What
    First-mention terms defined inline ('X (definition…)').
    Why
    Defined-in-place pages get cited as glossary sources. AI engines preferentially link to them.
    Fix
    Define the key 3–5 terms on first use, in-line.
    Source
    Stanford NLP citation extraction work

Trust

Crawl-time + share-time trust signals: HTTPS, canonical, viewport, AI-bot access via robots/llms.txt, Twitter card, meta description.

7 signals in this class

  1. AI bot access (robots.txt)

    ai-bot-access

    What
    Whether robots.txt explicitly addresses GPTBot/ClaudeBot/PerplexityBot.
    Why
    Default-allow gets you crawled, but explicit allow signals intent + unlocks niche AI bots.
    Fix
    Add User-agent: GPTBot/ClaudeBot/OAI-SearchBot/PerplexityBot rules to robots.txt.
    Source
    OpenAI / Anthropic / Perplexity bot docs
  2. llms.txt presence

    llms-txt-presence

    What
    Whether /llms.txt exists per the llmstxt.org proposal. Informational only: it carries no weight in the score.
    Why
    SE Ranking's study of ~300,000 domains (Nov 2025) found llms.txt doesn't affect how AI systems see or cite pages, so it isn't scored.
    Fix
    Optional. If you want one, generate it with the /audit/llms-txt tool and add it to the site root.
    Source
    llmstxt.org proposal; SE Ranking llms.txt study (Nov 2025)
  3. HTTPS

    https

    What
    Site responds correctly over TLS without mixed content.
    Why
    AI crawlers refuse to crawl mixed-content pages. HTTPS is table stakes.
    Fix
    Migrate to HTTPS. Force redirect with HSTS. Fix mixed-content warnings.
    Source
    Web standards + Google ranking docs
  4. Canonical URL

    canonical

    What
    <link rel=canonical> pointing to the page's preferred URL.
    Why
    Without canonical, AI engines may split citations across duplicate URLs and downrank each.
    Fix
    Add <link rel=canonical href=…> to every page. Self-canonical on canonical pages.
    Source
    Google canonical docs
  5. Viewport meta

    viewport

    What
    <meta name=viewport content=…> present.
    Why
    Mobile rendering signal: AI crawlers favor mobile-first content.
    Fix
    Add <meta name=viewport content="width=device-width, initial-scale=1">.
    Source
    Google mobile-first indexing docs
  6. Twitter card

    twitter-card

    What
    <meta name=twitter:card> + twitter:image present.
    Why
    AI engines fall back to Twitter card on platforms without OG support.
    Fix
    Add twitter:card=summary_large_image + twitter:image (can reuse og:image).
    Source
    X (Twitter) card docs
  7. Meta description

    meta-description

    What
    <meta name=description> with 80–160 chars of summary text.
    Why
    AI engines use meta description as a primary summary candidate when generating cites.
    Fix
    Write a 130-char meta description for every page. Include the primary query.
    Source
    Google docs + SGE evaluation guide

E-E-A-T

Google's framework for Experience, Expertise, Authoritativeness, Trustworthiness. First-person evidence, case studies, author credentials, brand entity in Wikidata, press mentions, privacy policy, contact info.

8 signals in this class

  1. First-person evidence

    first-person

    What
    First-person language indicating real experience ('we tested', 'I built').
    Why
    Google's E-E-A-T update prioritizes lived experience. First-person signals it.
    Fix
    Use first-person sparingly but precisely: 'we tested', 'in our experience', 'I found that…'.
    Source
    Google E-E-A-T quality rater guidelines
  2. Case study evidence

    case-study-evidence

    What
    Named customer outcomes, numbers, or before/after evidence in-line.
    Why
    Case studies are the highest-conversion E-E-A-T signal: prove it, don't just claim it.
    Fix
    Name one customer. Quote one outcome with numbers. 'We helped X go from Y → Z.'
    Source
    Google E-E-A-T guidelines
  3. Author credentials

    author-credentials

    What
    Author has visible credentials: years of experience, prior role, education, certifications.
    Why
    Anonymous bylines fail E-E-A-T. Credentialed authors get treated as expert sources.
    Fix
    Each author page lists credentials, prior roles, years in field, links to LinkedIn/Twitter.
    Source
    Google E-E-A-T guidelines (Quality Rater Guidelines §3.2)
  4. Byline depth

    byline-depth

    What
    Byline links to a real author bio page with sufficient detail.
    Why
    Byline → bio page → credentialed author chain is the E-E-A-T graph engines trace.
    Fix
    Make every byline link to /authors/[name] with bio, photo, credentials, prior work.
    Source
    Google E-E-A-T guidelines
  5. Brand entity in Wikidata

    brand-entity

    What
    Brand has a Wikidata entity (Q-number) that AI engines can dereference.
    Why
    Wikidata is the canonical entity database: engines use it to validate brand identity. No entity = no trust anchor.
    Fix
    Get a Wikidata entry: requires 2–3 press mentions as citations. Submit at wikidata.org.
    Source
    Wikidata + knowledge graph literature
  6. Press mentions

    press-mentions

    What
    References to or links from top-tier press (NYT, WaPo, Bloomberg, FT, etc.).
    Why
    Press mentions transfer authority across the citation graph and validate brand entity claims.
    Fix
    Earn press. Display logos. Link back to the original article (not your case study).
    Source
    Empirical brand-citation research
  7. Privacy + terms

    privacy-terms

    What
    Linked privacy policy + terms of service from every page.
    Why
    YMYL (Your-Money-Your-Life) categories require these, and engines treat them as legitimacy signals everywhere.
    Fix
    Footer-link privacy and terms on every page. Real pages, not coming-soon stubs.
    Source
    Google YMYL + E-E-A-T guidelines
  8. Contact info

    contact-info

    What
    Real contact info: email, phone, or address visible on the page or linked /contact.
    Why
    Anonymous brands fail E-E-A-T. Real contact info signals real entity behind the content.
    Fix
    Add an email + physical address (real or registered office) to the footer.
    Source
    Google E-E-A-T guidelines

Score your page on all 47

This page is the documentation. The free audit runs the rubric against your real HTML.

Run a free audit