How does XEO Agent group these checks?

XEO Agent groups on-page checks into SEO, AEO, and GEO, plus a Technical group for transport-level problems and an optional Local group for LocalBusiness pages. Each check reads a specific tag, header, or count from the delivered HTML. When a check fails, the app records a finding with a code, a severity, the evidence it saw, and a recommendation. The tables below use the same codes.

Which crawl and SEO checks are included?

These checks decide whether a search engine can fetch, index, and understand the page. They feed the SEO technical and on-page scores.

CheckWhy engines carePass ruleFinding when it fails
HTTP statusError pages are dropped from the indexStatus below 400HTTP_STATUS
HTTPSInsecure pages are demoted and warned aboutURL scheme is httpsHTTPS_MISSING
RedirectsRedirect chains waste crawl budget and split signalsAudited URL is served directlyURL_REDIRECTED
Response timeSlow HTML delays crawling and renderingUnder 3,000 msRESPONSE_SLOW
HTML sizeOversized documents may be truncatedUnder 1.5 MBHTML_OVERSIZED
Content typeMissing type forces the crawler to guessContent-Type header presentCONTENT_TYPE_MISSING
TitlePrimary ranking and snippet textPresent, 10 to 70 charactersTITLE_MISSING, TITLE_LENGTH
Meta descriptionSnippet text and click-throughPresent, 70 to 160 charactersMETA_DESCRIPTION_MISSING, META_DESCRIPTION_LENGTH
CanonicalPrevents duplicate indexingAbsolute canonical URL presentCANONICAL_MISSING, CANONICAL_INVALID
Robots directivesA noindex removes the page entirelyNo noindex in meta robots or X-Robots-TagINDEXING_BLOCKED
ViewportMobile-first indexingwidth=device-width presentVIEWPORT_MISSING
Language and charsetCorrect parsing and language targetinglang attribute and charset declaredHTML_LANG_MISSING, CHARSET_MISSING, CHARSET_CONFLICT
H1Primary topic signalExactly one H1H1_MISSING, H1_MULTIPLE
Heading orderStructure for readers and extractorsNo skipped levels, such as H3 without H2HEADING_HIERARCHY
Internal linksCrawl paths and authority flowAt least one internal linkINTERNAL_LINKS_MISSING
Link textAnchor text describes the targetNo links without textLINK_TEXT_MISSING
Image alt textAccessibility and image indexingEvery image has altIMAGE_ALT_MISSING
Content depthThin pages rarely rank or get cited300 or more words of body textCONTENT_THIN
Open GraphSocial previews and some AI summariesog:title, og:description, og:image presentOPEN_GRAPH_INCOMPLETE
Client renderingCrawlers that do not execute JavaScript see an empty pageMeaningful text in the source HTMLCLIENT_RENDERED_SUSPECTED

On site crawls the app adds site-level checks: SITEMAP_MISSING, SITEMAP_COVERAGE_GAP, CANONICAL_CONFLICTS, DUPLICATE_TITLES, DUPLICATE_CONTENT, and ORPHAN_PAGES. Coverage is automatic: there is no page-count setting, and the audit stops after 30 minutes if it has not finished. Saved results show the pages checked and any coverage limits.

Which answer-engine (AEO) checks are included?

These checks decide whether an answer engine can lift a direct answer from the page. They feed the AEO schema, answer patterns, and entity coverage scores.

CheckWhy engines carePass ruleFinding when it fails
Structured data presentMachine-readable entities and answersAt least one JSON-LD blockSTRUCTURED_DATA_MISSING
Structured data validBroken JSON is ignoredEvery JSON-LD block parsesSTRUCTURED_DATA_INVALID
Stable identifiersLets engines merge the same entity across pagesSchema uses @idSCHEMA_ID_MISSING
Question-led headingsMatches how people askAt least one H2 or H3 that ends in ? or starts with what, why, how, when, where, who, which, can, does, do, is, are, or shouldANSWER_STRUCTURE_MISSING
FAQ schemaQ&A content is eligible for rich resultsPages with question headings declare FAQPageFAQ_SCHEMA_OPPORTUNITY
Answer formatsLists and tables are the most extracted blocksAt least one list or tableANSWER_FORMAT_LIMITED
Entity contextEngines need enough surrounding text to trust the answer300 or more words, ideally with external linksENTITY_CONTEXT_LIMITED

The app scores answer patterns on a scale: no question headings scores 25, one scores 60, two or three score 80, four or more score 100, with a 10 point bonus for a list or table.

Which citation (GEO) checks are included?

These checks decide whether a generative engine can attribute a claim to the page. They feed the GEO extractability, entity clarity, and source quality scores.

CheckWhy engines carePass ruleFinding when it fails
Self-contained passagesEngines quote a passage, not a pageQuestion-led headings followed by text, plus 300 or more wordsLowers extractability score
External referencesClaims with sources are cited more oftenAt least one outbound linkEXTERNAL_EVIDENCE_MISSING
Quotations and citationsNamed quotes are quotableAt least one cite or blockquote elementLowers source quality score
AuthorProvenance is a trust signalmeta name="author" or author, publisher, or organization in schemaSOURCE_PROVENANCE_MISSING
DateFreshness and recency filterstime datetime, article:published_time, article:modified_time, or datePublished or dateModified in schemaSOURCE_PROVENANCE_MISSING
Entity linkingConnects the page to profiles engines already knowsameAs in schemaLowers entity clarity score

Which items are not checked yet?

XEO Agent does not currently score llms.txt, markdown alternates, per-crawler robots.txt groups, hreflang, or the word count of the passage directly under a heading. Those are good practice and this site follows them, but the app does not report on them in the current release. See the changelog for rubric changes.

How should you use this checklist?

Run a single-page audit on the page you care about. Fix the Error and Warning findings first, since those map to the pass rules above. Re-run the audit to confirm the finding is gone. Repeat on your highest-traffic pages, or run a site crawl to see the same checks across the whole site.