Structured data helps search engines understand what a page is about. While there are many types of structured data, we’ll focus on the types used for blog posts.
We’ll also share ideas for strengthening the authority signals in your blog posts’ structured data. First, let’s define it.
About structured data
Think of structured data as ‘under the hood’ information about your blog post for search engines. Google describes it as a standardized format for providing information about a page and classifying the page content.
Structured data markup is not displayed to human readers (unless they view your page source), but search engine bots read it. One important rule: Google’s guidelines say not to mark up information that isn’t visible to users, even if it’s accurate. The markup should describe what’s on the page.
The vocabulary comes from Schema.org, which covers many types, including Organizations, Products, Events, LocalBusiness, Reviews, Videos, and FAQs. For blog posts, the relevant types are Article and its more specific BlogPosting.
Google supports three formats and recommends JSON-LD (JavaScript Object Notation for Linked Data) in most cases, because it’s the easiest to implement and maintain. JSON-LD sits in a <script type="application/ld+json"> tag, which can go in the <head> or <body> of the page.
Does it help rankings?
Structured data helps Google understand a page, and it can make the page eligible for rich results, which Google describes as more engaging search results. Google shares case studies, such as Rotten Tomatoes measuring a 25% higher click-through rate on pages enhanced with structured data.
But eligibility isn’t a promise. Google’s general guidelines state that it does not guarantee your structured data will show up in search results, even if the page is marked up correctly.
Testing your markup
Schema.org provides a validator that generates a readable representation of any JSON-LD it finds, with warnings and errors. Just because markup passes the Schema.org validator doesn’t mean Google will use it, though. To see what Google recognizes, use Google’s Rich Results Test.
Your site name in Google Search
Here is a video with a simple use case for structured data, as explained by Martin Splitt of Google in the YouTube series ‘SEO Made Easy.’
Google’s current site names documentation says the same thing in writing: to indicate your site name preference, add WebSite structured data to your home page. Google also considers og:site_name, the title tag, and headings, but WebSite structured data is most important if you want to specify a preference.
How to add structured data to blog posts
Structured data can be added by hand, but on a CMS that introduces maintenance overhead. Here is how to add it automatically on two widely used blogging platforms, and how we handle it on a static site.
WordPress
The Yoast SEO plugin is a widely used way to add structured data to WordPress posts. It automatically generates a detailed structured data script for each blog post.
If you’re not a Yoast user, the Schema plugin can add BlogPosting markup to your blog.
Some WordPress themes generate structured data too. When we used Yoast SEO, we disabled the structured data our theme auto-generated, so the two didn’t overlap.
Wix
Wix provides instructions for automatically adding structured data to every post. Compared to Yoast, Wix generated a relatively compact blog post markup when we compared them: about 30 lines versus Yoast’s 200+.
Static HTML
On a static HTML site like this one, there is no plugin, so the JSON-LD is written into each page. That sounds like work, but it gives you full control. Every post here carries BlogPosting and BreadcrumbList markup, and some add FAQPage markup, as in our page experience post. Our Grok Bot generates and validates that markup whenever it publishes a post.
Let’s look at the structured data sections common to most blog post markup.
Article type: WebPage vs. BlogPosting
Yoast SEO has a global and per-post selector for Article Type, including ‘Article,’ ‘Blog Post,’ ‘News Article,’ and ‘Scholarly Article.’ Several WordPress sites we managed displayed the generic ‘WebPage’ type regardless of the selection. (One of the vagaries of WordPress is that plugins can stomp on one another.)
Google’s Article structured data documentation covers Article, NewsArticle, and BlogPosting, and has no required properties: add the ones that apply. Here is an example from an older post:
| Property | Example value |
|---|---|
| @type | WebPage |
| url | https://example.com/inbound-marketing/wordpress-page-experience/ |
| headline | WordPress Page Experience: Retaining Beauty While Reducing Bloat |
| datePublished | 2022-04-09T12:01:10+00:00 |
| dateModified | 2022-04-16T13:54:06+00:00 |
| description | How can you get a page builder look on your WordPress site, yet achieve a performance score that makes Google happy? |
| wordCount | 703 |
| articleSection | SEO |
| inLanguage | en-US |
The date values tell search engines how recently the content was created or updated. Google recommends including timezone information in dateModified, which uses ISO 8601 format.
The articleSection value reflects the blog post’s category. That’s useful context for search engines, especially when the category isn’t part of the URL.
The blog post’s author
The author section gives search engines author information that may not appear on the human-readable page.
| Property | Example value |
|---|---|
| @type | Person |
| name | John Abbott |
| sameAs | https://www.linkedin.com/in/jabbott/ |
| sameAs | https://twitter.com/jabbott |
| sameAs | https://www.wikidata.org/wiki/Q123456789 |
| image | ImageObject with a Gravatar URL |
The author sameAs and url properties
In WordPress, Yoast uses the Contact section of the WordPress user profile to populate the author’s sameAs links. When we compared them, Wix’s BlogPosting markup didn’t include sameAs.
According to Schema.org, sameAs is the “URL of a reference Web page that unambiguously indicates the item’s identity,” such as a Wikipedia page, Wikidata entry, or official website.
Google’s author markup guidance now speaks to this directly. It recommends author.url, a link to a page that uniquely identifies the author, such as a social media profile, an ‘about me’ page, or a bio page, and says Google can understand both sameAs and url when disambiguating authors. It also recommends including every author shown on the page in the markup.
TipAt a minimum, link each author to their LinkedIn profile. Add their X profile if they are active there, and a Wikidata or Wikipedia page if one exists.
The author’s image
WordPress doesn’t have a built-in way to upload an author image to a user profile. Authors typically create a Gravatar account and upload a headshot, which then appears on the WordPress site. The Gravatar image file also serves as a reference point for search engines. In Wix, the author’s headshot can be uploaded from a local drive.
The post’s image
An image section describes your blog post’s primary image. On WordPress, that’s typically the featured image.
| Property | Example value |
|---|---|
| @type | ImageObject |
| url | https://example.com/wp-content/uploads/2018/11/wordpress-page-speed.png |
| width | 1280 |
| height | 720 |
Google’s Article documentation recommends images that are relevant to the article rather than logos, and for best results, multiple high-resolution images (at least 50K pixels when multiplying width and height) in 16x9, 4x3, and 1x1 aspect ratios. Image URLs must be crawlable and indexable.
The 1x1 ratio matters more than it used to. Google’s AI Overviews and AI Mode show square thumbnails, which is why we’ve been rethinking featured image size. That post also covers primaryImageOfPage, the Schema.org property for a page’s main image on non-WordPress sites.
Publisher and logo
The publisher section tells search engines which organization hosts the blog content.
| Property | Example value |
|---|---|
| @type | Organization |
| name | Example Company |
| logo | ImageObject: https://example.com/logo.png |
Yoast SEO takes this further by nesting it within an isPartOf property and a WebSite type, and adds company-level sameAs references, such as the company’s LinkedIn and Facebook pages. In Yoast, add those social profiles under the Organization social profiles settings so the schema generator includes them.
Google also supports Organization structured data on your home page, which helps it understand your organization’s details and disambiguate it in search results. There are no required properties; Google recommends adding as many relevant ones as apply, including sameAs and logo.
Conclusion
Blog post markup goes deeper than what we’ve covered here. Examine Yoast’s output and you’ll see many more sections.
Whether a compact approach like Wix’s or Yoast SEO’s detailed markup is better for SEO is hard to answer. But Google’s guidance is clear on the basics: describe what’s on the page, identify the author, provide good images, and test with the Rich Results Test. Some structured data beats none.