- I’ve never thought of schema markup as something that slows down a site (there are plenty of other scripts for slowing down sites)
- If you put this into GTM, what happens if you move from GTM
Speed? Seems like nonsense to me. If I embed schema on the page, it gets loaded with the page source. In Google tag manager, a remote script needs to be called and loaded. That is simply not going to be faster than something embedded locally – Google page speed suggestions always say reduce the calls and data from remote files and servers.
I’m also not sure what happens with other bots and with things that aren’t going to execute remote scripts. If the remote script won’t fire for some reason… then the structured data won’t appear. Keep in mind that apps like advanced screen readers are getting better at using structured data to people without a screen. So if I ask something “What’s the price of this product?” and the screen reader application can’t read it (because you’ve got it set to not allow tracking scripts) then that screen reader isn’t going to know the price of the product unless you’re building in redundancies with RDFa or Microformats, too. In the article Casey Markee linked to above… Mueller suggests that this might even be an issue for Googlebot itself? Not sure on that.
There may be some tracking advantages – and I get the argument that you don’t need to adjust the code on the site itself because GTM injects it. But it’s not going to be injected in every case and as alternative methods of browsing the web grow, it’s not something that will scale. Accessibility features on pages and structured data for the sake of accessibility aren’t just for people with disabilities anymore. It’s for voice search (and text-to-speech responses to questions), quickly accessing data on a page, and all sorts of emerging technologies.
If it’s the no-code touching argument that you’re thinking about – there are plenty of plugins for just about every CMS that will do it – some automatically based upon the fields you type in. And, for speed, this code is injected directly into the source and doesn’t require remote script calls to load it. So speed… I just don’t see it.
I wouldn’t listen to the recommendation if it were me. I can think of a half dozen ways to better implement it.