BlueBoost · Progress
What's left before BlueBoost runs on its own, in order · Checklist reviewed 2026-10-24 · Ticks are saved in this browser until Blair is connected
Setup steps
0 of 16
Owner decisions
0 of 6
Musts done
4 of 22
Definition of done
1 of 11
Start here
Four files explain the whole project
| What BlueBoost is | A weekly tracker for blueforeststudios.com: how the site shows up in Google (SEO) and in AI assistants (AEO), stored in Blair, reported here and in a weekly email to Ammon. | docs/spec.md |
| Rules for working on it | Read first. Every session follows this. | CLAUDE.md |
| Latest full status | Every Must with its evidence, and what waits on whom. | docs/handoffs/STATUS_2026-10-24.md |
| Code and tests | Code is in db/. First time: cd db && npm install. Tests: npm test. Rebuild this page: npm run audit, then npm run dashboard -- --practice (opens out/dashboard.html). | README.md |
Terms
Plain meanings
Setup steps, in order
Do each group in order. Within Google, do step 4 before step 5.
1. Google
2. AI engines
3. Database
4. Weekly run
5. Website
6. Other access
Owner decisions
Each one unblocks the items listed
Must requirements · spec sections 1–7
All 22 Musts and what each waits on
| Must | Requirement | Status | Waits on | |
|---|---|---|---|---|
| Site list holds our site | DoneTicked | Tests pass (run.mjs) | ||
| Add a site by settings, not code | DoneTicked | Rehearsal runs in under 15 minutes | ||
| Search Console data | Built, waitingTicked | Google setup, steps 1–5 | ||
| Keyword rankings | Built, waitingTicked | SerpApi key | ||
| Google Analytics traffic and leads | Not startedTicked | Not built. Needs GA4 access, then a collector and a GA4 column in the sites table. | ||
| Technical audit | Built, waitingTicked | Runs today. Indexing waits on the Google sign-in; speed on the CrUX key. | ||
| Fix-this-next list | Built, waitingTicked | Built from the audit. Ranking data joins after the first ranking check. | ||
| Structured data on the site | Built, waitingTicked | Code is ready. Needs website access and the move off Squarespace. | ||
| Buyer-question library | DoneTicked | 30 questions, approved and locked 2026-10-23 | ||
| Ask five AI engines weekly | Built, waitingTicked | AI keys and the weekly deploy | ||
| Score each AI answer | Built, waitingTicked | Real AI answers | ||
| AI share of voice | Built, waitingTicked | Real AI answers | ||
| AI action list | Built, waitingTicked | Real AI answers | ||
| llms.txt and FAQ | Built, waitingTicked | Files are ready. Needs website access; /llms.txt returns 404 today. | ||
| Results stored in Blair | Built, waitingTicked | Blair access | ||
| This dashboard, in the Blair Console | Partly builtTicked | Built. Not yet hosted in the Blair Console; the GA4 panel is off until 2.3. | ||
| Weekly digest to Ammon | Built, waitingTicked | Google sign-in, Ammon's address and your yes | ||
| Build first; check HubSpot | Partly builtTicked | The HubSpot comparison isn't done. | ||
| Runs unattended every week | Built, waitingTicked | Cloud deploy, Healthchecks.io, Blair | ||
| Cost at or under $250 a month | Built, waitingTicked | Built. The real total needs Blair. | ||
| No secrets in the repo | DoneTicked | Secrets check runs on every commit | ||
| Hours logged in Streamtime | Not startedTicked | Waits on who logs hours |
Definition of done
The spec's 11 criteria for finishing v1
| Item | Criterion | Status | Waits on | |
|---|---|---|---|---|
| Architecture approved | Partly builtTicked | YouTube/Reddit scope and the HubSpot check are open. | ||
| Site tracked end to end | Built, waitingTicked | All the access steps above | ||
| SEO baseline | Partly builtTicked | Audit of 186 pages done. Needs Search Console, SerpApi and 2.3. | ||
| AEO baseline | Built, waitingTicked | 30 prompts × 5 engines ready. Needs the AI keys. | ||
| Blair and the tab live | Built, waitingTicked | Blair access | ||
| Four weeks unattended | Not startedTicked | Starts after the deploy | ||
| Boost loop proven | Built, waitingTicked | A fix shipped from the list. Needs website access. | ||
| Numeric 90-day targets set | Partly builtTicked | Definitions decided. Numbers come after the baseline. | ||
| New site in under 15 minutes | DoneTicked | Rehearsal ran 2026-10-24 | ||
| Costs known and logged | Partly builtTicked | Cost tracking built. Hours log waits on who logs hours. | ||
| Handoff complete | Partly builtTicked | README added 2026-10-24. Walkthrough with Ammon not held. |
BlueBoost · blueforeststudios.com · Dashboard 1 of 5
Week of Oct 19–25, 2026 · Weekly run finished Mon Oct 26, 06:12 ET · For: owner / marketing lead, Monday triage (10 min)
This week in one line Sample
Organic clicks held inside their normal weekly swing. AI share of voice rose 2 mentions. Ship the two grade-A fixes at the top of the list first: they touch 113 pages.
Organic clicks
Sample▲ 6 vs 8-wk median (136)
Inside the noise band (124–149). Search Console, 2.1.
Impressions
Sample▲ 210 vs median
Inside band. Avg position 14.2 (impression-weighted).
Keywords in top 10
Sample▲ 1 since last monthly check
Organic + map box, Raleigh, NC. SerpApi, 2.2.
AI share of voice
Sample▲ 2 mentions vs last week
138 answers: 4 engines × 30 prompts + 18 AI Overviews. 4.4.
Open SEO fixes
RealFrom the Oct 23 audit
186 pages crawled. Audit, 2.4.
Spend, October
SampleTotal $3.10 of $250 cap
Pacific-time month. Cloud run within free tier. 7.3.
SEO · Fix this next (3.1) · ranked by evidence, then pages
Five fixes from the Oct 23 audit. Four are Google-documented (grade A).
| # | Fix | Trigger (finding) | Grade | Pages | Stage |
|---|---|---|---|---|---|
| 1 | Add VideoObject schema to the 74 pages that have a video | Audit: 74 of 74 pages with a video have no VideoObject schema. Google: it "can make it easier for Google to find your video" | A | 74 | Proposed |
| 2 | Write meta descriptions for 39 pages, most visited first | Audit: 39 pages have none. Google may use it as the summary under your link | A | 39 | Proposed |
| 3 | Make the sitemap list / instead of /home | Audit: /home says its main address is /. Google shows the main (canonical) address | A | 1 | Proposed |
| 4 | Decide whether /cart belongs in Google; if so, add to the sitemap | Audit: linked from the site but not in the sitemap. Google: "Include the URLs in your sitemap that you want to see in Google's search results" | A | 1 | Proposed |
| 5 | Fix or remove 35 broken links to other sites, on 21 pages | Audit: 35 links to other sites return "not found" or don't answer. Helps visitors; a search benefit is unproven | D | 21 | Proposed |
AEO actions (5.1)
Where AI engines look, and we aren't
90-day targets (Definition of done, item 8)
Baselines measured; target numbers are the owner's call
Target is the owner’s business call, set after a 4-week baseline. Due 90 days from the day it is set.
Share of brand mentions across all 138 answers (scoring version 2026-10-23.1).
Weekly run health (7.2) · Healthchecks.io ping received 06:12 ET
10 of 10 steps finished · 1 h 48 min · $0.71 this run
BlueBoost · Dashboard 2 of 5 · SEO track (2.1, 2.2)
For: SEO analyst, weekly deep-dive · Search Console through Oct 23 (2–3 day lag) · Rankings checked Oct 5 (monthly, SerpApi, Raleigh NC, desktop)
Non-brand clicks, week Sample
86▲ 5 vs 8-wk median (81)
Above the noise band (79–82) for 1 week. Confirm next week.
Impressions, week Sample
6,830▲ 210
Inside band
CTR, non-brand Sample
1.9%▲ 0.1 pt
86 clicks / 4,520 non-brand impressions
Avg position Sample
14.2▲ 0.6 (better)
Impression-weighted, all queries
Keywords on page 1 Sample
4 of 24▲ 1 vs September
Monthly check, Oct 5
Weekly organic clicks · 26 weeks Sample
Non-brand clicks rose from 70 to 86 a week. This week is above the noise band for the first time, but one week after the Oct 14 fix is too early to credit it.
Tracked keywords · Google position, Raleigh NC (2.2) Sample
4 of 24 keywords are on page 1. Biggest mover: “animation studio raleigh”, 14 → 8.
Axis 1 → 20, then “21+” (not found). Green strip = page 1. Organic results and the map box both count (decided 2026-10-23).
Top non-brand queries · last 28 days Sample
CTR is low where we rank 8–12. Lifting those onto the top half of page 1 is the clearest gain.
| Query | Clicks | Impr. | CTR | Avg pos. | Δ pos. 28d |
|---|---|---|---|---|---|
| video production raleigh | 48 | 1,210 | 4.0% | 7.0 | ▲ 0.8 |
| raleigh video production company | 41 | 640 | 6.4% | 3.4 | ▲ 0.2 |
| animation studio raleigh | 22 | 870 | 2.5% | 8.1 | ▲ 5.9 |
| video production agency raleigh | 19 | 310 | 6.1% | 2.2 | ▲ 0.4 |
| corporate video production raleigh | 14 | 980 | 1.4% | 10.6 | ▲ 1.1 |
| commercial video production raleigh | 9 | 720 | 1.3% | 11.8 | ▲ 4.6 |
| brand story video | 8 | 1,460 | 0.5% | 12.4 | ▼ 0.7 |
| aerial video production raleigh | 6 | 410 | 1.5% | 13.9 | ▲ 0.9 |
| healthcare video production | 4 | 690 | 0.6% | 15.7 | ▲ 3.8 |
| how much does a corporate video cost | 3 | 2,210 | 0.1% | 18.2 | ▼ 1.2 |
CTR shading: darker = higher click-through. Δ position: ▲ = moved up (better). Queries with under 10 impressions hidden (Search Console anonymizes rare queries).
Landing pages · drill-down from query to page Sample · audit column real
Four of the top six landing pages embed video with no VideoObject markup. The audit column is real (Oct 23).
| Page | Clicks 28d | Impr. 28d | CTR | Avg pos. | Top query | Open audit items |
|---|---|---|---|---|---|---|
| /raleigh-video-production | 104 | 3,120 | 3.3% | 6.8 | video production raleigh | 4 videos, no VideoObject |
| /raleigh-nc-video-production-company | 77 | 1,980 | 3.9% | 4.1 | raleigh video production company | 1 broken outbound link |
| /commercial-services | 33 | 1,440 | 2.3% | 11.2 | commercial video production raleigh | 2 videos, no VideoObject |
| /services | 29 | 1,890 | 1.5% | 10.9 | corporate video production raleigh | 1 video, no VideoObject |
| /blog/how-much-is-an-animation-video | 21 | 1,650 | 1.3% | 9.0 | animation video cost | none |
| /blog/develop-your-brand-story-in-5-simple-steps | 12 | 1,720 | 0.7% | 12.7 | brand story video | 1 video, no VideoObject · 1 broken outbound link |
BlueBoost · Dashboard 3 of 5 · AEO track (4.1–4.4, 5.1)
For: AEO / content strategist, weekly · 30 frozen buyer prompts (library 2026-10-23.1) asked from Raleigh, NC · Run Oct 26 · Scoring 2026-10-23.1
Headline Sample
Named in 11 of 138 answers and linked as a source in 4. That is 11 of 60 brand mentions (18%), third behind two competitors. All 11 come from “find a vendor” prompts. We are named in 0 of the 5 price prompts.
Answers collected Sample
1384 engines × 30, plus 18 Overviews
0 failed calls · $0.71 this run
Answers naming us Sample
11▲ 2 vs last week
8% of answers. 4-wk average 9.
Linked as a source Sample
4▲ 1
blueforeststudios.com in citations
Share of voice Sample
18%11 of 60 mentions
Rank 3 of 5 tracked brands
Avg place when named Sample
3.2▼ 0.3 (worse)
1 = first brand in the answer
Price prompts naming us Sample
0 of 5no change
Biggest content gap
Share of voice (4.4) · brand mentions across all answers Sample
Competitor A is named almost twice as often as we are
Share = this brand's mentions ÷ all 60 tracked-brand mentions (user ruling 2026-10-23: “Share of mentions”). Competitor names are the spec's set, anonymized in this sample.
By engine · answers that name us Sample
Perplexity names and links us most. Gemini and AI Overviews almost never do.
AI Overviews appear on Google for only some searches: 18 of 30 this week. A prompt with no Overview is not counted as a miss.
Prompt × engine · 30 prompts × 5 engines Sample
The gaps cluster in price and how-to-choose prompts. These are content questions we can answer on our own pages.
Most-cited sources · domains engines link to (5.1) Sample
Engines lean on directories and review sites. We don't yet know which of them list us.
“Unknown” is real: the listings file (listings-blueforest.json) is empty until the owner adds where we're listed. Counts are sample.
Competitor detail · per brand Sample
When we are named, we are listed third on average. Tone is neutral to positive.
| Brand | Mentions | Answers linked | Avg place in list | Positive | Neutral | Negative |
|---|---|---|---|---|---|---|
| Competitor A | 19 | 8 | 1.6 | 9 | 10 | 0 |
| Competitor B | 14 | 5 | 2.1 | 6 | 8 | 0 |
| BlueForest (us) | 11 | 4 | 3.2 | 6 | 5 | 0 |
| Competitor C | 9 | 3 | 2.8 | 3 | 6 | 0 |
| Competitor D | 7 | 1 | 3.9 | 2 | 4 | 1 |
Tone is a word-list draft, to be hand-checked on the first real answers (scoring.json). Treat as a rough signal.
BlueBoost · Dashboard 4 of 5 · SEO track (2.4) and SEO boost (3.2)
For: technical SEO / web developer, weekly after the crawl · Audit run 2026-10-23 13:21 UTC · 186 pages · 516 links checked at 1 request/second
Headline Real
The site is crawlable and every page returns 200. The gaps are in markup: 74 pages embed 158 videos with no VideoObject, and 39 pages have no meta description. Speed and indexing are not checked yet.
Pages crawled Real
OKAll return HTTP 200
Video pages Real
Info158 YouTube/Vimeo embeds
VideoObject markup Real
FixFix #1 · grade A · 3.2 requires it
No meta description Real
FixFix #2 · grade A
Broken outbound links Real
FixOn 21 pages; 14 on /equipment-rental · grade D
Page speed (CWV)
Not checkedNeeds a CrUX key
Structured data coverage (3.2) · one square = one page Real
74 of 186 pages have a video. None of them tell Google about it.
| Schema type | Pages with it | Pages that need it | Status | Why it matters |
|---|---|---|---|---|
| LocalBusiness | 186 | 186 | Complete | Local pack and map signals |
| Organization | 186 | 186 | Complete | Brand facts and logo |
| WebSite | 186 | 186 | Complete | Site name in results |
| Article | 112 | 112 | Complete | Blog post dates and author |
| VideoObject | 0 | 74 | Missing | Video results and key moments (Google-documented) |
| FAQPage | 0 | — | Spec asks | Google stopped showing FAQ results in 2026 (grade D); 3.2 still requires it |
Core Web Vitals · p75, real Chrome users (CrUX)
Not checked: no CrUX API key yet
Audit note, verbatim: “Core Web Vitals not configured: no CRUX_API_KEY”. The key is free (Google guide, Part 8).
Indexing · Search Console URL Inspection
Not checked: waiting on the Google sign-in
Planned: 186 URLs a week, paced under Google's daily URL Inspection quota.
Missing meta descriptions · by site section Real
39 pages. Most are in /blog, /projects and /portfolio-1.
Orange = missing, grey = section size. Without a description, Google writes its own snippet from page text.
Links checked · 516 total Real
35 outbound links are broken, on 21 pages. 14 of them are on one page: /equipment-rental.
Broken outbound links · 6 of 35 shown · start with /equipment-rental (14) Real
Fix or remove. Grade D: Google's guidance doesn't say broken outbound links hurt ranking. It's a visitor-trust fix.
| On page | Links to | Result |
|---|---|---|
| /equipment-rental | sharegrid.com/p/ammon_ehrisman | HTTP 404 |
| /equipment-rental | sharegrid.com/raleigh/l/320145?type=rent | HTTP 404 |
| /equipment-rental | sharegrid.com/raleigh/l/322885?type=rent | HTTP 404 |
| /equipment-rental | sharegrid.com/raleigh/l/322880?type=rent | HTTP 404 |
| /equipment-rental | sharegrid.com/raleigh/l/322886?type=rent | HTTP 404 |
| /equipment-rental | sharegrid.com/raleigh/l/322873?type=rent | HTTP 404 |
Crawl access · robots.txt (RFC 9309) and sitemap Real
All 32 checked crawlers allowed, search and AI alike
BlueBoost · Dashboard 5 of 5 · Fix list (3.1, 5.1) · Data rules §7–8 · Costs (7.3)
For: owner and analyst, monthly review · Did what we shipped work, measured against the noise band, before we do more of it?
Headline Sample
3 fixes shipped since August. 1 worked, 1 can't tell, 1 still measuring. Clicks and AI mentions have both drifted up since the sitemap fix, but the week-to-week zig-zag is almost as large. That is a pattern to watch, not proof the fix caused it.
Connected scatter · 12 weeks · each dot is one week Sample
Both drift up and to the right, but each week's zig-zag is nearly as big as the drift
Grey path = weeks before the first fix; purple = after. Read it like a trail: each step right is more clicks, each step up is more AI mentions. A trail that zig-zags in place is noise.
How a fix gets a verdict (data rules §8)
Bigger than the noise band, or it doesn't count
Spend vs cap (7.3) · October Sample
Fix pipeline · SEO (3.1) and AEO (5.1) · stages are logged, never edited Real
Work moves left to right. A fix leaves the board only once its outcome is recorded.
Before / after · shipped fixes · 8 weeks before vs weeks since Sample
Each verdict uses the metric the fix was meant to move, chosen before it shipped
Evidence ledger · what we learned, by grade Sample
Our own results feed back into the grades. A grade-D tactic that works here twice earns a second look.
| Fix | Grade before | Evidence source | Shipped | Window | Metric | Before → after | Outcome |
|---|---|---|---|---|---|---|---|
| Sitemap canonical | A | Google sitemap docs | Sep 2 | 4 wks | Impressions on / | 412 → 521 | Worked |
| Organization facts | D | Industry claims, untested | Sep 9 | 4 wks | Answers naming us | 7.1 → 8.5 | Can’t tell |
| Descriptions batch 1 | A | Google snippet docs | Oct 14 | to Nov 15 | CTR, 12 pages | 1.6% → 2.1% | Measuring |
| Cost answer on page | D | AEO practitioner claims | Oct 21 | to Nov 22 | Price prompts naming us | 0 → 0 | Measuring |