Skip to content

Add structured data (JSON-LD) for blog articles #28

@kahboom

Description

@kahboom

Problem

Blog articles currently lack structured data (Schema.org markup), which limits:

  • Rich snippet eligibility in search results
  • AI crawler understanding of content structure
  • Enhanced search result displays (author, date, reading time)
  • Article discoverability and categorization

Proposed Solution

Add JSON-LD structured data to all blog post pages with Article schema:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Article Title",
  "description": "Article description",
  "author": {
    "@type": "Organization",
    "name": "OpenThreads"
  },
  "publisher": {
    "@type": "Organization",
    "name": "OpenThreads",
    "logo": {
      "@type": "ImageObject",
      "url": "https://www.openthreads.dev/assets/logo.png"
    }
  },
  "datePublished": "2024-11-12",
  "dateModified": "2024-11-12",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://www.openthreads.dev/blog/article-slug"
  }
}

Implementation Steps

  1. Create a StructuredData component that accepts article metadata
  2. Add it to blog post template using react-helmet-async
  3. Include Article, Organization, and BreadcrumbList schemas
  4. Validate with Google's Rich Results Test
  5. Test with Schema.org validator

Additional Schemas to Consider

  • BreadcrumbList - Navigation breadcrumbs
  • Organization - Homepage
  • WebSite - Search action markup
  • FAQPage - If we add FAQ sections

Benefits

  • ✅ Eligible for rich snippets in search results
  • ✅ Better content understanding by AI crawlers
  • ✅ Enhanced search result displays
  • ✅ Improved click-through rates
  • ✅ Better content categorization

Resources

Labels

enhancement, SEO, content

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions