--- 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 (