What is article schema for blog posts and how do I implement BlogPosting?

CO ContentZen Team
April 02, 2026
31 min read

To add article schema markup to your blog posts, you will create a small block of structured data in JSON-LD format and insert it into each blog post page. The markup tells search engines what type of content the page contains, who wrote it, when it was published, and what images represent it. The simplest path is to choose either the Article, BlogPosting, or NewsArticle schema type, build a JSON-LD script block using a free structured data generator, paste it into your page or CMS template, and then validate it using Google's Rich Results Test. Done correctly, this can make your posts eligible for rich results in Google Search, which can improve visibility and click-through rates without requiring advanced technical skills.

This is for you if:

  • You run a blog on any platform including WordPress, Shopify, or Magento and want your posts to appear with rich results in Google Search
  • You manage SEO for a website and need a repeatable process for adding structured data to blog content
  • You have access to your CMS, page templates, or the ability to insert a script block into your blog post pages
  • You want to implement schema markup without writing complex code from scratch
  • You have tried adding structured data before but are unsure whether it was done correctly or completely
  • You want to confirm your existing article schema is valid and eligible for rich results

article schema for blog posts

What You Need Before You Start

Skipping prerequisites is the fastest way to produce broken or incomplete markup. Before you touch a single line of structured data, you need the right access, the right data, and a clear understanding of which schema type fits your content. Having everything prepared in advance means you can move through implementation in one focused session rather than stopping repeatedly to hunt down missing information.

Before you start, make sure you have:

  • Access to your blog post pages, CMS backend, or site templates so you can insert or modify code
  • A decision made on which schema type fits your content: Article for general blog posts, BlogPosting for personal or informal blogs, or NewsArticle for news-oriented content
  • The exact headline or title of the blog post you are marking up
  • At least one publicly accessible image URL that represents the blog post, ideally in multiple aspect ratios such as 1x1, 4x3, and 16x9
  • The full name of the author or authors credited on the post
  • A URL for each author pointing to a real, crawlable profile or bio page on your site
  • The original publication date of the post in ISO 8601 format, for example 2024-03-15T09:00:00+00:00
  • The date the post was last modified, also in ISO 8601 format, if the post has been updated since publication
  • Confirmation that the blog post page is publicly accessible to Google and is not blocked by robots.txt, a noindex tag, or a login requirement
  • A chosen implementation method ready to use: a plugin such as Yoast for WordPress, a developer who can edit your templates, Google Tag Manager, or the ability to paste a JSON-LD script block directly into the page
  • Access to a free structured data generator such as Google's Structured Data Markup Helper or Merkle's Schema Markup Generator to build the code
  • Access to Google's Rich Results Test to validate the markup before and after insertion
  • Access to Google Search Console if you plan to submit or update your sitemap after implementation
  • An understanding that there are no strictly required fields in article schema, but that headline, image, author, datePublished, and dateModified are the properties most likely to improve your eligibility for rich results

How to Add Article Schema Markup to Blog Posts

This procedure covers every stage from choosing the right schema type through to confirming your markup is live and readable by Google. Each step builds on the one before it, so work through them in order rather than jumping ahead. The steps that matter most are validation before insertion and accessibility checks after, since errors at either of those points can prevent rich results from appearing regardless of how well the markup itself is written.

  1. Choose the correct schema type for your blog post

    Decide whether your post qualifies as Article, BlogPosting, or NewsArticle based on the nature of the content. Use BlogPosting for personal, informal, or general blog content. Use NewsArticle for time-sensitive reporting or news coverage. Use the broader Article type when neither of the more specific types fits cleanly. Source

    Applying the wrong type will not break your markup, but it reduces accuracy and can limit which rich result features Google considers your page eligible for.

    How to verify: Confirm the chosen type is one of the three supported article types: Article, BlogPosting, or NewsArticle.

    Common fail: Choosing NewsArticle for evergreen content simply because it sounds more authoritative, which misrepresents the content to search engines.

  2. Decide how you will insert the markup into your pages

    Your four main options are a CMS plugin such as Yoast for WordPress, Amasty for Magento, or Hello Rich Snippets for Shopify; a developer editing your page templates directly; Google Tag Manager as a fallback option; or manually pasting a JSON-LD script block into the page source. Plugins are the fastest route for most blog owners but always require output validation since plugin-generated markup is not always complete. Google Tag Manager can be unreliable for structured data because rendering depends on JavaScript execution timing.

    How to verify: Confirm you have working access to whichever method you choose before moving to the next step.

    Common fail: Assuming a plugin handles everything correctly without ever testing the actual output with a validation tool.

  3. Gather all data fields before generating any code

    Collect the post headline, the full public URL of the post, the author name and author profile page URL, a short description of the post, at least one crawlable image URL, the original publication date, and the date the post was last modified. For images, prepare URLs in multiple aspect ratios where possible, for example 1x1, 4x3, and 16x9, since Google recommends providing a representative set rather than a single image. Dates must be formatted in ISO 8601, for example 2024-03-15T09:00:00+00:00.

    How to verify: Every field listed above has a real, accurate value and no field contains a placeholder or example URL.

    Common fail: Leaving the author URL blank or using a placeholder because the author profile page has not been created yet.

  4. Generate the JSON-LD markup using a structured data tool

    Use a free generator such as Google's Structured Data Markup Helper or Merkle's Schema Markup Generator to build the JSON-LD code block from your collected data. The output should be wrapped in a script tag with the type attribute set to application/ld+json. Confirm the block includes @context set to https://schema.org and @type set to your chosen article type. The markup should also contain the headline, image array, author object with name and url, datePublished, and dateModified fields.

    How to verify: The generated code contains all expected fields and is wrapped correctly in the script tag before you insert it anywhere.

    Common fail: Editing the generated code manually without checking for JSON syntax errors introduced during editing.

  5. Validate the generated markup before touching the live page

    Paste the JSON-LD code directly into Google's Rich Results Test to check for critical errors before inserting it into your site. The tool will flag missing recommended fields, malformed values, and structural problems. Fix every critical error before proceeding. Warnings about recommended fields are worth addressing but will not block the markup from being read by Google.

    How to verify: The Rich Results Test reports zero critical errors on the raw code block.

    Common fail: Skipping pre-insertion validation and only testing after the markup is live, which makes it harder to isolate whether errors come from the code itself or from the insertion method.

  6. Insert the JSON-LD block into your blog post page

    Place the validated script block in the head or body of the blog post page. If you are using a CMS with a structured data field, paste the code into that field and save. If you are editing a template directly, add the script block so it appears consistently on every blog post page rather than only on one. If you are using Magento's blog extension, the platform can generate the markup automatically from the post's publication data without manual insertion.

    How to verify: View the page source after saving and confirm the JSON-LD script block appears in the rendered HTML.

    Common fail: Pasting the markup into a visible content area of the post editor instead of a dedicated structured data or custom code field, which outputs the raw code as visible text on the page.

  7. Validate the live page after insertion

    Run the published blog post URL through Google's Rich Results Test to confirm the markup is being detected on the live page and not just in the raw code. Also run it through the Schema Markup Tester to cross-reference detection. If the markup appears in the page source but is not detected by the tester, a JavaScript rendering issue or a caching problem is the most likely cause.

    How to verify: Both testing tools detect the Article schema on the live URL and report no new critical errors.

    Common fail: A caching layer serving an older version of the page that does not yet include the markup, causing the tester to report no structured data found.

  8. Confirm the page is fully accessible to Google

    Check that the blog post page is not blocked by a robots.txt disallow rule, a noindex meta tag, or a login requirement. Also confirm that the image URLs and author profile URLs referenced inside the markup are themselves publicly crawlable, since blocked assets can reduce the effectiveness of the structured data even when the markup itself is valid. For multi-part articles, ensure the canonical URL on each page points to that specific page or to a view-all page, not to page one of the series.

    How to verify: The URL Inspection tool in Google Search Console shows the page as indexable with no blocking issues detected.

    Common fail: The post page is accessible but the author profile URL included in the author object is blocked by robots.txt, reducing Google's ability to resolve the author entity.

  9. Update your sitemap and request a recrawl

    Add the updated blog post URL to your sitemap if it is not already included, then submit the sitemap through Google Search Console. If you want Google to recrawl a specific URL sooner, use the URL Inspection tool in Search Console and select the option to request indexing. Be aware that even after requesting a recrawl, it can take several days for Google to process the updated page and for rich results to appear in search.

    How to verify: The sitemap shows the updated post URL and the URL Inspection tool confirms Google has acknowledged the recrawl request.

    Common fail: Assuming the rich results will appear within hours and concluding the markup is broken when it has simply not been recrawled yet.

  10. Roll out the markup consistently across all blog posts

    Once the markup is validated and working on a sample post, apply it to all blog posts on the site rather than leaving it on a single page. If you implemented via a template or plugin, this should happen automatically for existing and future posts. If you implemented manually on a per-post basis, work through remaining posts systematically. Consistent coverage across all posts ensures that your full blog content is eligible for rich results, not just individual pages.

    How to verify: Spot-check three to five additional blog post URLs using the Rich Results Test to confirm the markup is present and valid across the site.

    Common fail: Implementing markup on new posts going forward but never applying it retroactively to older published posts, leaving the majority of the blog without structured data.

article schema for blog posts

How to Confirm Your Article Schema Is Working

Validation is not a one-time step. You need to confirm the markup is correct before insertion, present and readable after insertion, and still functioning after any future edits to the post or template. The tools that matter most are Google's Rich Results Test for structural validation and the URL Inspection tool in Google Search Console for confirming what Google actually sees when it crawls the page. Both should show clean results before you consider the implementation complete.

  • The JSON-LD script block is visible in the page source when you view the raw HTML of the published post
  • Google's Rich Results Test detects the Article, BlogPosting, or NewsArticle schema type on the live URL with no critical errors reported
  • The headline field in the detected markup matches the actual title of the blog post exactly
  • At least one image URL is detected in the markup and that URL returns a real, publicly accessible image when opened in a browser
  • The author object contains both a name and a URL, and that URL loads a real author profile page without being blocked
  • The datePublished field is present and formatted correctly in ISO 8601 format
  • The URL Inspection tool in Google Search Console shows the page as indexable and confirms structured data is detected
  • No blocking issues are present: the page, images, and author URLs are all accessible to Googlebot
  • After recrawl, the post appears in Google Search with rich result features such as images or author information visible in the listing
  • Spot checks on additional blog post URLs confirm the markup is consistent across the whole blog, not just the test page
Checkpoint What good looks like How to test If it fails, try
JSON-LD block is present on the page The script tag with type application/ld+json appears in the page source Right-click the published post and select View Page Source, then search for ld+json Check that the code was saved correctly in your CMS field or template and that caching is not serving a stale version
Schema type is detected correctly Rich Results Test identifies Article, BlogPosting, or NewsArticle with no critical errors Enter the live post URL into Google's Rich Results Test and review the detected schema type Confirm @context is set to https://schema.org and @type matches one of the three supported article types
Headline field is present and accurate The headline value matches the actual post title with no truncation or mismatch Review the structured data panel in the Rich Results Test output and compare it to the visible post title Update the headline property in your markup to match the exact post title and revalidate
Image URLs are valid and crawlable Each image URL in the markup loads a real image in a browser and is not blocked by robots.txt Open each image URL directly in a browser and check robots.txt for disallow rules covering the image path Replace placeholder or broken image URLs with real, publicly accessible URLs and ensure the image directory is not disallowed
Author object contains name and URL Each author entry has a name field and a url field pointing to a live profile page Review the author section in the Rich Results Test output and open the author URL in a browser to confirm it loads Add a missing author URL or correct a broken one, then revalidate the markup
Date fields are correctly formatted datePublished and dateModified are in ISO 8601 format and reflect accurate dates for the post Check the raw markup for the date values and confirm they follow the format YYYY-MM-DDTHH:MM:SS+00:00 Reformat any incorrectly structured date strings and retest with the Rich Results Test
Page is accessible to Google URL Inspection tool shows the page as indexable with no robots.txt blocking or noindex tag detected Enter the post URL into the URL Inspection tool in Google Search Console and review the coverage status Remove any noindex directives or robots.txt disallow rules that are blocking the page from being crawled
Rich results appear in Google Search after recrawl The post listing in Google Search displays enhanced features such as an image, author name, or publication date Search for the post by title or URL in Google and observe whether rich result features are visible in the listing Confirm the sitemap has been submitted and request indexing via the URL Inspection tool, then allow additional time for Google to process the recrawl

Troubleshooting Article Schema Problems

Most article schema issues fall into a small number of categories: the markup is not being detected, the markup is detected but contains errors, or the markup is valid but rich results are not appearing. Work through the symptoms below in order of what you are actually observing on your page. Fix one issue at a time and revalidate after each change so you can isolate what is causing the problem rather than introducing new variables.

  • Symptom: The Rich Results Test reports no structured data found on the live URL.

    Why it happens: The JSON-LD block was not saved correctly in the CMS, a caching layer is serving a version of the page that predates the markup insertion, or the script block was pasted into a visible content area instead of a structured data or custom code field.

    Fix: View the raw page source of the live URL and search for the text ld+json. If it is not present, re-save the markup in the correct CMS field and clear the site cache before retesting. If you are using Google Tag Manager, confirm the tag is firing on the correct trigger and that the page is not blocking JavaScript execution.

  • Symptom: The markup is detected but critical errors are reported in the Rich Results Test.

    Why it happens: Required or strongly recommended fields are missing, field values are formatted incorrectly, or the JSON-LD structure contains a syntax error introduced during manual editing.

    Fix: Open the raw JSON-LD and paste it into a JSON validator to check for syntax errors first. Then review the specific errors flagged by the Rich Results Test, correct each one individually, and retest the live URL after saving the updated markup.

  • Symptom: The author field is flagged as missing or incomplete.

    Why it happens: The author object contains only a name string with no url property, or the author entry was structured as plain text rather than as a properly typed object with a name and url field.

    Fix: Update the author object in your JSON-LD to include both a name field and a url field pointing to a real, publicly accessible author profile page on your site. If there are multiple authors, structure each one as a separate object within an array rather than combining them into a single entry.

  • Symptom: Images are flagged as non-crawlable or are not accepted by the validator.

    Why it happens: The image URLs in the markup are blocked by a robots.txt disallow rule, the URLs return a 404 or redirect rather than a direct image file, or placeholder URLs such as example.com paths were left in the markup instead of being replaced with real URLs.

    Fix: Open each image URL directly in a browser to confirm it loads a real image. Check your robots.txt file for any disallow rules covering the image directory. Replace any placeholder or broken URLs with real, publicly accessible image URLs and revalidate.

  • Symptom: Date fields are rejected or flagged as incorrectly formatted.

    Why it happens: The datePublished or dateModified values are written in a format that does not conform to ISO 8601, for example using a format like March 15 2024 instead of 2024-03-15T09:00:00+00:00.

    Fix: Reformat all date values to ISO 8601 format. Include a timezone offset where possible rather than leaving the timezone component blank. Update the markup with the corrected date strings and rerun the Rich Results Test to confirm the errors are resolved.

  • Symptom: Markup validates correctly but rich results are not appearing in Google Search.

    Why it happens: Google has not yet recrawled the page since the markup was added, the page was not included in the sitemap, or Google has chosen not to display rich results for the page despite valid markup, which can happen at Google's discretion.

    Fix: Submit or update your sitemap in Google Search Console and use the URL Inspection tool to request indexing of the specific post URL. Allow several days for the recrawl to complete. If rich results still do not appear after recrawl, confirm the page has no soft 404 signals and that the content genuinely matches the structured data being declared.

  • Symptom: Markup works on one post but is absent or broken on other posts across the blog.

    Why it happens: The markup was added manually to a single post rather than at the template level, so other posts never received the structured data. Alternatively, a plugin is generating markup correctly for some post types but not others due to configuration gaps.

    Fix: If you are using a template-based approach, confirm the JSON-LD block is placed in the shared blog post template rather than hardcoded into a single page. If you are using a plugin, review the plugin settings to ensure markup generation is enabled for all post types and categories, then spot-check several additional post URLs using the Rich Results Test.

  • Symptom: The page is valid and indexed but the canonical URL in the markup points to the wrong page.

    Why it happens: For multi-part articles, the canonical was set to page one of the series rather than to each individual page or a dedicated view-all page, which can confuse search engines about which URL represents the content.

    Fix: Update the canonical tag on each part of the series so it points to that specific page's own URL, or if a view-all page exists, point the canonical to that page consistently across all parts. Do not point every part of a series to page one.

  • Symptom: A plugin is installed but the generated markup is incomplete or contains errors.

    Why it happens: Many plugins generate article schema automatically but do not always populate every recommended field, particularly the author URL or the image array, depending on how the plugin reads post metadata.

    Fix: Test the plugin output on a live post URL using the Rich Results Test rather than assuming the plugin is handling everything correctly. Identify which fields are missing or incorrect in the generated output, then either configure the plugin settings to include those fields or supplement the plugin output with a manual JSON-LD block that fills the gaps.

Questions People Ask Next

  • Do I need to add article schema to every blog post individually? If you implement the markup at the template level, it will apply automatically to all blog posts. Manual per-post implementation requires you to add and update the markup on each post separately, which is not practical at scale.
  • Will article schema guarantee my posts appear with rich results? No. Valid schema markup makes your posts eligible for rich results, but Google decides whether to display them based on its own quality signals. Correct, complete markup improves your chances but does not guarantee appearance.
  • What is the difference between BlogPosting and Article schema? BlogPosting is a more specific subtype of Article and is best suited to informal or personal blog content. Article is the broader parent type and works for general editorial content. NewsArticle is a separate subtype intended for news reporting and time-sensitive journalism.
  • Can I add article schema without touching any code? Yes. CMS plugins such as Yoast for WordPress, Amasty for Magento, and Hello Rich Snippets for Shopify can generate and insert article schema without requiring manual code editing. Always validate the plugin output with the Rich Results Test regardless.
  • How many images should I include in article schema markup? Google recommends providing a representative set of images in multiple aspect ratios. Including versions at 1x1, 4x3, and 16x9 ratios gives Google options to use the most appropriate format depending on the surface where the rich result appears.
  • Does updating a blog post mean I need to update the schema markup too? Yes, if you update the post content, publication details, author, or images, the markup should reflect those changes. At minimum, update the dateModified field to the date of the edit and confirm all other fields still match the current post data.
  • How long does it take for article schema to show rich results in Google? There is no fixed timeframe. After submitting your sitemap and requesting indexing via Google Search Console, it typically takes several days for Google to recrawl the page and process the updated structured data before any rich results become visible.
  • Is an author URL required in article schema? There are no strictly required fields in article schema, but including an author URL alongside the author name helps Google disambiguate the author as an entity. Omitting it is not a blocking error but it reduces the completeness and usefulness of the markup.
  • Can I use article schema on paginated or multi-part blog posts? Yes, but each page in the series needs its own canonical URL pointing to itself or to a view-all page. Do not set the canonical on every part of the series to point to page one, as this misrepresents the content structure to search engines.

Article Schema for Blog Posts: Common Questions Answered

What is article schema markup and why does it matter for blog posts?

Article schema markup is a block of structured data added to a blog post page that tells search engines what type of content the page contains and what its key components are, including the title, author, publication date, and representative images. It matters because it makes your posts eligible for rich results in Google Search, which can display additional information alongside your listing and improve visibility and click-through rates compared to a standard blue link result.

Which schema type should I use for a blog post: Article, BlogPosting, or NewsArticle?

Use BlogPosting for informal or personal blog content, NewsArticle for time-sensitive news reporting, and the broader Article type when neither of the more specific subtypes fits cleanly. All three are supported by Google and are valid choices for blog content. The key is to match the type to the actual nature of the content rather than choosing the one that sounds the most authoritative, since misrepresenting content type can reduce the accuracy of how search engines classify your page.

Are there any fields that are required in article schema markup?

There are no strictly required fields in article schema markup. However, Google strongly recommends including the headline, at least one image, the author name and author URL, datePublished, and dateModified where applicable. The more recommended properties you include accurately, the more complete the structured data signal becomes, which improves the likelihood that Google will consider your post eligible for rich result features in search.

How do I format dates correctly in article schema markup?

Dates in article schema must follow the ISO 8601 format. A correctly formatted date looks like 2024-03-15T09:00:00+00:00, which includes the year, month, and day followed by a time component and a timezone offset. Avoid writing dates as plain text such as March 15 2024, since this format is not recognized as valid by Google's structured data parser and will be flagged as an error in the Rich Results Test.

Do I need to include an author URL or is the author name enough?

Including an author URL alongside the author name is strongly recommended even though it is not technically required. The URL points to a real, crawlable author profile page on your site and helps Google identify and disambiguate the author as an entity rather than just a string of text. Providing only a name without a URL reduces the completeness of the author signal and limits Google's ability to associate the content with a verified author entity.

How many images should I include in article schema and does format matter?

Google recommends including a representative set of images rather than a single image, and specifically suggests providing images in multiple aspect ratios including 16x9, 4x3, and 1x1. Providing multiple formats gives Google options to display the most appropriate version depending on where the rich result appears. All image URLs included in the markup must be publicly crawlable and must return a real image file, not a redirect or a blocked resource.

Can I use a plugin to add article schema instead of writing the code myself?

Yes, plugins are a common and practical way to implement article schema, particularly on WordPress, Magento, and Shopify. Examples include Yoast for WordPress, Amasty for Magento, and Hello Rich Snippets for Shopify. The important caveat is that plugin-generated markup should always be tested with Google's Rich Results Test after installation, since plugins do not always populate every recommended field and their output can vary depending on how post metadata is configured in your CMS.

What should I do if my markup validates correctly but rich results are not showing in Google Search?

Valid markup does not guarantee that rich results will appear. Google makes its own decision about whether to display rich results based on quality signals beyond structured data alone. If your markup is valid, confirm the page is indexed and not blocked by robots.txt or a noindex tag, submit your sitemap in Google Search Console, and request indexing of the specific URL using the URL Inspection tool. Allow several days for the recrawl to complete before drawing conclusions about whether rich results will appear.

How do I apply article schema across all blog posts rather than just one page?

The most efficient approach is to add the JSON-LD markup at the template level rather than to individual posts, so the structured data is generated automatically for every blog post from the post's own metadata. If you are using a plugin, enabling it site-wide rather than per-post achieves the same result. For manual implementations, spot-check several post URLs with the Rich Results Test after applying the template change to confirm the markup is rendering correctly across all pages.

How long does it take for article schema to affect how my posts appear in Google Search?

There is no fixed timeframe for rich results to appear after article schema is added. Once the markup is live, submitting your sitemap and requesting indexing via the URL Inspection tool in Google Search Console can prompt a faster recrawl, but it still typically takes several days for Google to process the update. After recrawl, rich result features may appear in search listings if Google determines the page meets its quality criteria for displaying enhanced results.

Share this article