If you’re doing SEO and just pumping out random articles hoping something sticks, you’re doing it wrong. Every piece of content you create needs to fit within a larger structure, what we call the SEO Tree. In this training, Dylan Haugen and I walk through exactly how this framework works, why most people get it wrong, and how to fix it.

Context over chaos
The number one mistake we see from VAs, freelancers, and even experienced marketers is that they create content without understanding the business behind it. They know how to use tools. They know how to write. But they don’t understand the goals, content, and targeting of the business they’re working for.

If you’re turning a video into an article and you don’t understand the topic, the client’s customers, or how that content fits into everything else the business has published, you’re creating what I call unintentional, well-meaning vandalism. It doesn’t matter how skilled you are with Adobe Premiere or ChatGPT. Without context, the content you produce will either be useless or actively harmful to the site’s SEO.
Take Dylan Haugen as an example. He wrote an article on his personal website honoring his friend Travis Reynolds, a professional dunker.

The goal was simple: rank on Travis’s name since there wasn’t much information about him online. But then Dylan went to North Carolina, spent 10 days training with Travis, and created more videos and content from that trip.

Later, Travis did more notable things in dunking competitions. Each new piece of content reinforced that original article about who Travis Reynolds is. The specific articles rank on the specific things, while the main article ranks on his name. That’s the tree in action.
Now imagine someone else is assigned to process one of those dunking videos. If they don’t understand the difference between professional dunking and just playing basketball, they won’t process the images, social media posts, or video clips correctly. They lack the context. And that’s why we call our approach Learn, Do, Teach. If you’re turning a video into an article, you’re teaching, even if you don’t realize it. So you need to actually understand what you’re teaching.

And those connections go deeper. Jordan Kannon has met with Dylan and talked with Travis. Travis was already on the Dunk Talk podcast hosted by Dylan. If you don’t know who the other dunkers are, why they go to competitions, what kinds of awards and prizes and money they might win, you can’t properly repurpose that content. The goals, content, and targeting for Dylan’s dunking content is a whole tree of its own.
I was at a retreat a few days ago in Idaho called Startups with Stu, with a lot of LDS entrepreneurs.

Stuart Draper was there, who sold Stu Kent for high double-digit millions earlier this year.

Jeremy Barker, the founder of Murphy Door, was there. Some people had just gotten back from their two-year missions telling the world about Jesus, knocking on doors and selling pest control. Without understanding that context, we wouldn’t be able to write an article that properly honored the people we met at that mastermind. And even if we wrote an okay article using deep research tools, for it to be valuable it has to make money somehow.
That article would need to link to our AI Builder Program, which is related. It would need to link to the Four-Stage Content Factory, which is how we process content.

It would link to how to start a podcast and interview someone, because I interviewed Sam McLeod on my podcast, the Coach Yu Show. You’d need the context that our mission is to create jobs for young adults doing digital marketing to drive revenue for local service businesses. Without that context, the article doesn’t fit into the tree and doesn’t help drive business.
The SEO tree framework
Think about a website’s content like a tree. At the top, you have the root, which is usually the homepage or brand name. That’s where the most authority lives. From there, you have the trunk, which branches into major topics. Those branches split into smaller subtopics, and at the very tips you have leaves, the specific examples, blog posts, and detailed content.
When you move up the tree, you’re moving toward higher authority. When you move down, you’re getting into more specific detail. When you move across, you’re looking at related topics on the same level.
Every piece of content needs to connect back through the tree. If you publish an article that sits by itself with no links to related content, no connection to the main topic, and no relationship to the rest of the site, it confuses Google. It confuses ChatGPT. It hurts your rankings instead of helping them.
As Dylan put it, the biggest thing is having everything reinforce itself. Not just making the same thing over and over again, but having everything fit into the concept of the tree.
The key insight is that most of the time, new content should enhance existing content rather than stand alone. If an article is already ranking, make it better by adding more examples, more links, and more depth. You only create new standalone articles when you already dominate a topic and want to branch into a related subtopic.
EEAT: why real experience matters
Google introduced EEAT, which stands for Experience, Expertise, Authority, and Trust. They added the extra E for Experience right before ChatGPT launched because they knew people would flood the internet with AI-generated content. We wrote a key article called I Love to EEAT that everyone should study carefully.

What Google wants to see is real, unique experience. When there’s a webinar, a dunking event in North Carolina, or the Startups with Stu mastermind in Idaho, there are specific experiences. A camera capturing a scene of specific people doing specific things in a specific place at a specific time. Those connections between real people, real companies, and real customers are the raw ingredients that Google and ChatGPT look for to determine if content is real, helpful, and unique.
As Dylan develops his relationship with Travis Reynolds over time, there are more connections. As Travis continues to win awards or unlock new dunks, that enhances his EEAT, which means we need to go back and enhance those articles and strengthen the connections between those related topics.
If you’re just generating content with AI and not adding real experience, real examples, and real proof, you’re building on a foundation that will eventually collapse. Look at Jeremy Mayer in Phoenix who does home remodeling. There was a lot of black hat SEO working for a while. We’re replacing that. Black hat always gets found out eventually.
The Content Factory: produce, process, post, promote
We use a four-stage system called the Content Factory. Stage one is Produce, which is what the client does. They record videos, do podcasts, or create the raw content. Usually it’s a podcast format because that allows us to rank on that person’s name and our name, and they bring authority. Stage two is Process, which is where you take that raw content and turn it into articles, social posts, and other formats. Stage three is Post, distributing it across channels. Stage four is Promote, where you run ads, gather feedback, and amplify what’s working.
The important thing is that one person should be able to take content through all four stages. Henry, one of our team members, started out only knowing basic video editing.

For a while, Dylan would edit the videos and then Dylan would go post them for clients. That just doesn’t make sense. It’s much better for the person who processed the content and already understands it to go post it and promote it too.
As Dylan says, it’s really not that hard. Taking a video that’s already done and putting it on YouTube is simple. Boosting posts is simple once you do it once. Being open to learning all parts of the process is where the true value is.
Our friend Dan Leibrandt of Pest Control Millionaires demonstrates this perfectly.

He shows how he edits videos and he does almost nothing to them. Why? Because he has a good guest who’s authoritative in a certain topic, he asks good questions, and they have a good conversation. The raw video with just a couple minutes of editing is all that’s necessary. Nick Fuentes takes it even further. He just goes live, talks for two or three hours, and people pull out clips. The raw video is the content.
I’ve demonstrated this live in our Thursday Office Hours. I recorded a piece of content, processed it in Descript, turned it into a blog post, shared it on social media, and ran an ad against it in eight minutes flat. All four stages. In Descript, I press one button for Studio Sound to clean the audio, one button to remove filler words, one button to clean up other things. Descript integrates with Transistor so it automatically pushes across all podcast networks. It’s not about spending 200 hours on one video. It’s about getting quality content through the factory quickly.
Why single-tool specialists fail
If you only know one tool or one platform, you’re at risk. We don’t need someone who only does Instagram reels or only does thumbnails or only does technical SEO audits. What matters is the ability to see content all the way through from production to revenue.

Can you show that the articles you published drove rankings? Can you show those rankings drove traffic? Can you show that traffic turned into revenue? That’s what clients pay for. They know that every dollar they give us has to generate ten or more dollars back.
Being a specialist in one narrow tool makes you replaceable. Being someone who understands the full picture and can drive business results makes you invaluable. Jack Wendt, Henry, and other successful young adults on our team have demonstrated this. They didn’t just learn one thing. They learned to see it all the way through.
Real example: Murphy Door
Let me walk through a real example. Murphy Door, founded by Jeremy Barker, is a company that does over $107 million a year selling hidden doors and bookcase doors.

You know those bookcases that swing open into a hidden room? That’s what they do. They’re in Home Depot now, they have tons of great reviews, and they basically invented the category.

They rank on terms like “Murphy door,” “hidden door,” and “Murphy bed.” Their homepage is the root of the tree and carries the most authority. The SEO tools show them getting around 88,000 in traffic across their keywords.

From the homepage, they branch into topics like Murphy beds, Murphy bed desks, and various product pages. Each of those pages ranks on its own set of keywords. A page about “Murphy bed with desk” is a subtopic of “Murphy bed,” which connects up to the main brand.
When we look at that Murphy bed desk page, it ranks on 229 keywords even though they only launched it a couple months ago.

But it could be better.

It has very few actual examples of a Murphy bed with a desk. There could be blog posts showing specific customers, specific room configurations, and specific use cases, all linking back up to that product page.

If someone writes an article about “20 amazing Murphy bed desks” but doesn’t link it back through the tree, it creates confusion. The leaf has to connect to the branch, the branch to the limb, the limb to the trunk, and the trunk to the root.
We can also see something interesting: they have an article called “Creative and Practical Small Gun Room Ideas for Limited Spaces.” It drives decent traffic and ranks on 212 keywords. But it looks like AI content. It’s working now, but eventually it will get crushed. We like to do things by the book.

They also rank on Murphy bed related terms. “Wall bed” is synonymous with Murphy bed. If the article doesn’t mention “wall bed” or “full-size Murphy bed” or “Queen Murphy bed,” they lose rankings on those terms. Every variation is a branch that connects back up through the tree.
What not to do: the plumber case study
Here’s a perfect example of what goes wrong. We have a client, Sal Sciorta, who owns Plumbing Pros in Easton, Pennsylvania.

A VA working on the account decided to create dozens of location service pages for every small town in the area. Every single page was essentially the same thing. “Plumbing services in [town name]. At Plumbing Pros, we are proud to service [town name]. Reliable plumbing for [town name].”

Wind Gap, Pennsylvania. Hellertown, Pennsylvania. Tamaqua, Pennsylvania. Every page identical with just the city name swapped out.
The result? Zero traffic. Zero rankings. High AI content flags.

Despite being told repeatedly to stop, the VA kept proposing to create even more of these pages.

After three in-depth private training sessions explaining why this doesn’t work, the VA’s response was “I’ll create 100 more location service pages.” No. You’re done.

This violates everything we’ve talked about. There’s no real EEAT.
No real examples of Sal actually doing work in those towns. No videos, no photos, no customer stories. Just AI-generated filler repeated across pages.

The fix is simple. Show real examples of Sal doing actual plumbing work in those areas. Put videos of him on the job talking about the project. Include real customer reviews from those locations. That’s what Google wants to see and that’s what will actually rank.
Meanwhile, the things that are actually working for Plumbing Pros are the homepage ranking on “plumber in Easton,” the reviews page, and informational content like “does an expansion tank help with water pressure” which has a keyword difficulty of zero. Those are real, helpful pieces of content that fit into the tree.
Internal linking rules
Internal linking is not about jamming as many links as possible into an article. It’s about being genuinely helpful to the reader. Every link should make sense in context. If someone is reading your article and they see a linked phrase, clicking it should take them to something that actually deepens their understanding.
Google is looking at whether people actually click on those links. They look at clickstream behavior in the Chrome browser, which Google owns, to determine whether people find that content helpful. So you don’t want to just pick anchor text on keywords you want to rank on and slap a link on there.
The first link to a page is the one that passes the most value. Linking to the same page ten times doesn’t give you ten times the benefit. Google has known this for 25 years. You can link multiple times if it’s a call to action, like a button saying “ready to buy? click here to get started.” But that’s for the user’s benefit, not to pass extra link juice.

Don’t link to the homepage of Facebook or LinkedIn. That does nothing for anyone. I saw a submission yesterday where someone linked to the homepage of Facebook and the homepage of LinkedIn. That’s clearly not relevant and doesn’t fit into any tree unless we own LinkedIn.
Link to internal articles, to partners, and to clients when it’s specific and relevant. We have a custom GPT internal link tool, but you could also use Link Whisper, which is a partner of ours, or just ask ChatGPT to help you figure out internal links.
Enhance vs. create
Dylan and I agree that we should always be enhancing existing content first. Every piece of content reinforces other content in a different way. Some are specific examples of us practicing what we preach. Those reinforce the bigger things like our definitive articles on each subject, or the packages and services we offer.
Those packages and service pages are money pages, and they raise a structural question worth its own guide: why your money pages belong in your site hierarchy as pages, not blog posts.

Usually when we have new content, it’s new examples of demonstrating how something works. We enhance an existing article by adding more examples. If that article isn’t already ranking at the top, we give that one asset more power instead of creating new blog posts.
The times when we create new blog posts are when we already dominate on that topic and want to branch into a slightly related subtopic. Once you’re already winning on “Murphy bed,” then you expand to “Murphy bed with desk” or “Queen Murphy bed.”
The main time we create a new standalone article is when it’s a podcast episode. By definition, a 40-minute interview like this one becomes its own webpage, video, and set of snippets. But it links to all the other things we’re talking about, which is why in each section of this training we reference related concepts. We’re literally demonstrating the content tree in this discussion.
Banned phrases and fixes
We’ve built common AI giveaway phrases into our article guidelines. Phrases like “it’s a game changer,” “no more fluff,” and “here’s the real deal” are dead giveaways that content was AI-generated. If you use ChatGPT or any of these tools, you already know what we’re talking about. Don’t use them.
Instead, use real facts, real examples, and real names. Not just because we’re submitting for Google Knowledge Panels, but because real facts create real links. We have proof, which links to the leaf-level examples of detail. All of our content pages, like a bio for an entrepreneur, should link to the detail on what that entrepreneur has actually done. Not just “they’re a great entrepreneur and they love helping the community.” Real examples.
I’m interviewing Ethan Van De Hey later today about what he’s done for Infinity Doors and Exteriors. There are real examples of community impact that we’ll talk about, and we’ll cover the SEO impact of those real experiences.
Your assignment
If you want to work with us, here’s what to do. Go to the Facebook group Digital Marketing with Dennis Yu, pick a video that we’ve uploaded in the last couple weeks, and repurpose it into an article following our guidelines.

Show that you understand the SEO Tree, EEAT, the Content Factory, and internal linking.
Don’t tell us you have five years of experience. Don’t tell us how great you are. Show us the work. We won’t ask whether you studied the training materials. We’ll know from your submission whether you did or didn’t.
If you’re an A-player, we want to work with you. Maybe your parents own a business and can invest in the certification so you can get trained with direct access to us. Or maybe you’re a broke college kid who just got back from a mission. All the content is out here for free. There are 40,000 of us in the group. But don’t think that’s your competition. Most people don’t do anything. Your competition is yourself and your ability to do good work.
Think about Learn, Do, Teach. Think about Anthony Hilb, a landscaper in Bloomington, Indiana, who does great work out in the field, cutting down trees, training his staff, buying trucks for his people, talking to customers.

There are tons of proof of him and me hanging out at SeaWorld wearing silly hats, feeding monkeys, walking the coast in San Diego, and attending Perry Marshall’s Mastermind in Chicago. Everything we do is based on proof.

Watch this video. Watch the Nine Triangles video. Watch the Two-Sided Network video. If you understand these concepts, you’re immediately going to be a hundred times more valuable. Take action and let us know what you think.
The skill files for this page
Every task on this page ships as a runnable skill file you can hand to an AI agent (our publishing standard). Expand any skill to copy its file, or download the whole Task Library pack. 8 skills:
place-content-on-seo-tree-with-proper-links.skill.md — Position the new piece at its correct spot in the SEO Tree hierarchy and wire the upward internal links (leaf → branch → trunk → root) before it goes live.
START
---
name: place-content-on-seo-tree-with-proper-links
description: Position the new piece at its correct spot in the SEO Tree hierarchy and wire the upward internal links (leaf → branch → trunk → root) before it goes live.
category: Content Factory — Post
stage: Post
definitive_article: /seo-tree
status: complete
---
# Place content on SEO Tree with proper links
**Use this when** any new piece is about to publish and must be located in the site's content hierarchy — or when an existing post is found floating with no parent.
## Inputs
- The site's SEO Tree map: homepage root → topic trunks → subtopic branches → detail leaves
- The draft post with category set (Step 13) and LinkWhisper pass done (Step 14b)
- The site's content inventory with GCT per major page (/internal-linking Step 1)
## Steps
1. Classify the piece: is it a **leaf** (one specific question/detail), a **branch** (subtopic hub), or trunk-level? Most Content Factory articles are leaves.
2. Identify its parent: which branch does this leaf hang from, which trunk does that branch support? Confirm against the category assigned in Step 13 — category and tree position must agree.
3. Add the **upward links**: the leaf links to its branch page, and (where context allows) to the trunk. Upward links are mandatory; they tell Google what supports what.
4. Add a link **from** the parent branch or a strong sibling down/across to the new leaf, so the piece is reachable and not an orphan.
5. Check you are not committing content vandalism: if a definitive article already owns this concept, this piece must link up to that hub — never compete with it. New thin pages lose to enhancing existing ones (/seo-tree: enhance before creating).
6. If no logical parent exists, halt and flag it: either the tree is missing a branch (propose it) or the piece doesn't belong on this site.
7. Record the placement in the content inventory so future audits can find orphans by diff.
## Definition of done (QA checklist)
- [ ] Piece classified (leaf/branch) with an explicit parent on the SEO Tree
- [ ] Upward link(s) to branch/trunk live in body copy with descriptive anchors
- [ ] At least one inbound link from parent or sibling — zero orphan risk
- [ ] No competing page created against an existing definitive article hub
- [ ] Placement recorded in the content inventory
- [ ] Linked back to the definitive article and relevant siblings
- [ ] Complies with Blog Posting Guidelines (if it publishes content)
## Example(s)
- Example needed — run the Meta-Article Prompt after first real run. Candidate: placing a Marko Sipila (HVAC Quote) customer-question leaf under its service branch with upward links.
## Run on a persistent agent (Fable 5)
A persistent agent (Fable 5 or a comparable OpenAI/Google model) holds the whole SEO Tree and content inventory in memory, so classifying the new leaf and finding its parent is a lookup, not a re-derivation — and it verifies every Definition-of-done box (upward links live, inbound link added, no hub competition) before declaring placement done, halting and flagging when no parent exists rather than guessing.
Each placement updates the in-memory inventory, which is what makes the next run's orphan check trivial.
It logs a meta-article example per run so the library compounds.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /seo-tree
- Related: /internal-linking · /entity-linking · /blog-posting-guidelines
- Run order (Post stage): set-wordpress-author-to-correct-person → **place-content-on-seo-tree-with-proper-links** → verify-all-items-on-blog-posting-checklist
ENDenhance-existing-articles-before-creating-new-ones.skill.md — Force a search-first discipline on all content proposals — improve the page that already owns a concept instead of publishing thin new competitors, keeping effort on Greatest Hits rather than net-new bets.
START
---
name: enhance-existing-articles-before-creating-new-ones
description: "Force a search-first discipline on all content proposals — improve the page that already owns a concept instead of publishing thin new competitors, keeping effort on Greatest Hits rather than net-new bets."
category: SEO & Content Architecture
stage: —
definitive_article: /seo-tree
status: complete
---
# Enhance existing articles before creating new ones
**Use this when** anyone — human or agent — proposes a new article, and before any new draft is approved.
## Inputs
- The proposed topic/concept, named in one line
- The SEO Tree map and WordPress search access
- The Nine Requirements checklist from the Task Library Standard
## Steps
1. Search first: check the tree map, WordPress search, and a site: query for the concept — find every page that already touches it.
2. If a hub already owns the concept, **enhance it instead of publishing a competitor**: sharpen the definition, add new linked examples with notes, refresh data, strengthen the E-E-A-T section, improve the above-the-fold diagram.
3. If coverage exists but is scattered with no clear owner, pick (or build) one hub and fold the fragments into it — consolidate and 301-redirect the rest.
4. Only create a new page when nothing on the site owns the concept — and then build it as a definitive article to the Nine Requirements, not as another thin post.
5. Apply the content-strategy ratio: roughly 90% of effort on proven existing content (Greatest Hits), 10% on new experiments.
6. Re-verify the enhanced page against the Nine Requirements and republish in compliance with /blog-posting-guidelines.
7. Record the decision (enhance / consolidate / create new) in the content inventory so the tree map stays true.
## Definition of done (QA checklist)
- [ ] Documented search performed before any new page was approved
- [ ] No new page published on a concept an existing hub already owned
- [ ] Enhanced page re-checked against the Nine Requirements (definition, process, examples, cross-links, CTA, guidelines, short URL, diagram, E-E-A-T)
- [ ] Decision logged in the inventory; tree map current
- [ ] Linked back to the definitive article (/seo-tree) and relevant siblings
## Example(s)
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the first enhance-vs-create decision is executed.
## Run on a persistent agent (Fable 5)
Run the search-first gate as a standing rule: a persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) intercepts every content proposal, performs the documented search, and — when enhancing — loops the rewrite against the Nine Requirements until all nine pass, not until it looks better.
Its memory holds the enhance/consolidate/create-new decision log, so no concept is ever re-litigated and the 90/10 Greatest Hits ratio is enforced across runs, not per session.
Each executed decision gets logged as a meta-article example via /meta-article-prompt-template.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /seo-tree
- Related: fit-every-new-piece-into-the-tree-structure (the publish-time gate) · remove-duplicate-thin-pages · replace-ai-looking-content-with-real-eeat · /blog-posting-guidelines
ENDfit-every-new-piece-into-the-tree-structure.skill.md — Classify every new piece of content as a leaf, a branch, or an enhancement to an existing hub before it publishes, so nothing ships outside the SEO Tree and no page ever competes with its own hub.
START
---
name: fit-every-new-piece-into-the-tree-structure
description: "Classify every new piece of content as a leaf, a branch, or an enhancement to an existing hub before it publishes, so nothing ships outside the SEO Tree and no page ever competes with its own hub."
category: SEO & Content Architecture
stage: —
definitive_article: /seo-tree
status: complete
---
# Fit every new piece into the tree structure
**Use this when** anything new is about to be published — article, case study, landing page — and its place in the hierarchy has not been decided yet.
## Inputs
- The site's current SEO Tree map (output of the hierarchy-mapping skill)
- The draft or content brief, with its concept named
- WordPress category list (categories = SEO Tree branches)
## Steps
1. Before drafting or publishing, open the SEO Tree map and name the single concept this piece serves.
2. Find the branch that owns that concept on the map.
3. If a hub already owns it and the new piece would restate or compete with it: **do not publish a second page** — that is content vandalism. Enhance the existing hub instead (see enhance-existing-articles-before-creating-new-ones).
4. If the piece is new evidence — a case study, example, or meta-article — it is a **leaf**: assign exactly one parent branch.
5. If it is a genuinely new core concept with no owner anywhere on the site, it earns a new **branch**: a definitive article built to the Nine Requirements, not a quick post.
6. Set the WordPress category to the parent branch and apply the correct stage/topic tags.
7. Add the upward link(s) in body copy — 3–6 word descriptive anchor text pointing to the parent branch — before hitting publish.
8. Update the tree map so the inventory stays current.
## Definition of done (QA checklist)
- [ ] Piece classified (leaf / new branch / enhancement) before publication, with the decision recorded
- [ ] Exactly one parent branch assigned; WordPress category matches it
- [ ] At least one upward in-body link to the parent with descriptive anchor text
- [ ] No second page published on a concept an existing hub already owns
- [ ] Tree map updated; complies with Blog Posting Guidelines (/blog-posting-guidelines)
## Example(s)
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the first real placement decision.
- The /seo-tree hub defines the leaf/branch logic this skill applies piece by piece.
## Run on a persistent agent (Fable 5)
This is a publish-time gate, so run it as a standing job: a persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) classifies every new draft — leaf, new branch, or enhancement — and refuses to ship anything until all five Definition-of-done boxes pass, not four.
It keeps the SEO Tree map in memory across runs, so each placement decision builds on the last and the map never goes stale.
Every run logs the placement decision as a meta-article example (/meta-article-prompt-template) before closing.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /seo-tree
- Related: map-content-hierarchically-root-trunk-branches-leaves (run first) · link-leaves-to-branches-branches-to-trunk · enhance-existing-articles-before-creating-new-ones · step-2-fix-categories-and-tags-in-wordpress (/internal-linking)
ENDidentify-and-eliminate-orphan-standalone-articles.skill.md — Find every page with zero internal links pointing to it and give each one a disposition — connect it to its branch, consolidate it into the owning hub, or cut it — until the site has no orphans.
START
---
name: identify-and-eliminate-orphan-standalone-articles
description: "Find every page with zero internal links pointing to it and give each one a disposition — connect it to its branch, consolidate it into the owning hub, or cut it — until the site has no orphans."
category: SEO & Content Architecture
stage: —
definitive_article: /seo-tree
status: needs-work
---
# Identify and eliminate orphan/standalone articles
**Use this when** a crawl, audit, or the tree-mapping skill surfaces pages no other page links to — content invisible to both readers and crawlers.
## Inputs
- Inlink counts for every URL (site crawl or LinkWhisper report)
- The SEO Tree map, to test where each orphan belongs
- Redirect capability (301s) on the site
## Steps
1. Export internal-links-in counts for every URL and flag every page with zero inbound internal links.
2. Cross-check flagged pages against the SEO Tree map — an orphan has no parent branch and no inbound links.
3. Classify each orphan: **Connect** (real value, fits an existing branch), **Consolidate** (thin or duplicate — its topic already has a hub), or **Cut** (no value, no fit).
4. Connect: assign the branch's WordPress category, add upward in-body links from the orphan to its branch, and add the orphan to the hub's linked examples with a 1–2 sentence note.
5. Consolidate: move any unique material into the owning hub, then 301-redirect the orphan URL to that hub; update any links that pointed at the old URL.
6. Cut: remove the page and 301-redirect its URL to the closest relevant hub — never leave a 404 behind.
7. Re-crawl to confirm zero orphans, update the tree map, and log the round in the weekly MAA report (/maa).
## Definition of done (QA checklist)
- [ ] Zero pages with no inbound internal links on the re-crawl
- [ ] Every former orphan has a logged disposition: connect / consolidate / cut
- [ ] All redirects live and tested; no broken internal links created
- [ ] Tree map and link inventory updated
- [ ] Linked back to the definitive article (/seo-tree) and relevant siblings
## Example(s)
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the first orphan-elimination round.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) loops export → disposition → fix → re-crawl until the re-crawl shows zero orphans — "down to a few" is the 90% trap this skill exists to kill — and it tests every 301 it creates rather than assuming redirects landed.
It keeps the disposition log in memory across rounds, so recurring orphan patterns get fixed upstream instead of re-triaged forever.
Every round ends with a meta-article example logged via /meta-article-prompt-template and the result recorded in the weekly /maa report.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /seo-tree
- Related: map-content-hierarchically-root-trunk-branches-leaves (run first) · step-3-identify-money-pages-and-orphan-pages (/internal-linking) · remove-duplicate-thin-pages · step-6-measure-and-iterate-with-maa (/maa)
ENDlink-leaves-to-branches-branches-to-trunk.skill.md — Wire the SEO Tree together with upward internal links — every leaf links to its branch, every branch to the trunk and root — so authority flows from examples up to hubs and money pages.
START
---
name: link-leaves-to-branches-branches-to-trunk
description: "Wire the SEO Tree together with upward internal links — every leaf links to its branch, every branch to the trunk and root — so authority flows from examples up to hubs and money pages."
category: SEO & Content Architecture
stage: —
definitive_article: /seo-tree
status: complete
---
# Link leaves to branches, branches to trunk
**Use this when** the tree has been mapped but pages still sit unconnected — or after every new publish, to wire the new piece in.
## Inputs
- The SEO Tree map with every page's role assigned (root / trunk / branch / leaf)
- Edit access to the pages being linked
- Anchor-text rule in hand: 3–6 words, descriptive, never generic
## Steps
1. From the tree map, list every leaf grouped under its parent branch.
2. In each leaf's body copy, add at least one upward link to its parent branch using a 3–6 word descriptive anchor — never 'click here'.
3. In each branch (definitive article), link upward to the trunk/root and **across** to the sibling definitive articles it references.
4. Keep the relationship direction one way up: examples and meta-articles → definitive article → course/service.
5. The hub's examples section links down to its leaves (Requirement 3 — every example, each with a 1–2 sentence note); what never happens is a leaf restating the hub's content.
6. QA every new link against Google guidelines (Step 5 of /internal-linking) and record it in the link inventory.
## Definition of done (QA checklist)
- [ ] Every leaf carries at least one upward in-body link to its parent branch
- [ ] Every branch links up to trunk/root and across to related definitive articles
- [ ] All anchors are 3–6 word descriptive phrases; zero generic anchors
- [ ] Zero orphans remain in the mapped section; links logged in the inventory
- [ ] Linked back to the definitive article (/seo-tree) and relevant siblings
## Example(s)
- The /internal-linking definitive article — which ships with its own skill file for AI agents — demonstrates the link-creation mechanics this skill applies tree-wide.
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the first full wiring pass.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) wires the tree leaf by leaf and loops until the Definition of done fully passes — every leaf linked upward, every branch linked up and across, zero generic anchors — verifying by re-crawling touched pages and re-running the anchor report, not by trusting its own edits.
The link inventory persists in memory between runs, so each pass wires only the new publishes instead of re-auditing the whole tree.
Each wiring pass closes by logging a meta-article example via /meta-article-prompt-template.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /seo-tree
- Related: map-content-hierarchically-root-trunk-branches-leaves (run first) · step-4-create-links-with-proper-anchor-text-and-placement (/internal-linking) · step-5-qa-links-against-google-guidelines · use-proper-anchor-text-3-6-words-descriptive
ENDmap-content-hierarchically-root-trunk-branches-leaves.skill.md — Organize every page on a site into the SEO Tree — root (homepage/entity), trunk (brand), branches (definitive articles), leaves (case studies and meta-articles) — so one coherent hierarchy replaces a pile of disconnected posts.
START
---
name: map-content-hierarchically-root-trunk-branches-leaves
description: "Organize every page on a site into the SEO Tree — root (homepage/entity), trunk (brand), branches (definitive articles), leaves (case studies and meta-articles) — so one coherent hierarchy replaces a pile of disconnected posts."
category: SEO & Content Architecture
stage: —
definitive_article: /seo-tree
status: complete
---
# Map content hierarchically (root → trunk → branches → leaves)
**Use this when** a site has published content but no deliberate hierarchy — nothing tells Google (or an AI agent) which page owns which topic.
## Inputs
- Complete URL inventory: WordPress posts + pages export, sitemap.xml, or a full crawl
- The brand's entity definition: who this person/company is, core concepts, money pages
- The /seo-tree definitive article open as the reference model
## Steps
1. Pull every published URL into a single inventory — posts, pages, landing pages, nothing skipped.
2. Set the **root**: the homepage as the entity hub — who this is, what they do, why trust them.
3. Set the **trunk**: the brand layer — core offer and positioning pages everything else grows from.
4. Assign **branches**: one definitive article per core concept. Each branch is the single hub that owns its topic — never allow two pages to compete for one concept (that is content vandalism).
5. Assign **leaves**: case studies, examples, and meta-articles, each parented to exactly one branch.
6. Flag everything that does not fit — orphans (no parent), duplicates (two pages, one topic), thin pages — and route them to the orphan-elimination and thin-page-removal skills.
7. Draw the tree (root → trunk → branches → leaves) as a clickable diagram and save it as the site's content map; every future publish decision starts from this map.
## Definition of done (QA checklist)
- [ ] Every published URL appears exactly once on the tree map
- [ ] Each core concept has exactly one branch page — zero competing hubs
- [ ] Every leaf has a named parent branch; every misfit flagged with a disposition (connect / consolidate / cut)
- [ ] Tree diagram exists and a stranger can read the site's structure from it in under a minute
- [ ] Linked back to the definitive article (/seo-tree) and relevant siblings
## Example(s)
- The /seo-tree definitive article is the canonical model this skill mirrors — read it before the first run.
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the first real site mapping.
## Run on a persistent agent (Fable 5)
Hand the full URL inventory to a persistent, max-effort agent (Claude Fable 5 or a comparable OpenAI/Google frontier model) and let it loop classify → flag → redraw until every box in the Definition of done passes — every URL on the tree exactly once, zero competing hubs — not 90% mapped.
It self-verifies by diffing the finished map against a fresh sitemap crawl, and persists the tree map in memory so the next run diffs new URLs instead of remapping from scratch.
Each run ends by logging a meta-article example via /meta-article-prompt-template, clearing this file's "Example needed."
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /seo-tree
- Related: fit-every-new-piece-into-the-tree-structure · link-leaves-to-branches-branches-to-trunk · identify-and-eliminate-orphan-standalone-articles · /internal-linking (6-step process) · /website-qa-audit (Layer 2 checks)
ENDremove-duplicate-thin-pages.skill.md — Identify pages that are thin or duplicate another page's topic, then merge them into the owning hub or remove them with proper redirects, so no two pages ever compete for one concept.
START
---
name: remove-duplicate-thin-pages
description: "Identify pages that are thin or duplicate another page's topic, then merge them into the owning hub or remove them with proper redirects, so no two pages ever compete for one concept."
category: SEO & Content Architecture
stage: —
definitive_article: /seo-tree
status: needs-work
---
# Remove duplicate thin pages
**Use this when** the site has accumulated near-identical posts, low-value stubs, or multiple pages chasing the same concept — diluting the hub that should own it.
## Inputs
- Full crawl with word counts, titles, and focus keywords per URL (RankMath data helps)
- The SEO Tree map, to identify which hub owns each contested topic
- Redirect capability (301s) and edit access
## Steps
1. Crawl for thin and duplicate signals: overlapping titles or focus keywords, near-identical content, low-word-count pages with no unique value, multiple pages targeting one concept.
2. Check each suspect against the SEO Tree map and ask the only question that matters: which hub owns this topic?
3. Decide per page: **Merge** (unique value exists — fold it into the owning hub) or **Remove** (nothing worth keeping).
4. Merge: move the unique material and strongest examples into the hub, then 301-redirect the thin URL to the hub.
5. Remove: delete the page and 301-redirect its URL to the closest relevant hub — never leave a 404.
6. Update every internal link that pointed at removed URLs; re-submit the XML sitemap.
7. Log the consolidation in the MAA loop (/maa) and update the tree map and content inventory.
## Definition of done (QA checklist)
- [ ] No two pages competing for one concept anywhere on the site
- [ ] Every removed URL 301-redirected; zero new 404s or broken internal links
- [ ] Unique value from merged pages preserved inside the owning hub
- [ ] Sitemap re-submitted; tree map and inventory updated
- [ ] Linked back to the definitive article (/seo-tree) and relevant siblings
## Example(s)
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the first consolidation round.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) loops crawl → merge/remove → redirect → re-crawl until no two pages compete for one concept and the scan shows zero new 404s — and it follows every redirect it creates to confirm the landing page, never assuming.
The consolidation log persists in memory, so the agent learns which content types keep spawning duplicates and flags the source upstream.
Each round closes with a meta-article example via /meta-article-prompt-template and an /maa log entry.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /seo-tree
- Related: identify-and-eliminate-orphan-standalone-articles (often the same round) · enhance-existing-articles-before-creating-new-ones · step-5-qa-links-against-google-guidelines (/internal-linking) · /website-qa-audit
ENDreplace-ai-looking-content-with-real-eeat.skill.md — Rewrite generic AI-generated pages with real experience, named examples, and third-party proof so every page demonstrates E-E-A-T instead of merely claiming expertise.
START
---
name: replace-ai-looking-content-with-real-eeat
description: "Rewrite generic AI-generated pages with real experience, named examples, and third-party proof so every page demonstrates E-E-A-T instead of merely claiming expertise."
category: SEO & Content Architecture
stage: —
definitive_article: /seo-tree
status: needs-work
---
# Replace AI-looking content with real EEAT
**Use this when** pages read like they could be about anyone — generic claims, no named people or results, stock imagery, no first-person experience.
## Inputs
- List of suspect pages (from a content audit or the /website-qa-audit Layer 2–3 checks)
- The proof file: real client results, screenshots of actual work, named testimonials with headshots, podcast/conference/media appearances
- Edit access and /blog-posting-guidelines open
## Steps
1. Audit page by page for AI tells: generic claims with no named people or numbers, AI-fluff phrases, stock images, third-person corporate voice on a personal brand site, full-viewport walls of text.
2. Build the proof file for each flagged page: actual results with numbers, real screenshots, testimonials with full attribution, talks, podcasts, and press.
3. Rewrite in first person with specific experience — what you did, for whom, what happened — in plain language and active voice.
4. Replace every stock image with a real photo or real screenshot, each with descriptive alt text.
5. Add third-party endorsements, highest authority first — this is Requirement 9, the E-E-A-T layer of a definitive article.
6. Re-run the page against /blog-posting-guidelines (no AI-fluff phrases, no stock images) and the /website-qa-audit Layer 2–3 checks (first-person voice, evidenced achievements, attributed testimonials).
7. Log before/after in the MAA loop (/maa) so the rewrite's ranking and traffic impact is measurable.
## Definition of done (QA checklist)
- [ ] Zero stock images and zero AI-fluff phrasing on the rewritten pages
- [ ] Every claim of expertise or results is evidenced, not just asserted
- [ ] First-person voice throughout (personal brand sites)
- [ ] Endorsements present, ordered highest-authority first
- [ ] Complies with Blog Posting Guidelines; linked back to /seo-tree and relevant siblings
## Example(s)
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the first before/after rewrite.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) works the flagged list page by page, looping audit → proof file → rewrite → re-check against /blog-posting-guidelines and the /website-qa-audit Layer 2–3 checks until zero stock images, zero AI-fluff, and zero unevidenced claims remain on every page — not most pages.
The proof file lives in memory and compounds: every testimonial, screenshot, and result gathered for one page is already on hand for the next run.
Each rewrite logs its before/after as a meta-article example (/meta-article-prompt-template) and feeds the /maa loop.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /seo-tree
- Related: enhance-existing-articles-before-creating-new-ones (run first) · /website-qa-audit (Layers 2–3 are the test) · /blog-posting-guidelines · /personal-brand
ENDThe structural half of this framework now has its own instrument: the money tree draws any site’s SEO Tree from its real internal links, marks which branches are money pages, and names the six defects a sitemap hides — with a downloadable skill file so you can run it on your own site.



