<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: fsakbas</title>
    <description>The latest articles on DEV Community by fsakbas (@fsakbas).</description>
    <link>https://dev.to/fsakbas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F633317%2F20227b3d-4005-4f3e-a03a-313a23c94a36.png</url>
      <title>DEV Community: fsakbas</title>
      <link>https://dev.to/fsakbas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fsakbas"/>
    <language>en</language>
    <item>
      <title>How I Built a Free GEO Checker That Scores Your Website's AI Search Visibility</title>
      <dc:creator>fsakbas</dc:creator>
      <pubDate>Tue, 23 Jun 2026 13:10:06 +0000</pubDate>
      <link>https://dev.to/fsakbas/how-i-built-a-free-geo-checker-that-scores-your-websites-ai-search-visibility-2jjj</link>
      <guid>https://dev.to/fsakbas/how-i-built-a-free-geo-checker-that-scores-your-websites-ai-search-visibility-2jjj</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; I built &lt;a href="https://echorank.com" rel="noopener noreferrer"&gt;EchoRank&lt;/a&gt; — 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.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The problem I kept running into
&lt;/h2&gt;

&lt;p&gt;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."&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;I couldn't find a tool that measured this. So I built one.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is GEO (Generative Engine Optimization)?
&lt;/h2&gt;

&lt;p&gt;GEO stands for &lt;strong&gt;Generative Engine Optimization&lt;/strong&gt; — the practice of optimizing your content so AI-powered answer engines cite, quote, and reference your site.&lt;/p&gt;

&lt;p&gt;Traditional SEO optimizes for: keyword density, backlinks, page speed, Core Web Vitals.&lt;/p&gt;

&lt;p&gt;GEO optimizes for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Semantic clarity&lt;/strong&gt; — Is your content unambiguous enough for an LLM to extract facts from?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured data&lt;/strong&gt; — Do you have JSON-LD schema that AI crawlers can parse?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Citation authority&lt;/strong&gt; — Are other authoritative sources already referencing you?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;llms.txt&lt;/strong&gt; — Have you published a machine-readable summary of your content for AI engines?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;E-E-A-T signals&lt;/strong&gt; — Author credentials, organizational trust signals, sourced claims&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Answer-shaped content&lt;/strong&gt; — Does your content directly answer questions, or just rank for them?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Building the GEO Checker: technical deep dive
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://echorank.com/tools/geo-checker" rel="noopener noreferrer"&gt;GEO Checker&lt;/a&gt; runs a multi-layer analysis on any URL. Here's how it works under the hood.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 15 App Router&lt;/strong&gt; — server components for the page, client component for the form UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript&lt;/strong&gt; — everything is typed, especially the &lt;code&gt;CheckResult&lt;/code&gt; and &lt;code&gt;ToolScanResult&lt;/code&gt; types&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;postgres.js&lt;/strong&gt; — lightweight Postgres client connected to a pgvector-enabled Postgres 18 instance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS v4 + shadcn/ui&lt;/strong&gt; — UI components&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What checks does it run?
&lt;/h3&gt;

&lt;p&gt;The GEO Checker evaluates 12+ signals across 4 categories:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Structured Data (Schema.org)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detects JSON-LD presence and type (&lt;code&gt;Article&lt;/code&gt;, &lt;code&gt;Organization&lt;/code&gt;, &lt;code&gt;FAQPage&lt;/code&gt;, &lt;code&gt;HowTo&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;FAQPage and HowTo schemas are especially valuable&lt;/li&gt;
&lt;li&gt;Validates that structured data is parseable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Content Semantics&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Heading hierarchy analysis&lt;/li&gt;
&lt;li&gt;Presence of direct-answer patterns&lt;/li&gt;
&lt;li&gt;Paragraph length distribution&lt;/li&gt;
&lt;li&gt;Internal link anchor text quality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. AI Crawler Signals&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;robots.txt&lt;/code&gt; analysis — are GPTBot, ClaudeBot, PerplexityBot blocked?&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;llms.txt&lt;/code&gt; detection&lt;/li&gt;
&lt;li&gt;Open Graph and Twitter Card completeness&lt;/li&gt;
&lt;li&gt;Canonical tag presence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Authority &amp;amp; Trust Signals&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTPS enforcement&lt;/li&gt;
&lt;li&gt;Author markup&lt;/li&gt;
&lt;li&gt;Organization schema with &lt;code&gt;sameAs&lt;/code&gt; links&lt;/li&gt;
&lt;li&gt;Date freshness signals&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What I learned from thousands of scans
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Most commonly missing signals:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;llms.txt&lt;/code&gt; — less than 2% of sites have it&lt;/li&gt;
&lt;li&gt;Author schema — missing on ~80% of blog posts&lt;/li&gt;
&lt;li&gt;FAQPage markup — used by &amp;lt;5% of content sites&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dateModified&lt;/code&gt; — sites update content but don't update the schema date&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The highest-impact single change:&lt;/strong&gt; Adding &lt;code&gt;FAQPage&lt;/code&gt; JSON-LD to existing content. AI engines love structured Q&amp;amp;A pairs — they map directly to the format AI answers are generated in.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it free
&lt;/h2&gt;

&lt;p&gt;All tools on &lt;a href="https://echorank.com/tools" rel="noopener noreferrer"&gt;EchoRank&lt;/a&gt; are free to use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GEO Checker&lt;/strong&gt; — AI search visibility score&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;llms.txt Generator&lt;/strong&gt; — Auto-generate your AI content summary&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Citation Gap Analyzer&lt;/strong&gt; — See where your brand is missing from AI answers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agentic UX Auditor&lt;/strong&gt; — Grade your site's readiness for AI agents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ROI &amp;amp; PPC Calculator&lt;/strong&gt; — SEO and paid campaign ROI simulator&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy to answer questions about the data or technical implementation in the comments!&lt;/p&gt;

</description>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
      <category>nextjs</category>
    </item>
  </channel>
</rss>
