SEO GEM · integration

One tag, four fields.
The script does the rest.

Nothing gets built. SEO GEM is an external service that loads inside the article editor and fills four fields. No server-side integration, no library of ours in your codebase, and nothing changes in the article text. Per the specification, that is one working day on the CMS side.

1

script tag on the editor page

4

fields on the article

1 day

of work on the CMS side

0

server-side changes

How it flows

From a click in the editor to the head of the public page.

The whole path runs from the journalist's browser. The platform only stores four fields and renders them on the public page — like any other field it already has.

01

Article editor

The script reads the headline, standfirst and body when the journalist clicks the button.

03

Four fields

The CMS stores them with the article and returns them to the frontend through its own API.

04

Public page

title, description, keywords and JSON-LD in the head of the article.

What it takes to start

Three things. Nothing more.

That is the whole list. If your CMS already has SEO fields, only the first and third remain.

01

A script tag in the editor

One line on the article create and edit page. Every specific of your CMS is an attribute on that tag — no custom code.

02

Four fields on the article

SEO title, meta description, keywords and one field for Schema.org. If they do not exist, they are added like any other field and exposed to the frontend.

03

Rendering in the head

The frontend prints those four fields in the head of the article. Three are plain meta tags; the fourth is a structured-data block.

What it looks like

All of the work sits on the editor page.

The script inserts one button and a panel above the SEO title field. It changes nothing else on the page and never blocks saving.

<!-- on the article create and edit page -->
<script src="https://…/cms-embed.js"
  data-api-key="your portal key"
  data-language="en"
  data-editor-type="ckeditor"
  data-field-title='[name="heading"]'
  data-field-seo-title='[name="seo_title"]'
  data-field-meta-desc='[name="meta_description"]'
  data-field-keywords='[name="keywords"]'
  data-field-schema='[name="schema_org"]'></script>

Differences between CMS platforms are handled with attributes, not code: field selectors, editor type, language and the article URL. That is why the same script runs in two entirely different systems — one on CKEditor, one on TinyMCE. For a third editor we add an adapter and the tag stays the same.

Four fields

From the CMS into a head Google understands.

The tool returns shorter values than the field limits, so there is always headroom.

Field in the CMSRendered on the article pageTool returns · field accepts
SEO title<title>up to 75 · 80 chars
Meta description<meta name="description">up to 160 · 180 chars
Keywords<meta name="keywords">up to 300 · 300 chars
Schema.orgJSON-LD NewsArticle, replacing the generic blocka few KB · textarea

The schema the tool writes carries the headline, description, language, section, publication and modification dates, author, publisher with logo, image, canonical URL, keywords, and the topics and entities drawn from the text itself. On every later save, the script refreshes the modification date and realigns headline, image and URL on its own — without a single call to the service.

Who does what

The split of work before the first article.

Your side

  • A script tag on the article create and edit page
  • Four SEO fields on the article, stored and available to the frontend
  • Rendering of those four fields in the head of the public page
  • A staging environment with a test account, for a joint check before go-live

Our side

  • A key for your portal and the whitelist of allowed origins
  • A language pack for your market, with output-language validation
  • Publisher configuration — name, logo, domain — for the structured data
  • A test page replicating your editor structure, before anyone touches your CMS
  • A joint test on staging: the full loop from headline to public page, around half an hour
  • Per-article and per-section performance reporting from Search Console and GA4

What the tool does not do

The boundaries are tighter than you expect.

It does not touch the article text

It reads the headline, standfirst and body; it writes only into the four SEO fields. The body and every other field stay untouched.

It does not block the newsroom

If the service does not respond, saving and publishing work normally. The fields stay as they were and the journalist gets a retry button.

It does not mix publishers

The key is issued per portal and determines whose data is whose. Your newsroom's headline history never influences suggestions for anyone else.

It does not collect reader data

The tool never sees your visitors. Article text is processed by external AI providers under business terms that exclude the use of content for model training.

Frequently asked

What the technical team asks.

How much work is it really?

Per the specification, one working day on the CMS side: the tag on two editor pages, four fields on the article and the rendering of those fields in the head. Then a half-hour joint test on staging. That is how it went in two different CMS platforms.

Do we need a server-side integration?

No. There is no call to our service from your side and no library of ours in your code. Everything happens in the journalist's browser, on the editor page.

What if we already have SEO fields?

Then most of the work disappears. Send us the selectors for those fields and they are used exactly as they are.

Which editors are supported?

CKEditor 4 and 5 and TinyMCE 5+ work immediately. For another editor, tell us which one and we add an adapter; the rest of the integration is unchanged.

Next step

Send us your editor structure.
We send back a test page.

Before anyone touches your CMS, we build a page that replicates your editor structure and run the full loop on it. Only then does the joint test move to your staging.

Request a test → Back to SEO GEM