[レベル: 上級]
構造化データを追加するときには、Google タグマネージャは使わないほうがいい
Google の John Mueller(ジョン・ミューラー)氏は、このようにアドバイスしています。
複雑さが増す、デバッグがより困難に
ミューラー氏に Twitter でフォロワーが次のように質問しました。
Google タグマネージャを利用して構造化データを設定していたところ、構造化データテストツールでの検証が最近失敗するようになりました。どうしてですか?
ミューラー氏はこのように返信しています。
構造化データを追加するのに、タグマネージャのようなツールには私なら頼らない――うまく動くこともあるだろうが、構造化データを挿入する第一の方法にはしないほうがい。
I wouldn't rely on a tool like GTM to add structured data — it can work, but it shouldn't be your primary way of integrating structured data.
— John ☆.o(≧▽≦)o.☆ (@JohnMu) 2018年7月11日
しばらく前にも、タグマネージャで構造化データを設定することに次のように注意喚起しています。
正直に言って、サイトの操作ができるなら構造化データを直接記述したいところだ。
タグマネージャを使うと、いろいろと複雑になってきて、デバッグがより面倒になる。そしてうまく動作しなくなる可能性が高まってもくる。
構造化データをHTMLに直接追加するのが実際に本当に難しいということも、実際にはあるかもしれない。でも少しくらい難しいだけなら、私だったらタグマネージャを使うのではなく、HTMLに直接追加したい。
TBH if you have access to the site, I'd try to get the SD into the pages directly. GTM adds a lot of complexity, which makes debugging harder, and adds potential points of failure. Sometimes adding SD is really, really hard, but if it's just a little hard, I'd do it directly :)
— John ☆.o(≧▽≦)o.☆ (@JohnMu) 2018年5月31日
構造化データの実装にタグマネージャを利用すると、一か所で管理でき変更が簡単だというメリットがあります。
また、直接コードをいじれない状況であっても、タグマネージャのコードさえ設置されていれば、サイト本体の管理権限は必要ありません。
しかしながら、実際に出力される構造化データをその場では確認できません。
それに、JavaScript の知識に精通していないと正しく実装できないこともあるでしょう。
直接書き込む場合よりも複雑になり、検証も面倒になってきます。
レンダリングにも時間がかかる
さらに、Google タグマネージャで構造化データを挿入した場合は、認識されるまでにより長い時間がかかることがあります。
Google 側での JavaScript の実行プロセスが完了するまでに数日程度を要するからです。
JavaScript で生成されるコンテンツのレンダリングは “セカンド ウェーブ” と呼ばれるプロセスで実行されます。
“ファースト ウェーブ” で実行される 静的な HTML はクロールとレンダリング、インデックスが同時に処理されます。
ですが、セカンドウェーブは間隔が空くのです。
JavaScript による noindex タグの挿入が推奨されなかったように、(noindex ほどには即時性が必要なかったとしても)構造化データの挿入でも、JavaScript の介在は時間がかかるという点で推奨されないのです。
GTM 挿入の構造化データはテストツールでエラーが発生する
Google タグマネージャで構造化データを挿入している場合、構造化データ テスト ツールでエラー(警告)がしばらく前から発生するようになったようです。
それまでは合格していて、何も変更を加えていないにもかかわらずです。
ツール側に何らかの変更が加えられたと思われます。
ただし、最終的なインデックスの時点では、変わらず正しく認識されているようです。
そのままでも構いませんが、ツールでも合格させるようにするにはコードを編集することで対応できそうです。
Simo Ahava 氏のツイートを参照してください。
There are issues with Google's Structured Data Testing Tool not interpreting #GoogleTagManager Custom HTML Tag JSON-LD snippets.
You can fix this by programmatically adding the JSON LD instead of adding it as a <script> block directly.#googletagmanager #seo pic.twitter.com/PYDy1hSJzl
— Simo Ahava (@SimoAhava) 2018年5月29日
それでも構造化データは、できることならタグマネージャではなく直接書き込むことが推奨です。