I am building a portfolio home for a friend of mine. He is an artist and his homepage should include a lot of interactive elements, so I decided to build it using React. However, this implies that the overall markup of the page will be nearly empty on load and I would like to include JSON-LD formatted data to regain search engines' attention.
So within the index.html
file I have this:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"author": { … }
…
}
</script>
But is this the right @type
, would Person
be more accurate here? I even stumbled over the EntryPoint
schema, which as well seams to be good because the main index is indeed the »Entrypoint« from the programs point of view.
In principle, each entity can be represented with Schema.org, not just one. You don’t have to decide whether to use WebPage
or Person
, you can use both.
But this is what your snippet shows anyway, as the value for the author
property would (ideally) be a Person
item. This Person
could also be the value of other properties, like about
/mainEntity
, publisher
etc.
For the semantics of the data, it’s irrelevant which entity is the top-level item in the JSON-LD, if that is what you’re asking.
The EntryPoint
type is not suitable, as it’s intended for protocols/APIs/etc., not just any webpage/website.