[wp-meta] [Making WordPress.org] #5604: Add structured data to profile pages
Making WordPress.org
noreply at wordpress.org
Mon Feb 8 09:35:04 UTC 2021
#5604: Add structured data to profile pages
----------------------------+---------------------
Reporter: jonoaldersonwp | Owner: (none)
Type: enhancement | Status: new
Priority: low | Milestone:
Component: Profiles | Resolution:
Keywords: seo |
----------------------------+---------------------
Description changed by jonoaldersonwp:
Old description:
> We should add structured data to profile pages, as part of a bigger
> project to add structured data throughout the wp.org ecosystem.
>
> **Specifically, we should:**
>
> - Duplicate the markup currently used on the wordpress.org homepage.
>
> - Adapt and extend that as follows:
> - Add a `WebSite` piece for profiles.wordpress.org.
> - Alter the `isPartOf` property of the `WebPage` to reference the new
> `WebSite` piece.
> - Alter the `@type` of the `WebPage` to an array, and add `ProfilePage`.
> - Set the `@id` and `url` properties of the `WebPage` to the canonical
> URL of the profile page.
> - Remove the `description` property from the `WebPage`.
> - Add a `Person` piece, representing the person whom the profile
> represents.
> - Add an `about` property to the `WebPage`, referencing the `Person`.
>
> **Example output**
> {{{
> <script type="application/ld+json">
> {
> "@context": "https://schema.org",
> "@graph": [{
> "@type": "Organization",
> "@id": "https://wordpress.org/#organization",
> "url": "https://wordpress.org/",
> "name": "WordPress",
> "logo": {
> "@type": "ImageObject",
> "@id": "https://wordpress.org/#logo",
> "url":
> "https://s.w.org/style/images/about/WordPress-logotype-wmark.png"
> },
> "sameAs": [
> "https://www.facebook.com/WordPress/",
> "https://twitter.com/WordPress",
> "https://en.wikipedia.org/wiki/WordPress"
> ]
> },
> {
> "@type": "WebSite",
> "@id": "https://wordpress.org/#website",
> "url": "https://wordpress.org/",
> "name": "WordPress.org",
> "publisher": {
> "@id":
> "https://wordpress.org/#organization"
> }
> },
> {
> "@type": "WebSite",
> "@id": "https://profiles.wordpress.org/#website",
> "url": "https://profiles.wordpress.org/",
> "name": "WordPress.org Profiles",
> "isPartOf": {
> "@id": "https://wordpress.org/#website"
> },
> "publisher": {
> "@id":
> "https://wordpress.org/#organization"
> }
> },
> {
> "@type": ["ProfilePage", "WebPage"],
> "@id": "https://profiles.wordpress.org/matt/",
> "url": "https://profiles.wordpress.org/matt/",
> "inLanguage": "en",
> "name": "Matt Mullenweg – @matt",
> "isPartOf": {
> "@id":
> "https://profiles.wordpress.org/#website"
> },
> "about": {
> "@id":
> "https://profiles.wordpress.org/matt/#person"
> }
> },
> {
> "@type": "Person",
> "@id":
> "https://profiles.wordpress.org/matt/#person",
> "url": "https://profiles.wordpress.org/matt/",
> "name": "Matt Mullenweg",
> "image":
> "https://secure.gravatar.com/avatar/767fc9c115a1b989744c755db47feb60?s=500",
> }
> ]
> }
> </script>
> }}}
>
> **Special considerations**
> - When a `Person` lacks a `name` value, use their handle instead,
> omitting the `@` symbol (e.g., for
> https://profiles.wordpress.org/tzafrir/, use `tzafrir`).
> - The addition of `sameAs` properties to the person is bottlenecked by
> https://meta.trac.wordpress.org/ticket/4278.
> - We request a 500px sized version of the gravatar image.
New description:
We should add structured data to profile pages, as part of a bigger
project to add structured data throughout the wp.org ecosystem.
**Specifically, we should:**
- Duplicate the markup currently used on the wordpress.org homepage.
- Adapt and extend that as follows:
- Add a `WebSite` piece for profiles.wordpress.org.
- Alter the `isPartOf` property of the `WebPage` to reference the new
`WebSite` piece.
- Alter the `@type` of the `WebPage` to an array, and add `ProfilePage`.
- Set the `@id` and `url` properties of the `WebPage` to the canonical
URL of the profile page.
- Remove the `description` property from the `WebPage`.
- Add a `Person` piece, representing the person whom the profile
represents.
- Add an `about` property to the `WebPage`, referencing the `Person`.
**Example output**
{{{
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [{
"@type": "Organization",
"@id": "https://wordpress.org/#organization",
"url": "https://wordpress.org/",
"name": "WordPress",
"logo": {
"@type": "ImageObject",
"@id": "https://wordpress.org/#logo",
"url": "https://s.w.org/style/images/about
/WordPress-logotype-wmark.png"
},
"sameAs": [
"https://www.facebook.com/WordPress/",
"https://twitter.com/WordPress",
"https://en.wikipedia.org/wiki/WordPress"
]
},
{
"@type": "WebSite",
"@id": "https://wordpress.org/#website",
"url": "https://wordpress.org/",
"name": "WordPress.org",
"publisher": {
"@id":
"https://wordpress.org/#organization"
}
},
{
"@type": "WebSite",
"@id": "https://profiles.wordpress.org/#website",
"url": "https://profiles.wordpress.org/",
"name": "WordPress.org Profiles",
"isPartOf": {
"@id": "https://wordpress.org/#website"
},
"publisher": {
"@id":
"https://wordpress.org/#organization"
}
},
{
"@type": ["ProfilePage", "WebPage"],
"@id": "https://profiles.wordpress.org/matt/",
"url": "https://profiles.wordpress.org/matt/",
"inLanguage": "en",
"name": "Matt Mullenweg – @matt",
"isPartOf": {
"@id":
"https://profiles.wordpress.org/#website"
},
"about": {
"@id":
"https://profiles.wordpress.org/matt/#person"
}
},
{
"@type": "Person",
"@id":
"https://profiles.wordpress.org/matt/#person",
"url": "https://profiles.wordpress.org/matt/",
"name": "Matt Mullenweg",
"image":
"https://secure.gravatar.com/avatar/767fc9c115a1b989744c755db47feb60?s=500",
"sameAs": [
"https://ma.tt/"
]
}
]
}
</script>
}}}
**Special considerations**
- When a `Person` lacks a `name` value, use their handle instead, omitting
the `@` symbol (e.g., for https://profiles.wordpress.org/tzafrir/, use
`tzafrir`).
- The `sameAs` property should contain an array of every known URL
representing that user. This should use the 'real' user URL (not the
obfuscated URL), and their GitHub profile if provided.
- If there are no `sameAs` values, omit the property.
- NB, adding social profiles to this is bottlenecked by
https://meta.trac.wordpress.org/ticket/4278.
- We request a 500px sized version of the gravatar image.
--
--
Ticket URL: <https://meta.trac.wordpress.org/ticket/5604#comment:4>
Making WordPress.org <https://meta.trac.wordpress.org/>
Making WordPress.org
More information about the wp-meta
mailing list