PHII Labs
2027-01-05AI Search8 min read

AI-search visibility audit: the checklist we run

The AI-visibility audit checklist we run for UAE clients: entity consistency, answer-first structure, structured data, crawler access and a fixed prompt benchmark

Sergei Suvorin · Co-founder, PHII Labs

Audit checklist for AI search visibility with checked and flagged items

An AI search visibility audit checks five things and scores each one: entity consistency across your site, answer-first content structure, structured data coverage, AI-crawler access, and a fixed prompt set benchmarked against ChatGPT, Perplexity, Gemini and AI Overviews. It finds what blocks citation. Nobody can promise you a citation; the audit shows you what is in your way

This is the checklist we run for UAE clients on our AI search visibility service. Each item has a pass and fail definition, so the result is a scored sheet, not a vibe. If you run it yourself, start with area one and work down. If an item fails, the fix is on the same line

Do ChatGPT and Perplexity actually see my brand?

This is the grounding question, and the honest answer has two parts. Engines can only cite pages they can retrieve and resolve to an entity they trust; nothing else you do matters if either of those is broken. So area one checks whether every page that should be "PHII Labs" or "your company" actually resolves as one, stable entity

Entity consistency is the cheapest fix in the audit and the most commonly failed. The test: does your brand name, legal entity, descriptor and logo read identically in the prose, the footer, the structured data, the social profiles and the directory listings? For PHII Labs we are always "PHII Labs", described as an "AI automation agency in Dubai", registered as PHII LABS (FZC) in SRTIP Sharjah. We reuse those exact strings everywhere. When an engine has to merge ten mentions, consistent naming is what lets it collapse them into one entity instead of ten. Inconsistent naming is how a rival or a directory entry splits your identity

What exactly does the checklist contain?

Below is the full audit checklist, five areas and twenty-one items, each with a pass or fail criterion. We print this on one sheet and score it in the order written. An item is fail until the criterion is verifiably met; "we have a blog post about it" is not a pass for "the page answers its own title"

Area one — entity consistency

  1. Brand name identical in footer, header, prose and schema. Pass when the same string appears verbatim in at least four page locations and the Organization JSON-LD name. Fail when the footer, a service page and a directory listing each spell it differently
  2. Legal entity and jurisdiction stated once on the contact or about page. Pass when the registered name and emirate appear on a page the site footer links to. Fail when the legal name appears nowhere
  3. Organization JSON-LD present sitewide with a single @id anchor. Pass when every Organization, BlogPosting publisher and Service provider references the same @id string. Fail when each page emits its own inline Organization object
  4. Same brand name used in social profiles and key directories. Pass when LinkedIn and at least two UAE business directories use the same name and URL as the site. Fail when profiles use a different name or are absent
  5. A descriptive tagline ("AI automation agency in Dubai") appears near the name on the homepage and about page. Pass when at least two pages pair the name with the same descriptor. Fail when the descriptor varies or is missing

Area two — answer-first structure

  1. Every page answers its own title or H1 in the first two sentences. Pass when a reader can quote the answer without reading further. Fail when the opening is an introduction before the answer
  2. Every H2 and H3 reads as a question or a concrete promise a real buyer searches. Pass when each heading maps to one search query from the keyword corpus. Fail when headings are labels like "Overview" or "Our Approach"
  3. Each section's answer sits in its first one to three sentences, with detail after. Pass when the direct answer precedes explanation in each section. Fail when the answer is buried behind background
  4. Key passages are self-contained, with numbers, named sources and no dependency on earlier text. Pass when a passage lifted alone still makes sense and carries its own evidence. Fail when it opens with "as mentioned above" or refers to "this approach" without a referent
  5. Every quote and number is attributed to a named primary source. Pass when a Meta doc, Google Search Central page or a named dataset backs each claim. Fail when a statistic has no citation

Area three — structured data coverage

  1. BlogPosting JSON-LD on every article, with headline, dates, author and publisher. Pass when the article type, datePublished, dateModified and mainEntityOfPage are present and match visible content. Fail when the block is missing or mentions facts absent from the page
  2. A Person node for each author with name, jobTitle, url and image, deduplicated by @id. Pass when the article author and the author page reference the same Person @id. Fail when the author is a bare name string or the Person has no URL
  3. FAQPage Q&A on pages that carry real questions, matching the visible text. Pass when the file has a Question/Answer pair for every visible FAQ item and no invented ones. Fail when markup claims questions the page never shows (a structured-data guideline violation).
  4. BreadcrumbList on non-home pages. Pass when present and matching the visible breadcrumb. Fail when absent or tracking a different path
  5. No markup that overstates the page, such as reviews without attestations or an Article where a BlogPosting fits. Pass when every marked-up claim is visible on the page. Fail when the schema promises evidence the page does not carry

Area four — crawler access

  1. robots.txt keeps a permissive * allow so GPTBot, ClaudeBot, PerplexityBot and Google-Extended are not blocked. Pass when the default rule allows crawling and no AI user-agent is explicitly disallowed. Fail when a disallow rule for an AI crawler is present (Google's guidance). Blocking an AI crawler is choosing to opt out of that channel.
  2. No AI-crawler access appears only in a restrictive place such as a sitemap or a login wall. Pass when the pages you want cited are public and reachable without authentication. Fail when key content sits behind a gate
  3. Server logs show recent hits from GPTBot, ClaudeBot or PerplexityBot. Pass when at least one AI user-agent has requested pages in the past month. Fail when the access log is empty of AI crawlers, which signals robots.txt or a firewall is blocking them
  4. The page loads in under three seconds on a normal connection, with no JavaScript-only content hiding the passage. Pass when the answer text renders in the raw HTML. Fail when the answer is injected by client-side JavaScript that a crawler cannot run

Area five — fixed prompt benchmark

  1. A frozen set of buyer prompts exists, covering the five or ten questions a customer would ask your category in the UAE. Pass when the list is written down, versioned and dated. Fail when prompts are improvised per run
  2. The prompt set is run monthly across ChatGPT, Perplexity, Gemini and AI Overviews, logging cite/no-cite per engine. Pass when there is a dated table of results that includes the misses. Fail when the benchmark is run once and never repeated, or when misses are omitted

Which areas move the citation needle most?

In our audits the order above is also the order of impact. Fix entity consistency and crawler access first, because both are binary: an engine either resolves your entity or splits it, and either reaches your page or fails to. Answer-first structure and self-contained passages are the second pair, because they decide whether a model can lift a clean quote off the page. Structured data sits third: it clarifies the entity and the Q&A, but it cannot manufacture authority, and Google states AI Overviews need no special markup at all.

The fixed benchmark is the discipline layer, not a scoring layer. It will not move a single citation by itself, but it is the only honest way to know whether the first four areas worked. A monthly table that shows your cited domains, the prompts that fire and the engines that call you is also the deliverable you can take to a stakeholder. That data is more convincing than any assertion that a campaign "improved AI visibility"

Note

Two failures we correct almost every audit. The first is a footer and a LinkedIn profile that spell the brand differently, which quietly splits the entity. The second is a FAQPage whose questions exist only in markup and not on the page, which is a structured-data guideline violation, not a signal. Fix those two before re-running the benchmark.

Across the audits we run, entity inconsistency is the highest-frequency fail and the cheapest to fix, usually a single afternoon of aligning the footer, the schema and the profiles to one name. A fixed prompt benchmark is the only area that shows real movement month to month, because it measures the result of everything else

Sergei Suvorin · Co-founder, PHII Labs

What does the benchmark actually look like?

The benchmark is a plain table, one row per prompt, one column per engine. We run the same questions in the same order each month so the only variable is the engines' behavior. Here is the shape from a recent UAE client in the property services space, anonymized:

Buyer prompt (frozen)ChatGPTPerplexityGeminiAI OverviewsCited domain that won
"what does a property management app cost in Dubai"citednot citedcitednot citedcompetitor.com/blog
"best property manager for a Dubai landlord"not citednot citednot citedcitedbayut.com
"how to handle a tenant move-out in the UAE"citedcitednot citedcitedtheclient.ae/how-to
"AI system for managing rental units in Dubai"citednot citednot citednot citedtheclient.ae/ai

The work is not the table, it is the follow-up. When a competitor wins a prompt three months running, we read the passage the engine extracted, and that passage is usually the reason: a direct answer, a number, a source. We then write that into the client's own page as an answer-first passage, which is a content fix, not a schema fix. The audit loops back into the content. The mechanics of why engines pick one passage over another are in how to get cited by ChatGPT and Perplexity, and the difference between the three disciplines is in SEO vs AEO vs GEO

How do you avoid promising a citation?

We never do, and neither should anyone else. The benchmark reports cited intervals and cited domains; it does not report "your brand appears in ChatGPT". Engines change their citation behavior routinely, models are updated, and AI Overviews appear for some queries and not others with no public formula. Any vendor that sells a guaranteed ChatGPT mention is selling a number they cannot control.

What an audit legitimately delivers is a scored list of blockages and a measurement loop that shows movement. That is the contract we write: we will tell you whether your site resolves as one entity, whether your pages are answer-first, whether the markup and content agree, whether the crawlers can get in, and whether a frozen prompt set is moving. The last item is how we measure AI visibility honestly, and it is the only part of GEO that produces data a CFO can use

We ran the same discipline on our own builds. On Trusted Real Estate, a Dubai brokerage site, aligning entity naming and answer-first content took SEO traffic up 21% and cut lead-to-call time by 17%, the measurable half of what this audit tracks. That is the kind of number the benchmark is for

The takeaway

Run the checklist in order: entity consistency, then answer-first structure, then structured data, then crawler access, then a frozen prompt benchmark. Each area is binary until it passes; the benchmark is the only one you re-run forever, and the only one that measures whether the other four worked. A citation is the engine's decision, and nobody can guarantee it. What you can guarantee is that nothing is silently blocking it

Book the free audit and we will run your five buyer questions across the engines, score all five areas against this checklist, and send you the table, including the misses

FAQ

What does an AI search visibility audit check?

Five areas: entity consistency across web and schema, answer-first content structure, structured data coverage, AI-crawler access, and a fixed prompt set benchmarked monthly

Can an audit guarantee my brand gets cited by ChatGPT?

No — nobody can. An audit finds what blocks citation (inconsistency, unstructured content, missing facts) and fixes it; inclusion itself is the engine's decision

How do you measure AI visibility honestly?

A fixed set of buyer questions run monthly across ChatGPT, Perplexity, Gemini and AI Overviews, logging which domains get cited. Report the table, including the misses

How long does the audit take?

One to two weeks for a full pass on a typical SME site: crawl and schema review, content-structure sampling, prompt benchmark, and a prioritized fix list

Want systems like this?

We build and ship AI systems for real operations