Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Measuring GEO: Search Console, Bing AI Performance, Referral Traffic and Server Logs
There is no single measure of AI visibility: the Search Console generative AI report gives impressions only, AI Overviews clicks are merged with Web, Bing AI Performance shows citations and a grounding query sample, and on your side you have referrals and user-initiated fetch logs. We show code that records AI bot and referral events with ASP.NET Core middleware and produces a weekly summary with EF Core, and the limits of prompt panels.
Building Sites for AI Agents: Semantic HTML, the Accessibility Tree and Lighthouse Agentic Browsing
Browser agents read a page through screenshots, the DOM and the accessibility tree; a button built from a div doesn't show up there at all, and a button without a name doesn't say what it does. We measure two versions of an Angular 22 form with an accessibility tree dump and Lighthouse 13.6.0's Agentic Browsing category, showing what the tool catches, what it misses and WebMCP's experimental status.
llms.txt and Markdown Versions: The Spec, Who Uses It, and Implementing It in ASP.NET Core
llms.txt is a Markdown map at the site root made of an H1, a summary and link lists; Google Search ignores it, no major AI search engine has officially said it uses it, and its real use is coding assistants and agents. We cover spec v2, a Minimal API that generates llms.txt and per-post Markdown from EF Core data, Output Cache invalidation and mertozen.com's file.
Citable Content: What the Research Actually Shows
The "up to 40%" gain in the GEO paper was measured in a single-actor benchmark where the source was already in the answer's context; C-SEO Bench found most methods ineffective under competition, and a 2026 survey found no tactic with a proven durable causal effect. We give the practices consistent with the evidence and review a post on this site.
Understanding and Managing AI Bots: Training vs Search vs User-Initiated Fetches
AI bots come in three classes: training crawlers such as GPTBot and ClaudeBot, search bots such as OAI-SearchBot and Claude-SearchBot, and user-initiated fetches such as ChatGPT-User; to opt out of training but stay citable, you block only the first class. We verify robots.txt scenarios against RFC 9309 rules and cover Google's snippet and Search Console controls, mertozen.com's robots.txt and separating AI bots in logs.
Google's AI Search Guide: What to Do and What to Skip (llms.txt, Chunking and Special Markup Myths)
According to Google's May 2026 guide, AI Overviews and AI Mode rest on the core ranking systems; an indexed page eligible for a snippet is enough, and llms.txt, chunking, rewriting for AI and special schema aren't needed. We cover the guide's "you don't need to" list, its emphasis on non-commodity content, spam policies applied to AI answers, and why the guide applies to Google Search only.
What Is GEO? How AI Answer Engines Find and Cite Sources
AI answer engines split a question into sub-searches, find pages in an index or in their own crawlers' data, put them into the LLM's prompt and tie the answer to sources; this live retrieval channel is completely separate from the model's training data. We cover how Google, Copilot, ChatGPT search, Perplexity and Claude find sources, and why GEO is still SEO.
SEO Myths and Facts: Meta Keywords, Word Count, AI Content and "Guaranteed Ranking" Promises
Google hasn't used meta keywords since 2009, there is no keyword density or ideal word count target, Google objects to AI content not because of how it's produced but when it's mass-produced without adding value, and no one can guarantee a top position. For each myth we give Google's official source, the claims Google doesn't confirm and the developer's next step.
"Why Isn't My Page Indexed?" Diagnosing Indexing Problems Step by Step
For a page that isn't indexed, ask in order: does Google know the URL, does robots.txt allow it, does it return 200, is there a noindex, does the canonical point to itself, is the content real; the first no is where the problem is. We cover the diagnosis tree, a .NET 10 check tool that runs locally, the robots.txt and noindex conflict, and the Crawled/Discovered – currently not indexed states.
Getting Started with Google Search Console and Bing Webmaster Tools: Verification, URL Inspection and Core Reports
In Search Console a Domain property is verified through DNS and covers all subdomains and protocols; a URL-prefix property sees only the prefix you enter, and the verification token must stay in place. We cover the URL Inspection fields, the Page indexing and Performance reports, importing into Bing Webmaster Tools and a first-week checklist for mertozen.com.
Appearing in Results: Title Links, Snippets, Meta Descriptions and Site Names
Google builds the result heading not only from the title but also from h1, og:title and link text; it takes the snippet mostly from page content, and meta descriptions have no length limit. We look at per-page title and meta in Razor and Angular 22 with real server output, snippet controls, site name and favicon rules, and the title suffix on mertozen.com.
How Google Ranks: Ranking Systems, Core Updates and E-E-A-T
Google doesn't rank with a single algorithm but with many named ranking systems such as BERT, PageRank, freshness and reviews; it doesn't disclose their weights. We cover the waiting and comparison method Google recommends after core updates, why E-E-A-T isn't a direct ranking factor, and the real role of quality raters.