Answer in brief
Tags look like decoration until somebody counts them. Across a closed reporting period of 207 posts, VJOURNAL's records carry 46 different category labels and 20 different region strings, which the site then flattens into 10 sections and 4 desks. This is what survives the flattening — and what it does to a reader who switches language.
Filing is not decoration
Two fields on every VJOURNAL record decide where a story can be found. The category drives the topic hubs, which select posts by matching a post's category against the topic's category exactly. The region drives the desk hubs, filtered by an exact match against a region code. Both fields feed the related-story picker, which offers a reader a second article when its region or its category matches the one they are already reading. A hub holding no posts for a language is rendered noindex, and its hreflang cluster is trimmed to the languages that do have posts. A label is therefore a routing decision, an internal-link decision and an indexing decision at the same time.
This audit covers one closed reporting period: every post in data/generated-journal-posts.js — the file the newsroom's automated publication path writes to — dated on or before 20 July 2026. That is 207 posts, exactly 69 in each of English, Russian and Spanish, spanning 22 days from 29 June to 20 July. Filtering the corpus file by that date rebuilds the same set, so every count below can be repeated. Nothing published after that date is included, and neither are the curated and localized files the site also serves.
Forty-six labels for 207 posts
The newsroom wrote 46 distinct category strings across those 207 records. Twenty-five of them are used exactly once. The English edition alone spends 28 labels on 69 posts. The largest is Top News with 66 posts — 67 once the hyphenated spelling of the same label is folded in — followed by Global Desk with 21, Business & Strategy with 18, Business with 12 and Business Strategy with 11. Twenty-seven of the 46 labels contain a word meaning business in one of the three languages, and between them those 27 carry 82 posts under names as close together as Business Strategy, Global Business Strategy, Geopolitical Business Strategy and Geopolitics & Business Strategy.
Region is the same picture in a smaller frame: 20 distinct strings for one archive. The United States is written five ways — US, USA, United States, Estados Unidos and US, California — with North America and USA, Global alongside them. Global itself appears in two casings, 140 records capitalised and 18 not. None of these are errors in the sense of being wrong. They are a filing system with no vocabulary, which is a different problem and a worse one.
What the site does with them
None of it reaches a reader as written, because the corpus is normalised on the way out. The site recognises 12 categories and 8 region desks. Two hand-maintained alias tables translate what the generator produced into something routable: 57 category aliases and 34 region aliases. Anything unmatched falls to a default — World News for a category, Global for a region — and, outside production, prints a warning naming the value it could not map.
After that pass the 46 labels of the reporting period resolve to 10 sections: Business 81, Top News 69, World News 25, Marketing 7, Style 6, Beauty 6, Innovation 4, Travel 3, Design 3 and AI 3. Two of the site's twelve sections, Company News and People, receive nothing at all. Not one category in the reporting period falls through to the default, which sounds like a clean result and is in fact the finding. The alias table is longer than the list of labels it serves because it has been extended by hand, entry by entry, every time the generator invented a name. The taxonomy is not governed where stories are written. It is patched downstream, after the fact, by whoever notices.
Three quarters of the archive claims no place
Regions do fall through. Of the 207 posts, 27 carry a region string the alias table does not recognise and are served as Global. Eighteen of those are the lowercase global, one character away from the code that would have matched. The remaining nine name a real place with no desk behind it: three say United Kingdom or UK, two say Asia Pacific or APAC, and four say LATAM, América or América Latina. Those nine are the ones worth looking at — a story that knew where it was, filed as nowhere.
The served map of the reporting period is short enough to read in full: Global 167 posts, USA 28, Dubai 11, Russia 1. Four of the site's eight desks — Spain, Japan, China and India — hold nothing at all from this period. Global covers 80.7 percent of the archive, and no reader should take that as a claim about reach. It is what the record says when the record does not say a place.
The same story, filed three ways
The 180 posts of the single-publisher archive run are 60 stories in three languages, and they can be matched across editions without guesswork: each of those 60 source URLs appears on exactly three posts, one per language. That makes the comparison exact rather than inferred.
As written, all three editions agree on the category in 9 of 60 stories and on the region in 22 of 60. After the site's own normalisation, category agreement rises to 19 of 60 and region agreement to 40 of 60. On the version readers actually receive, then, 41 of 60 stories sit in a different section depending on which language you read, and 20 of 60 sit on a different desk. Twenty-two stories are Business in one language and Top News in another. Eight manage all three of Business, Top News and World News across their own three editions. One story built from a single Time article is Business in English and Top News in both Russian and Spanish; another is World News in English and Spanish and Business in Russian.
The consequence is not cosmetic. Because topic hubs filter on the served category and desk hubs on the served region, the three editions of one story appear on different hubs, collect different related-story links, and can be indexable in one language while absent from the equivalent page in another. Nobody decided any of this. It is the arithmetic of three independent label choices meeting one alias table.
The twenty-seven that hold their line
The 27 posts published through the current path behave differently. They use seven labels between them — AI, Beauty, Design, Innovation, Marketing, Style and Travel — and share not a single label with the 39 the archive run used. All nine of their stories agree on both category and region across all three editions, without exception. All nine are filed Global, which for stories about international brands is at least a defensible answer, and in any case it is the same answer in all three languages.
One corpus, two filing systems, no overlap in vocabulary between them. The variable that separates them is not the language and not the subject. It is which publication path wrote the record.
The picture nobody chose
One more consequence shows how far a label travels. Of the 207 posts, 180 store no cover image at all; only the 27 sourced posts carry one, nine images shared across three editions each. For everything else the site selects an illustration at serve time by hashing the string made of category, region and slug, then taking that hash modulo the number of images in the matching library.
The picture on 87 percent of this reporting period was therefore chosen by an arithmetic function of the two fields this article is about. Because the hash is deterministic, a mis-filed story does not get a random illustration. It gets the same wrong illustration on every build, in every language, until the label changes.
What a tag count cannot tell you
This audit counts labels, and labels are self-reported. A region field is a string typed into a record, not a dateline: it does not mean anyone was in that country, and nothing here should be read as claiming otherwise. Global is frequently the honest answer. Nor does any of this measure whether the journalism was good — a perfectly filed archive of thin stories would score exactly the same, and a taxonomy audit is not a substitute for reading the work.
Two structural limits bound the comparison. The cross-edition figures cover only the 60 stories whose three editions share a source URL; for the rest of the corpus the editions cannot be linked reliably, because a storyKey exists on just 27 of the 207 posts and translated slugs defeat the mechanical fallback. No claim about mismatched filing extends beyond those 60. And the reporting period is closed at 20 July 2026 inside a single corpus file, so these numbers describe a defined set of records rather than the live archive.
Fewer labels, not more
The instinct when a filing system fails is to add a label for the case it missed. This archive is the argument against that instinct. Forty-six labels produced less findable coverage than the ten they were flattened into, and the flattening had to be performed twice — once by an alias table maintained by hand, once by a default that quietly absorbs whatever the table missed. Every label added upstream buys a maintenance obligation downstream, and the obligation is paid by someone who was not in the room when the story was written.
The number worth tracking is the one that measures agreement rather than volume: 19 of 60 stories currently filed identically in all three languages. It cannot be improved by publishing more. It moves only when the three editions of a story are filed once, together, at the moment the story is created — which is also the only moment anyone knows what the story is about. For the record, this article is filed under Business and Global, two values the site already recognises, because a piece about label proliferation has no business inventing a forty-seventh label.
Questions and answers
Why does the same article appear under a different section in each language?
Because each language edition of a story is tagged independently and nothing reconciles the three. In VJOURNAL's own archive, 60 stories exist in English, Russian and Spanish, and after the site's normalisation only 19 of them are filed under the same section in all three; 20 also land on different regional desks. The site never compares the editions, so three separate label choices survive into three separate sets of hub pages and related links.
How many categories should a news website actually have?
There is no universal number, but this archive prices the cost of exceeding your own. VJOURNAL's site routes 12 categories and 8 regional desks; the newsroom's records contained 46 category strings and 20 region strings for 207 posts, 25 of the labels used exactly once. Everything above the routable set had to be absorbed by a 57-entry alias table, and two of the twelve sections ended the period with no stories in them.
What happens to a story whose region tag matches no region page?
It is served as Global. VJOURNAL's normaliser compares the stored string to eight region codes and an alias table, and anything unmatched takes the default, printing a build-time warning outside production. In this reporting period that caught 27 of 207 posts: 18 of them were the lowercase spelling of global, and nine named a real place — the UK, Asia Pacific, Latin America — that has no desk to be filed under.
Does a Global tag mean VJOURNAL has reporters in the countries it writes about?
No, and neither does a country tag. The region field is metadata typed into a record; it is not a dateline and it does not describe where anyone was standing. VJOURNAL's bylines are editorial desks rather than individuals, and 80.7 percent of this reporting period is filed Global, which is what the record says when it does not name a place.
How do you audit the category tags on your own site?
Three passes, all cheap. Count the distinct label strings in your records and compare that number with the labels your routes can actually serve. Apply your own normaliser to the records and see which routable sections end up empty and which values hit the default. Then, if you publish in more than one language, link the editions of each story by a stable key and count how many are filed identically. VJOURNAL's own answers were 46 against 12, two empty sections, and 19 of 60.

