tamakipedia

フロントエンドエンジニア。Typescriptもう特訓中です。一日の振り返りや学んだことをちょっとずつ吐いています。

【amp】スクリプトタグに無効な JSON が含まれており、パースできません。

サーチコンソールに出たampのエラーを解決したのでログとして残しておきます。

今回は
スクリプトタグに無効な JSON が含まれており、パースできません。」
について。

f:id:okinawanpizza:20210715233848p:plain

原因

構造化データの作成に用いるJSON+LDの部分でこけていました。

 <script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "NewsArticle",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://dressy.pla-cole.wedding/stringart-popularstringartitem/"
    },
    "headline": "【ホニャララ】知ってる??人気急上昇▷◁.。ホニャララをご紹介☆:*:゚",
    "image": {
      "@type": "ImageObject",
      "url": "https://〇〇○",
      "height": 1125,
      "width": 1125    },
    "datePublished": "2019-10-23T09:15:23+0900",
    "dateModified": "2020-10-06T12:34:55+0900",
    "author": {
      "@type": "Person",
      "name": "〇〇○"
    },
    "publisher": {
      "@type": "Organization",
      "name": "〇〇○",
      "logo": {
        "@type": "ImageObject",
        "url": "https://〇〇○",
        "width": 100,
        "height": 100
      }
    },
    "description": "
ホニャララ
\ホニャララ/

  "}
  </script>

こちらが実際のJSON+LDなのですが、
jsonのルールとして、「/」や改行は普通の文字列ではなく特殊文字としての識別扱いになり
ampではエラーになってしまいます。

以下記事参考 https://www.ipentec.com/document/json-character-escape

https://okinawanpizza.hatenablog.com/

functions.php にディスクリプション用の文言エスケープしてくれるような記述を追加して解決しました。 おしまい