2016-02-12 4 views
7

Gibt es trotzdem JSON-LD zu verwenden ohne die script Inline in den HTML zu integrieren, aber trotzdem Google (& andere) Spiders zu finden? Als ich mich umsah, habe ich widersprüchliche Informationen gesehen.Gibt es trotzdem JSON-LD Schema nicht inline zu verwenden

Wenn dies die JSON-LD-Datei:

<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> 

Und ich habe dies in den head der HTML:

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

EDIT: Ich habe auch versucht:

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

Google Spinnen scheinen es zu vermissen und so tut das Test-Tool, wenn ich es nicht direkt auf die Datei zeigen. Ich versuche im CSP unsafe-inline zu umgehen. Und die only thing I can find is this, die in Chrome funktionieren würde, aber keine Konsolenfehler auf jedem anderen Browser auslösen möchte. Außerdem mag ich die Idee, dass Schema.org-Daten aus der Seitenstruktur abstrahiert werden. Würde das Hinzufügen des JSON-LD zur Sitemap für die Google Webmaster-Tools helfen?

Entschuldigung, insgesamt Noob zu JSON-lD und immer wieder in E-Mail-Dokumentation (das wäre für eine Website) oder alte Dokumentation.

+0

Mögliche Duplikat [Does JSON-LD eingebettet werden?] (Http://stackoverflow.com/questions/30864619/does-json-ld-have-to-be-embedded) – unor

+0

Haben Sie versucht das und es wird immer noch nicht abgeholt. Meine beste Vermutung ist, dass JSON-LD für Webseiten in externen Dateien noch nicht unterstützt wird. – Cynic

Antwort

0

Es kann zwar nicht extern erstellt werden und es wird nicht inline unterstützt, aber Sie können trotzdem erreichen, was Sie wollen, indem Sie es über eine JavaScript-Datei in das DOM einfügen.

Hinweis: Ich verwende ein Array für Ordentlichkeit, so dass ich alle strukturierten Datenelemente segmentieren und eine unendliche Menge von ihnen hinzufügen kann. Ich habe eine kompliziertere Version dieses Codes auf meinen Webseiten und habe tatsächlich eine externe serverseitige gerenderte Datei, die sich als JavaScript-Datei maskiert.

Ein ja Google Suchmaschine Bot versteht es. Es kann Tage dauern, bis sich die Registrierung registriert und Webmaster-Tools verwendet werden, um zu erzwingen, dass ein erneutes Crawlen eine Aktualisierung der JSON-LD-Daten erzwingt - es scheint, als müssten Sie nur warten.

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(); 
Verwandte Themen