TL;DR: I built EchoRank — a free toolkit for checking how visible your website is to AI search engines like ChatGPT, Perplexity, and Gemini. Here's what I learned building the GEO Checker, what signals actually matter, and why traditional SEO is no longer enough.
The problem I kept running into
A client came to me with a familiar complaint: their Google rankings were fine — top 3 for most of their target keywords. But their sales team was noticing something strange. Prospects were saying "I asked ChatGPT about [product category] and you weren't mentioned."
I started digging. Turns out, ranking on Google doesn't automatically mean you get cited by AI search engines. ChatGPT, Perplexity, and Gemini pull from a different set of signals — schema markup, semantic structure, citation patterns, authority in their training data — and many well-ranked sites are essentially invisible there.
I couldn't find a tool that measured this. So I built one.
What is GEO (Generative Engine Optimization)?
GEO stands for Generative Engine Optimization — the practice of optimizing your content so AI-powered answer engines cite, quote, and reference your site.
Traditional SEO optimizes for: keyword density, backlinks, page speed, Core Web Vitals.
GEO optimizes for:
- Semantic clarity — Is your content unambiguous enough for an LLM to extract facts from?
- Structured data — Do you have JSON-LD schema that AI crawlers can parse?
- Citation authority — Are other authoritative sources already referencing you?
- llms.txt — Have you published a machine-readable summary of your content for AI engines?
- E-E-A-T signals — Author credentials, organizational trust signals, sourced claims
- Answer-shaped content — Does your content directly answer questions, or just rank for them?
Building the GEO Checker: technical deep dive
The GEO Checker runs a multi-layer analysis on any URL. Here's how it works under the hood.
Stack
- Next.js 15 App Router — server components for the page, client component for the form UI
-
TypeScript — everything is typed, especially the
CheckResultandToolScanResulttypes - postgres.js — lightweight Postgres client connected to a pgvector-enabled Postgres 18 instance
- Tailwind CSS v4 + shadcn/ui — UI components
What checks does it run?
The GEO Checker evaluates 12+ signals across 4 categories:
1. Structured Data (Schema.org)
- Detects JSON-LD presence and type (
Article,Organization,FAQPage,HowTo, etc.) - FAQPage and HowTo schemas are especially valuable
- Validates that structured data is parseable
2. Content Semantics
- Heading hierarchy analysis
- Presence of direct-answer patterns
- Paragraph length distribution
- Internal link anchor text quality
3. AI Crawler Signals
-
robots.txtanalysis — are GPTBot, ClaudeBot, PerplexityBot blocked? -
llms.txtdetection - Open Graph and Twitter Card completeness
- Canonical tag presence
4. Authority & Trust Signals
- HTTPS enforcement
- Author markup
- Organization schema with
sameAslinks - Date freshness signals
What I learned from thousands of scans
Most commonly missing signals:
-
llms.txt— less than 2% of sites have it - Author schema — missing on ~80% of blog posts
- FAQPage markup — used by <5% of content sites
-
dateModified— sites update content but don't update the schema date
The highest-impact single change: Adding FAQPage JSON-LD to existing content. AI engines love structured Q&A pairs — they map directly to the format AI answers are generated in.
Try it free
All tools on EchoRank are free to use:
- GEO Checker — AI search visibility score
- llms.txt Generator — Auto-generate your AI content summary
- AI Citation Gap Analyzer — See where your brand is missing from AI answers
- Agentic UX Auditor — Grade your site's readiness for AI agents
- ROI & PPC Calculator — SEO and paid campaign ROI simulator
Happy to answer questions about the data or technical implementation in the comments!
Top comments (0)