An application for tracking article search visibility

Editorial toolConfidential project

An editorial department needed its own way to follow how articles appeared in search results. An internal application tailored to editors and the SEO department replaced a paid external tool.

Each editor can work with their own articles and related queries. Position histories make it possible to compare changes over time across languages and mobile and desktop devices.

Who it serves
Editors and SEO specialists responsible for the visibility of published articles.

Scope of responsibility

Atomic Concept is responsible for developing the inherited frontend, bringing the application to deployment and agreeing API and data formats with the backend team.

Returning to an article

For a publication with many articles, a single search result offers only a momentary view. Editors need to return to their own work, see associated queries and understand whether positions are rising, falling or staying broadly stable.

The goal was to replace a paid service with an internal tool suited to the department’s workflow. The application collects recurring position measurements, mainly from Google, and presents them in the context of an article and an editor’s account.

The value lies in keeping the context of successive measurements comparable, as well as seeing a current position. Separating results by language and device lets the department return to the relevant data when assessing a publication’s visibility.

Publication context
Articles and queries are associated with accounts so each editor can focus on their own material.
Comparable history
Language and mobile or desktop categories help users compare results within the same context.
An article and a chart of its changing search visibility

History in a comparable context

This structural illustration shows how successive measurements can be compared for the same language and device.

Article and query
Identify the material being observed.
Language and device
Set the context for comparison.
Successive measurements
Allow changes to be followed over time.

A tool for editorial work

The work began with an existing, unfinished React interface. It included organizing the code, developing the views needed by the editorial department and preparing the application for deployment.

A separate Ruby on Rails backend provided the data. Request and response formats were agreed with the backend team so article, query and history views could use consistent API contracts.

The views were organized around articles and their associated queries. The application was intended to support regular editorial work and help users select topics for further analysis.

Working with an article
Editors can move from their publication list to related queries and their history instead of looking across separate tools.
Following change
A sequence of measurements makes trends easier to notice and helps editors choose content for further attention.

Interface and data contracts

The priority was to make the inherited interface easier to develop while keeping it aligned with the SEO department’s actual work. Clear structure and agreed data formats supported subsequent changes.

Strict TypeScript
Migrating from JavaScript to strict typing helped expose inconsistencies while developing views and handling data.
Modular structure
The code was organized around application features, making individual parts easier to locate and extend.
Agreed API contracts
DTOs agreed with the backend developers connected the interface to data returned by Rails.
Updates without a page reload
The interface fetches data for a particular view or operation through narrowly scoped endpoints. Editors can move between articles and measurement history without reloading the entire page.

Technologies and their use

Interface
React and TypeScript with strict checks.
Integration
API and DTOs agreed with the Ruby on Rails backend developers.
Analysis
Article and query position histories grouped by language and device.