Telling your site's furniture from its content
Every page has furniture — navigation, a header, a footer, share buttons, a cookie line — and almost every automated judgement about what a page says depends on telling that furniture from the content. It is much harder than it sounds. We have got it wrong five separate times, in five different checks, and the fifth was in the fix for the fourth.
Where it bites hardest
A page with very few words is usually a problem. But a page whose few words are its links is an index — an author archive, a category listing, a tag page — and the standard advice for a thin page is wrong for one in three different ways, which a content audit → sets out.
So before any of that advice can be given, a check has to answer a question with no obvious handle on it: is this page short because nobody wrote it, or short because its job is to point elsewhere?
Counting the links does not work
The first idea is always to count links: an index has lots, a stub has few.
An author archive on a publisher's site carries dozens of links. Two or three of them are the author's articles. Every other one is the site's main navigation, its footer, its section menu and its social row — the same links on every page of the site.
A raw link count measures the template, not the page. That is the mistake in its plainest form, and it is the one we have made repeatedly: a measurement that is perfectly correct about the document and wrong about the page, because the document contains the whole site's furniture and the page is what a reader sees.
So it measures share instead
The better question is what proportion of the page's words sit inside links. A real index is mostly its links — that is what makes it an index. A stub with a navigation bar is mostly not.
That works, and it is where the fifth mistake was waiting.
The fifth time, inside the fix for the fourth
Computing a share means having the page's text with the furniture already removed. Extractors do that well — when the markup gives them something to recognise navigation by. A navigation element, a role, a recognisable container.
A page that carries its links as bare anchor tags, with no navigation element around them, gives the extractor nothing to strip. Every one of those labels lands in the body text. In the case that caught this, a genuine stub — a page with nothing on it but a row of section links and a line of contact detail — came out as a long run of one-word labels, which is a link share comfortably over any threshold. An empty page was excused as an archive by the rule written to protect archives.
It was caught by a test written for exactly that shape, which is the only thing that catches this: the site looked fine, the number looked right, and nothing about the output said the input was wrong.
The third discriminator, which is the one worth borrowing
What finally separates a navigation label from an index entry is neither where it sits nor how often it appears. It is how long it is.
An anchor has to carry at least four words before it counts as an entry rather than a label. "Home", "Contact", "About us", "Our services" never qualify. An article title, a product name, a person's full name with a role after it — almost always do.
It is crude and it is the most portable of the three, because it needs no crawl and no markup at all.
Three ways to separate furniture from content
| Test | Works when | Fails when |
|---|---|---|
| Repetition — it appears on many pages | You have the whole crawl to compare against | You are looking at one page, or the furniture is nested inside content |
| Region — it sits inside a navigation, header or footer element | The markup is semantic | The markup is bare, or the thing you want lives in the footer |
| Length — a label is short, an entry is long | Always available, needs nothing | The entries really are one or two words |
None is reliable alone. We use all three, in different checks, and each is a different answer to the same question. The other two have their own pages, for the cases where each goes wrong: why repetition beats position when you are deciding whose a link is →, and why stripping the furniture is exactly wrong when the fact you want is in the footer →.
Checking this on your own site
- When a tool calls a listing page thin, ask what it counted. If it counted links, it counted your template.
- Look at whether your navigation is inside a navigation element. Bare anchor tags are valid, they render identically, and they make every automated reading of your pages worse.
- If your index entries are genuinely short — a glossary, an A to Z, a size chart — expect tools to under-count them, and do not let a report talk you into padding them.
- Read the page with styles switched off. What you see is roughly what a text-based reader gets, and the ratio of furniture to content becomes obvious immediately.
When this matters
The severity sits on both ends and they are the same bug. Wrong in one direction, a publisher is told at high severity to delete author pages — breaking a byline link on every article that author wrote. Wrong in the other, a genuinely empty page is excused as an index and never fixed. A tool that cannot tell furniture from content will do both, on the same site, in the same report.
The fixes that make it worse
- Padding an index page with prose so it stops looking thin. Its job is to point elsewhere; the words you add are read by nobody and dilute the links that matter.
- Removing navigation from a page to change its ratio. You have made the page worse for people in order to make a number better.
- Deleting a short page because a report offered it as one of three options. A deletion is not undone by noticing it was wrong, which makes it the one option to be slowest about.
How to look like an index without being one
Put a few dozen long anchor texts on a stub. Any measure of "is this page mostly links" is satisfied by adding links, and no crawler can tell an index of real things from an index of nothing.
Which is the honest limit: these rules recognise the shape of an index, never its usefulness. Whether the things listed are worth reaching is a judgement about your site that no tool makes, and it is the only question that decides whether the page should exist.
Where this sits in an audit
The registered check is content.thin, which reports pages with very little content
and reports index pages separately. For what to do with the list it gives you, see
how to run a content audit →.
Common questions
Why does an audit call my category or author page thin?
Because it is short, which is true. The question is whether it is short because nobody wrote it or short because its job is to point elsewhere — and the advice for the first is wrong for the second in three different ways.
Why is counting links a bad way to recognise an index page?
Because a raw count measures your template. An author archive carries dozens of links of which two or three are its entries; the rest are the same navigation and footer links that appear on every page of the site.
Does semantic markup change how tools read my pages?
Yes, more than most people expect. Navigation inside a navigation element can be recognised and set aside. The same links as bare anchor tags land in the page's body text, and every measurement of what the page says is then wrong.
What separates a navigation label from a real index entry?
Length is the most portable test. Ours requires an anchor to carry at least four words before it counts as an entry — enough to exclude Home, Contact and About us, and to include almost any article or product title.
Can a tool tell whether my index page is any good?
No. These rules recognise the shape of an index, never its usefulness. Whether the things it lists are worth reaching is a judgement about your site, and it is the only question that decides whether the page should exist.