パース・・・とは オーストラリアの西海岸の都市の事かいな
今年に入ってから、標記の警告文
Google様のサーチコンソールの警告メッセージ:『スクリプトタグに無効な JSON が含まれており、パースできません。』が送られてきていました。
件のサイトはずっと放置していたAMPのサイトで、これまでは約2年間何の問題も無く、念のためやってみたGoogleのAMPテストでエラーも出ません。
これはきっといつものように、Googleがクロールした不完全なキャッシュを評価したせいで一時的なものだろうと、高を括って警告を無視していたのでした。
すると、再クロールされてインデックスが更新されてエラーが減っていくどころか、サイト内のAMPページが次々と警告ありに・・・ (T_T)
余計なお世話で運営している、他のサイトも『スクリプトタグに無効な JSON が含まれており、パースできません。』が出ていました。
ググってもヤフっても、この文言そのもので検索して出てくるのはWordPressのプラグインがどうちゃらな話と、Google様御乱心,俺のページ側の問題ではない ( ゚Д゚)
放置でおk ・・・的な対処法ばかり。
そんな中で、
JSON (JavaScript Object Notation)の言語仕様を覚えよ
・・・な、突き放したアドバイスを発見 (;・∀・)
ちょっと引いて『json パースエラー』などで検索すると、プログラマーとかエンジニア御用達な情報が無数にヒット
いやいや html+css でさえ覚束ず、ましてや JavaScript も php もよく分かってさえいないド素人の私 σ(^_^)
JSONについて付け焼刃で一から学んだとして、コピペのツギハギで作り上げたAMPページの構造化データの構文の不備を見つけるなど、果たしてできるだろうか(いやできはしない)
ですが、折角Google先生が問題の個所を反転表示してくれているのですから、これを頼りにエラー箇所の修正を試みます。
ただ、あくまで本当に「構文にエラーがあるせい」という前提ですから、もしソースコードに問題が無かった場合は、ゴールのない挑戦という事になり、ドツボにはまる覚悟が要ります。
が、そこは確定申告も無事に済ませた事(警告メッセージを放置して)ですし、これまで溜めて溜めてやっと一気に片付けた帳簿の仕分け記帳の余勢を駆って、ドツボにでもはまってやりましょう (^^;
有効ならば放置していても良いのではないのか・・・そんな諦観がよぎりつつ
先ずは、
対処:問題の反転箇所を丸ごと削除
結果:更に下の部分に反転箇所が移るだけ
次に
対処:項目の間にあるカンマ(,)を削除
結果:赤い警告になって、より深刻なムード
・・・めくらめっぽう思いつきな出鱈目をやってもダメなようです(あたりまえです)
んもう 数式的な観点で構文を最初っから見てみるしかない
html もですね、よく、開いたタグが閉じていなかったり、DOM深さが破綻していたりと、特にホームページビルダー的なソフトで作ったページの、ソースだけを弄ったりした時にうっかり問題を作ってしまって、それでもアップロードして見てみるとちゃんと表示されていたりして・・・
多少適当で仕様に従っていなくても、表示されていればおkっぽいムードに慣れてしまっていた感は否めません。
で、今回は開いた({ )は閉じているか,二重に開いていないか,要素間の(,)や( “ )は重複したり開けっ放しの箇所はないか・・・
・・・的な見方で上から順に見ていって、怪しい箇所は修正(というかとりあえず変えてみる)してページテスト(毎回2分くらい待たされる)
( ↑ )という、はなから勉強する気のない、不毛なトライアンドエラーを繰り返す作戦に出ました。
すると・・・
怪しい },
が、反転箇所の直前に2箇所 Σ(゚Д゚)
ほぼコピペによる重複箇所と思われます。
この、下側の }
を削除して、,
だけ残しました。
すると、今度は "@type": "ImageObject" の重複といった別のエラー( ↑ あとここ部分が反転)が出ました。
さっきの( ↑ )重複 }
削除作戦は正解だったのかもしれない (*'▽')
で、 "Image": から、以下の },
まで丸ごとを、少し上の別の個所に同じ記述がある(!)事を確認してから削除。
アップロードして、ページのテストかけて、2分くらい(毎回)待たされてみます。
すると・・・
当てずっぽうで対処したにもかかわらず、エラーが消えているではないですか (*'▽')
他のページも、基本的な構文はコピペ作成(お恥ずかしい)でしたので、間違いのある部分は基本的に同じです。
ので、同様の対処でエラーが出ない事を確認してから 修正を検証
警告が来た頃は、コロナ禍の1年の確定申告に取り掛かろうかどうしようか逡巡しつつ、Googleからのメッセージを無視したまま2ヶ月余り先送り。
もっと早く取り掛かかっていればよかったです。
このまま警告が消えて行ってくれることを祈ります ('∀')
スクリプトタグに無効な JSON が含まれており、パースできません。
( ↑ )の警告メッセージは、ググってヒットしたケースのようにWordPressの問題だったりGoogle側の問題だったりすることも多いのかも知れません。
が、私の場合は完全に不完全な記述を放置していて、それを長期間Googleも放置していて、ここに来てようやく「構文エラーだよ」って、教えてもらえたケースでした。
こんな事もあるということで、参考になれば(なるか?)幸いです (^^;
PS. その後・・・
ちょっと待たされましたが、未だ検証待ちの1ページを残して「有効」に復帰しつつあります。
代理運用しているAMPページの警告も、有効に戻ってくれてホッとしています (^^;