SEO and Server-Side Rendering

Introduction

Tickaroo Live Blog embeds are JavaScript-based, which makes integration quick and convenient.
However, pure client-side rendering has two main implications:

  • Search engines: Most search engines cannot index JavaScript-injected content.
    • Google is the exception: it can index the first page of a liveblog and pick up schema.org data injected by our embed.
  • User experience: Users must wait for the embed script to load and fetch data before they see any content.

To balance fast integration and SEO/UX optimization, Tickaroo offers two levels of integration:

  1. Default SEO behavior (built-in, no extra work required)
  2. Advanced server-side rendering (optional, for better SEO and performance)

Default SEO Behavior

Tickaroo’s EmbedJS provides excellent SEO support out of the box with zero configuration required:

  • Automatic Schema.org Integration: Structured data (LiveBlogPosting) is automatically injected into your page. Injection is controlled by the injectSchemaOrg parameter.
  • Google Search Compatibility: Google can read and index the first page of your liveblog content
  • Mobile Optimized: Full responsive design works across all devices

Schema.org Injection Options

injectSchemaOrg: "auto" | "always" | "off"
  • “auto” (default): Injects schema.org data only if no LiveBlogPosting object exists on the page.
  • “always”: Always inject schema.org, even if another LiveBlogPosting exists.
  • “off”: Do not inject schema.org data.

Advanced Integration (Server-Side Fetch)

The Server Side Fetch API is not part of the default Tickaroo Live Blog plan. Please contact our support if you want to use it.

For maximum search engine visibility and improved user experience, you can fetch liveblog data on your server and inject it into your HTML before sending the page to users.

You can combine any of these techniques independently:

  • Insert liveblog HTML on your server side.
  • Insert structured schema.org data on your server side.
  • Insert our stylesheet directly into your HTML.

Example Page Structure

<!DOCTYPE html>
<html>
  <head>
    <title>My SEO Liveblog</title>

    <!-- Tickaroo Embed Script -->
    <script async src="https://cdn.tickaroo.com/webng/embedjs/tik4.js"></script>

    <!-- Tickaroo Stylesheet -->
    <link rel="stylesheet" href="https://cdn.tickaroo.com/webng/embedjs/tik4.css">

    <!-- Prefetched Schema.org data -->
    <script type="application/ld+json">
      // [Insert schema.org JSON fetched from Tickaroo API]
    </script>
  </head>
  <body>
    <!-- Prefetched HTML -->
    <!-- [Insert liveblog HTML fetched from Tickaroo API here] -->
  </body>
</html>

Available Prefetch APIs

1. Fetch HTML Only

GET https://cdn.tickaroo.com/api/embed/v4/prefetch/liveblog.html

Query Parameters:

  • client_id (String, required) – Your Client ID.
  • liveblogId (String, required) – The Liveblog ID.
  • Any other Liveblog Tag Parameters.

Response:
Content-Type: text/html; charset=utf-8

<tickaroo-liveblog liveblogId="..." clientId="..." ...>
  <div> ... </div>
</tickaroo-liveblog>

2. Fetch HTML + Schema.org Data

GET https://cdn.tickaroo.com/api/embed/v4/prefetch/liveblog.json

Query Parameters:

  • client_id (String, required) – Your Client ID.
  • liveblogId (String, required) – The Liveblog ID.
  • canonicalUrl (String, optional) – Canonical URL to use in structured data.
  • Any other Liveblog Tag Parameters.

Response:
Content-Type: application/json; charset=utf-8

{
  "html": "<tickaroo-liveblog ...>...</tickaroo-liveblog>",
  "schema": {
    "@context": "https://schema.org",
    "@type": "LiveBlogPosting",
    "...": "..."
  }
}

Best Practices

  • Use default behavior if:
    • Google indexing and schema.org injection are enough for your SEO needs.
    • You want the fastest integration with no extra setup.
  • Use server-side fetch if:
    • You want broader SEO coverage (non-Google search engines).
    • You want to improve page load time for end users.
    • You need full control over schema.org integration.