All articles

We ran an AI-visibility audit on our own site. Here's what was broken.

Sitemap dates that lied, a robots.txt that only half-welcomed AI crawlers, share images with no alt text. None of it was dramatic. All of it was costing us visibility. Here's the checklist we used to fix it.

AI looks for context. Clear descriptions. Helpful categories. Consistent language. Useful product information. The easier your brand is to understand, the easier it is to recommend.

We tell clients to audit their sites for AI visibility all the time. Check your robots.txt. Check your sitemap. Make sure your share images actually describe what’s on the page. Last week we finally turned that same checklist on ourselves, and it was a little humbling how much of it we hadn’t done.

Nothing we found was a disaster. That’s actually the point. These are small, boring, easy-to-skip things, and skipped is exactly what they were.

The sitemap said things that weren’t true

Our sitemap was missing a route entirely (our products page wasn’t in there at all), and every URL that was listed shared the same last-modified date, whether it had been touched that week or eight months ago. A crawler reading that sitemap has no way to tell which of your pages are fresh and worth a re-crawl and which haven’t changed since launch. We’d effectively told every AI crawler that our whole site updates in lockstep, which is never true and looks exactly like a sitemap nobody maintains.

The fix was mechanical: generate real per-URL lastmod dates from actual content changes, add the missing route, and set sensible priority and change-frequency values instead of leaving everything at the same default. An hour of work, and now the sitemap actually says something true.

Our robots.txt welcomed some AI crawlers and ignored the rest

We had rules in place for the obvious names. What we hadn’t done was sit down with the full list of crawlers that actually matter right now: the assistant bots, the ones that power AI shopping agents, the ones that feed answer engines their product data. A few of them weren’t mentioned anywhere in our file, which by default in a lot of setups reads as neutral, but in practice means you’re leaving it to chance whether that crawler decides your site is worth indexing.

If you haven’t opened your own robots.txt in a while, this is worth five minutes. Pull it up, and ask honestly whether it reflects the crawlers your customers are actually using to find brands like yours in 2026, or the list you wrote two years ago and never revisited.

Our share images had no idea what they were sharing

Every blog post and product page generates an image when it gets shared or when a model pulls it into a preview. Ours were doing that, technically. What they weren’t doing was including dimensions, alt text, or any of the metadata that tells a crawler what’s actually in the picture and why it matters. A model can’t describe an image it can’t parse, and a blank alt attribute is the same as no image at all from where it’s sitting.

We rebuilt this so every post now derives its share image and description straight from the post’s own content, with a manual override when we want something specific. It sounds like a small thing until you realize it’s the difference between an AI answer engine having something to say about your product photo and having nothing.

The checklist, if you want to run this yourself

You don’t need our stack to do this. Fifteen minutes and these five checks will tell you where you stand:

  • Open your sitemap.xml. Do the lastmod dates look like they were generated by a person eyeballing a spreadsheet, or by something that actually knows when each page changed
  • Open your robots.txt. Is every major AI crawler you can name explicitly addressed, not just assumed to be fine by default
  • Pick three product pages at random and check whether their share images have alt text that describes what’s actually in the photo
  • Check whether your sitemap includes every real page on your site, particularly newer sections that got added after the sitemap was last generated
  • Ask whether a broken fetch of any of this would fail loudly, or just quietly serve a stale or empty version forever

That last one mattered more than we expected. We added a fallback for our own feed that keeps previously indexed pages from silently disappearing if a live fetch fails, but made sure a total failure throws an error instead of shipping an empty site. Silent degradation is worse than an obvious failure, because nobody notices until the traffic is already gone.

None of this is glamorous, and that’s exactly why it gets skipped

There’s no headline feature here. Nobody’s going to screenshot a corrected lastmod date. But this is the layer underneath everything else we build for clients, the plumbing that decides whether an AI system can even see your store clearly enough to recommend it. Get the plumbing wrong and the best product copy in the world doesn’t matter, because nothing’s finding it.

If you want to know what your own site looks like from the crawler’s side, not the customer’s, that’s exactly what we check first in a Veristyle audit.

Get a free AI visibility audit and we’ll show you what we’d actually fix, starting with the boring stuff, because the boring stuff is usually where the visibility is leaking out.

Or book a demo if you’d rather just talk it through.

See Veristyle on your catalog

Book a demoGet it on Shopify