2016-02-12 16 views
7

scriptをHTMLにインライン化せずにJSON-LDを使用することはできますが、それでもGoogle(&)のスパイダーはそれを見つけることができますか?周りを見回すと、矛盾する情報がいくつか見られました。JSON-LDスキーマをインラインで使用しないでください

これは、JSON-LDファイルだった場合:

<script type="application/ld+json"> 
    { 
     "@context" : "http://schema.org", 
     "@type" : "WebSite", 
     "name" : "Example Site", 
     "alternateName" : "example", 
     "description" : "Welcome to this WebSite", 
     "headline" : "Welcome to Website", 
     "logo" : "https://example.com/public/images/logo.png", 
     "url" : "https://example.com/" 
    } 
    </script> 

そして私は、HTMLのheadでこれを持っている:

<script src="/public/json-ld.json" type="application/ld+json"></script> 

編集:私も試してみた:

<link href="/public/json-ld.json" rel="alternate" type="application/ld+" /> 

Google Spiderがそれを見逃していると思われます。私がファイルを直接指していない限り、テストツールもそうです。私はCSPでunsafe-inlineを回避しようとしています。そしてonly thing I can find is thisはChromeで動作しますが、他のすべてのブラウザでコンソールエラーを発生させたくありません。さらに、私はSchema.orgのデータがページ構造から抽象化されているのが好きです。 Google WebマスターツールのサイトマップにJSON-LDを追加すると役立ちますか?

申し訳ありませんが、JSON-1Dの問題は解決されず、電子メールの文書(これはサイト用)または古い文書にとどまっています。

+0

の可能性のある重複〔んJSON-LDが埋め込まれている?](http://stackoverflow.com/questions/30864619/does-json-ld-have-to-be-embedded) – unor

+0

を試してみましたこれはまだ取り上げられていません。 JSON-LD for websitesは外部ファイルではまだサポートされていません。 – Cynic

答えて

0

真に、それは外部に作ることはできず、インラインではサポートされていませんが、JavaScriptファイルを介してDOMに注入することで、あなたが望むものを達成することはできます。

注:私はすべての構造化されたデータ要素をセグメント化し、それらの無限の量を追加できるように、整頓のために配列を使用しています。私は私のウェブサイト上にこのコードのより複雑なバージョンを持っていて、実際にはJavaScriptファイルとして装っている外部サーバ側のファイルをレンダリングしています。

はい、Google検索のボットはそれを理解しています。再登録を強制するWebmasterツールを使用してJSON-LDデータを強制的に更新するようには思われません - 待つだけのようです。

var structuredData = { 
    schema: { 
     corporation: { 
      '@context':   'http://schema.org', 
      '@type':   'Corporation', 
      'name':    'Acme', 
      'url':    'https://acme.com', 
      'contactPoint': 
      { 
       '@type':  'ContactPoint', 
       'telephone': '+1-1234-567-890', 
       'contactType': 'customer service', 
       'areaServed': 'US' 
      } 
     }, 
     service: { 
      '@context':   'http://schema.org/', 
      '@type':   'Service', 
      'name':    'Code optimization', 
      'serviceOutput' : 'Externalized json', 
      'description':  'Inline json to externalized json' 
     }, 
    }, 
    init: function() { 
     var g = []; 
     var sd = structuredData; 
     g.push(sd.schema.corporation); 
     g.push(sd.schema.service); 
     //etc. 

     var o = document.createElement('script'); 
     o.type = 'application/ld+json'; 
     o.innerHTML = JSON.stringify(g); 
     var d = document; (d.head || d.body).appendChild(o); 
    } 
} 
structuredData.init(); 
関連する問題