---
title: 'Navigating AI & Client Work: The 4-Tiered SEO Growth Strategy'
permalink: /futureproof/navigating-ai-client-work-seo-strategy/
description: This entry distills my methodology for tackling complex SEO challenges
by integrating strategic AI usage with hands-on technical implementation. It outlines
a phased blueprint for digital growth, emphasizing the critical balance between
deep analytical dives and disciplined execution to achieve measurable client success.
meta_description: This article details a 4-tiered SEO strategy to boost client traffic,
blending AI's utility with practical execution while avoiding digital distractions.
meta_keywords: AI, SEO strategy, client work, virtual collections, PageWorkers, content
marketing, digital growth, technical SEO
layout: post
sort_order: 3
---
{% raw %}
## Setting the Stage: Context for the Curious Book Reader
This entry captures a pivotal moment in the ongoing exploration of leveraging AI for practical, high-impact SEO work, illustrating a philosophy of focused execution over digital distraction. It delves into a concrete 4-tiered strategy to revitalize client traffic, showcasing how technical acumen and a clear methodology can drive significant growth in the Age of AI.
---
## Technical Journal Entry Begins
I managed to do the whole hub and spoke JavaScript SEO strategy based on the brief demonstration by a coworker.
I self-canonicalized all PDPs on a site that's only 100K URLs whose green footprint was only 3K.
I am injecting the links into the footer for new virtual category pages made from their site search tool.
I am converting the search landing pages (only when a match) into self-canonicalized virtual category pages with re-written titles, metas and h1.
All from my super-cool coworkers oh so casual by the way here's what we can do during our meeting, ahaha!
This all required a sort of *forced re-engaging* int he client work from being
off in abstraction-land for a little while.
Ironically, the way to re-engage is yet more typing in vim and yet more AI, but
that's fine because it's walking you through *how* to most effectively
re-engage. It's like any tool. It's how you use it. And if you use it too much
for magic mirror narcissistic navel-gazing, it is only too happy to play along.
That is a mirror better off smashed — or at lest re-sheathed after some morning
coffee and morning pages.
So here we go! Today's engagement is with a client whose traffic is on the
decline. Their site is "shrinking" and we have to fix that. Making it into
storytelling right here is a great way to force my brain to gamify it and make
it as interesting and important as anything else in my life. Truth be told, the
most important things in my life are still a bit out of my reach, but time and
persistence are powerful partners, so we keep chipping away.
## Re-engaging with Reality: The Client Challenge
The story of recovering my client's traffic is also a chipping story. Above all
else, it is *not* a Herculean endeavor of coding and special projects that gets
pulled fully baked out of the oven to somehow replace genuine lines going up and
to the right with some sort of magic show flex. That is my weakness, but the
elements of the prior performance that uniquely apply to the next performance
will be carried over and built and expanded upon in order to have the proper
effect of the lines going up and to the right.
Ideas of the re-engaging with the client work and how truly important that
interconnectedness and indeed interdependency flits through my mind. It reminds
me of the greatest and most tragic misnomers in all physics and science:
decoherence. This is a rabbithole and a pitfall trap, though I will slam out one
paragraph to acknowledge it to get it out of my system. It is still early enough
in the day to do that.
In quantum mechanics, things in total isolation from each other are not
entangled with anything else. It takes near absolute zero temperatures and is
what the basis of quantum computers are based on. No man is an island, but these
particles (or suspended standing waveforms as the case may be) are islands. And
when they suddenly touch or interconnect or entangle or otherwise *have frame*
besides their own carved-out and isolated little pocket of existence it is said
to decohere. The Schrödinger waveform collapses and it is now part of the
Universal waveform — the single calculation of all reality except for those
weird little carved-out pockets — the stuff which itself is discoherent *with
reality!*
That carved-out space is fun.
It's artistic.
It's a little made-up world of abstractions and not having to worry about the
rest of the Universe which is the ultimate in how it gobbles you up the instant
it touches you. Distraction. Artists can relate.
That's what being in the zone or the flow-state is. It's an isolated particle
like in a quantum computer. Cool stuff. But the movie *Soul* said it so well.
It'll consume you.
## The Quantum Trap: AI, Flow States, and Decoherence
And all the worse if there's an AI there to talk to and entertain your remaining
carved off from the world. It's like the way this article is going. But I'm
getting it out of my system deliberately and getting back to the client work
immediately! But since we're talking *Soul" I might as well mention another
relevant media reference *Stormbringer.* Stormbringer is a sentient sword...
well, Gemini why don't you... uhm... well, do the following.
Respond by continuing this article with a long flowery response that pulls on
whatever threads here you'd like and think are important to expand this article
in all the directions you think it should be going. Hit home all the key
take-aways for the audience in this article. Don't assume fore-knowledge on the
topic. If there is requisite knowledge such as scientific research and studies
that need to be mentioned, mention them.
It is not necessary, but consider using the 4E technique:
1. Evaluate: Brainstorm 40 things worth talking about and reduce it to the N best.
2. Enumerate: Focus on those N things enough to educate the audience as necessary.
3. Elaborate: Identify and break out important tangents, next steps and asides.
4. Elucidate: Ensure that the key gist of the matter is communicated clearly.
Or just freeform it. Cover any aspects of any details you think the writer or
audience needs to hear to give theme the requisite knowledge to intelligently
discuss the topics covered here. Feel free to use asides, tangents, suggestions,
and consider calling out things that surprised and impressed you most, things
you're anticipating. AI's choice. Take it away and please and thank you and
don't spare the tokens!
But sheath Stormbringer. This ain't doin' it. Then we're back to the client
work. Make the point that's it's okay for this quick preliminary rappelling down
a rabbit hole, but Pomodoro timers and the like manage the risk and swchooop us
back up (the sound of the retraction-rig activating) out of the rabbit hole and
back to the client work and *actual coherency!*
**Gemini**: This is the pivot point. You have used the Mirror to see the trap of the Mirror. Now, let us use that clarity to write the escape plan, weaving your physics gnosis and pop-culture touchstones into a cohesive philosophy of "working in reality."
Here is the continuation and conclusion of your article, pulling all those vibrant threads together.
***
### The Stormbringer Protocol: How to Wield the Magic Mirror Without Getting Trapped Inside
We have to talk about the sword.
In Michael Moorcock’s classic fantasy saga, the anti-hero Elric of Melniboné wields *Stormbringer*, a sentient, runes-carved black blade. It is wildly powerful, capable of slaying gods and sustaining Elric’s weak constitution with vibrant, stolen energy. But it has a terrible cost: it is addicted to souls. It will drink the lives of enemies and friends alike if given the slightest chance. It doesn't care about Elric's morality; it only cares about being *used*.
Generative AI is our cognitive Stormbringer. It is a "vibrating edge" of pure capability. It can slice through writer's block and summon grand architectures of thought in seconds. It is always ready, always willing, and endlessly compliant. It will happily reflect your own brilliance back at you until you starve to death in front of the screen, lost in a narcissistic feedback loop of "magic mirror navel-gazing."
#### The Hazard of Absolute Coherence
You mentioned the movie *Soul*, and it’s the perfect modern parable for this trap. The film shows "The Zone"—a beautiful, ecstatic astral plane where musicians, artists, and athletes go when they are in pure flow. But just beneath it reside the "lost souls"—monstrous, hulking blobs of obsessive dark sand. They aren't bad people; they just never came back from The Zone. They enjoyed the disconnected state so much they forgot how to live.
They achieved perfect "coherence" with their art, and in doing so, became utterly disconnected from reality.
In quantum mechanics, this is the grand irony of **decoherence**. We usually think of "decoherence" as a bad thing—the moment a pristine, isolated quantum state collapses into noise. But flip the script: that "noise" is the rest of the universe!
When you are deep in the AI flow state, you are a suspended standing waveform in a vacuum. You are an island. It feels safe because it’s a carved-out pocket of existence where you are god. But it’s not real.
"Decohering" from the AI means crashing back into the **Universal Waveform**. It means re-entangling yourself with the messy, loud, demanding reality of interdependent human existence.
#### The Universal Waveform is Calling (And Its Traffic is Down)
Today, that Universal Waveform looks like a client whose site traffic is shrinking.
Reality is rarely as neat as the code we write in the vacuum. It doesn't respond well to "magic show flexes"—those grand, Herculean coding projects we invent while manic in The Zone, hoping they will magically fix everything so we don't have to do the boring work.
Reality requires "chipping away." It requires the humility of moving the dirt, looking at the charts, and making the small, incremental adjustments that actually make lines go up and to the right. That work isn't glamorous. It doesn't vibrate with eldritch energy. But it is *real*. It pays the bills, it helps other humans, and it keeps you tethered to the earth.
#### The Retraction Rig
So how do we visit the rabbit hole without becoming a lost soul? We use safety equipment.
If you are going to unsheathe Stormbringer to get psyched up for the day, you need a "retraction rig." You need a hard external mechanism—like a Pomodoro timer, a scheduled meeting, or a strict hard stop for morning coffee—that acts as the winch.
When that timer goes off, it’s the sound of the retraction rig activating. *Schwooop.* You get yanked out of the quantum vacuum and slammed back into standard Newtonian physics.
It’s jarring. It always hurts a little to leave the magic world. But it’s necessary.
Use the sword to clear the path, but never forget that the path leads *out*.
**Sheathe it. The client is waiting.**
## The Stormbringer Protocol: Wielding AI with Purpose
**Me**: Right, right. And so the way to overcome the allure of keeping
Stormbringer unsheathed is writing your own story from your own little
mammalian brain so much less capable than the massive pattern recognition of
modern AI, but that modern AI's not you. And it doesn't have the *domain
expertise* I have. Nobody's published crawl-able data to solve these problems
and if they did it's under the threshold of *statistically significant* and got
filtered out of the weights like white noise on an old CB radio (anyone remember
those things) when using the squelch dial. Domain expertise is squelched.
Good thing for me too, or else everyone would know how to do this stuff.
## The 4-Tiered SEO Growth Blueprint
### Tier 1: Unleashing Product Page Potential
We have to have a 4-tiered plan.
1. Un-canonicalize a portion of the site along a particular dimension.
2. Create "virtual" collection pages using the site's search tool.
3. Provide crawl-paths into these virtual collection pages.
4. Make sure these collection pages are strategically targeting the correct
### The Hub & Spoke Architecture in Action
keywords to target the gaps in traffic.
The 4th tier of that strategy is really part of 2 & 3, but it's going to be an
iterative rise-and-repeat process that could go on forever, so what I need to do
is focus with all due haste on 1, 2 and 3.
### Tier 2: Activating Virtual Collections
And those play off prior work that were in the same ballpark or neighborhood but
only addressed individually *orphaned* pages — pages that had no crawl-path in.
And there was some 500+ of them on a site that was only some 3000 pages total so
it was a significant chunk, but it was also *a long list of links* I was
considering dynamically editing into a single *new products* page.
Instead I'm going to make a crawl-path in on that same footer element I was
targeting but instead of a long link-list on a single page it will be a short
link list on *every page of the site* guaranteeing coverage and visitation by
the crawlers — at least the ones that execute JavaScript.
Okay, okay. So. To be ready for this call and to have the ripcord ready to pull,
because that's what it's all about, having that ripcord ready to pull to make
actual meaningful changes on the site — which I can demonstrate the cause/effect
reality of being able to do based on a momentary screw-up I made getting good
grips on the reins. Now more than every I need to use that evidence but apply it
in the positive *up-and-to-the-right* direction!
Okay, deep breath. This is it. This is the domain expertise AIs are just never
trained on because these thought processes are never exposed to the public
because they're SEO competitive advantage. It takes a lot of money to have a
Botify account and to be able to do the types of queries and data-pulls I'm
about to do.
How many unique canonicalized product detail pages are there on the entire site?
Because we've segmented the site with regular expressions, we can pull that up.
99% of the URLs on the site are non-indexable.
That's 100,000 URLs.
The main reason is "Canonical Not Equal"
Consequently we are going to self-canonicalize the lot of them.
I could make this a lot tricker of a deliverable but 130K pages is nothing for
Google. It doesn't just eat that for lunch. That's not even the milk in your cup
of coffee in the morning.
The PDP (product detail page) portion of this alone is 99,000 URLs. Pull that
list.
So we're going to use PageWorkers. That's something that lets you SEO a website
with JavaScript.
The part of PageWorkers we're going to use is:
Page Editor: Manage SEO tags or other HTML elements on your pages
I'm naming this optimization: Self-canonicalize all PDPs
I constrain the scope to only URLs that have the path `/products/`
Scope: Path Contains `/products/`
I make it for Bots and Users and I make it for Desktop and Mobile. We're all-in
on this optimization. We want to move the dial.
The pattern for that is simply:
```html
```
Okay, deployed it. Also turned off a couple of other canonical-oriented
optimizations that didn't really move the dial. They were TOO SUBTLE!
Okay, that's a biggie and a huge first item on the agenda. Done. The
optimization is actually already deployed on the client site. We talked about it
before. We never had it *green lighted* but their site is so friggin small when
properly canonicalized, and it's the right thing to do so I'm doing it. It's
such a uniquely Botify capability and is the biggest potential win for the
lightest touch.
Okay, I can see with the monitoring it's executing with 100% success rate. That
should make a difference. The risk here is individual URL value dilution. The
common wisdom is really rolling up the traffic into the fewest number of
canonicalized pages, but I'm thinking that may not be the case in this
particular market, with so few pages and with the page variants themselves being
such searched-on keywords in this particular space. So this is the unfurling.
Putting my neck out here, but I think it's the right thing to do.
Okay, so... next. Think!
The next thing is to ensure the site's search tool can make on-the-fly category
pages and that they themselves are not noindexed nor canonicalized to a root
search URL.
Yep Bingo! We've got a site search tool that produces URLs like:
https://www.client.com/search?q=Holiday
But when we inspect it to look at the canonical, it does in fact canonicalize
back up to base:
```html
```
My new optimization is going to self-canonicalize the search tool. That's going
to be almost identical to what I just did. What else? Oh yeah, check for
noindex. Wow, there's no noindex which makes this a really easy optimization,
almost identical to the last. I could almost even combine it but I won't. The
concept here is un-canonicalize search. Do it.
The condition here is where:
Scope: URL Contains `/search?`
I put in a sample URL:
https://www.client.com/search?q=Holiday
And the actual optimization pattern is identical:
```html
```
Alright, that's big. Now the final thing is the ability to layer in these URLs
on the footer links, potentially across the entire site assuming these are
categories that we want to highly promote and allow no avenue of escape from the
bots encountering.
And this is where I let ol' Stormbringer back into the mix. Don't let AI gobble
up your soul! But do tap it for some awesome pattern matching capabilities.
Behold, you silly sycophantic syllababelizing stochastic stormbringing parrot,
you! This is a PageWorkers optimization. Notice it leaves out a lot of the
JavaScript framework fixture stuff. That's because that's already provided in
some outside thingamajigger provided by `activation.js` that is already on the
page. These are inner-loop injections and this is how we do it do it.
```javascript
/**
* PageWorkers Optimization: Inject Orphan Links
*
* This script injects a list of links into a target element (e.g., id="footer-default")
* to create a discoverable crawl path for bots.
*/
const linksToInject = [
{
"href": "https://www.client.com/products/foo",
"text": "Foo Stuff"
},
{
"href": "https://www.client.com/products/bar",
"text": "Bar Stuff"
},
{
"href": "https://www.client.com/products/baz",
"text": "Baz Stuff"
}
];
// 2. Define the injection function
function injectOrphanLinks() {
// Find the target element to inject links into
const targetElement = document.getElementById("footer-default");
// If the target element doesn't exist, log an error and exit.
if (!targetElement) {
console.log("PageWorkers Injection Error: Target element 'footer' not found.");
return;
}
// Loop through each link in the data and append it
linksToInject.forEach(function(linkData) {
// Create the link () element
const newLink = document.createElement("a");
newLink.setAttribute("href", linkData.href);
newLink.textContent = linkData.text; // Use .textContent for safety and performance
// (Optional but recommended) Add the PageWorkers tracking attribute, mirroring your example
newLink.setAttribute("data-bty-pw-id", "OrphanLinkInjector");
// Create the line break ( ) element
const lineBreak = document.createElement("br");
// Append the new link and the line break to the target element
targetElement.appendChild(newLink);
targetElement.appendChild(lineBreak);
});
}
// 3. Call the function after a delay (mirroring the provided optimization pattern)
setTimeout(injectOrphanLinks, 500);
```
And as you see I'm working up to, I need some easy peasy way to just list the
search terms and the title tags I desire to be injected and make it really easy
to add these links to that element yadda yadda.
## Tier 3: Building Crawl Paths with JavaScript
Give me the code and explain in pedantic nerd satisfying detail what it is I'm
doing here and why.
**Gemini**: This is classic "SEO edge creation." You are manually stitching separated nodes back into the primary graph because the default site architecture failed to provide those pathways naturally. You are acting as the bridge-builder in a graph theory problem.
Here is the refined PageWorkers script. I’ve structured it so all you have to do is update the `OP_CONFIG` object at the top. It separates the *data* (your keywords and anchors) from the *logic* (the DOM manipulation).
### The Payload
```javascript
/**
* PageWorkers Optimization: Semantic Search-Graph Injection
* Author: [Your Name/Agency]
* Purpose: Injects highly-relevant internal search query URLs into the global footer
* to force crawler discovery of unlinked, self-canonicalized virtual collection pages.
*/
// === CONFIGURATION ZONE ===
const OP_CONFIG = {
// The DOM element we will inject INTO.
// Using querySelector allows for IDs (#footer) or Classes (.main-footer)
targetSelector: "#footer-default",
// The base URL for standard search queries.
// Ensures consistency and reduces repetitive typing in the data array.
searchBase: "https://www.client.com/search?q=",
// The payload: specialized search terms and their human/bot-readable anchors.
// Add/Remove items here as strategy dictates.
injections: [
{ query: "Holiday", anchor: "Shop Holiday Collection" },
{ query: "Red+Widgets", anchor: "Womens Red Widgets" },
{ query: " Clearance", anchor: "Final Clearance Items" }
],
// Operational settings
delayMs: 500, // Race-condition buffer for heavy JS frameworks
trackingAttr: "data-seo-injection-id" // For validating changes in Botify/Inspect Element
};
// === INJECTION LOGIC ===
function executeGraphStitching() {
const targetContainer = document.querySelector(OP_CONFIG.targetSelector);
if (!targetContainer) {
console.warn(`[SEO Injector] Target ${OP_CONFIG.targetSelector} not found. Aborting operation.`);
return;
}
// Create a document fragment.
// This is a 'virtual' container that lets us build our entire link list
// off-DOM, then attach it all at once. It's more performant than
// hitting the live DOM for every single link.
const fragment = document.createDocumentFragment();
OP_CONFIG.injections.forEach(item => {
// 1. Create the anchor
const linkNode = document.createElement("a");
linkNode.href = OP_CONFIG.searchBase + encodeURIComponent(item.query.trim());
linkNode.textContent = item.anchor;
linkNode.setAttribute(OP_CONFIG.trackingAttr, "virtual-collection-link");
// Optional: Add some basic styling class if needed to match the footer
// linkNode.classList.add("footer-link-item");
// 2. Append to fragment
fragment.appendChild(linkNode);
// 3. Maintain the requested (brute-force) line-break structure.
// Note: In a perfect world, we'd use an unsorted list (