JSON-LD for schema.org markup – what to include and where


I’m trying to take advantage of using JSON-LD for Schema.org markup over Microdata because it seems way easier to implement and to maintain. Also, I’ve heard that consumers like Google and Bing now prefer it’s use. However, since JSON-LD markup is not directly part of the source code it presents a possible issue. That being, it’s now way easier to add anything you want into your markup, which makes me wonder if this could be viewed as spammy or duplicate content.

For instance, take my example code:

JSON-LD Markup:

{ "@context": "http://schema.org", "@type": "LocalBusiness", "additionalType": "http://www.productontology.org/id/Company_Catagory", "address": {     "@type": "PostalAddress",     "addressLocality": "some city",     "addressRegion": "XX",     "postalCode":"12345",     "streetAddress": "123 any st."     }, "description": "Detailed description of the Company", "name": "Company Name", "openingHours": "Mo-Fri 08:30-17:00", "geo": {     "@type": "GeoCoordinates",     "latitude": "42.000",     "longitude": "-81.000"     }, "logo": "https://www.campany-name.com/logo.png", "image": "https://www.company-name.com/logo.png", "url": "https://www.company-name.com", "telephone": "(xxx) xxx-xxxx", "faxNumber": "(xxx) xxx-xxxx", "foundingDate": "1900", "priceRange": "$  $  ", "email": "info@company-name.com", "currenciesAccepted": "USD", "hasMap": "https://www.google.com/maps/place/direct-link-to-google-map", "paymentAccepted":"Cash, Credit Card, ACH, Debit", "sameAs" : [ "https://www.facebook.com/company-name/",     "https://twitter.com/company-name"] } 

The above markup example seems to satisfy the Google markup validator for a LocalBusiness, but the actual page it’s referencing might only contain a few pieces of that information.

So my question is a few parts:

  1. Would it be best to only include markup that actually appears in the source code or should I provide all the bits of markup information the consumers like Google and Bing want?

  2. If the answer to question 1 is to only include markup that appears in the source code. Then, what if it’s not feasible to include some items in the source code such as the geo item. Would it be best to not include it in the markup at all?

  3. Is it necessary to include the same markup on every page, or are the consumers smart enough to understand that if the LocalBusiness type has been populated on a different page inside a domain that it applies to the entire domain?

  4. If the answer to question 3 is to only include LocalBusiness markup data on one page throughout an entire site, is there a best practice regarding which page to place it on? ie. home page, contact us page…. any SEO benefit?