Blog schema markup is often treated as a checkbox task — add an Article type, move on. The same underinvestment shows up across content types — from recipe schema markup to event listings — where a minimal type declaration leaves the most valuable properties unpopulated. In practice, the difference between a minimal Article block and a well-populated one affects how Google evaluates your content for Top Stories, Discover, and author-rich snippets. After 14 years working on structured data, blog implementations are the category where I most often see sites leaving clear signals on the table not because of technical complexity, but because no one took the time to populate the right properties.

This guide covers the schema types that matter for blog content, the properties worth filling in on every post, a complete JSON-LD example, and how author schema fits into Google’s E-E-A-T evaluation. For a broader view of structured data strategy, visit my schema markup consultant page.

What Is Schema Markup for Blogs and Why Does It Matter

Schema markup for blogs is structured data that describes your article, its author, and its publisher in a machine-readable format. The vocabulary is Schema.org; the implementation format is JSON-LD, a script block added to your page source. It does not change anything visible on the page — it adds a parallel, parseable description of the content that search engines, AI systems, and other structured-data consumers can read reliably.

Schema is not a direct ranking factor. Google has said this, and testing confirms it — a page with perfect schema but weak content does not outrank a page with strong content and no schema. What blog schema does is reduce ambiguity about authorship, publication dates, content type, and topical structure. That clarity matters more than it used to because Google’s E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) evaluation relies partly on whether it can confidently associate content with a known, credentialed author entity.

Article vs. BlogPosting: Choosing the Right Schema Type

Article is the broader type. BlogPosting is a subtype of Article and is the more specific choice for blog content. NewsArticle is another subtype, appropriate for news-oriented publishers. Either Article or BlogPosting satisfies Google’s requirements for article rich results, but BlogPosting signals more clearly what kind of content the page is — which is valuable when you want Google to categorize your content correctly rather than treating it ambiguously as a generic document.

The properties you should populate on every post: headline, datePublished, dateModified, author, image, and publisher. Omitting dateModified is the most common gap I see. Google uses it to assess content freshness. A post with a datePublished from three years ago and no dateModified looks stale even if you updated it last month.

<script type='application/ld+json'>
{
  '@context': 'https://schema.org',
  '@type': 'BlogPosting',
  'headline': 'How to Choose a Local SEO Agency',
  'description': 'A practical checklist for evaluating local SEO agencies, including questions to ask, red flags to watch for, and what a realistic contract looks like.',
  'datePublished': '2025-03-10',
  'dateModified': '2025-05-22',
  'author': {
    '@type': 'Person',
    'name': 'Terry Samuels',
    'url': 'https://terrysamuels.com',
    'jobTitle': 'SEO Consultant',
    'sameAs': [
      'https://www.linkedin.com/in/terrysamuels',
      'https://twitter.com/terrysamuels'
    ]
  },
  'publisher': {
    '@type': 'Organization',
    'name': 'Salterra',
    'url': 'https://terrysamuels.com',
    'logo': {
      '@type': 'ImageObject',
      'url': 'https://terrysamuels.com/logo.png',
      'width': 300,
      'height': 60
    }
  },
  'image': {
    '@type': 'ImageObject',
    'url': 'https://terrysamuels.com/images/local-seo-agency.jpg',
    'width': 1200,
    'height': 630
  },
  'mainEntityOfPage': {
    '@type': 'WebPage',
    '@id': 'https://terrysamuels.com/writing/how-to-choose-a-local-seo-agency/'
  }
}
</script>

Note the mainEntityOfPage property — it links the article entity back to the specific URL, which helps Google associate the structured data block with the correct page when multiple articles share similar headlines.

Person Schema for Author Authority

Google has invested heavily in E-E-A-T signals, and author schema is part of how it evaluates expertise. A Person entity for each author — linked consistently across posts via a stable url or @id — helps Google build and strengthen a knowledge graph node for that author. Tools and software products follow a parallel pattern: a consistently identified SoftwareApplication schema markup entity creates a stable node for the product itself, not just the pages describing it. When Google can reliably connect your content to a named expert with a professional history, social profiles, and a body of published work, the content is evaluated differently than anonymous or loosely attributed content.

The properties that matter most in a Person entity: name, url (pointing to an author bio page on the same domain), jobTitle, sameAs (linking to LinkedIn, Twitter/X, a Google Scholar profile, or other credentialing profiles), and worksFor connecting the person to your Organization entity. Keeping these consistent across every post on the site — same URL, same name format, same sameAs array — is what builds the author entity over time rather than creating fragmented, disconnected references.

See structured data for SEO for more on how entity building connects to broader search visibility.

FAQPage Schema for Listicles and How-To Posts

If a blog post contains a genuine question-and-answer structure, adding FAQPage schema alongside the BlogPosting block is worth considering. The key qualifier is genuine — a listicle that addresses common reader questions, a how-to post with a troubleshooting section, or a post that explicitly frames itself as answering specific questions are good candidates. A narrative essay or opinion piece is not.

Do not force the FAQPage type onto content that is not structured as Q&A. Google’s quality guidelines call out schema that misrepresents page content, and a FAQPage block on a post that does not contain visible FAQ content is that kind of mismatch. For community or forum-style content where one authoritative answer exists, QAPage schema markup is often the more accurate type to reach for instead. When the fit is right, FAQ schema can earn accordion rich results that significantly increase the vertical space your listing occupies on a SERP. See rich snippets for examples of how this looks in practice.

How to Add Blog Schema Markup in WordPress

Most WordPress SEO plugins handle Article and BlogPosting schema output automatically:

  • Yoast SEO: Outputs Article schema by default on posts, with Person and Organization entities linked via the site’s knowledge graph. Configure the author entity in the User settings.
  • Rank Math: Allows per-post schema type selection — you can set individual posts to BlogPosting rather than the default Article. More granular control over which properties are populated.
  • Manual JSON-LD: For precise control, add the block to your theme’s single.php or via a wp_head hook in functions.php, with WordPress template tags to pull in the dynamic values (post title, published date, modified date, author URL).

For full implementation details, see how to add schema markup. If your blog runs on a different platform, the process differs — see the guide on schema markup for Squarespace for platform-specific steps.

How to Test Blog Schema and What to Look For

Run each published post through two validators:

  • Google Rich Results Test: Confirms the article is eligible for article rich results and surfaces any required-property errors. Also shows whether the author entity is being parsed correctly.
  • Schema Markup Validator: Shows the complete entity graph including the Person and Organization nodes. Use this to verify that author entities are consistent across multiple posts — look for name variations or URL inconsistencies that would prevent Google from consolidating them into a single entity.

Common errors on blog implementations: headline exceeding 110 characters (Google may truncate or ignore it), missing dateModified, image missing required dimensions for Top Stories eligibility (minimum 1200px wide), and author pointing to a URL that returns a 404. That last one is surprisingly common after site migrations. See how to test schema markup for the full testing workflow.

Blog Schema Markup in AI Search and Knowledge Graphs

AI Overviews, Perplexity, and other LLM-driven search surfaces use structured data as a parsing layer on top of your content. A well-formed BlogPosting block with a consistently maintained Person author entity gives these systems a reliable signal about who wrote the content, when it was published, when it was last updated, and what organization stands behind it. As AI-mediated search expands, the authors and publishers with the most coherent structured data entity graphs are the ones that surface most reliably in cited answers.

The practical implication: treat your author schema as an ongoing asset, not a one-time setup. Update dateModified when you substantively revise content. The same freshness discipline matters for other content types — for instance, event schema markup requires keeping dates and status fields current or risk surfacing outdated event information in search results. Keep the sameAs array in your Person entity current. Make sure the author bio page your schema points to actually exists and describes the author’s credentials. See schema markup best practices for maintenance recommendations.

Related Blog Schema Reading

For a full review of how your blog content is being interpreted by Google, a schema markup audit covers entity completeness and cross-post consistency. I also offer ongoing consulting via schema markup consulting. For a different content type, see the article on schema markup for real estate websites, which handles property listings and agent entities.