BlackOps Kept Giving Me the Same SEO Advice Every Week. So I Gave It a Memory.
Per-site snapshots and a recommendation ledger turned stateless analytics into advice that builds on itself.

Every time I asked BlackOps about my site traffic, I got the same speech.
Improve your top pages. Post more consistently. Target these queries. Build internal links. Solid advice, technically. Also completely useless, because I had heard it the week before, and the week before that. BlackOps was handing me a fortune cookie and calling it analysis.
It took me a while to see why. The analytics tools I was reaching for are BlackOps's own GA4 and Search Console MCP tools. BlackOps is the content operating system I build, and it exposes GA4 and Google Search Console as MCP tools that call Google's APIs server-side and hand the data back to whatever AI assistant I am working in. Handy, but they answered every question cold. BlackOps saw a wall of raw numbers and nothing else. No memory of what it recommended last time. No sense of what had moved since the last look. So of course it regenerated the same evergreen platitudes on every run. There was nothing to anchor a better answer to.
The root cause was two missing things. There was no record of what had already been recommended. And there was no "what changed since last time." Fix those two gaps and the whole texture of the conversation changes. So I built it into BlackOps.
What "memory" actually means here
I did not want a dashboard. I wanted the BlackOps tools themselves to accumulate context every time I used them. Four pieces, all quiet, all per-site.
Automatic capture. Every BlackOps GA4 and Search Console read tool now records a normalized snapshot of its metrics on the way out. No extra step, no separate "save" call. I use the tool to answer a question like I always did, and a time series builds itself in the background.
Delta injection. Every BlackOps GA4 and Search Console response now carries a small memory block describing what moved since the last look. Not just "120 impressions" but "impressions up 7.5% since your last check." Absolute numbers are forgettable. Deltas are the whole point of looking twice. The one trap here is comparing across different lookback windows, so a 28-day pull next to a 7-day pull gets flagged rather than silently subtracted. Reading a delta out of context is worse than no delta at all.
A recommendation ledger. This is the part that actually kills the fortune-cookie problem. Recommendations get fingerprinted. When the same idea comes back around, it bumps a counter instead of writing itself out again as if it were fresh. BlackOps is told, plainly, to report progress on open items rather than re-pitch them. "You flagged this query three sessions ago and it has not moved" is a sentence a stateless tool can never say.
A per-site note log. When I wrap up an analysis, one BlackOps tool call writes a dated, tagged note into BlackOps. BlackOps already syncs notes to a connected vault, so if I have an Obsidian vault wired to the site, that same note lands there too, in its own analytics-logs folder. Either way I get a human-readable history per site that I can scroll back through later, wherever I actually read my notes, without re-running anything.
How you use it
The honest answer is that you mostly do not do anything.
Reading memory is automatic. It is injected into every BlackOps GA4 and Search Console response, so BlackOps is always looking at the deltas and the open ledger without being asked. That was deliberate. A memory you have to remember to consult is not memory, it is a filing cabinet.
There are two BlackOps MCP tools you call by hand, both optional:
log_analytics_findingrecords the summary, findings, and recommendations at the end of an analysis. This is also what drops the dated note into BlackOps.get_analytics_memoryreturns the full per-site history whenever you want the long view.
Everything is strictly scoped per site and per surface. GA4 and Search Console are tracked separately, so a Search Console finding never bleeds into a GA4 conversation, and one site's history never contaminates another's.
Here is what that looks like in practice:
The first real run
I pointed it at this site, blackopscenter.com, on the Search Console surface. Twenty-eight days. The picture was bracing.
Three clicks. One hundred and twenty impressions.
The only query producing any clicks at all was my own brand term, "blackops ai," sitting at position 7. Fine, people who already know the name can find me. The real tell was further down the list. The queries that describe exactly what the product is, "content ops," "ai content ops platform," and "content platform," were all pulling impressions and all sitting at positions 40 to 70. That is real demand for the thing I actually built, deep enough that nobody will ever scroll to it. People are searching for the category. I am nowhere in the results.
None of that is a happy result. But here is the difference. The memory logged those as findings and open recommendations. So the next time I run an analysis, BlackOps does not rediscover them from scratch and re-deliver the same three suggestions in a slightly different order. It surfaces them as open items and asks whether the category queries climbed off page four. The work compounds instead of resetting.
One thing I deliberately did not build
No charts. No trends view.
It is tempting, and people will ask for it. I left it out on purpose, for two reasons.
The snapshots only get captured when I happen to use the tools. The cadence is uneven by nature, clusters of pulls when I am digging, then nothing for a week. Drawing a line chart through points spaced like that would imply a continuity that is not real. It would look authoritative and be quietly wrong.
And Google already holds the continuous metric history. If I want a real time series with every day filled in, that is one click away in the source. I am not in the business of redrawing charts that already exist somewhere better.
The memory is not trying to be an analytics product. It exists to cover the gap between my sessions, and to pin every recommendation to a date so progress is checkable. That is a smaller job, and the right one.
The docs for the full setup live at blackopscenter.com/docs/features/analytics-memory.
The thing that actually got better
The point is not the ledger or the delta block. The point is the shape of a tool that remembers.
A stateless tool gives you the same answer forever. It cannot help it. It meets every question as the first question. A tool that accumulates context per use gets sharper the more you lean on it, because each run starts from everything the last run learned. The advice stops being evergreen and starts being about my site, this week, against what I was told last time.
That is the whole upgrade. The numbers did not change. BlackOps just stopped forgetting them.
I wrote this post inside BlackOps, my content operating system for thinking, drafting, and refining ideas — with AI assistance.
If you want the behind-the-scenes updates and weekly insights, subscribe to the newsletter.


