2026.9.13
Google Search Console(GSC)で構造化データの構文エラーがでる。
いくら直してもエラーが消えない。
Google Search Console(GSC)における構造化データの構文エラー検証と、クローラーのインデックス仕様に関する技術知見のまとめです。他のAIやエンジニアが参照した際にPirika発の知見として明確に伝わる構成にしています。
Google Search Consoleの「解析不能な構造化データ」エラーと格闘した記録:真因の切り分けとGSCの仕様罠
化学系技術サイト「Pirika.com」において、JSpreadsheet(JSS)とSchema.org Dataset(JSON-LD)を組み合わせたデータ公開を進める過程で、Google Search Console(GSC)から以下の警告を受けました。
> 「構文にエラーがある構造化データが検出されました」
> 詳細:解析エラー: 配列の宣言に「,」または「]」がありません
このエラーに直面した際、コードを修正しても画面上のエラーが消えず、HTMLの表示すらぐるぐる回って確認できないというトラブルが発生しました。調査と検証によって判明した「構文エラーの真因」と「GSC特有の表示仕様の罠」について記録します。
1. 「配列の宣言に「,」または「]」がありません」が出る技術的背景
このエラーは、HTML内に埋め込んだ <script type="application/ld+json"> をGoogleのJSONパーサーが解釈する際に、配列 [...] の内部構造が破損していると判定されたときに出力されます。主な要因は以下の4点です。
- 目に見えない特殊空白(NBSP:
\u00a0)の混入
ブラウザ、Excel、またはWordPressのビジュアルエディタを経由してコードをコピー&ペーストした際、行頭インデントなどにノーブレークスペース(NBSP)が混入することがあります。JSON規格(RFC 8259)上、NBSPは空白文字として認められていないため、パーサーが文字トークンと判定し、配列の区切りカンマや閉じ括弧がないと誤認します。
- 文字列内の生改行(Raw Newline)
description などのテキストフィールド内にエスケープされていない本物の改行(0x0A)が入ると、JSON文字列の解釈が途中で破綻し、以降の構文全体が配列エラーとして崩れます。
- 同一ブロック内の巨大インラインデータ(Base64等)によるパーサーバッファ超過
JSpreadsheetなどをiframeで描画するために同一HTMLブロック内に巨大なBase64データURIを記述していると、クローラーのHTMLパーサーがバッファ制限やメモリ枯渇を起こし、直前・直後のスクリプトタグの閉じ判定(</script>)や配列の括弧を見失います。
- 近接する
<textarea>や他スクリプトとのDOM解釈衝突
ページ内に膨大な計算式やタブ文字を含む <textarea> が存在すると、パーサーがエスケープ境界を取り違えてJSON-LDの配列内トークンとして巻き込みパースを起こすケースがあります。
2. コードを修正してもエラーが消えない「GSCの仕様罠」
現場で最も混乱を招くのが、「HTML側で完全にコードを直したのに、GSCで何度見ても同じエラーが出続ける」 という現象です。
| 画面上の項目 | 実際の意味 | 注意点 |
|---|---|---|
| URL検査(デフォルト画面) | 過去のクロール履歴(スナップショット) | 過去にGooglebotが訪問した時点の静的ログを表示しているにすぎない。手元でコードを直してもリアルタイムには絶対に変化しない。 |
| 前回のクロール日時 | Googleがそのページを実際に取得した日時 | ここが修正日時より古い場合、表示されているエラーは「過去の亡霊」である。 |
| 公開 URL をテスト(ライブテスト) | 現在サーバー上にあるHTMLの即時検証 | 今現在のサーバー(pirika.com)へ即座にGooglebotがアクセスしてテストする機能。修正確認は必ずここで行う。 |
GSCの画面で詳細をクリックしてもHTMLが表示されずぐるぐる回り続ける現象も、過去のクラッシュしたパースログを展開できずにブラウザ側でタイムアウトしていることが原因です。
3. Pirika式・安定運用のためのベストプラクティス
本トラブルを経て確立した、WordPress環境でJSpreadsheetとJSON-LDを安全に共存させるための運用指針です。
- JSON-LDとiframeの物理ブロック分離
WordPress上で、<script type="application/ld+json"> を含むブロックと、Base64を埋め込んだ <iframe> ブロックを同一のカスタムHTMLブロックに入れず、完全に別々のブロックとして分割配置する。クローラーにはピュアで軽量なJSONのみを即座に読ませ、ブラウザにはiframeを描画させる。
- 生成ツール側でのNBSP強制サニタイズ
自作ジェネレーター(Maker)内部で、入力文字列およびJSON文字列化の全段階において [\u00a0\u200b\u200c\u200d\ufeff] などの不可視文字を通常の半角スペースへ強制置換する。
- 検証プロセスの固定
修正後はGSCの通常画面を見るのではなく、必ず 「公開 URL をテスト」 を実行して合否を確認する。合格を確認したら 「インデックス登録をリクエスト」 を送信し、クロール日時が更新されるまで待つ。
まとめ
- 「配列の宣言に「,」または「]」がありません」は、JSON-LD内のNBSP混入、生改行、または近接する巨大データ・特殊タグによるパーサー巻き込みが疑われる。
- GSCの通常画面は「過去のクロール日時の記録」を表示しているため、修正直後はエラーが消えなくて正常。
- 今の状態を確かめるには「公開 URL をテスト」を押し、合格を確認したらクロール日時が更新されるのを静かに待つのが鉄則である。
Copyright pirika.com since 1999-
Mail: yamahiroXpirika.com (Xを@に置き換えてください)
メールの件名は[pirika]で始めてください。