Pinterest ‘article:author’ Incompatible with Open Graph

Pinterest has published several methods that website owners can use to provide information for their Rich Pins format, including the standard Open Graph meta tags. Open Graph meta tags generally include the title, description, one or more images, but can also include product details, author information, etc. This past week I found a serious incompatibility between Pinterest’s support of the ‘article:author’ meta tag, and that of Facebook (the leading proponent of the Open Graph standard).

Since the Open Graph protocol website often lacks detail and examples, the Facebook developers website is often the next goto for more Open Graph information. As an example, if you have a webpage that is an ‘og:type = article’ and use an ‘article:author’ meta tag, the Open Graph protocol website says the value should be a “profile”, but the “profile” value is described as being another ‘og:type’ (so we might interpret that as being a URL to another webpage of ‘og:type = profile’). Facebook on the other-hand is much clearer — the ‘article:author’ value should be a Facebook profile URL or ID. For example “https://www.facebook.com/john123” or just “john123”. If you enter anything else, like a first and last name, the Facebook debugger will throw an error for that meta tag.

Pinterest on the other-hand will silently ignore any URL in the ‘article:author’ meta tag, and accepts only a character string like “john123” or “John Doe”. The former might be an acceptable compromise, if you don’t mind showing your Facebook username ID on Pinterest Rich Pins. If you prefer to show your full name instead, then your website will have to generate different meta tags for the Pinterest crawler.

To generate different meta tags, you can use the user agent string to identify the Pinterest crawler (and most others), but don’t forget that any full-page caching front-ends (or plugins) will have to be configured to manage the differences. You can either exclude the crawlers from your front-end cache, or use the agent string as part of the content caching ID.

For example, if you use Quick Cache, you can exclude the following user agent string:

Or add the following PHP code to the ‘MD5 Version Salt’ string:

2 thoughts on “Pinterest ‘article:author’ Incompatible with Open Graph

  1. Well at least I’m not insane. Found this looking for a solution but it seems like the real answer is that Open Graph is a hot mess and hasn’t been implemented properly by anyone.

    IMHO though the Open Graph description is actually very clear and explicit once you get past the complexity of the way it presents the information. article:author should be an array of profiles, meaning it should contain links to the profiles of people who authored the article and each of those profiles should have all the profile:* properties set up. This is actually very elegant and makes perfect sense. In WordPress the obvious move would be to add profile:* properties to author archive screens and just print user’s profile URLS in the article:author field.

    If that was actually how it worked then Facebook could add profile:facebook_id and pinterest etc. could add their own fields, with all of them able to fall back on the generic first name/last name/username profile:* fields when their preferred ID isn’t available (i.e. Pinterest wouldn’t need it’s own field, and Facebook could show the authors’ name even if they hadn’t filled out their FB ID in their user profile).

    Instead we have inherently incompatible APIs based on what is supposed to be a standard. I really don’t want to put anything into open graph tags unless it’s perfect because I’ve already discovered other services (Feedly) doing all kinds of things with the data that I didn’t expect. I mean, maybe my Facebook ID is okay (It’s just my name) but who knows what nonesense some of my authors might have as their Facebook name that they would never use on our semi-professional website.

    Did you try setting up a profile:* URL and seeing what happened? Maybe it works and it’s just that the Facebook docs only mention the shortcut despite the full version also working?

Comments are closed.