Because "my page is probably fine for AI crawlers" is not an SEO strategy.
A lightweight, no-nonsense browser extension that instantly audits any webpage for GEO (Generative Engine Optimization), SEO basics, LLM readability, and structured data — directly in your browser, no account required, no data leaving your machine.
Available for Chrome and Firefox. Install once, audit everything.
| Browser | Link |
|---|---|
| 🦊 Firefox | addons.mozilla.org/addon/geo-page-audit |
| 🌐 Chrome | Chrome Web Store (coming soon) |
Or load it manually — see Development Setup below.
- Title tag & meta description length (is it too short? too long? just right?)
- H1 and H2 heading structure — because "Welcome to Our Website" as your only H1 is not it
- Text-to-code ratio estimation
- Detects JS-heavy frameworks (React, Vue, Angular) that AI crawlers tend to struggle with
- Helps you gauge how accessible your content actually is to LLM-based search engines
- Validates JSON-LD schema markup
- Checks for Open Graph & Twitter/X Cards
- Flags missing or broken structured data that could hurt your AI visibility
- Navigate to any webpage
- Click the 🤖 extension icon in your toolbar
- Hit Analyze This Page
- Get an instant breakdown with actionable suggestions
- Use Copy JSON to export the results for further analysis or reporting
That's it. No login. No tracking. No "upgrade to Pro for full results."
The extension requests the absolute minimum:
activeTab— temporary access only to the tab you explicitly choose to analyzescripting— reads the already-rendered DOM of the active page
No background snooping. No persistent host permissions. No analytics phoning home.
- Clone this repository
- Open
chrome://extensions/ - Enable Developer mode (top right)
- Click Load unpacked → select the
extension/folder
- Run
node scripts/package-extension.mjs --browser=firefox - Open
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on
- Select
dist/firefox/manifest.json
The Firefox build adds a stable Gecko ID,
browser_specific_settings.gecko.data_collection_permissions, and intentionally omitshost_permissionsto comply with AMO requirements.
geo-llmo-audit-chrome-ext/
├── extension/
│ ├── audit/
│ │ └── runAudit.js — Core scraping, DOM analysis & scoring logic
│ ├── popup.html / popup.js — Extension UI
│ ├── popup.css — Styles
│ ├── background.js — Service worker
│ ├── manifest.json — Cross-browser dev manifest
│ ├── manifest.chrome.json — Chrome release manifest
│ └── manifest.firefox.json — Firefox release manifest
├── scripts/
│ └── package-extension.mjs — Build script for browser-specific packaging
├── dist/ — Generated release folders (gitignored)
│ ├── chrome/
│ └── firefox/
├── docs/
│ └── release/
│ └── firefox-amo.md — AMO submission notes
└── tests/ — Unit tests
# Generate browser-specific dist folders
node scripts/package-extension.mjs --browser=chrome
node scripts/package-extension.mjs --browser=firefoxThis produces:
dist/chrome/— ready for Chrome Web Store submissiondist/firefox/— ready for AMO submission (review notes indocs/release/firefox-amo.md)
npm testUnit tests cover scoring logic, structured data detection, basic SEO checks, and DOM parsing.
- Basic SEO checks (title, meta, headings)
- LLM readability analysis
- Structured data detection (JSON-LD, OG, Twitter Cards)
- JSON export
- Firefox / AMO support
- Chrome Web Store listing
- Score history / comparison across page versions
- More GEO-specific checks (FAQ schema, citation signals, etc.)
PRs welcome. If you find a GEO signal worth checking that isn't covered yet — open an issue or just send the PR. The audit logic lives in extension/audit/runAudit.js and is deliberately self-contained and easy to extend.
MIT — use it, fork it, build on it.
Current version: 0.1.2