本文へスキップ

NEWS

業界動向

Google、JSON-LD の解析方式を変更——HTMLアンエスケープは1回のみ、二重エスケープした構造化データは値が崩れる

Google の検索セントラルが、JSON-LD の抽出方法を変更したと告知しました。JSON などの標準に合わせ、HTML のアンエスケープを1回だけ適用する方式へ。二重にエスケープされた実体参照は展開されず、その文字列のまま値として読まれます。対処は標準の JSON エスケープか Unicode の16進エスケープへの書き換え。告知は8月21日のソーシャル投稿のみで、ドキュメントの更新履歴には項目が立っていません。

Google の検索セントラルが、JSON-LD の抽出方法を変更したと明らかにしました。
告知は8月21日、公式のソーシャルアカウントからの投稿です。
パーサーを JSON などの標準に合わせるために JSON-LD の抽出を変更し、いまは HTML のアンエスケープを1回だけ適用している、という説明。
これまで二重にエスケープされた実体参照まで展開していた挙動が、1回で止まるようになりました。

影響が出るのは、値のなかにアンパサンドなどの記号を含むサイトです。
実体参照が1つだけ書かれている状態なら、1回のアンエスケープでこれまでどおり素の文字に戻ります。
二重に書かれている場合はそこで止まり、実体参照の文字列そのものが値として読まれることになる。
社名や商品名にアンパサンドを含むサイトで、テンプレートが二重にエスケープしていると、構造化データの値がそのまま崩れて見えるわけです。

Google が案内している直し方は、標準の JSON エスケープか、Unicode の16進エスケープを使うこと。
アンパサンドであれば \u0026 と書く形です。
エスケープの決まりは RFC 8259 の第7節に定義されている、としています。
自分のサイトで確かめるなら、リッチリザルトテストにURLを入れて、抽出された値を目で読むのが早い。

気になるのは、この変更がドキュメントの更新履歴に載っていないことです。
検索セントラルのソーシャル投稿だけで流れており、追いかけていなければ気づけません。
構造化データはページの見た目に出ないので、壊れていても誰も気づかないまま数か月たつことがある。
コンテナのAIO構造化データ機能は JSON-LD をCMS側で組み立てて出力しているぶん、テンプレートに手書きするやり方より値が崩れにくい作りです。
とはいえ確認はしておきたいので、私も手元のサイトから主要なページを1つずつ見ておくつもりです。

まずはお気軽にご相談ください。

自由なデザインと、迷わない運用を。
Container で始めませんか。

WordPress・独自CMSからの移行もご相談ください。お客様のサイト規模・運用体制に合わせて個別にご提案します。