how brands are found in the age of ai

Your buyers ask AI first.Ipnops decides whether it finds you.

The front page is now an answer, written by a machine from whatever it could retrieve. Ipnops is how brands win that answer. It measures the pathway that decides it — can the crawler reach you, is the page server-rendered, do your entities resolve, does the engine actually retrieve you — scores you per engine across the Western and Chinese frontier, and applies the levers to the page you already ship. Then it proves the result: every citation corroborated against your own server logs, so your visibility is evidence, not a screenshot. Fix the mechanism and the mentions follow. No shadow page, no cloaking.

9 answer enginescrawler-log truthon-page auditstructured-data readyno cloaking
GET / ◂ AI-crawler hit · observed in your logs
# the server SDK sees what JS never can
{ "ua": "OAI-SearchBot/1.0",
  "engine": "chatgpt", "class": "search",
  "path": "/pricing", "rendered": "server-html",
  "jsonLd": true, "retrievable": true
}
the front page moved
01 / 08

People stopped reading ten blue links. They read one answer.

The buyer's first impression of you is now written by a model, from whatever it could retrieve — and it cites a handful of sources, not a page of them. Nine engines are writing those answers. If they can't parse your entities, can't reach your content, or never see it because it only exists after JavaScript runs, you don't rank low. You simply aren't in the room. Generative Engine Optimization is how you get back in it.

observe · score · enrich
02 / 08

Three moves that turn a page into a source an engine will cite.

No guesswork loop and no mirror page. Ipnops measures the pathway before the outcome — real crawler hits and real on-page signals, the mechanism that decides whether an engine can retrieve you — then applies the levers to the page you already serve.

01

Observe

A client tag reports your live on-page signals; a server SDK reads your request logs for real AI-crawler hits. Crawlers never run JavaScript, so the server side is essential — it's the only place the truth shows up. You see who came, to which paths, and what they got.

02

Score

An on-page audit grades the four signals that decide retrieval: structured data (schema.org JSON-LD), server-rendered HTML, crawler access in robots.txt for the search-vs-training split, and answer-first content with clear entities. Every page gets a per-engine score.

03

Enrich

Apply the levers to your real page — add the JSON-LD, ship server HTML, open the right bots. And rewrite the copy itself: Ipnops's copywriter rewrites your body in place to lead with the answer, name your entities, and carry every source fact through — a paste-ready version of the page you already ship, never a shadow copy served only to bots. The next crawl sees a page built to be retrieved.

western AND chinese frontier
03 / 08

Nine answer engines. Most tools score five.

Ipnops scores retrieval readiness across the five Western engines most tools stop at — and the four Chinese frontier engines they ignore. Each is matched by its crawler user-agent where one is published, so the score reflects what that engine can actually reach.

// western · 5
ChatGPT
OAI-SearchBot / GPTBot
Perplexity
PerplexityBot
Google AI
Google-Extended
Copilot
BingBot / Microsoft
Claude
ClaudeBot / Claude-Web
// chinese frontier · 4
Qwen
Alibaba / Qwen
GLM
Zhipu GLM
Kimi
Moonshot Kimi
DeepSeek
no published UA
readiness

Honest nuance — DeepSeek publishes no crawler user-agent and fetches browser-like, so it's effectively unobservable in logs. There's no log-truth to report for it. The lever that works is retrieval readiness on your real page: server-rendered HTML plus structured data. Ipnops covers DeepSeek through that readiness score, not through crawler observation — and says so plainly rather than faking a hit.

measure the answer · proof, not guesswork
04 / 08

Know exactly how AI answers about your brand — and prove every citation.

This is how brands measure themselves in the age of AI. Ipnops watches the answers themselves across ChatGPT, Perplexity, Gemini and Copilot: your share of voice against every rival, your mention and citation rate per engine with real confidence intervals, and how each answer's sentiment toward you shifts over time. Counting mentions is table stakes. Ipnops proves them.

Every citation, corroborated by your own server logs

A scraped answer is one observation. Ipnops holds it against a second, independent one — the AI crawler traffic in your logs — and asks whether that engine's search bot actually fetched the page when it answered. Every citation resolves to one of three states, so your numbers are evidence, not screenshots.

Verified

Named in the answer, and the engine's search crawler was caught fetching you around that moment. Two independent signals agree — this citation is real.

Unconfirmed

Named in the answer, you have crawler coverage for that host, but no matching fetch was logged. Shown, not corroborated — a cache hit or a stale index.

Unobserved

Named in the answer, but with no crawler visibility for that host we don't claim to know. The truth, stated plainly, instead of a false positive.

Verified citations draw on your crawler-log coverage — one line with the Cloudflare connector or the server SDK. It's the difference between a dashboard that counts and one that proves.

answer-coverage engineering
05 / 08

Not "you're down 4%." "You lost 37 answers — here's exactly why."

Other tools hand you a visibility number and leave the diagnosis to you. Ipnops names the cause. Every prompt an engine answered about your category without citing you is sorted by the reason the machine skipped you — so you fix the mechanism, not the metric.

The crawler couldn't reach you

No AI search bot was seen fetching your pages for these answers. If the machine can't retrieve you, it can't cite you. → Run the readiness audit.

Your page didn't answer the question

The crawler reached you, but nothing on the page answered the prompt. → Generate a self-contained answer passage aimed at the exact question.

A rival had stronger sources

The engine had you as an option and chose more-cited third parties. → The domains influencing these answers, ranked, so you know where to earn a mention.

This is the move no visibility dashboard makes: from "how am I doing" to "here is the specific reason, and the specific fix." Measuring the answer is table stakes. Engineering the coverage is the product.

the highest-leverage lever
06 / 08

Structured data tells the engine what you are — in its own language.

~2.5×

the odds of appearing in an AI answer when a page carries valid schema.org JSON-LD. It resolves your entities — org, product, FAQ, author — into a graph the model can bind to, instead of guessing from prose.

It's in-page markup on the page you already serve — the single highest-leverage move in GEO, and the one Ipnops grades first. Server-rendered HTML and correct crawler access carry the rest: content the JS-averse engines can read, reachable by the right bots.

index.html · schema.org JSON-LD
<!-- FAQPage — answer-first, entity-clear -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "What does Acme do?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "Acme grades AI-answer retrieval."
    }
  }]
}
</script>
install once
07 / 08

One line for the tag. One import for the crawler truth.

Drop the client tag on your site to report live on-page signals. Add the server SDK to observe the AI-crawler hits the tag can never see — because crawlers don't run JavaScript. Not a developer? Paste the one-line tag into the head-code field your builder already has — Shopify, Squarespace, WordPress, Wix, Webflow, Ghost and more. The dashboard has the full snippets for every framework and hosted platform you ship on.

index.html · client tag
<!-- reports live on-page signals -->
<script async
  src="https://api.ipnops.ai/geo/tag.js"
  data-site="example.com"></script>
server · observe AI-crawler hits
// crawlers don't run JS — the server sees them
import { ipnops } from "@ipnops/geo";

app.use(ipnops({ site: "example.com" }));
// tags every AI-crawler request in your logs
HTMLReactNext.jsVueSvelteExpressWorkers
start free08 / 08

Be the source the answer cites.

One project included, free. Point Ipnops at your site, see who's crawling you, and score every page across all nine engines.