Most "SEO strategy" content on the web is the same recycled article. Pick a topic, find related keywords, write content around them, link internally. That's not wrong, but it's so generic it's useless. Below: the specific topic-cluster system we use at Rough Works, the internal-linking rules that make it actually rank, and the automated audit that keeps the structure honest.
What a silo actually is
A content silo is a tightly-linked cluster of pages around a single business topic. The cluster has one pillar page (broad, comprehensive, often a service or solution page) and 4-10 cluster posts (specific, tactical, going deep on one aspect each). Pillar links to clusters; clusters link to pillar; clusters link to each other where it makes sense.
The point is topical authority. Google's algorithm has, for years now, been evaluating sites holistically — not "does this page rank?" but "does this site have authority on this topic?" A site with one excellent article on WordPress development plus a comprehensive cluster on it ranks both pages better than a site with twenty random WordPress posts.
We define four silos for Rough Works: Web Development, Web Hosting & Maintenance, Performance Marketing, Creative Design. Each has 3-4 sub-categories with target post counts. The structure lives in a yaml file in our repo and our daily audit measures coverage against it.
The internal-linking rules that actually matter
Internal linking is where most agencies fail. The strategy is right on paper; the execution is sloppy. The specific rules we follow, in priority order:
Rule 1: every cluster post links to the pillar page, with the pillar's primary keyword as anchor text.
This is the foundation. If you have a pillar page for "WordPress development services" and a cluster post on "headless WordPress with Claude API," the cluster post should contain a link like [WordPress development](services/wordpress-development/) somewhere in the body. The anchor text matters: Google reads the anchor as a vote for what the linked page is about.
Rule 2: cluster posts link to at least two other cluster posts in the same silo.
This is what creates the cluster shape. Two-way internal linking among cluster posts in the same silo strengthens the whole cluster. The audit we run checks for this — posts with zero or one internal blog link get flagged.
Rule 3: anchor text in internal links is descriptive, not generic.
Bad: click here, read more, this post. Good: Cloudflare WAF for WordPress, headless WordPress with Claude API. The anchor text passes context to the linked page; generic text passes nothing.
Rule 4: links are placed in body content, not just in navigation.
Footer "related posts" widgets are weak signals. Inline contextual links in the article body are strong signals. The audit checks this by counting links inside <article> content versus links in templated regions.
Rule 5: link asymmetry is okay; link reciprocity is not required.
You don't need every pair of cluster posts to link to each other. You need each cluster post to link to at least two others. Some cluster posts will be hubs (linked from many); others will be leaves (linked from few). That's fine — the cluster shape doesn't require equal in/out degree per node.
Choosing keywords for sub-categories
The keyword research workflow we use isn't novel — it's just disciplined. For each sub-category:
- Identify the head term — the single broad keyword that describes the sub-category (e.g. "WordPress development"). This is the primary keyword for the pillar page.
- Pull related searches from a tool — Google Keyword Planner, Ahrefs, SEMrush, whichever. Get 30-50 related terms with search volume and difficulty.
- Cluster by intent — informational ("what is X"), commercial ("X services"), comparison ("X vs Y"), tactical ("how to X"). Each cluster post targets one intent.
- Geo-localize where appropriate — for service businesses, every primary keyword has a Canadian and US variant. "WordPress development Canada" and "WordPress development USA" are distinct keywords with distinct intents.
The result is a list per sub-category: one primary keyword (head term), 5-10 supporting keywords (long tails and variants). We store these in our silos.yaml so the audit can check coverage at the keyword level, not just the topic level.
What we actually do differently in 2026
The pre-AI version of this workflow was hard to scale. Keyword clustering took hours per sub-category. Tracking gaps in coverage required spreadsheets. Auditing each post against the strategy required reading every post. Most agencies that started topic clusters never finished them.
Two things changed:
Keyword research is faster. Claude API can take a head term and produce a clustered keyword list with intent labels in 30 seconds. We still review the output (LLM-generated keyword lists are about 80% good — there's always 1-2 that don't fit), but the bottleneck moved from "doing the research" to "validating the output."
Audits run daily, not quarterly. Our SEO audit agent reads every post each morning and tells us which sub-categories are under-covered and which posts need work. Quarterly audits were always too late to be useful; daily audits surface drift the same day it happens.
What hasn't changed
Three things still take human judgment, and probably always will:
Choosing which silos matter. You can't outsource business strategy to an LLM. The four Rough Works silos came from a conversation about what services we want to lead with — not a keyword tool's recommendation.
Writing the actual content. AI-generated articles that haven't been through human editing read like AI-generated articles. You can tell. Your readers can tell. Google's search quality team — increasingly — can tell. We use AI to draft, but every published article gets meaningful human revision.
Building real internal links. Even with audit tools that flag missing links, the actual work of finding the right place in the body to drop a contextual link is human work. Generic "add a link here" recommendations rarely improve a paragraph; thoughtful contextual links make the article better and stronger SEO-wise.
Targeting Canada and the US specifically
A note on geo-targeting for North American agencies: Google treats the Canadian and US markets as distinct search ecosystems. The same primary keyword can rank #1 in one country and #15 in the other for the same domain. Two things that move the needle:
- hreflang tags when you have country-specific pages. We don't usually, because most of our cluster posts are equally relevant in both markets. But when we do create country-specific content (service pricing pages, case studies with country-specific clients), hreflang tags are non-optional.
- Geographic terms in body content. Mention Canadian cities and US cities by name in cluster posts. Reference Canadian regulations alongside US ones where they differ. The audit flags posts that don't have any geographic specificity.
The output
Done right, a topic-cluster site builds compounding authority. A new post in an established silo ranks faster than a new post on a topic the site has never covered. After 12-18 months of disciplined cluster expansion, sites we've worked with have moved from "occasionally found" to "frequently cited" in their topic areas.
The agencies that win at SEO in 2026 aren't the ones with the loudest opinions about it. They're the ones who define their silos clearly, link internally with discipline, and run audits often enough to catch drift early. The strategy isn't complicated. The execution is the hard part.
If you want to see all of this running on a small scale, look around this blog — every post is part of one of our four silos, every post links to others in its cluster, and every morning a Python script reads them all and tells us where the gaps are.

