移した。もともとはheadの中に書いていたけれども、とあるサイトのコードを眺めているとbodyの閉じタブの前に書いてあるのに気付いた。

bodyに書いてもよいのかわからなかったが、scriptである以上は後ろに持っていけるのであれば後ろに持っていくに越したことはない。というわけでGoogle先生のドキュメントを漁ったところ次のものが見つかった。

構造化データを使用して「よくある質問」をマークアップする

この中に次のような記述がある。

必須プロパティを追加します。ページ上の構造化データを配置する場所について詳しくは、JSON-LD 構造化データ: ページでの挿入場所をご覧ください。

で、ここの JSON-LD 構造化データ: ページでの挿入場所をご覧くださいのリンクをたどると下のYoutubeにたどり着く。

この動画は「JSON LDをheadの代わりにbodyの最下部に挿入してよいのか」というズバリ私が知りたい内容そのものに答える内容。つたないヒアリング力で聞いてみると最後の方(1分10秒くらいで)次のように述べている(と思う)

So, as mention the JSON-LD structure data can be either in the head or the body the page.

つまりどっちでもよい。と言っていると思う。さらにその後、質問に対してYESといっているので要するにbodyの最下部に挿入してもなんの問題もないだろう。

後はasyncを付与しても良いかどうかがわからなかったが、これは GooglebotがJavaScriptをどう評価するかに依存することになるけれども、調べるのが手間だったので今回は見送り。