Skip to content

Rank Tracking strategy library: pillar + 4 strategies - #340

Merged
bensenescu merged 6 commits into
every-app:mainfrom
jeremypenguin-max:library-rank-tracking
Sep 18, 2026
Merged

bensenescu merged 6 commits into
every-app:mainfrom
jeremypenguin-max:library-rank-tracking

Conversation

@jeremypenguin-max

Copy link
Copy Markdown
Contributor

Adds /library/rank-tracking, the fourth strategy library, bound to /features/rank-tracking.

Pillar — 7-question FAQ with FAQPage JSON-LD, breadcrumbs, product facts checked against src/shared/rank-tracking.ts (1,000 keywords per tracker, 500 trackers per project, mobile default, depth 40 default, $10 plan gate on hosted rank checks, Search Console reads free).

Four strategies

  1. which-keywords-to-track — 20 to 50 from Search Console, four buckets, priced before adding
  2. search-console-vs-rank-tracker — what average position hides, when Search Console alone is enough
  3. local-rank-tracking — a real 3x3 grid, four different businesses at Replace Cloudflare specifics with OS self hosted alternatives? #1, target unmatched
  4. keyword-ranking-report — lead with the business number, four movement counts, three rows, brand/non-brand split

Every strategy ends with a copy-paste MCP prompt. Every number comes from a real run on the seoarcade.com tracker (2122a895…) or the Cookeville local grid; screenshots are from the app today. Guest quotes are verbatim from Unscripted SEO episodes (Charlie Birch, Grant Simmons, Melissa Popp, Brittany Trafis).

Also: rankTrackingStrategies registry, feature-page guides section, library index card, routeTree regenerated. types:check, build:app, prettier clean.

Two things I noticed while building this, not changed here: get_rank_tracker with a trackerId fails schema validation on the hosted build once a run exists (results/run has extra properties; listing works), and SAM called get_local_rank_grid eight times for one 3x3 request today.

🤖 Generated with Claude Code

https://claude.ai/code/session_015vHgRFwfmyrSprUcbhNDWf

Jeraath and others added 4 commits September 15, 2026 14:47
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5c56XeUKSKJSaVjPU2Jpc
…th the live runs

Eight images: one app screenshot and one quote card per strategy (config cost
estimate, tracker results, local rank grid, Search Console by page). Copy now
states what the tracker actually returned (3 of 25 in the top 40 on mobile)
and today's grid (four businesses at every-app#1, target unmatched).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vHgRFwfmyrSprUcbhNDWf
…he report strategy

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vHgRFwfmyrSprUcbhNDWf
…sses at every-app#1)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vHgRFwfmyrSprUcbhNDWf
@bensenescu
bensenescu merged commit 368df71 into every-app:main Sep 18, 2026
2 checks passed
RatomatoR pushed a commit to RatomatoR/open-seo that referenced this pull request Sep 18, 2026
…every-app#340)

Production OOM triage: every 'Worker exceeded memory limit' burst hits
unrelated cheap routes right after a deploy — the 128MB limit is per
isolate, and the main worker's eagerly-evaluated module graph is what
crowds it, not any single request.

- Alias just-bash to a throwing stub (worker never uses it): removes
  just-bash + turndown + @mixmark-io/domino from the bundle. The chain
  was pulled in eagerly by @cloudflare/think via the SamChatAgent
  re-export in src/server.ts; SAM only uses its own MCP tools.
- Disable Think's workspace bash tool on SamChatAgent so the stub is
  unreachable at runtime.
- Dynamic-import page-analyzer (cheerio) in the site-audit crawl step
  so it evaluates only when an audit runs, not in every isolate.
- Drop the turndown CJS alias workaround (every-app#339): turndown is no longer
  in the graph at all.

Main eager server chunk: 14,434 kB -> 11,712 kB (-19%); cheerio's
503 kB now a lazy chunk.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants