# Article pages set og:type article and article meta tags

- **Pattern:** `ab-001824` (`marketing-social-sharing.share-infrastructure.social-meta-per-content-type`)
- **Severity:** low
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-001824
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-001824)

## Why it matters

Setting `og:type: 'article'` without the corresponding article meta tags (`article:published_time`, `article:author`) signals an incomplete implementation. Facebook's Open Graph explorer and LinkedIn's article feed both parse these supplemental fields to categorize and timestamp content. Per ogp.me and the schema-org Article type, published_time is used by platforms to determine content freshness and sort articles in feeds; author enables attribution to contributor profiles. When the type is 'article' but the fields are absent, platforms fall back to treating the content as a generic article with unknown provenance — forfeiting the structured article display format that the type declaration was intended to unlock.

## Severity rationale

Low because incomplete article meta tags degrade platform-specific article features but do not break sharing — the og:type declaration still renders a valid card without the supplemental fields.

## Remediation

When you use `og:type: 'article'`, include at minimum `publishedTime` and `authors` alongside it:

```ts
openGraph: {
  type: 'article',
  publishedTime: post.publishedAt.toISOString(),
  modifiedTime: post.updatedAt?.toISOString(),
  authors: [`https://yoursite.com/authors/${post.authorSlug}`],
  section: post.category,
  tags: post.tags,
}
```

Add this in the `generateMetadata` function in your blog route at `app/blog/[slug]/page.tsx` or equivalent. The `authors` field expects a URL to an author profile page, not a plain name string.

## Detection

- **ID:** `social-meta-per-content-type`
- **Severity:** `low`
- **What to look for:** For blog posts or article pages, check whether the OG metadata includes article-specific properties: `article:published_time`, `article:modified_time`, `article:author`, and `article:section`. These are used by Facebook and LinkedIn to categorize and display content correctly in their article feeds. In Next.js App Router, these are set via `openGraph.type: 'article'` alongside `openGraph.publishedTime`, `openGraph.modifiedTime`, `openGraph.authors`, and `openGraph.section`. Count all instances found and enumerate each.
- **Pass criteria:** Blog post or article pages that set `og:type: "article"` also include at least `article:published_time` and `article:author` in their OG metadata. At least 1 implementation must be confirmed.
- **Fail criteria:** Pages that use `og:type: "article"` do not include the corresponding article meta tags (`article:published_time`, `article:author`).
- **Skip (N/A) when:** The project has no blog, news, or article content. Also skip if `og:type: "article"` is not used anywhere in the project.
- **Detail on fail:** `"app/blog/[slug]/page.tsx sets og:type='article' but does not include article:published_time or article:author — article-specific social features unavailable"`
- **Remediation:** When you use `og:type: "article"`, include the complementary article properties for richer platform integration:

  ```ts
  openGraph: {
    type: 'article',
    publishedTime: post.publishedAt.toISOString(),
    modifiedTime: post.updatedAt?.toISOString(),
    authors: [`https://yoursite.com/authors/${post.authorSlug}`],
    section: post.category,
    tags: post.tags,
  }
  ```

  Facebook uses these for article categorization in the Open Graph explorer. LinkedIn uses `published_time` for its "shared article" display format.

---

## External references

- external ogp.me — https://ogp.me/#type_article
- schema-org Article

Taxons: findability, content-integrity

HTML version: https://auditbuffet.com/patterns/ab-001824
