I spent two hours last week debugging why my tech blog wasn't showing up in ChatGPT search results, despite having solid Google rankings. I assumed it was some technical misconfiguration, a robots.txt rule I forgot, or maybe Cloudflare silently blocking something. But the real problem was messier: I'd optimized for search engines, not for the way AI systems actually decide whether your content is worth citing.
Reading about someone else's systematic audit of this problem was genuinely humbling. They didn't just complain. They built a script, measured the gaps, and fixed them methodically. That's the kind of thinking we should be applying to this new reality where AI systems are becoming discovery mechanisms just as important as Google.
The Three-Layer Problem Nobody's Talking About
The original audit framework stuck with me because it mirrors how I think about production systems: there's nothing magical here, just layers of integration that either work or don't. First, can the AI crawlers even reach your content? Second, can they parse it meaningfully? Third, is there enough signal in your content that makes it worth quoting?
I realized I've been treating these layers as one monolithic "SEO" problem. They're not. A page can be perfectly accessible to OAI-SearchBot but completely unparseable because your JSON-LD schema doesn't match your visible content. Or it could be perfectly structured but so thin on verifiable facts that no LLM would risk citing it.
The thing that got me was the FAQPage schema mismatch. I've definitely had this bug in production, markup that describes one thing while the HTML shows another. You write it once, someone updates the text but forgets the schema, and six months later you've got a data quality disaster. The audit just caught it before it became invisible.
What I Actually Changed in My Own Stack
I spent yesterday retrofitting my blog with proper AI audit checks. Here's the core of what I built:
def audit_for_ai_crawlers(url, visible_text, schema_data):
checks = {
"crawler_access": check_user_agents(url, ["OAI-SearchBot", "ClaudeBot", "PerplexityBot"]),
"schema_validity": validate_json_ld(schema_data),
"schema_text_match": verify_schema_matches_visible(schema_data, visible_text),
"visible_date": has_human_readable_date(visible_text),
"question_headings": count_qa_structure(visible_text),
"external_links": count_external_citations(visible_text),
"text_density": measure_substantive_content(visible_text)
}
return weighted_score(checks)
The schema_text_match function is doing the heavy lifting. It normalizes whitespace and checks if every question in your FAQ markup actually appears in the visible page. Simple, but it catches the kind of drift that happens in real sites.
My Take: This is the New SEO Frontier
Here's what bothers me about the current discourse: everyone talks about "AI SEO" like it's the same as traditional SEO with different keywords. It's not. Traditional search engines are pretty forgiving about markup inconsistencies. They'll rank you anyway if the content is good. LLMs are different. They're probabilistic, and they trade off accuracy against speed. If your visible content doesn't match your schema, the model has learned to distrust it.
The most actionable thing I took from this audit was the visible "Last updated" date requirement. JSON-LD metadata gets ignored by users; a human-readable date on the page itself does double duty. It tells both the crawler and the person reading that this information is current. That's not optimization. That's just being honest about your content quality.
I'm also convinced that linking to authoritative sources isn't just good practice, it's becoming a ranking signal for AI systems. Every legal site should cite the legislation it references. Every tech post should link to the specifications and implementations it discusses. We've known this for years, but most of us don't do it because it "sends traffic away." Now it might also improve whether your content gets cited by ChatGPT.
What I'm Watching For
The uncertainty that bugs me most is whether Bing indexing really correlates with ChatGPT citations. The author found evidence suggesting it doesn't always. That means I can't treat Bing as a proxy for ChatGPT. I need to measure both independently, which means more monitoring work.
I'm also curious whether this audit approach scales. Right now I'm checking eight pages. If you've got hundreds or thousands, the script still works, but you need to actually act on the results. That's the part that takes human judgment.
Are you seeing your content cited by AI search systems? And if not, have you actually audited why?
Source: This post was inspired by "Why my small site never showed up as a source in ChatGPT, and what an audit found" by Dev.to. Read the original article