Cookies & analytics

    We use cookies for analytics and to serve ads. Accept to enable Google Analytics and AdSense. You can decline to stay opt-out.

    SwiftSchema Logo

    SwiftSchema

    Intuitive Schema Generation at Your Fingertips

    AboutLearnContact
      Stack

      Live Coverage Stack

      LiveBlogPosting pages with breadcrumb, speakable selectors, and paywall/access signals when applicable.

      Open generatorValidate in Rich Results Test

      When to use this stack

      • Live coverage pages with continuous updates
      • News/event coverage needing navigation and voice selectors
      • Pages where access/paywall needs to be clear

      What's included

      • Live Blog Posting
        Open generator

        Primary live coverage entity with headline, dates, author, and live status.

      • Optional voice-friendly selectors for key updates/sections.

      • Subscription and Paywall
        Open generator

        Optional access/paywall signals if live coverage is metered or gated.

      • Breadcrumb
        Open generator

        Navigation context.

      Required properties (stack union)

      Ensure every applicable required property is present in your implementation. Nested props reference their parent objects (for example, `offers.priceCurrency`).

      datePublished
      headline
      isAccessibleForFree
      itemListElement[].name
      liveBlogUpdate[]
      speakable.cssSelector
      url

      Recommended properties (stack union)

      author.name
      dateModified
      hasPart.cssSelector
      hasPart.isAccessibleForFree
      hasPart.url
      image
      itemListElement[].item
      publisher.name
      speakable.xpath

      Combined JSON-LD

      Paste as a single script tag. Keep product details, offer data, shipping/returns, and FAQ answers in sync with the page.

      Validate
      [
        {
          "@context": "https://schema.org",
          "@type": "LiveBlogPosting",
          "@id": "https://www.example.com/live/tech-keynote-2026#liveblog",
          "headline": "Tech Keynote 2026 — Live Updates",
          "datePublished": "2026-02-20T16:00:00Z",
          "dateModified": "2026-02-20T16:30:00Z",
          "url": "https://www.example.com/live/tech-keynote-2026",
          "author": { "@type": "Person", "name": "Jamie Rivera" },
          "publisher": { "@type": "Organization", "name": "Example News" },
          "liveBlogUpdate": [
            {
              "@type": "BlogPosting",
              "headline": "Opening remarks",
              "datePublished": "2026-02-20T16:05:00Z",
              "articleBody": "CEO shares the 2026 vision and new product focus areas."
            },
            {
              "@type": "BlogPosting",
              "headline": "New hardware announced",
              "datePublished": "2026-02-20T16:20:00Z",
              "articleBody": "New laptop line with improved battery and AI co-pilot features."
            }
          ]
        },
        {
          "@context": "https://schema.org",
          "@type": "WebPage",
          "speakable": {
            "@type": "SpeakableSpecification",
            "cssSelector": [
              "h1",
              ".live-update"
            ]
          }
        },
        {
          "@context": "https://schema.org",
          "@type": "WebPageElement",
          "isAccessibleForFree": false,
          "cssSelector": ".paywall",
          "url": "https://www.example.com/live/tech-keynote-2026/preview"
        },
        {
          "@context": "https://schema.org",
          "@type": "BreadcrumbList",
          "itemListElement": [
            { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
            { "@type": "ListItem", "position": 2, "name": "Live", "item": "https://www.example.com/live" },
            { "@type": "ListItem", "position": 3, "name": "Tech Keynote 2026", "item": "https://www.example.com/live/tech-keynote-2026" }
          ]
        }
      ]

      Implementation steps

      1. Start from your live product detail page content; ensure titles, prices, and availability match the page.
      2. Embed one JSON-LD script in the head or just before the closing body tag using the combined example as a template.
      3. Fill shipping details for each region you serve and keep them aligned with on-page shipping tables.
      4. Attach your canonical MerchantReturnPolicy URL and keep the policy text in sync with Merchant Center.
      5. Add 3–6 FAQs that address purchase blockers (shipping, returns, compatibility) and keep answers consistent with visible content.
      6. Validate in the Rich Results Test and revalidate after price/availability/policy changes.

      Common errors and fixes

      FAQs

      Do I need SubscriptionAndPaywall?

      Only if the live blog is paywalled or metered. Otherwise omit that object.

      How often should I update dateModified?

      On each meaningful content update. Keep it aligned with the latest liveBlogUpdate time.

      References