0

Im using JSON-LD as part of one of my website... And i found there too many data, that point to "myself" or "the company i work for"... so i decided to use partial item definition and @id attribute to reduce redundancy of these definitions.

Well there is an issue: If i use for example my company to relate myself to my company, google will fetch this data and view it as separate card of information which is linked for example to my working company, while the website has nothing to do with that company, it's only me as person which that card relate to...

to be honest i like it when it detect me, both, separately as a person, and merged as a member of website definition, but i dislike it about the organization, and i'm looking for a member that turn this feature off is available...

Here i like That google Know this element as a Person and as a part of WebSite

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "Person",
    "@id":"#hassanFaghihiPerson",
    "worksFor": ["#ravisOrganization"],
    ...<lots of other data>...
}
</script>

For this specific one, which consumed by other element i wished i could stop google from detecting this as separate card

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type"       : "Organization",
    "@id"         : "#ravisOrganization",
    ...<lots of other data>...
}
</script>

for example if there was something like:

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type"       : "Organization",
    "@id"         : "#ravisOrganization",
    "Standalone"  : false  <<------------ Is there any such a thing
}
</script>
  • 1
    Why do you want Google to know this info? As far as I know Google doesn't use the Person or Website schema for anything at all. Google uses the schema it lists here to change the display of sites in the search results: developers.google.com/search/docs/guides/search-gallery However, there is no advantage to using markup that doesn't make your site look different in the Google search results. – Stephen Ostermiller Sep 4 '18 at 9:47
  • 1
    Is this issue related to how the Structured Data Testing Tool represents the entities it detects? i.e. it does not show entities at the top level if they have been referenced by other entities. Are you experiencing a real world problem with this? I personally think systems will detect that all the entities do exist. The nesting may show how they try and determine which of the entities are the main one for a page. See @unors answer to help with that. – Tony McCreath Sep 4 '18 at 23:52
  • 1
    Unless you get rich snippets in the search results, structured data is a waste of time. Search engines don't use it for any other purpose. It doesn't help rankings. – Stephen Ostermiller Sep 5 '18 at 7:51
  • 1
    If the page is about a Person then a good solution is to reference a very basic Organisation entity (say, id, type, name, url). Have the id and url reference the page about the organization, that contains the Organization entity using the same id. – Tony McCreath Sep 6 '18 at 15:27
  • 1
    Make the id the same as the URL. i.e. Use a fully qualified URL for your ID. If you only supply a hash based id, then it is assumed the official version of the entity is on the current page. – Tony McCreath Sep 6 '18 at 23:09
1

You can’t control which search result feature a search engine should/shouldn’t show (except for not providing required properties, of course).

You can convey what the primary entity for the particular web page is: by using mainEntity/mainEntityOfPage. This gives consumers the chance to understand what the page is for, and what the secondary entities are (= everything else); but not all consumers make use of it, of course.

If the page is representing a single person, you could use:

{
  "@context": "http://schema.org",
  "@type": "ItemPage",
  "@id": "",
  "mainEntity": {"@id": "#hassanFaghihiPerson"}
}

and/or:

{
  "@context": "http://schema.org",
  "@type": "Person",
  "@id":"#hassanFaghihiPerson",
  "mainEntityOfPage": {"@id": "", "@type": "ItemPage"}
}
  • can we have multiple main entity? – deadManN Sep 5 '18 at 7:28
  • 1
    @deadManN: Yes, every Schema.org property can have multple values. If it makes sense is a different matter, of course -- especially with mainEntity, you would typically only have one (which could also be an ItemList). – unor Sep 5 '18 at 7:30
  • also since you have more knowledge in this matter, is there a way we only define <script> tag once? and put these separate docs beside each other? – deadManN Sep 5 '18 at 7:34
  • 1
    @deadManN: Yes, see this answer or this answer. – unor Sep 5 '18 at 8:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.