SEO Optimizer (2026-06-29)
tl;dr: We completed this week's blog archive
fixed automatically this run
- /blog/ai-workflows-vs-autonomous-agents-for-agencies: linked → /blog/claude-code-vs-claude-desktop (reversible)
- /blog/the-autonomous-business-trap: linked → /blog/ai-workflows-vs-autonomous-agents-for-agencies (reversible)
- /blog/how-agency-founders-build-a-pre-call-prep-workflow-to-reclaim-discovery-prep-tim: linked → /blog/multi-agent-orchestration-how-agencies-ship-client-work-without-the-coordination (reversible)
- /blog/ai-proposal-workflow: linked → /blog/multi-agent-orchestration-how-agencies-ship-client-work-without-the-coordination (reversible)
- /blog/agentic-ai-trends: linked → /blog/ai-workflows-vs-autonomous-agents-for-agencies (reversible)
- /blog/multi-agent-workflows: updated model names (Claude 3.5 Sonnet) (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/measure-ai-roi-for-your-agency-ignore-the-dashboard-theater, /blog/measure-ai-roi-agencies compete for "measure AI ROI for agencies". Keep /blog/measure-ai-roi-for-your-agency-ignore-the-dashboard-theater canonical; re-angle /blog/measure-ai-roi-agencies to a distinct sub-intent and link them to the canonical. Keep the older dashboard-theater post as the ROI hub. Narrow the 1d-old post to the specific failure mode (why 30% never hit the P&L) and link up to the hub rather than re-ranking the same query.
- cannibalization — /blog/ai-workflows-vs-autonomous-agents-for-agencies, /blog/workflows-vs-roles compete for "AI workflows vs agents for agencies". Keep /blog/ai-workflows-vs-autonomous-agents-for-agencies canonical; re-angle /blog/workflows-vs-roles to a distinct sub-intent and link them to the canonical. Make the vs-agents post the canonical comparison. Refocus workflows-vs-roles on the narrower 'automate roles vs install workflows' angle and point it at the hub.
- cannibalization — /blog/multi-agent-orchestration-how-agencies-ship-client-work-without-the-coordination, /blog/multi-agent-workflows compete for "multi-agent workflows for proposals". Keep /blog/multi-agent-orchestration-how-agencies-ship-client-work-without-the-coordination canonical; re-angle /blog/multi-agent-workflows to a distinct sub-intent and link them to the canonical. Keep orchestration as the primary multi-agent post. Differentiate multi-agent-workflows to own the specific proposal-writing use case ('one prompt can't write proposals') and link to the orchestration hub.
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 autonomous agents (how agencies should actually install AI)
hub: AI workflows vs autonomous agents: how agencies scale revenue without losing client trust
spokes: workflows-vs-roles, the-autonomous-business-trap, multi-agent-workflows, agentic-ai-trends, 60-ways-ai-chief-of-staff, ai-use-cases, claude-code-vs-claude-desktop, solo-operator-two-terminals
Multi-agent orchestration and the coordination tax in agency delivery
hub: Multi-Agent Orchestration: How Agencies Ship Client Work Without the Coordination Tax
spokes: ai-coordination-tax, future-b2b-agency-structure, ai-proposal-workflow, how-agency-founders-build-a-pre-call-prep-workflow-to-reclaim-discovery-prep-tim
Measuring AI ROI on the agency P&L and revenue per employee
hub: Measure AI ROI for Your Agency (Ignore the Dashboard Theater)
spokes: measure-ai-roi-agencies, 3-real-ai-agent-examples-to-protect-agency-revenue-per-employee, ai-sdr-vs-human-sdr
site SEO audit (whole site)
- ℹ️ sitemap: sitemap.xml lists 24 URLs (5 site pages + 19 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).