SEO Optimizer (2026-06-14)
tl;dr: *Sentence 1: Auto-fixed actions & revers
fixed automatically this run
- /blog/3-real-ai-agent-examples-to-protect-agency-revenue-per-employee: linked → /blog/ai-sdr-vs-human-sdr (reversible)
- /blog/ai-workflows-vs-autonomous-agents-for-agencies: linked → /blog/the-autonomous-business-trap, /blog/future-b2b-agency-structure (reversible)
- /blog/multi-agent-orchestration-how-agencies-ship-client-work-without-the-coordination: linked → /blog/future-b2b-agency-structure (reversible)
- /blog/future-b2b-agency-structure: linked → /blog/ai-coordination-tax (reversible)
- /blog/ai-coordination-tax: linked → /blog/multi-agent-orchestration-how-agencies-ship-client-work-without-the-coordination (reversible)
flagged for your approval
These rewrite prose, so I left them for you. One click applies all of them (reversible, I snapshot every post first):
- cannibalization — /blog/workflows-vs-roles, /blog/ai-workflows-vs-autonomous-agents-for-agencies compete for "ai workflows vs agents for agencies". Keep /blog/workflows-vs-roles canonical; re-angle /blog/ai-workflows-vs-autonomous-agents-for-agencies to a distinct sub-intent and link them to the canonical. Keep workflows-vs-roles as the canonical decision piece. Re-angle ai-workflows-vs-autonomous-agents-for-agencies toward the client-trust risk specifically, or consolidate it as a section into the hub.
- cannibalization — /blog/3-real-ai-agent-examples-to-protect-agency-revenue-per-employee, /blog/the-autonomous-business-trap compete for "how agencies use ai to increase revenue per employee". Keep /blog/3-real-ai-agent-examples-to-protect-agency-revenue-per-employee canonical; re-angle /blog/the-autonomous-business-trap to a distinct sub-intent and link them to the canonical. Let the examples post own the revenue-per-employee query. Refocus the-autonomous-business-trap on the co-pilot vs autonomy argument and drop the revenue-per-employee framing from its title and intro.
- cannibalization — /blog/measure-ai-roi-for-your-agency-ignore-the-dashboard-theater, /blog/3-real-ai-agent-examples-to-protect-agency-revenue-per-employee compete for "measure ai roi for agencies". Keep /blog/measure-ai-roi-for-your-agency-ignore-the-dashboard-theater canonical; re-angle /blog/3-real-ai-agent-examples-to-protect-agency-revenue-per-employee to a distinct sub-intent and link them to the canonical. Keep the ROI post canonical for measurement queries. Have the examples post link to it rather than restate the ROI math, so they target distinct intents (proof vs measurement).
or tap the approve link in the Telegram message. Applies 3 item(s).
needs a repo change (I can't touch these from the worker)
- site page / (fix in site/index.html): meta description 227 chars (want 110-165)
- site page /tos (fix in site/tos/index.html): meta description 109 chars (want 110-165)
- site page /privacy (fix in site/privacy/index.html): meta description 109 chars (want 110-165)
- slug: /blog/3-real-ai-agent-examples-to-protect-agency-revenue-per-employee is long (63 chars). Needs a shorter slug + a 301 redirect (site/_redirects).
- slug: /blog/multi-agent-orchestration-how-agencies-ship-client-work-without-the-coordination is long (80 chars). Needs a shorter slug + a 301 redirect (site/_redirects).
- slug: /blog/how-agency-founders-build-a-pre-call-prep-workflow-to-reclaim-discovery-prep-tim is long (80 chars, looks truncated). Needs a shorter slug + a 301 redirect (site/_redirects).
- static post: /blog/60-ways-ai-chief-of-staff/ is a repo file (site/blog/), not D1, so the optimizer cannot edit it. Add internal links to newer posts in its pillar + confirm canonical/schema by hand.
- static post: /blog/ai-use-cases/ is a repo file (site/blog/), not D1, so the optimizer cannot edit it. Add internal links to newer posts in its pillar + confirm canonical/schema by hand.
- static post: /blog/ai-sdr-vs-human-sdr/ is a repo file (site/blog/), not D1, so the optimizer cannot edit it. Add internal links to newer posts in its pillar + confirm canonical/schema by hand.
- static post: /blog/claude-code-vs-claude-desktop/ is a repo file (site/blog/), not D1, so the optimizer cannot edit it. Add internal links to newer posts in its pillar + confirm canonical/schema by hand.
- static post: /blog/solo-operator-two-terminals/ is a repo file (site/blog/), not D1, so the optimizer cannot edit it. Add internal links to newer posts in its pillar + confirm canonical/schema by hand.
hub-and-spoke map
AI workflows vs agents/roles: the operating model for agencies
hub: Stop automating roles. Install AI workflows instead
spokes: ai-workflows-vs-autonomous-agents-for-agencies, the-autonomous-business-trap, multi-agent-orchestration-how-agencies-ship-client-work-without-the-coordination, future-b2b-agency-structure, ai-coordination-tax, 60-ways-ai-chief-of-staff
AI ROI and revenue per employee for agencies
hub: 3 real ai agent examples to protect agency revenue per employee
spokes: measure-ai-roi-for-your-agency-ignore-the-dashboard-theater, ai-sdr-vs-human-sdr, ai-use-cases
Reclaiming billable hours in client-facing workflows (proposals, discovery, pitches)
hub: Reclaim 4 unbillable hours per pitch with AI
spokes: how-agency-founders-build-a-pre-call-prep-workflow-to-reclaim-discovery-prep-tim
Tooling and setup for the solo operator
hub: Claude Code vs. Claude Desktop: which one does your business actually need?
spokes: solo-operator-two-terminals
site SEO audit (whole site)
- ℹ️ sitemap: sitemap.xml lists 21 URLs (5 site pages + 16 posts).
- ℹ️ canonical: D1 posts use slashless /blog/<slug>; static posts use /blog/<slug>/. Confirm each canonical matches its own URL form.
- ℹ️ images: 12 blog image(s) checked, all loading.
- ℹ️ core-web-vitals: Core Web Vitals (LCP/CLS/INP) not measured in v1 — wire the PageSpeed Insights API to capture them.
- 🟡 page: /: 1 issue(s).
- ℹ️ page: /roadmap: clean.
- ℹ️ page: /install: clean.
- 🟡 page: /tos: 1 issue(s).
- 🟡 page: /privacy: 1 issue(s).