og:article Metadata: Published Time, Author, Section, and Tags
How to use og:type=article with og:article:published_time, og:article:author, og:article:section, and og:article:tag for blog posts and news articles.
What is og:type=article?
The Open Graph protocol defines a set of object types. When you set og:type to article, you unlock a set of article: namespace properties that provide structured metadata specific to written content — blog posts, news articles, and editorial pieces.
Facebook was the original consumer of these tags, but many platforms now read them. Google uses article:published_time as a signal for content freshness. Some social platforms display author and publication date in their link previews.
Complete article OG tag set
<head> <!-- Required base OG tags --> <meta property="og:type" content="article" /> <meta property="og:title" content="How to Use og:article Metadata" /> <meta property="og:description" content="A guide to article-specific OG properties." /> <meta property="og:image" content="https://yourdomain.com/og/article-og-guide.png" /> <meta property="og:url" content="https://yourdomain.com/blog/og-article-guide" /> <meta property="og:site_name" content="Your Blog Name" /> <!-- Article-specific properties --> <meta property="article:published_time" content="2024-03-15T09:00:00+00:00" /> <meta property="article:modified_time" content="2024-03-20T14:30:00+00:00" /> <meta property="article:expiration_time" content="2025-03-15T09:00:00+00:00" /> <meta property="article:author" content="https://yourdomain.com/authors/jane-smith" /> <meta property="article:section" content="Engineering" /> <meta property="article:tag" content="open graph" /> <meta property="article:tag" content="seo" /> <meta property="article:tag" content="meta tags" /> </head>
Note: article:tag is a repeatable property — include one <meta> tag per keyword/tag.
article:published_time
This is the most important article property. It must be in ISO 8601 format with timezone offset:
<!-- Correct: ISO 8601 with timezone --> <meta property="article:published_time" content="2024-03-15T09:00:00+00:00" /> <meta property="article:published_time" content="2024-03-15T09:00:00Z" /> <!-- Also valid (UTC): --> <meta property="article:published_time" content="2024-03-15" /> <!-- WRONG — not ISO 8601: --> <meta property="article:published_time" content="March 15, 2024" /> <meta property="article:published_time" content="03/15/2024" />
In JavaScript, generate the correct format with: new Date(post.publishedAt).toISOString()
article:author
The article:author property should be a URL pointing to the author's profile page (an OG object of type profile). It is also repeatable for co-authored articles.
<!-- Single author (URL to author profile page) --> <meta property="article:author" content="https://yourdomain.com/authors/jane-smith" /> <!-- Multiple authors --> <meta property="article:author" content="https://yourdomain.com/authors/jane-smith" /> <meta property="article:author" content="https://yourdomain.com/authors/john-doe" /> <!-- The author profile page should have these OG tags: --> <!-- <meta property="og:type" content="profile"> --> <!-- <meta property="profile:first_name" content="Jane"> --> <!-- <meta property="profile:last_name" content="Smith"> --> <!-- <meta property="profile:username" content="janesmith"> -->
Facebook displays author information from this relationship. Twitter and LinkedIn largely ignore article:author in favor of their own attribution mechanisms.
article:section
A high-level category or section name for the article. This is a single string, not a URL. Use it for your top-level content categories:
<meta property="article:section" content="Engineering" /> <!-- or --> <meta property="article:section" content="Product News" /> <meta property="article:section" content="Tutorials" />
article:tag
Tags are granular keywords describing the article content. Include one <meta> tag per keyword. Keep tags to 5–10 per article; more than that provides diminishing returns.
<meta property="article:tag" content="open graph" /> <meta property="article:tag" content="seo" /> <meta property="article:tag" content="social media" /> <meta property="article:tag" content="meta tags" /> <meta property="article:tag" content="link preview" />
Implementing in Next.js
// app/blog/[slug]/page.tsx
export async function generateMetadata({ params }) {
const post = await getPost(params.slug);
return {
title: post.title,
description: post.excerpt,
openGraph: {
title: post.title,
description: post.excerpt,
type: 'article',
url: `https://yourdomain.com/blog/${post.slug}`,
images: [{ url: post.ogImage, width: 1200, height: 630 }],
publishedTime: new Date(post.publishedAt).toISOString(),
modifiedTime: new Date(post.updatedAt).toISOString(),
authors: [`https://yourdomain.com/authors/${post.author.slug}`],
section: post.category,
tags: post.tags,
},
};
}Implementing in WordPress
Plugins like Yoast SEO and Rank Math automatically add article:published_time and article:modified_time for post types. For full control, use a custom filter:
// functions.php
add_action('wp_head', function() {
if (is_single()) {
global $post;
$published = get_the_date('c', $post);
$modified = get_the_modified_date('c', $post);
$author_url = get_author_posts_url($post->post_author);
$tags = get_the_tags();
echo '<meta property="og:type" content="article">' . "\n";
echo '<meta property="article:published_time" content="' . esc_attr($published) . '">' . "\n";
echo '<meta property="article:modified_time" content="' . esc_attr($modified) . '">' . "\n";
echo '<meta property="article:author" content="' . esc_url($author_url) . '">' . "\n";
if ($tags) {
foreach ($tags as $tag) {
echo '<meta property="article:tag" content="' . esc_attr($tag->name) . '">' . "\n";
}
}
}
});Which platforms use article: properties?
- Facebook: Uses all article: properties for its sharing debugger and link previews.
- Google: Uses
article:published_timeandarticle:modified_timeas freshness signals. - Twitter/X: Ignores article: properties; uses twitter: card tags instead.
- LinkedIn: Partially respects article: properties in its Post Inspector.
- Discord, Slack: Ignore article: properties; display og:title, og:description, og:image only.
Test your OG tags free
Paste any URL into OGFixer to see exactly how your link previews look on Twitter, LinkedIn, Discord, and Slack.