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: https://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 04 '18 at 09: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 04 '18 at 23:52
  • @StephenOstermiller so do you mean it's waste of time and resource to write schema that links object to each other, and search engines doesn't cares? – Hassan Faghihi Sep 05 '18 at 07:30
  • @TonyMcCreath yes, testing tool result,... i just want to make sure my page doesn't list or linked directly to my company as it has nothing to do with it – Hassan Faghihi Sep 05 '18 at 07:31
  • 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 05 '18 at 07:51
  • i thought it would also help to find better and more similar result about what user search for – Hassan Faghihi Sep 05 '18 at 08:04
  • 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 06 '18 at 15:27
  • @TonyMcCreath how to send ID and URL to that page? URL seem obvious and self explanatory but id... ??? can you use a sample? – Hassan Faghihi Sep 06 '18 at 20:40
  • 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 06 '18 at 23:09
  • the site is wrote using template engine of koken, and it's using # for routing in angularjs system – Hassan Faghihi Sep 07 '18 at 11:00

1 Answers1

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"}
}
unor
  • 21,739
  • 3
  • 46
  • 117