Skip to content

GEO Audit

GEO Audit checks how ready your website is for search engines and AI discovery. Every newly audited page uses the same deterministic technical SEO checklist. These checks do not use AI and do not change based on page type.

The Pages table also runs a saved technical crawl across every discovered page. This crawl does not use AI and does not consume a monthly page check. It collects observable page facts such as response status, indexability, slug, page title, meta description, H1 and H2 headings, canonical URL, word count, crawl depth, inlinks, outlinks, image alt coverage, duplicate content signals, and technical issues.

Opening GEO Audit loads the latest saved result for the selected brand. Returning later, switching pages, or refreshing the app does not start another page audit. If a real audit job is still running, ReachLLM resumes its progress while keeping the last saved results available. If the Pages table has no current saved crawl, or its discovered URL list changed, ReachLLM starts one free deterministic crawl and saves it for future visits.

Select Run GEO Audit for a brand that has no saved audit, or Re-run Audit when you deliberately want fresh page-scoring evidence. Keyword changes, Mark Fixed, scheduled audits, and explicit Agent actions can also check pages again. Simply opening GEO Audit never creates a page-scoring job or consumes another page allowance.

Each core check is worth one equal point. Severity helps you prioritize work, but it never changes the point value.

Without a page topic or keyword, the score uses only checks that can be verified from the page itself:

Passed technical checks / technical checks evaluated × 100, rounded to the nearest whole number

Open a checked page to see its technical percentage, passed and failed checks, evaluation time, threshold, measured evidence, explanation, and fix. The Pages table stays focused on crawl facts and a compact technical issue count.

If you choose an optional topic or keyword for that page, ReachLLM runs the page again and publishes a topic score that includes both the technical checks and the topic-dependent checks.

A historical audit that does not contain current core issue evidence keeps its original score and is labeled Legacy. Re-audit the page to calculate core issues. ReachLLM never converts an old issue name into a current pass.

Website configuration and product page scope

Section titled “Website configuration and product page scope”

Site Configuration is the main website-wide section. It checks the origin root for files and settings that apply to the whole website, including robots.txt, llms.txt, XML sitemaps, HTTPS, crawler access, structured data, accessibility, and performance.

When a brand is configured with a product path such as example.com/product, ReachLLM keeps the scopes separate:

  • Website-wide configuration is checked at example.com.
  • Page discovery includes example.com/product and pages below that path.
  • Unrelated pages elsewhere on example.com are not added to the product audit.

Returning to a saved audit does not run completed page checks again. If an older saved audit contains only its starting page, ReachLLM repairs the page inventory from the current sitemap and keeps completed page evidence unchanged. Discovered pages are listed as unaudited until you explicitly audit them.

The saved technical crawl is separate from optional page checks. ReachLLM starts or refreshes the crawl after sitemap discovery, stores each page row, and restores those rows when you return later. Select Refresh crawl only when you want fresh page facts. A crawl can cover up to 500 discovered pages and does not call an AI model.

You do not need to add a topic or keyword to receive a technical score. ReachLLM hides topic-dependent checks until you choose to run them for a specific page.

Open a page, enter an optional topic or keyword, and select Check topic. ReachLLM saves that value to the page, normalizes spacing and Unicode for comparison, and checks only that page again. Existing-page checks do not consume another page from the monthly allowance.

Keyword resolution follows this order:

  1. A target keyword explicitly saved for the page.
  2. The page's existing Page Optimizer target keyword.
  3. A brand research keyword already mapped to that page.

ReachLLM does not guess a keyword from the URL, title, H1, page copy, or brand name. Those elements are evidence being tested, so using them to invent the target would make the result circular.

When no topic is available, topic-dependent checks are skipped and hidden. They are not shown as missing, failed, or incomplete. The technical score continues to reflect only the checks that do not need a topic. Changing or clearing a saved topic queues a fresh page check, and the current result remains visible until that new run can start and finish.

  • Accessible to Search Engines: the final response is HTTP 200, robots.txt allows the final path, no applicable meta robots or X-Robots-Tag directive contains noindex or none, no meta refresh exists, and any canonical points to the final page itself.
  • Avoid Keyword Stuffing in Page Title: the exact target keyword appears no more than 2 times in the title.
  • Avoid Multiple Page Title Elements: exactly 1 title element exists.
  • Only One Canonical URL: exactly 1 canonical element contains a valid HTTP or HTTPS URL.
  • Exact Keyword Used in Document at Least Once: the exact target keyword appears at least once in visible page text.
  • Sufficient Characters in Content: visible text contains at least 300 non-space characters.
  • Sufficient Words in Content: visible text contains at least 50 words.
  • Avoid Keyword Stuffing in Document: the page fails only when the exact target keyword appears at least 4 times and its keyword tokens exceed 3% of visible words.
  • Broad Keyword Use in Page Title: the title contains the exact target keyword or a close singular or plural form.
  • Minimize URL Length: the final URL is 75 characters or fewer and contains fewer than 3 path subfolders.
  • Avoid Too Many Internal Links: the page contains fewer than 100 resolved same-site links.
  • Exact Keyword is Used in Page Title: the exact target keyword appears at least once in the title.
  • Keyword Placement in Page Title: the exact target keyword starts within the first 3 title words.
  • Optimal Page Title Length: the title contains 1 to 60 characters.
  • Use Keywords in your URL: the path contains the target keyword, with hyphens between words for a multi-word keyword.
  • Use Static URLs: the final URL has no query string.
  • URL Uses Only Standard Characters: the decoded URL uses letters, numbers, colons, forward slashes, commas, plus signs, exclamation points, periods, hyphens, ampersands, hashes, question marks, and equals signs.
  • Use Meta Descriptions: at least 1 non-empty meta description exists.
  • Keywords in the Meta Description: the exact target keyword appears from 1 to 3 times in the first meta description.
  • Optimal Use of Keywords in Header Tags: the exact target keyword starts within the first 10 H1 words and appears from 1 to 2 times across all H1 elements.
  • Keywords in Image Alt Attribute: at least 1 image alt value contains the exact target keyword.
  • Use External Links: at least 1 external link has anchor text or a URL related to the exact target keyword.
  • Avoid Keyword Stuffing in the URL: the exact target keyword appears no more than once in the final URL path.
  • Only One Meta Description: exactly 1 meta description element exists.
  • Optimal Meta Description Length: the first meta description contains from 55 to 300 characters, inclusive.
  • Includes a Rel Canonical Tag: at least 1 canonical element contains a non-empty valid HTTP or HTTPS URL.
  • Avoid Too Many External Links: the page contains fewer than 150 followed external links.

If the page document or final URL cannot be verified, affected factors fail closed or become unavailable. ReachLLM never turns unavailable evidence into a pass.

Open a page to review every applicable core check in source-of-truth order. Each issue includes its measured evidence, expected threshold, explanation, and fix guidance. Passed checks remain visible. Topic-dependent checks appear only after you choose a topic or keyword for that page.

Large audits load page summaries in batches. Use Load more pages to continue through the audit without making the browser render thousands of rows at once. PDF exports summarize up to 100 loaded pages and include detailed failed-issue evidence for up to 20 pages. The PDF states its scope and reports any page detail that could not be loaded. CSV and PDF filenames use the saved audit date, including when you open and export a historical audit later.

Select Mark Fixed to re-fetch the live page and run the complete deterministic evaluator again. ReachLLM identifies the factor by its stable factor ID, then refreshes both the page detail and site aggregate. Clicking the button cannot mark a factor passed without new page evidence.

Core issues are separate from supplementary GEO findings. Existing checks for site-wide health, schema, content quality, trust, PageSpeed, Google Search Console, Bing Webmaster Tools, llms.txt, AI crawler access, and other recommendations remain available. They may use provider data or AI where appropriate, but they cannot add points to or remove points from the core issue score.

The historical Overall GEO health, supplementary technical score, and supplementary content score remain available for continuity. They are labeled separately and keep their previous calculation semantics.

The Pages table is a compact technical inventory. It shows:

  • Page URL and slug
  • HTTP response and direct indexability
  • Page title and character count
  • Meta description and character count
  • H1 and H2 values and counts
  • Word count, crawl depth, inlinks, and outlinks
  • Deterministic technical issue count and last crawl time

Indexability in this table comes from the live page response, robots rules, page directives, and canonical evidence. It does not claim that Google has indexed the page. The former Google index column is no longer shown because provider inspection results were not reliable enough to serve as the page inventory.

Google Search Console remains optional. When connected, ReachLLM adds page clicks as context without changing technical crawl results.

Already-audited pages appear first by default. Select Audit on any remaining page when you want its optional page score and detailed checks.

Drag the thin rule at the right edge of a column heading to make that column narrower or wider. Your column widths are saved in that browser. The resize controls also support the left and right arrow keys, and double-clicking a rule restores that column's default width. Hover over a shortened title, meta description, H1, or H2 cell to read its complete value.

Select Export all to download every saved crawl row, not only the pages currently visible in the table. The CSV includes H2 values, canonical URLs, images missing alt text, issue names, and the other fields shown in the supplied site-audit format. Export does not require every page to have an optional page check.

Use severity to decide what to fix first. It does not change the equal point value of each core check.

When WordPress, GitHub, Webflow, or Shopify is connected in Account > Integrations > Content & CMS, ReachLLM can help push supported fixes through the connected publishing path. Each platform exposes different write surfaces, so the agent checks connection capabilities before making changes.

GEO audits do not spend execution credits. They are metered by unique pages audited per month against your plan's page limit. Auditing the same page again in the same period does not count a second time, so verification and keyword-driven re-audits do not consume another page from the monthly allowance. The count resets at the start of each billing period.

Selected-plan trials and complimentary access receive the full page allowance of the displayed plan. When no new page audits remain, ReachLLM keeps existing results available, blocks the next new page, and offers an upgrade through Account > Billing.

  • Optionally add a page topic or keyword when you want topic-specific checks.
  • Fix core issues, then verify them against the live page.
  • Connect WordPress, GitHub, Webflow, or Shopify for publishing actions.
  • Connect Google Search Console when you want page click context.
  • Re-run the audit after fixes to confirm progress.