Try running your own homepage through an AI visibility check sometime. If your site has an animated stats section, the kind with big numbers that count up as you scroll past them, don't be surprised if it comes back looking like a wall of zeros: dollar sign, zero million. Zero percent. Zero, zero, zero.
That's strange, because anyone who visits the actual page sees real numbers: 380 projects completed, 98% satisfaction, 17 years in business. The numbers are right there, counting up on the screen. So why would an AI tool see nothing but zeros?
Why would an AI tool see zeros when a visitor sees real numbers?
Because those two things look at completely different versions of the page. A visitor's browser downloads the page, runs its JavaScript, and shows the finished result: numbers animating up from zero to their real value as you scroll past them. Most AI tools, crawlers, and bots don't wait around for that. Many read the raw HTML the server sends before any JavaScript has run, and in that raw HTML, the number is hardcoded as a placeholder: 0. The real values exist only as data the JavaScript plugs in later, after a human's browser triggers the animation.
To a person, the section reads perfectly. To a tool that stops at the raw HTML, that whole section says nothing happened.
A quick glossary, since this gets technical fast
- AEO (answer engine optimization): making sure AI tools like ChatGPT, Perplexity, or Google's AI Overviews can find and accurately repeat the facts on your site, the same way SEO is about ranking in classic search results.
- Crawler or bot: a program that visits your pages automatically to read and index them, instead of a human clicking through a browser.
- Raw HTML vs. rendered page: raw HTML is the plain text file your server sends before anything runs. The rendered page is what you see after your browser has run all the JavaScript and finished loading. Many bots only ever see the raw version.
- JavaScript animation: code that changes what's on the page after it first loads, like a number counting up when you scroll to it.
How do you check whether your own numbers are invisible to AI tools?
You don't need a developer's toolkit for this part. Two ways to check, from easiest to most thorough:
- View the page source, not the inspector. Right-click the page and choose "View Page Source" (or press Ctrl+U on Windows, Cmd+Option+U on a Mac). This shows you the raw HTML, the same thing a lot of AI tools and crawlers read. Search that page (Ctrl+F) for the number you expect to see. If you find a
0where "280" should be, you've found the same problem. - Turn off JavaScript and reload. In Chrome's developer tools, open the Command Menu (Ctrl+Shift+P or Cmd+Shift+P), type "Disable JavaScript," and reload the page. Any content that disappears or reverts to zero is content that depends entirely on JavaScript to exist, which is exactly the kind of content AI tools and many bots can miss.
If you use Google Search Console, the URL Inspection tool's "View Crawled Page" option shows you the HTML tab (closer to raw) versus the Screenshot tab (fully rendered), which is another way to spot the same gap.
The fix: make the real number the starting point, not the destination
Once you've found a counter, testimonial count, or stat block that's blank or zeroed out in raw HTML, the fix is almost always the same idea, whether it's a plugin's counter widget or custom code:
- Find where the module stores its target number. In most page builders (Elementor's Counter widget, for example), this is a field like "Ending Number" separate from the number actually written into the page's markup.
- Check what text node the widget renders before JavaScript touches it. If it's hardcoded to
0or left empty, that's the bug. - Set the initial HTML to already contain the real number. The JavaScript's only job should be animating the visual count-up from zero on screen, not manufacturing the true number from nothing.
- Re-run the "disable JavaScript and reload" test from above. You should now see the real number sitting there, even with the animation turned off.
The rule of thumb: any fact you'd want an AI tool or a search engine to be able to quote back accurately needs to exist in the HTML on page load, not solely as a value your JavaScript writes in later.
This isn't only a counter-widget problem. The same failure mode shows up in content that loads after a scroll event, tabs that only populate their content when clicked, and text that streams in through a JavaScript framework without a fallback. Anywhere a real fact only exists after user interaction or a script runs, you're gambling that whatever's reading your page is patient enough, and capable enough, to wait for it. Increasingly, the tools your prospects use to research you aren't.
Why this matters more every month
A few years ago, this kind of gap mostly cost you a little bit of SEO credit. Now it can mean an AI assistant confidently tells someone researching your organization that nothing has happened, based on a page that says the exact opposite to a human. For any organization whose credibility rests on real numbers, that's not a small miss.
If you want help auditing your site for content that's invisible to AI tools and crawlers, or want to build your next stats section so it reads correctly no matter what's looking at it, get in touch with Tapp Network. We'll run the same kind of check on your homepage that caught this one.