Skip to content

Translated Structured Data

Besides the visible page, every page carries a summary written for machines: structured data (JSON-LD). Google uses it for rich results — the product name, price, rating and breadcrumb trail under a search listing — and its rules say it must match what visitors see.

Omnalingo translates it with the rest of the page, whichever plugin or theme writes it: Yoast SEO, Rank Math, All in One SEO, SEOPress, WooCommerce, or your theme.

The human text in it — page names and descriptions, product names and descriptions, breadcrumb labels, image captions, categories, colours, materials, FAQ questions and answers. The addresses in it — the page’s own address, its main image, its breadcrumb trail — point at the translated page, matching its canonical link.

What is not translated, on purpose:

  • Your site’s identity — the name of your company, brand, website and people, and their logos. Search engines combine this information across all your pages and languages, so it stays one entry.
  • Codes and values — product numbers, prices, currencies, dates, and internal attribute names.
  • Text already on the page costs nothing. Most structured data repeats the page title, meta description or product description. Omnalingo stores each text once, so these reuse the translation you already have.
  • Text that only exists there is picked up on the page’s next scan. A site tagline or an SEO description that never appears on the page shows up in your Full Text List and the page’s string list, and is translated by your next translation run like any other text. In the Visual Editor’s string picker it shows the property it came from, such as Product · description, under the Meta Tags filter.
  • Pages scanned before this feature arrived pick it up on their next scan. Saving a page rescans it automatically.

Structured data is handled in the page’s own output, so there is nothing to configure per plugin. To switch it off for a site:

add_filter( 'omnalingo/schema/enabled', '__return_false' );

Only JSON-LD is processed. Microdata and RDFa mark up visible text, which is translated anyway; structured data added by JavaScript after the page loads cannot be reached on the server.