You can audit your site's AI visibility in about 90 minutes using five free tools you already have access to: View Source for the empty-shell check, a terminal with curl to see what crawlers actually fetch, the Schema.org Validator for your structured data, the AI engines themselves to test your real citations, and your own analytics to check referral reality. This is the exact 90-minute sequence, what each step tells you, and the order that surfaces the biggest problems first.
There is a belief that auditing AI visibility requires a paid platform. It helps at scale, but the core diagnostic costs nothing and takes about 90 minutes for a single site. Every paid tool is ultimately checking the same things: can crawlers read you, is your schema valid, do the engines actually cite you, and does any of it convert. You can check all four by hand, and doing it manually once teaches you more about why your site does or does not show up than any dashboard will.
The sequence below is ordered to surface the most damaging problems first. If you fail step one, the later steps do not matter yet, so there is no point validating schema on a page no crawler can read. Work it in order and stop to fix anything that fails before moving on.
Step 1: View Source, the empty-shell check (15 minutes)
Open your most important page, right-click, and choose View Page Source, not Inspect. Inspect shows the rendered DOM after JavaScript runs and hides the exact problem you are testing for. View Source shows the raw HTML the server sent. Use find to search that source for a sentence from your main body content. If it is there, crawlers can read your content. If it is not, your content loads via JavaScript and non-rendering AI crawlers see an empty shell.
Do this for your homepage, a key landing page, and a blog post, because different page templates often render differently. This is step one because it is the most common catastrophic failure and it invalidates everything downstream: perfect schema on a page no crawler can read is wasted. If a page fails here, that is your priority fix before anything else in the audit matters for that page.
Step 2: curl with a crawler user agent (20 minutes)
View Source shows what your browser receives. To see what a specific AI crawler receives, fetch the page with that crawler's user agent from a terminal. The command is a curl request with the user-agent flag set to the crawler string, piped through a search for a sentence from your body content. If the line comes back, that crawler sees your content; if nothing comes back, it does not.
Run it for the main AI crawlers, because they do not all behave identically: GPTBot for OpenAI indexing, PerplexityBot, and ClaudeBot. This catches two things View Source cannot: servers that return different content based on user agent, and crawler-specific blocks. While you are in the terminal, fetch your robots.txt and confirm you are not accidentally blocking any of these agents, which is a surprisingly common silent failure. This step confirms what the engines mechanically receive before you test what they do with it.
Step 3: Schema.org Validator (20 minutes)
Paste each of your key page URLs into the Schema.org Validator. It renders the page, extracts the structured data, and reports errors. You are checking three things: that your JSON-LD is present and valid, that the types are correct, and that your @id references resolve rather than dangling. A common failure is an article referencing an Organization by @id that is not actually defined anywhere reachable, which breaks your entity anchoring silently.
Run the same URLs through Google's Rich Results Test as well, since it shows Google-specific eligibility and catches issues the generic validator does not. The two together tell you whether the GEO layer, the Google-rendered side, can parse your structured data. Zero errors is the bar; warnings are usually acceptable but worth reading. This step covers the structured-data dimension that the first two steps do not touch.
Step 4: the AI engines themselves (25 minutes)
This is the step that tells you the actual outcome. Take your ten most important queries, the ones a buyer would ask, and run each through ChatGPT with browsing, Claude with search, Gemini, and Perplexity. For each, record whether you appear, where in the answer, what adjectives are attached, and which competitors appear alongside you. Do this in a clean or incognito session so personalization does not skew the results toward your own site.
This is the highest-information step because it measures reality rather than readiness. The first three steps tell you whether you could be cited; this one tells you whether you are. The gap between them is diagnostic: if you pass steps one through three but fail here, your problem is not technical readiness, it is authority, content quality, or competitive strength. If you fail the earlier steps, this step usually confirms why. Capture it systematically, because this is the baseline you will re-measure against after fixes.
Step 5: your analytics, the referral reality check (10 minutes)
Finally, open your analytics and look for referral traffic from AI engines. This is harder than it should be because AI referrals are poorly attributed in standard analytics, but you can usually find some signal in referral sources mentioning the engines, and in direct traffic spikes that correlate with citations. The question is whether any AI-driven traffic is arriving at all, and if so, whether it behaves differently from your other traffic.
This step closes the loop. Steps one through four measure visibility; this one checks whether visibility is producing anything. It is last because it only makes sense once you know your citation reality from step four, and it is short because the standard tools give you limited signal here. Isolating Perplexity and other AI referral traffic in GA4 takes specific filter setup, and getting that configured is what turns this from a rough glance into a real measurement over time.
What the 90 minutes gives you
At the end you have a complete, honest picture: whether crawlers can read you, whether your schema is valid, whether the engines actually cite you, and whether any of it converts. That is the same picture a paid platform produces, assembled by hand. The contrarian point is that doing it manually once is more valuable than running a paid scan ten times, because the manual pass teaches you the causal chain, why a failure at step one guarantees a failure at step four, which no dashboard score communicates.
The honest limit is scale. This is a 90-minute audit for one site and a handful of pages. It does not scale to a 500-page site or to weekly monitoring, which is exactly where automation earns its place. But as a first diagnostic, or as the way to truly understand any single site, the zero-budget audit is complete on its own. Run it, fix what fails in order, and you will have done the real work that matters before spending a cent. If you want the automated version that runs this across every page continuously, that is what the readiness score automates, but the manual pass is where the understanding comes from.
Sources
- Schema.org Validator: the free structured-data validation tool used in step three. validator.schema.org
- Google Rich Results Test: Google-specific structured-data eligibility checking. search.google.com
- OpenAI, GPTBot and crawler behavior: the user agent and crawl behavior tested in step two. platform.openai.com
- Website AI Score, Perplexity traffic in GA4: isolating AI referral traffic for step five. View article
- Website AI Score, the AI credit score: the automated version of this manual audit. View article

