LiveBlogPosting Schema: Booster for Top Stories Success

Written by
Last Updated: August 22, 2024

Live blogs are web pages that are frequently updated during events like the General Elections. Each update can be set up to show as a detailed preview within the blog. Schema.org offers a special LiveBlogPosting type just for this kind of content.

How often Google is showing the "Live" badge/pill on Top Stories?

During the Paris Olympics 2024, our data shows that the distribution between the badgers is as follows:

  • LiveBlog badge/pill is dominating with 66.6%
  • Video badges, which are not that popular reached 29.1% of all badges

Overall, Google is showing the LiveBlog badge on only 3.5% of the results in Google Top Stories

LiveBlogPosting Schema Markup

<!DOCTYPE html>
<html>
<head>
    <title>A Non-AMP Live Blog</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "LiveBlogPosting",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://example.com/live_blog/"
      },
      "url": "https://example.com/live_blog/",
      "datePublished": "2024-08-09T11:30:00-07:00",
      "dateModified": "2024-08-09T16:00:00-07:00",
      "coverageStartTime": "2024-08-09T11:30:00-07:00",
      "coverageEndTime": "2024-08-09T16:00:00-07:00",
      "about": {
        "@type": "Event",
        "startDate": "2024-08-09T13:00:00-07:00",
        "name": "A Non-AMP Live Blog",
        "location": {
          "@type": "EventVenue",
          "name": "John Doe",
          "address": {
            "@type": "PostalAddress",
            "streetAddress": "123 Main St",
            "addressLocality": "Los Angeles",
            "addressRegion": "CA",
            "postalCode": "90001",
            "addressCountry": "US"
          }
        }
      },
      "publisher": {
        "@type": "Organization",
        "name": "Example Publisher",
        "logo": {
          "@type": "ImageObject",
          "url": "https://example.com/logo.png",
          "height": "60",
          "width": "600"
        }
      },
      "author": {
        "@type": "Person",
        "name": "John Doe"
      },
      "headline": "A Non-AMP Live Blog",
      "description": "A Live Blog implementation without AMP",
      "image": {
        "@type": "ImageObject",
        "url": "https://example.com/image.png",
        "height": "1532",
        "width": "2046"
      },
      "keywords": "Live Coverage, LiveBlogPosting",
      "liveBlogUpdate": [
        {
          "@type": "BlogPosting",
          "headline": "City Skyline",
          "url": "https://example.com/live_blog/#post1",
          "datePublished": "2024-08-09T11:30:00-07:00",
          "articleBody": "A beautiful city skyline at sunset."
        },
        {
          "@type": "BlogPosting",
          "headline": "Ocean View",
          "url": "https://example.com/live_blog/#post2",
          "datePublished": "2024-08-09T16:00:00-07:00",
          "articleBody": "A serene view of the ocean waves."
        }
      ]
    }
    </script>
</head>
<body>
</body>
</html>

You can also use Microdata to mark up your live blog instead of JSON-LD. In this case, text-only live blog posts will be displayed alongside the main image of the entire live blog.

Guidelines for Using LiveBlogPosting Markup

A LiveBlogPosting includes multiple liveBlogUpdates, each of type BlogPosting, representing individual time-stamped updates to the live blog. Every BlogPosting should have an articleBody specified and can also include an image or video.

LiveBlogPosting properties

aboutSportsEvent or EventA note regarding the real-world event covered in this article. Further details can be found in the SportsEvent and Event sections below.
dateModifiedDateTimeThe latest update timestamp, presented in ISO 8601 format. When the article is initially published, this value should be identical to datePublished.
datePublishedDateTimeThe original publication date and time, formatted according to ISO 8601. This value remains constant, regardless of any subsequent updates to the article.
headlineTextThe article's title. It should be concise, with a maximum length of 110 characters.
image.heightIntegerThe image's height, measured in pixels.
image.urlURLThe URL of the image.
image.widthIntegerThe width of the image, in pixels.
urlURLThe URL of the article which always should be specify

LiveBlogPosting - Additional properties

imageImageObjectThere should be at least one image with a crawlable URL with a minimum of 696px wide.
keywordsTextThe best practice across the news publishers is to use the tags on the article as keywords in the schema markup.
mainEntityOfPage.@idURLSet mainEntityOfPage.@id when the article is the main focus of the page. This property's value should align with the canonical URL of the article page.

BlogPosting information

Within a LiveBlogPosting, a BlogPosting type represents a single entry. Each post's content should be marked up following the guidelines provided here.

BlogPosting Properties

liveBlogUpdateBlogPostingAn array of annotations, one for each live blog update.
liveBlogUpdate.datePublishedDateTimeThe datetime of the blog update. Use ISO 8601 format.
liveBlogUpdate.articleBodyTextThe body of the blog update. In addition to text, the articleBody can contain
tags to indicate line breaks, but it needs to be typed as HTML in that case.
liveBlogUpdate.image.urlURLAn annotation for the main image of the blog update. This property is required if a BlogPosting contains an image.
liveBlogUpdate.urlURLThe AMP URL for the live blog update. Generally, this will be the same as LiveBlogPosting.url with an additional HTML anchor (for example: https://www.website.com/someArticle#post). Don't use CGI parameters in the URL.
liveBlogUpdate.videoVideoObjectAn annotation for the main video of the blog update. This property is required if a BlogPosting contains a video
liveBlogUpdate.video.thumbnailUrlURLURL to the thumbnail to be used in the video. This property is required if a BlogPosting contains a video. If video is chosen to be marked up for a BlogPosting, then video.thumbnail must also be marked up.

What to do when a live blog expires:

When a live blog post concludes, it's important to follow these best practices:

  • Remove the live blog URL from your Google News XML sitemap.
  • Exclude it from the homepage, as well as any category or index pages.
  • For ongoing events, consider placing a link to the live blog page prominently on the main event page as a soft redirect.

Avoid removing the liveBlogPosting schema, as the "coverageEndTime" attribute offers valuable details about the event's coverage period.

Good examples of well-implemented LiveBlogPosting

  • Based on my experience, the New York Times(NYT) is always very detailed and precise in its schema markup. So if you are looking for some best practices and inspiration for some additional properties to add to your schema I would recommend having a look at their schema markup.
  • I'm biased but a good example is also the liveblogPosting schema markup on The Telegraph.

LiveBlogPostin schema markup debugging

To debug a LiveBlogPosting schema, you should use Schema Validator tool. You can enter the URL or you to paste the entire HTML and JSON-LD to validate. This tool will highlight any errors or warnings in your schema markup.

Google's tool Rich Result Test specifically checks whether your structured data is eligible to generate rich results (enhanced search snippets) in Google Search

What is the difference between the Rich Result Test and the Schema Validator?

  • Rich Results Test: This tool, provided by Google, specifically checks whether your structured data is eligible to generate rich results (enhanced search snippets) in Google Search. It evaluates the structured data for compatibility with Google's search features, such as rich snippets, carousels, or knowledge panels. It also highlights errors and warnings related to the specific schemas that can impact your content's appearance in search results.
  • Schema Validator Tool: This tool (such as Schema.org's validator) checks the correctness of your structured data against the Schema.org standards. It verifies if your markup is correctly formatted and adheres to the specifications, regardless of whether the data is eligible for rich results on Google. This tool ensures that your schema is technically accurate, but it doesn't provide information on how it will be displayed in search engines.

Svet Petkov

Svetoslav (Svet) Petkov is a found of StoryHawk. He has a solid backgrong in SEO optimisation and in the past couple of eash in SEO for news publisher. With his passion of Python and data he is alway interest in providing a valuable data and sotry behind.

Keep learning

February 20, 2025
Tracking Google Top Stories: What We Can Learn

Google Top Stories highlights trending news articles at the top of search results. It updates frequently, showcasing articles from various sources based on relevance, freshness, and authority. Tracking Top Stories helps SEO specialists, audience performance specialists, content creators, and news publishers understand ranking trends. By analysing this data, they can optimise content in almost real-time, […]

February 13, 2025
LiveBlog Posting and its importance for Google News(Top Stories)

What is LiveBlog Posting? LiveBlog Posting is a form of real-time blogging that provides continuous updates on unfolding events, such as sports matches, political elections, breaking news, or product launches. Why is LiveBlog Posting Important for Google News? Real-time Content Delivery Google loves fresh, up-to-date content — and LiveBlogs delivers exactly that. With frequent updates, […]

October 12, 2024
Google News XML sitemap for news publishers

A Google News XML sitemap is a specialized XML sitemap created for news websites to help Google News discover and index their content more efficiently. Unlike a regular XML sitemap that includes all the pages of a website, a Google News sitemap specifically lists news articles published within the last 48 hours and allows Google […]

Are you ready to step up?

StoryHawk gives you almost real-time insights into Google Top Stories. Track your rankings, spot trends, and stay ahead in the news game. 🚀
FREE DEMO
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram