One SEO change that actually matters for AI visibility

AI search is reshaping online visibility fast. One practical SEO change can make a real difference: ensure your structured data lives in your site’s HTML, not hidden behind JavaScript, so AI crawlers can actually see and understand it.

Every time you open the news, LinkedIn or social platforms these days, you are met with a deafening chorus of: 

“The world is changing.”
“SEO is dead.”
“AI changes everything.”
“Websites won’t matter.”

It’s easy to tune out the digital noise when so much of it feels like vague, futuristic hype.

Underneath the surface-level panic though, there are very real, very practical changes happening in search right now that demand your immediate attention. Artificial Intelligence Optimisation (AIO) or Generative Engine Optimisation (GEO) are not just buzzwords; they require fundamental shifts in how we build and optimise websites.

Perhaps the best example of a necessary, immediate change lies in something SEOs have taken for granted for a decade: how we implement Schema markup.

If you’re using Google Tag Manager (GTM) to inject your structured data, you might be entirely invisible to the new generation of AI search engines. Here is why your GTM setup is suddenly risky, and what you need to do about it.

The GTM golden age (aka: Marketers finally got power)

For years, injecting JSON-LD  (JavaScript Object Notation for Linked Data) schema via GTM has been an SEO professional's best-kept secret for moving fast.

We all know the struggle: you have a brilliant structured data strategy to help search engines understand your products, FAQs, or local business details. 

Then you’d submit a ticket to the development team. And it would sit there, collecting dust for weeks. Or it would get implemented “almost correctly”, which is dev-talk for “not correctly”.

GTM fixed that and bypassed the developer bottleneck entirely. It was quick, easy, and gave marketers the autonomy to inject code directly onto the page. Marketers could move fast, add schema, test and ship changes without begging and waiting.

For traditional Google search, this worked well enough.

Then AI crawlers entered the chat, and they aren’t playing Google’s game.

We’re seeing this show up in audits more and more: schema present in GTM, but missing in the raw HTML that many bots actually consume.

GTM is JavaScript. That’s the problem.

Your schema isn’t broken. JSON-LD is still the gold standard for structured data. The issue is where it lives.

When schema is injected via Google Tag Manager (GTM), it often doesn’t exist in the initial (raw) HTML. It only appears after GTM runs, which means a crawler has to render JavaScript to see it. And most AI crawlers don’t bother.

Think of it like this: GTM is a shipping container. Your schema is the packing slip. If the bot doesn’t open the container, it never sees what’s inside.

That’s why many AI crawlers take the cheap route: a drive-by crawl. Grab the raw HTML and move on. No JavaScript rendering or GTM “unpacking”. So your structured data stays locked away, invisible to the tools scanning your site.

“But Google can see it?” Yep, mostly. 

Google has sophisticated JavaScript rendering (via its Web Rendering Service), so it can often pick up GTM-injected schema. But two things can be true:

  • Google isn’t the only discovery engine anymore (AI answer engines matter).
  • Even Google has warned that relying on JavaScript for critical SEO elements can introduce crawling or rendering delays.

Bottom line: if your schema is delivered through GTM, Google might see it, but AI tools like ChatGPT, Perplexity, and Claude often won’t. If you want structured data to consistently support SEO and AIO, ship it in the HTML (ideally server-side), not hidden behind JavaScript.

The fix: Put schema directly in your website’s HTML - not hiding it via GTM 

If you want your brand, services, and content to be properly understood, cited, and recommended by AI answer engines, you can no longer rely on client-side injection. Your schema data needs to be present immediately when they hit your site. 

It’s the difference between putting your shop sign on the front door vs. keeping it in the back room and telling people “wait until the staff bring it out”. Some will wait, but most won’t.

Seems we’re all going to have to ditch GTM for schema, and return to adding the schema to the website. JSON-LD schema needs to live directly in the <head> of a website's initial, raw HTML. 

The good news: web ecosystems have evolved and it’s easier than it used to be.

A few practical paths:

Use your CMS properly

Platforms like Webflow, Shopify, modern WordPress builds often have native fields for adding custom code or dynamic structured data directly into the head of the page.

Use dedicated SEO plugins that inject server-side

Yoast, RankMath, SEOPress and similar tools automatically generate schema and inject it directly into the server payload, completely bypassing the need for JavaScript execution.

Hardcode it on key templates and static pages

If you’ve got a handful of high-value pages (services, location pages, FAQs), it can be as simple as placing the JSON-LD directly into the template or your source code.

If you do one thing: Move schema out of GTM and into HTML

The AI revolution is exhausting, but this is one tangible, mechanical change you can, and should, make today: pull your schema out of GTM, put it in the raw HTML, and make it easy for AI tools to recognise who you are.

If you want help making your site visible in the AI era without drowning in buzzwords, let’s have a chat - Book a strategy call with Insight Online.

Share this post
David Dennis
David helps organisations attract and convert the right audiences. His expertise spans SEO, AI and Content to build sustainable, long-term growth.

Want instant updates when we release new blogs?

Never miss out again - sign up to our newsletter. Get the latest news, resources and marketing tips straight to your inbox. We won’t share your details or spam you. Unsubscribe anytime.

By clicking Sign Up you're confirming that you agree with our Terms and Conditions.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.