See how we reach each conclusion.
Public rules, traceable evidence and clear limitations.
A score you can understand.
The technical score is Geosento's assessment of the scanned sample. It is not an official search engine score and does not estimate the probability of citations in AI responses.
Evidence before conclusions
We retain the URL, observed response and excerpts supporting each finding.
No assumed results
A check that cannot be performed remains unverified. We do not mark it as passed.
A defined role for AI
AI observations are editorial assessments and do not change the technical score.
How we calculate the technical score
Weights are defined by Geosento and are not official ranking factors.
- For each category, we add the weights of scored checks that passed.
- We divide by the weights of all scored checks with a confirmed pass or issue.
- We combine available scores using category weights. Categories without scored checks are excluded and the remaining weights are normalised.
- Not applicable and unverified results are excluded from the calculation. If access fails, pages are blocked, scored checks remain unknown or processing is interrupted, the available score is labelled provisional and covers only completed checks. We do not invent a score when no pages or scored checks have been evaluated.
In the current version, clarity and identity observations are contextual and do not affect the score. Page limits are shown separately; a sample score is not a score for the entire website.
An llms.txt file, a particular word count or a specific schema.org type are not universal GEO requirements. Training and search crawler policies are assessed separately.
Check catalogue 23
Each rule explains what it checks and what the result can support.
Page HTTP responseAccess and indexability · http.responseScored
Checks whether the page returns a successful HTTP status.
Recommendation: Check the server response and URL availability.
HTTPS connectionAccess and indexability · http.httpsScored
Checks whether the final URL uses HTTPS.
Recommendation: Enable HTTPS with a valid certificate and redirect HTTP URLs.
Index exclusion directiveAccess and indexability · index.noindexScored
Identifies general or Googlebot/Bingbot-specific noindex/none directives, including headers on non-HTML resources. Evidence retains the agent; it does not confirm actual indexing.
Recommendation: Confirm the intention: keep noindex for private pages or pages without public value; remove it only if the page should be indexed.
Snippet display restrictionsAccess and indexability · index.snippetScored
Identifies general or Googlebot/Bingbot-specific nosnippet or max-snippet:0 directives. Does not assume identical behaviour across all AI products.
Recommendation: Check whether snippet restrictions are intentional before changing them.
The page could not be checkedAccess and indexability · crawl.fetchContextual
A collection error is an unverified result, not evidence that AI search engines are blocked.
Recommendation: Check page availability and repeat the scan.
Geosento robots.txt policyAccess and indexability · crawl.robotsContextual
The scanner respects the rules applicable to its own crawler.
Recommendation: Review the policy only if you want Geosento to analyse these URLs.
Declared crawler policiesAccess and indexability · crawl.bot_policyContextual
Evaluates robots.txt rules per agent. Declared permission does not confirm access from the provider's infrastructure.
Recommendation: Check the intended policy and any CDN/WAF rules. Blocking training is separate from search access.
The robots.txt policy could not be determinedAccess and indexability · crawl.robots_unavailableContextual
Server or network errors prevent reliable verification of the access policy.
Recommendation: Check robots.txt and repeat the scan after resolving the issue.
XML sitemapDiscovery and navigation · discovery.sitemapContextual
Reports the presence and validity of the checked sitemap. Its absence does not prove that pages cannot be discovered.
Recommendation: For websites with many pages, publish a valid sitemap with relevant canonical URLs.
Internal links to missing pagesDiscovery and navigation · discovery.broken_linkScored
Identifies 404/410 destinations only among URLs actually checked.
Recommendation: Update or remove links to missing pages; use a relevant redirect when a replacement exists.
Declared canonical URLDiscovery and navigation · discovery.canonicalContextual
Reports the canonical; its absence is a contextual observation, not automatic exclusion.
Recommendation: Declare a consistent canonical if duplicate versions of the page exist.
Canonical destination unavailableDiscovery and navigation · discovery.canonical_targetScored
Checks the canonical destination only if it was collected in the same scan.
Recommendation: Update the canonical to the correct, available page intended for indexing.
Identical main contentDiscovery and navigation · discovery.duplicateContextual
Identifies identical text across URLs; pages explicitly consolidated to the same destination are treated separately.
Recommendation: Check whether URLs should be consolidated or pages need distinct content.
Page titleStructure and data · structure.titleScored
Checks whether the document has a text title.
Recommendation: Add a descriptive, page-specific title consistent with the actual offering.
Main content headingStructure and data · structure.headingsContextual
Reports whether an H1 exists. Does not impose an arbitrary heading count.
Recommendation: Use a clear main heading for readers and organise sections logically.
Available text contentStructure and data · structure.textScored
Checks for main text in the analysed representation, without arbitrary length thresholds.
Recommendation: Make important information available as text; check JavaScript rendering if the initial HTML is empty.
JSON-LD syntaxStructure and data · structure.schema_jsonScored
Checks whether existing JSON-LD blocks can be parsed as JSON. Does not certify complete schema.org validity or rich result eligibility.
Recommendation: Correct the JSON-LD syntax, then validate the relevant type and properties.
Detected structured dataStructure and data · structure.schema_presenceContextual
Lists existing JSON-LD types. There is no universally required GEO markup.
Recommendation: Add structured data only where it accurately describes visible information and the actual page type.
Changes after JavaScript renderingStructure and data · structure.renderContextual
Compares text and directives between HTML and the DOM rendered in Geosento.
Recommendation: Investigate content or directives that appear, disappear or change after JavaScript execution.
Image text alternativesStructure and data · structure.image_altContextual
Identifies images without an alt attribute; empty alt is accepted for decorative images.
Recommendation: Describe informative images; keep alt empty for decorative images.
Page descriptionClarity and identity · content.descriptionContextual
Reports whether a meta description exists, without treating it as a requirement for AI inclusion.
Recommendation: Write an accurate, useful description when it helps present the page.
Document languageClarity and identity · content.languageContextual
Checks whether the language is declared in the lang attribute.
Recommendation: Declare the actual page language in the html element.
Contact or about pageClarity and identity · content.identityContextual
Looks for relevant pages only in the collected sample and its links; does not verify business authenticity.
Recommendation: Make your actual identity and contact details easy to find.