Last month my manager forwarded me a Slack message from our founder that just said: “Ask ChatGPT what our company does. Then panic.”
So I did. I opened ChatGPT and typed our company name. It confidently told me about a completely different company with a similar name. Then I asked it to “recommend a good [our category] tool” — the exact thing we sell — and it named three competitors. Not us. Never us.
Here’s the kicker: we rank #1 on Google for our main keywords. Our SEO is genuinely good. And it turns out that means almost nothing to an LLM.
I went down a rabbit hole for two weeks. This is the practical version of what I learned, with the actual code that moved the needle.
Why “good SEO” doesn’t transfer to AI
Google crawls, indexes, and ranks pages. Its algorithm is built around links, keywords, freshness, and hundreds of ranking signals. You can win that game with backlinks and on-page optimization.
LLMs work differently. When you ask ChatGPT or Perplexity “what’s the best X,” the model isn’t ranking a list of pages — it’s generating an answer from an internal representation of the world, sometimes augmented with live retrieval. For your business to show up, the model needs to have formed a clear, confident, consistent understanding of what you are.
That understanding comes from:
- How clearly your own site describes you (in plain language, not marketing-speak)
- How consistently you’re described everywhere else (directories, social profiles, other sites)
- Whether machines can parse your site at all (structured data, semantic HTML)
We were failing all three, and none of them showed up in a normal SEO audit.
Problem 1: Our homepage was written for humans who already knew us
Our hero section said something like “The intelligent growth platform for modern teams.” Beautiful. Meaningless to a model. An LLM reading that has no idea what we sell.
The fix was boring but effective: we rewrote the first paragraph of the homepage to be almost aggressively literal. One sentence that a stranger — or a model — could repeat back accurately:
“[Company] is a [exact product category] that helps [specific audience] do [specific outcome].”
That’s it. No adjectives doing load-bearing work. After the change, re-testing showed the model could actually describe us.
Problem 2: No structured data
This is the technical one and where devs can make the biggest difference fast.
Most sites have zero JSON-LD structured data. It’s invisible to human visitors but it’s a direct, machine-readable statement of what this entity is. If you give an AI crawler explicit facts, it doesn’t have to guess.
Here’s the minimum I’d add to any company homepage — a <script type="application/ld+json"> block in the <head>:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your Company",
"url": "https://yourcompany.com",
"description": "A one-sentence, plain-language description of exactly what you sell and who it's for.",
"sameAs": [
"https://www.linkedin.com/company/yourcompany",
"https://twitter.com/yourcompany",
"https://github.com/yourcompany"
]
}
</script>
Enter fullscreen mode Exit fullscreen mode
The sameAs array matters more than it looks — it links your entity to every other profile that describes you, which reinforces consistency (problem 3).
If you sell specific products, add Product schema too:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Product Name",
"description": "What it does, in plain language.",
"brand": { "@type": "Brand", "name": "Your Company" },
"offers": {
"@type": "Offer",
"price": "4.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
</script>
Enter fullscreen mode Exit fullscreen mode
For content pages, FAQPage and Article schema help LLMs extract answers directly. The pattern is always the same: stop making the machine infer, and just tell it.
Validate everything with Google’s Rich Results Test or Schema.org’s validator before shipping — malformed JSON-LD does nothing.
Problem 3: We described ourselves five different ways
Our website said one thing, our LinkedIn bio said another, our Crunchbase entry was three years out of date, and our Twitter bio was a joke (literally, it was a pun). To a model trying to build a confident picture, that inconsistency is noise. It’ll favor a competitor whose story is the same everywhere.
Fixing this wasn’t code — it was a boring afternoon of copy-pasting one canonical description into every profile we own. But it measurably helped.
The part where I admit I used a tool
I could check some of this manually — read our own copy, eyeball the markup, run the schema validators. But two things were painful to do by hand:
- Writing correct JSON-LD for every page type from scratch, matching the right schema.org vocabulary
- Actually measuring whether AI assistants mention us — you can’t eyeball that, you have to query them with real buyer questions and check the answers
A teammate pointed me at Greater Than Services, which runs an audit specifically for this (they split it into CRO / GEO / ASO — human, AI-search, and AI-agent readability). The useful part for me as a dev: instead of a report that says “add structured data,” it generates the actual JSON-LD and meta tags for your specific site, ready to paste. It also runs the “does AI name you” test automatically across a few assistants, which is the measurement I couldn’t be bothered to script myself.
The free preview was enough to see our scores; the full report was a few dollars. I’m not affiliated with them — it just saved me from writing schema by hand for 6 page types, so it’s earned a mention. There are other ways to do this; that’s the one that worked for me. If you’d rather DIY, everything above is the manual path.
The 30-second test you should run right now
Regardless of tooling, do this before you close the tab:
- Open ChatGPT (or Perplexity, or Gemini).
- Type: “What does [your company] sell, and who is it for?” — do not paste your URL.
- Read what comes back.
If it’s vague, wrong, or blank, that’s not a hypothetical future problem. That’s real prospects, right now, asking an AI for exactly what you sell and getting pointed at someone else.
We went from “ChatGPT thinks we’re a different company” to “ChatGPT describes us correctly” in about two weeks, mostly with the three fixes above. The code part — structured data — was genuinely the highest-leverage thing, which is why I’m writing this on dev.to and not on LinkedIn.
Ship the JSON-LD. Fix your copy. Be consistent. The models are already answering questions about your business — you just want to be in the answer.
Ran into weird edge cases with schema for a specific page type? Drop them in the comments — happy to compare notes.
답글 남기기