Skip to content

SSR SEO Meta

This guide explains how SSR SEO metadata works in Zova within the Cabloy monorepo.

What SEO meta covers

SEO meta is not only about the page title.

It can also control:

  • <meta> tags
  • <html> attributes
  • <body> attributes
  • <style> and <script> tags in the document head
  • <noscript> tags

$useMeta

Zova provides $useMeta on BeanBase so SSR-aware metadata can be declared in application code.

Representative shape:

typescript
this.$useMeta({
  title: 'Index Page',
  titleTemplate: title => `${title} - My Website`,
  meta: {
    description: { name: 'description', content: 'Page 1' },
  },
});

Static and reactive metadata

Two useful modes are supported:

  • static meta for values known at initialization time
  • reactive meta for values that should update when bound state changes

That makes SEO metadata part of the reactive application model, not just a one-time page constant.

Overwrite behavior

Calling $useMeta multiple times can overwrite earlier values for the same keys, so SSR metadata should be designed deliberately when multiple layers participate.

Implementation checks for SSR SEO metadata changes

When adding or editing SEO behavior:

  1. use $useMeta rather than inventing a parallel metadata system
  2. decide whether the metadata is static or reactive
  3. remember that SSR is what makes many SEO-related tags meaningful to crawlers and downstream consumers

Released under the MIT License.