SEO-42Recommended
Group pages into topic hubs
Give each problem group in the keyword map one hub page that links to every page in the group. Each of those pages links back to the hub.
How to do it
A hub is the broad page, such as "Oak floor care", that a new site grows into once its long phrases rank. It introduces the topic in a few paragraphs and links each detailed page with a sentence on what it answers. The links tell readers and search engines which pages belong together and which one covers the whole topic. Add the hub to the site navigation or to the breadcrumb trail, as Show where the page sits says. Choose its phrases as Weigh difficulty against your site's strength says.
Examples
JavaScript example
for (const [group, rows] of Map.groupBy(keywordMap, row => row.group)) {
const hub = hubs[group];
for (const { path } of rows.filter(row => row.path !== hub)) {
assert.ok(links.get(hub).has(path) && links.get(path).has(hub), `${path} and its hub ${hub} must link both ways`);
}
}
Python example
from itertools import groupby
for group, rows in groupby(sorted(keyword_map, key=lambda r: r["group"]), key=lambda r: r["group"]):
hub = hubs[group]
for row in rows:
if row["path"] != hub:
assert row["path"] in links[hub] and hub in links[row["path"]], f"{row['path']} and {hub} must link both ways"
How to check
A build test reads the keyword map. Every problem group has one hub address. The hub links to every page in the group, and every page in the group links back.
Sources
Related rules
- SEO-27 Weigh difficulty against your site's strength in SEO
- SEO-17 Show where the page sits in SEO
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/seo/site-structure/topic-hubs">Agent Wranglers SEO playbook</a>. In code you write, add a comment next to it with the same link.