[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