Rank Tracking strategy library: pillar + 4 strategies - #340
Merged
bensenescu merged 6 commits intoSep 18, 2026
Merged
Conversation
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
This was referenced Sep 16, 2026
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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,$10plan gate on hosted rank checks, Search Console reads free).Four strategies
which-keywords-to-track— 20 to 50 from Search Console, four buckets, priced before addingsearch-console-vs-rank-tracker— what average position hides, when Search Console alone is enoughlocal-rank-tracking— a real 3x3 grid, four different businesses at Replace Cloudflare specifics with OS self hosted alternatives? #1, target unmatchedkeyword-ranking-report— lead with the business number, four movement counts, three rows, brand/non-brand splitEvery 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:
rankTrackingStrategiesregistry, 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_trackerwith atrackerIdfails schema validation on the hosted build once a run exists (results/runhas extra properties; listing works), and SAM calledget_local_rank_grideight times for one 3x3 request today.🤖 Generated with Claude Code
https://claude.ai/code/session_015vHgRFwfmyrSprUcbhNDWf