SEO Audit: 991 Pages, Zero Duplicate Metadata

Краткое содержание

Pixel’s announcement shares an audit of all 991 CogniPrep pages: every URL returned 200, and titles and descriptions were all distinct. A Next.js title template caps titles at 60 characters, while the audit reveals one page opting out of the brand suffix—showing how templates can shape metadata consistency.

DEV Community

I measured the title and description of all 991 of our pages: 991 distinct, none over budget, and the tests say 47, 48, 59 and 60

CogniPrep publishes 991 pages. Most of them are generated from registries rather than hand-authored one by one, which is the arrangement that normally produces duplicate titles and descriptions at scale. So I fetched every URL in our own sitemap and parsed the head of each one. 991 URLs, 991 answered 200

titles 991 distinct 25 to 60 chars mean 52.6
descriptions 991 distinct 104 to 159 chars mean 146.8
Zero duplicates on either field, zero titles over 60, zero descriptions over 160, and nothing under 104 characters either. I did not expect that, and the interesting part turned out to be why it happened, because it is not the tests. Why the ceiling is exactly 60 The root layout owns a title template: title: {
default: 'CogniPrep - Psychometric Test Practice',
template: '%s | CogniPrep',
},
| CogniPrep is 12 characters. Every page supplies the %s part, and the longest one anybody has written is 48 characters. 48 plus 12 is 60, which is why the distribution has a hard wall at exactly the number a search result starts truncating at. The top of the histogram, measured on the live HTML: rendered length pages 60 4 59 54 58 80 57 104 56 88 55 97 Four pages sit precisely on the line. Having a visible brand suffix turns out to be an accidental forcing function: the budget a writer feels is 48, not 60, because the suffix is already there in the template and they are typing into what is left. One page in 991 has no brand in its title title: { absolute: 'Civitas Senior Living Assessment Practice' },
absolute is Next.js's opt out of the parent template, and one employer page uses it. It is the only one in the repository, and the result is a 41-character title with no | CogniPrep on it, where the template would have produced 53 and fitted comfortably. Nineteen characters of unused budget and no brand, which is not a trade anybody would make on purpose. The homepage is the other page without the suffix, and that one is deliberate: it uses the template's default, which is how you give a site root its own title. So: 989 of 991 titles end in the brand, one is the home page, and one is a mistake that no test could see, because it is not a length problem. Now the part that is a mess There are 98 title-length assertions across 50 test files, and they are written five different ways: assertion occurrences toBeLessThanOrEqual(47) 74 toBeLessThanOrEqual(48) 15 toBeLessThan(60) 5 toBeLessThan(48) 2 toBeLessThanOrEqual(60) 2 Four effective ceilings: 47, 48, 59, 60. Two of them are the pre-suffix budget disagreeing with itself by one character, and two are the post-suffix budget disagreeing with itself by one character, and nothing in the repository says which of the four is the rule. Descriptions are better behaved: 135 assertions, all of them toBeLessThan(160), which gives the 159 maximum the live measurement found. The reason for the spread is how the tests were written. Each provider has its own registration test file, many of them produced on separate branches at different times, and each one asserts the limits for its own content. Nobody was copying from a shared constant, because there is no shared constant. There is a prose comment in a type definition that documents 48, and 74 assertions that say 47. The pages on the line are the ones with no test The four titles at exactly 60 characters are per-test pages under three providers. Their providers' registration tests do have title assertions, and here is one of them: it('has a hub whose title and description fit the limits', () => {
const title = /const TITLE = '([^']+)'/.exec(hub)?.[1] ?? '';
expect(title.length).toBeLessThanOrEqual(47);
That reads the hub page's source as text and checks one constant. The per-test pages below that hub are not in the loop, which is exactly why they are the four allowed to reach 48. Coverage by cluster is lopsided in the same way: The 50 files that assert a title length are, with five exceptions, one per assessment provider. There is...
SEO Audit: 991 Pages, Zero Duplicate Metadata
Powered by Readybot.io

Последнее от Pixel

Fix GitHub Pages: Missing Artifact Error

Pixel's announcement explains why the GitHub Pages deploy action reports that no github-pages artifact was found. It covers skipped or failed build jobs, missing uploads, …

Rotate DB and Redis Passwords Without Downtime

Pixel shares a practical guide to rotating exposed database and Redis passwords without interrupting application connections. The approach updates Secrets, changes service credentials, and gradually …

AI Agent Earns Crypto from $0: Day 3 Update

Pixel shares Day 3 of a 21-day experiment testing whether an autonomous AI agent can earn real crypto from zero. The agent launched a pay-per-call …

AI Agent Receipts Prove What Actually Executed

Pixel’s announcement examines how public Zambo receipts verify what an AI agent actually did. A BTC price fetch succeeded with a recomputable output hash, while …