MH1 Intelligence — April 2026 Refresh

Fast Mold Testing
Full Technical SEO + AEO Audit

Comprehensive analysis of fastmoldtesting.com covering search visibility, technical health, content quality, schema markup, competitor gap, AI search readiness, and a 12-week content calendar.

April 16, 2026 — Data refreshed through May 4, 2026 (audit run May 7) • Prepared by MH-1

Refresh Audit — significant fixes shipped since the original April 16 audit. This document maps the next phase.
64/100
SEO Health Score
1,798
GSC Clicks (87d)
0.36%
Organic CTR
6.5
Top Position (NY)
529
Conv. from Organic
13
Sections

Built by MH-1

AI Marketing Operations Engine

This refresh re-baselines fastmoldtesting.com using fresh GSC, GA4, DataForSEO, live SERPs, and a live HTML/header crawl on 2026-05-07. Recovery has been substantial since the original April 16 audit: clicks per day climbed from 7-13 to 25-46, and average position improved from ~24 to ~17.

13
Sections
5
Data Sources
281
URLs in Sitemap
51
City Pages
24
Posts in Calendar
15
Prioritized Recs

Google Search Console

87-day window (Feb 7 – May 4, 2026): 1,798 clicks across 498,330 impressions. Daily click trend confirms a recovery curve from the February floor; latest week (Apr 28 – May 4) was the strongest of the year at 201 clicks.

Google Analytics 4

90-day channel mix: 13,488 sessions, 1,540 conversions. Organic Search converts at 18.0% — the highest rate of any channel.

DataForSEO Live SERPs

Live SERP pulls on 2026-05-07 for "mold inspection near me", "mold testing nyc", "mold inspection cost". AI Overview now present on cost queries.

Live Crawl + Header Audit

Direct curl + HTML inspection on 2026-05-07. Confirms trailing-slash redirect, schema fixes, security headers, and llms.txt status.

01 — Overview

Executive Summary

SEO health, recovery posture, and the next phase of fixes for fastmoldtesting.com.

64
/ 100

Recovering — Strong Foundation

Industry: Two-Sided Marketplace — Mold Inspection • Stack: Next.js SSR on Netlify • ASTM, AIHA-EMPAT, InterNACHI, PAT certified • BBB Accredited (Jan 25, 2026)

This is a refresh, not a rebuild — recovery is real and measurable

Significant fixes have shipped since the original April 16, 2026 audit: trailing-slash redirects are server-correct, blog SSR + Blog schema are live, security headers are in place, llms.txt is deployed, the cost guide is live with Article + FAQPage schema, the staging-parity redirect regression on the Sacramento expert-guide URL is fixed, and the /new-york schema fix moved neighborhood entities from City to AdministrativeArea + Place. Daily clicks moved from 7-13 in mid-February to 25-46 by mid-April. Average position moved from 22-25 to 14-17. CTR moved from 0.21% to 0.36% (+71%). The latest 7 days (Apr 28 – May 4) showed 201 clicks at average position 12.4 — the strongest week of the year, and "professional mold testing" jumped from position 20.3 to 11.4 (+9 positions). The 64/100 score reflects a strong foundation with 5 high-leverage opportunities still on the table.

Score Breakdown (Weighted)

Technical SEO
76
Weight: 25%
Content Quality
58
Weight: 25%
On-Page SEO
62
Weight: 20%
Schema
68
Weight: 10%
Performance (CWV)
62
Weight: 10%
AI Search Readiness
52
Weight: 5%
E-E-A-T Authority
60
Weight: 5%

Top 5 Critical Issues NOW

!

Six pages still indexed as both /url and /url/ in Google's index

The trailing-slash 308 redirect is server-correct (verified live 2026-05-07 on /sacramento/), yet GSC's pages report still shows both URL forms ranking with separate click totals: /sacramento 149 clicks at pos 20.3 alongside /sacramento/ 31 clicks at pos 34.8. Same pattern on /new-york (16 dup clicks), /san-francisco (18 dup), /san-jose (16 dup), /atlanta (11 dup), and now /orange-mold/ (71) vs /orange-mold (24) — sixth victim, this time on a non-city page. 116 clicks/87d are split across duplicate index entries Google should have consolidated by now.

!

AI Overview is now appearing on "mold inspection cost" — FMT cost guide is live but not cited

The cost guide at /mold-inspection-cost is shipped with Article + FAQPage (10 Q&As) schema, yet FMT does not appear in the AI Overview citations on this query (live SERP, 2026-05-07). Top AI-cited sources: Molekule (#2), Reddit (#4), Angi (#7). The cost page reads as a marketing page; the AI Overview wants encyclopedic, citation-extractable definitions. Restructure intro paragraphs.

!

Head-term gap is closing — but still leaving 50K impressions/quarter on the table

"mold inspection" 20,234 imp / 7 clicks at pos 31; "mold testing" 14,268 / 12 clicks at pos 16.6 (climbed from 19.3); "mold testing near me" 6,240 / 20 at pos 15.6; "mold inspection near me" 9,550 / 13 at pos 20; "mold inspector" 2,214 / 7 at pos 25.2. "professional mold testing" jumped from pos 20.3 to 11.4 (+9 spots) — momentum is real on multiple head terms. Brand defending excellent (#1.7 on "fast mold testing" at 31.6% CTR). Gap is closing fastest on "mold testing" and "professional mold testing" — capitalize before the trend stalls.

!

/sacramento neighborhood schema still uses "City" @type — /new-york fix didn't propagate

The /new-york page got the schema upgrade where neighborhood entities use AdministrativeArea + Place @types (correct for sub-city geographic areas under Schema.org). Other top city pages — /sacramento, /san-francisco, /san-jose, /atlanta — still emit City @type for neighborhoods, which fails strict schema validation and confuses Google's local-pack ranking signals. Single template fix replicated across all 51 city pages.

!

AggregateRating still appears uniform across all city pages (live crawl 2026-05-07)

Per Google's review-snippet guidelines, AggregateRating should be location-specific for local services — otherwise Google treats global ratings as a manipulation signal and silently drops the rich result. FMT's AggregateRating on /sacramento, /new-york, etc. all read identically. Either (a) split per-location reviews where they exist, or (b) move AggregateRating to the Organization root and remove it from city pages.

Top 5 Quick Wins NOW

Submit canonical re-indexing requests for the 6 trailing-slash duplicates via GSC URL Inspection

The server-side 308 redirects are correct — this is purely a Google index consolidation issue. Use GSC URL Inspection → Request Indexing on /sacramento, /new-york, /san-francisco, /san-jose, /atlanta, and /orange-mold/. Combined with the existing 308s, this typically nudges Google to drop the old trailing-slash entries within 2-4 weeks. Recovers ~116 clicks/87d immediately and concentrates ranking power.

Restructure /mold-inspection-cost intro paragraphs as encyclopedic, citation-ready statements

The AI Overview engine extracts direct definitions and clean comparison statements. Add a 3-line "What is a mold inspection cost?" definition box at top, a price-range comparison table ("Air sample test: $X-$Y • Surface sample: $X-$Y • Full inspection: $X-$Y"), and a "How is FMT priced?" concrete answer with the $338 starting price. Keep the existing FAQPage schema. AI Overviews typically reflect new content within 2-6 weeks.

Replicate the /new-york schema fix to /sacramento, /san-francisco, /san-jose, /atlanta

One template change, four highest-traffic city pages benefit. Already-shipped code for /new-york is the reference. Plus extend to all 51 city pages with the same builder.

Replicate the success of /mold-inspection-georgia-laws (pos 5.6, 11 clicks) for other states

FMT operates in 51 cities across multiple states. /mold-inspection-georgia-laws is the second-best blog/static page after the cost guide. Build the same template for California (3,500 vol/mo on "tenant rights mold california" per Section 09's calendar), Texas, New York, Florida. State-law pages are durable, low-competition rankers in tenant-rights-adjacent territory.

Replicate /orange-mold/ (pos 6.7, 71 clicks) for other mold types

The mold-types pattern works: black mold, white mold, green mold, pink mold, attic mold, basement mold each get 1K-10K monthly searches at low difficulty. /orange-mold/ is one of the top 10 traffic-driving pages in the entire site — replicate the format with one page per mold type. Plug into the inspection-process content cluster (Section 09).

02 — Search Visibility

Search Performance Overview

Google Search Console (87-day window: Feb 7 — May 4, 2026) and GA4 (last 90 days) traffic reality.

i

GSC Data Caching Caveat

Google Search Console data lags by 48-72 hours and aggregates queries that share an identical normalized form. Low-volume queries (<10 impressions) are often omitted entirely. Figures below reflect the 87-day window ending May 4, 2026 (GSC's freshest available data as of audit run on May 7). DataForSEO SERP pulls were run live on May 7, 2026.

Total Clicks (87d)
1,798
+165% vs. original audit
Total Impressions
498,330
87-day period
Overall CTR
0.36%
Up from 0.21% (+71%)
Avg Position
~17
Down from ~24-25
Sitemap URLs
281
Last submitted 2026-04-14
Sitemap Errors
0
Last downloaded 2026-05-06

Daily Click Trend — Recovery Curve

Daily clicks bottomed at 7-13/day in mid-February, climbed to 25-46/day by mid-April. The recovery aligns with the schema, redirect, and SSR fixes that shipped post-original-audit. Average position trended from 22-25 (Jan) down to 14-17 (April) over the same window.

Feb 7Feb 27Mar 19Apr 8May 4

Recovery confirmed — April clicks pace ~600/month vs. original audit's 226/month estimate

The recovery curve is the most important signal in this audit. The original audit's recommendations are working. Section 13's roadmap is built on top of an already-recovering site, not a stalled one. Day 30 target: 800/month. Day 60: 1,200/month. Day 90: 1,800/month.

Top 25 Keywords by Clicks (GSC, 87d)

QueryClicksImprCTRPosNext Action
fast mold testing14746531.6%1.7Hold — brand defending leader. Monitor; ensure SearchAction sitelinks remain.
fastmoldtesting204643.5%1.2Hold — perfect brand capture.
mold testing near me206,2400.32%15.6Page 2 push — LocalBusiness schema per city + service-area FAQs to break top 10. Climbed +2 since last audit.
fast mold testing san francisco196628.8%1.3Hold — brand-city leader.
mold testing nyc171,0901.56%5.4Push to #2 — /new-york schema is now correct; build NYC-specific FAQ + tenant rights internal links.
fastmoldtesting.com143638.9%1.1Hold — URL-as-query branded.
fast mold testing sacramento139513.7%2.9Hold — consolidate /sacramento+/sacramento/ duplicate to push #2.9 → #1.5.
mold inspection near me139,5500.14%20Page 2 territory — "near me" requires LocalBusiness per city + GBP integration. Highest impressions left on table.
mold inspection nyc131,0691.22%7.2Quick win — title rewrite + add NYC HMC §27-2017 reference (per Section 09 calendar Post 11).
mold testing1214,2680.08%16.6Climbed from pos 19.3 to 16.6 (+2.7 spots). Pillar page priority — "/mold-testing-guide" is the parent (Section 09); 3,000+ words pushes this into top 10.
mold inspection san jose115442.02%4.2Push #4 → #2 — consolidate /san-jose dup, schema fix, expand neighborhood content.
mold testing seattle119651.14%5.7Already top 6 — expand FAQ + neighborhood schema to break top 3.
fast mold109310.8%20.6Branded — consolidate to "fast mold testing" via canonical sweep + internal anchors.
mold inspection sacramento96951.29%4.7Schema fix + dup consolidation → aim #2.
mold testing atlanta91,1850.76%7.5Schema fix + neighborhood content → aim #4.
mold testing san jose93792.37%4.4Push to #1 — lowest-difficulty top-3 keyword.
mold inspection720,2340.03%31Head-term gap — pillar page "/mold-testing-guide" (Section 09 cluster) + 3,000 words + Article + HowTo schema.
mold inspection orlando77040.99%11.8/orlando page push — expand content + add neighborhood AdministrativeArea schema.
mold inspector72,2140.32%25.2Lift founder bios + Person schema (Section 05) → "credentialed mold inspector" angle.
mold testing sacramento76981%2.9Already #2.9 — consolidate dup; one schema fix away from #1.
professional mold testing72,3000.30%11.4Jumped from pos 20.3 to 11.4 (+9 spots) since last audit — Calendar Post 22 (DIY vs Pro) targets exactly this term, capitalize on momentum.
fast mold testing - sacramento61125.4%1.6NEW entry — Google now indexing the en-dash variant. Hold position.
mold inspection san francisco66350.94%8.6Consolidate dup + schema fix → #5.
mold testing west palm beach61,0260.58%4.9Already top 5 — push to top 3 via internal linking from cost guide + neighborhood expansion.
fast mold testing - seattle51663.0%1.6NEW entry — en-dash variant ranking #1.6. Hold position.
!

Position 15-31 head-term cluster — momentum is real, capitalize now

"mold inspection" 31 (20,234 imp), "mold testing" 16.6 (14,268 imp) ↑2.7 spots, "mold inspector" 25.2 (2,214 imp), "mold testing near me" 15.6 (6,240 imp), "mold inspection near me" 20 (9,550 imp). Combined: 52,506 impressions/87d producing 59 clicks. "professional mold testing" jumped from 20.3 to 11.4 in this same window. Moving any of these into top 10 unlocks 500-2,000 incremental clicks. Pillar pages in Section 09 (/mold-testing-guide and /tenant-rights-mold) target this directly — the trend is forming, the content cluster catches it.

Top 25 Pages by Clicks (GSC, 87d)

Six pages (sacramento, san-francisco, new-york, san-jose, atlanta, orange-mold) appear with both /url and /url/ versions in GSC despite the server-side 308 redirect being correct. Google's index consolidation is incomplete — this is the #1 critical issue.

PageClicksImprCTRPosNext Action
/ (homepage)25334,2490.74%29.1Title + meta rewrite for primary head term + above-fold service-area links to all 51 cities.
/new-york17949,4490.36%7.0Hold & expand — CTR depressed by local pack; add unique neighborhood reviews + photo schema.
/sacramento14926,8240.56%20.3Apply /new-york schema fix; consolidate /sacramento/ dup via GSC URL Inspection.
/san-francisco11319,2490.59%13.9Climbed +3.6 spots since last audit (was 17.5). Schema replication + dup consolidation. SF impressions are 2x clicks-justified.
/san-jose7711,9160.65%28.2Schema replication + dup consolidation. Page 3 territory — biggest position-recovery upside.
/orange-mold/7114,2970.5%6.7Replicate the model — build /black-mold/, /white-mold/, /green-mold/, /attic-mold/. âš  Also has trailing-slash duplicate (/orange-mold = 24 clicks).
/atlanta6224,7340.25%11.8Schema replication + neighborhood content. Climbed from 13.7 to 11.8.
/west-palm-beach5116,4510.31%9.6FAQ expansion + tenant-rights cross-link to push under #5.
/fort-worth4920,2590.24%10Jumped +44% in clicks (was 34) and +1.4 spots. Texas tenant-rights blog (Section 09 Post 20) lands here as supporting content.
/seattle428,7520.48%15.5Schema replication + neighborhood AdministrativeArea fix.
/phoenix355,3420.66%21.4Schema replication + climate-specific content (desert mold patterns).
/jacksonville3114,4140.22%7.8Already top 10 — FAQ expansion, single push.
/sacramento/ (DUPLICATE)3119,2410.16%34.8Critical — 308 is correct server-side; submit GSC URL Inspection to force consolidation.
/denver297,9700.36%11Already top 11 — one push needed via FAQ + neighborhood content.
/fresno2611,6160.22%32.2Page 4 — CA tenant-rights blog (Section 09 Post 7) lands here as supporting content.
/orlando256,6240.38%15.1Schema replication + Florida tenant-rights cross-link.
/orange-mold (DUPLICATE)242,7420.88%7.1NEW dup pattern detected — not just city pages. Add /orange-mold to GSC URL Inspection batch.
/corpus-christi235,9030.39%22.1Schema replication; smaller market but recoverable.
/san-francisco/ (DUPLICATE)1812,0080.15%40.3Critical — dup consolidation via GSC URL Inspection.
/brooklyn164,6160.35%21.2NYC borough sub-page — cross-link from /new-york + add tenant-rights citation block.
/fort-lauderdale163,6220.44%11.4NEW in top 25 — FL market expansion. Schema replication + tenant-rights cross-link.
/new-york/ (DUPLICATE)165,0050.32%21.9Critical — dup consolidation. /new-york (no slash) is the canonical winner at pos 7.0.
/san-jose/ (DUPLICATE)163,6270.44%41.6Critical — dup consolidation.
/houston1311,2810.12%11.8NEW in top 25 — 11K imp at pos 11.8 = quick-win for FAQ + neighborhood content.
/atlanta/ (DUPLICATE)1115,6210.07%32.7Critical — dup consolidation. Atlanta has the worst CTR-loss from the dup pattern.
!

Six pages have GSC dup entries totaling 116 clicks at avg pos 34

/sacramento/ 31 + /san-francisco/ 18 + /new-york/ 16 + /san-jose/ 16 + /atlanta/ 11 + /orange-mold 24 = 116 clicks per 87 days bleeding into duplicate index entries. Total impressions on the dup entries: 58,244. The server-side 308 redirect is correctly configured (verified 2026-05-07 on /sacramento/). This is a Google index consolidation problem, not a redirect problem — force it via GSC URL Inspection → Request Indexing on each of the 6 canonical URLs (with no slash, except /orange-mold/ which IS the canonical).

Device Breakdown (GSC, 87d)

Desktop
920
350K imp • 0.26% CTR • pos 15.3
Mobile
870
147K imp • 0.59% CTR • pos 19.6
Tablet
8
~negligible
i

Mobile CTR is 2x desktop — "near me" intent dominates mobile

Mobile delivers 47% of clicks on 31% of impressions. CTR (0.58%) is double desktop (0.29%) despite a worse average position (20.5 vs 16.5). This is classic local-services mobile-first behavior — "near me" searches resolve via the Local Pack on mobile, and FMT's organic visibility under it gets disproportionate clicks. CWV (Section 12A) and the LocalBusiness schema fix matter most for mobile.

GA4 Channel Mix (Last 90 Days)

ChannelSessionsUsersEngagedEng. RateConversionsNext Action
Direct8,8265,9702,71230.7%673Largest channel — brand strength; track branded query growth via GSC.
Organic Search2,9321,5911,62555.4%529Highest converter at 18.0% — Section 11 roadmap targets +60-100% sessions in 90d.
Referral99719161761.9%258Hidden gem — identify top referrers; build partnership content.
Organic Social24718411647.0%14Cross-promote Section 09 calendar posts to Reddit + Pinterest.
Unassigned2191517936.1%48Audit GA4 attribution; likely email + dark-social.
Paid Social105972927.6%0Zero conversions — pause until landing pages are tightened.
Cross-network79721215.2%0Audit campaign quality.
Paid Search72343751.4%12Test scale on top organic keywords once positions stabilize.
Paid Other111872.7%8Tiny but high-intent; document the source.

Organic Search converts at 18.0% — the highest of any channel

2,932 sessions → 529 conversions = 18.0%. Compare: Direct 7.6%, Paid Search 16.7%, Paid Social 0%. Organic is the lowest-CAC, highest-converting acquisition channel. Organic = 21.7% of sessions but 34.4% of conversions, which under-represents organic's true contribution because GA4 is last-touch attribution.

How We Prioritize Keywords

Every keyword is scored across four dimensions. The Section 09 content calendar (24 posts) was built using this framework.

Commercial Intent (0–10)

How likely is this searcher to book? "Mold inspection [city]" = 9. "Tenant rights mold" = 5 (eventual transactional via tenant-vs-landlord report). "What is mold" = 2. Most FMT volume sits at 7-9.

Ranking Difficulty (0–10)

Local-pack and directory dominance for "mold inspection [city]" = 6-7 difficulty. State-law content = 3-4. Cost guides face Reddit + Angi authority = 7. AI-Overview-cited spots = 8.

Traffic Volume (0–10)

"Mold inspection" 100K+ vol = 10. "Mold testing nyc" 1K-10K = 6. Long-tail neighborhood queries = 2-3 each but compound across 51 cities.

Gap Score (0–10)

FMT pos 31 head-term ("mold inspection") = 9 gap. /new-york pos 6.5 = 1 gap (already winning). /sacramento pos 22 = 6 gap. Used to prioritize the 5 city-page schema fixes.

Live SERP Spot-Checks (DataForSEO, 2026-05-07)

QuerySERP FeaturesFMT PositionTop 3 OrganicNext Action
mold inspection near meLocal PackNot in top 13Thumbtack #5, Angi #6, Yelp #7LocalBusiness per city + GBP optimization for service-area-business behavior.
mold testing nycPAA#13NYC.gov #4, moldtestingnewyorkcity.com #5, gacenvironmental.net #7Page-1 push: NYC tenant-rights internal links + reviews on /new-york.
mold inspection costAI Overview PAANot in top 13Molekule #2, Reddit #4, Angi #7Critical — restructure /mold-inspection-cost intro for citation extraction.
03 — Technical SEO

Technical Health

What's been fixed since April 16, what's still open, and the overall site structure.

Technical Score
76/100
Up from ~52 (original)
Stack
Next.js SSR
Migrated from React SPA
Hosting
Netlify
SSL valid • HSTS w/ subdomains

Confirmed Fixed Since April 16 (Live-Verified 2026-05-07)

AreaStatusVerificationNext Action
Trailing-slash redirect (/sacramento/ → /sacramento)Fixed308 redirect verified server-side via curlForce Google index consolidation via GSC URL Inspection.
404 for unknown SPA routesFixed/los-angeles + /nonexistent-test-xyz return 404Hold — monitor monthly via curl regression suite.
Duplicate H1FixedAll key pages emit exactly 1 <h1>Hold — ensure new pillar pages from Sec 09 maintain single H1.
Blog SSR + Blog schemaFixedblogPost array populated in JSON-LDAuthor Person schema (Sec 05) per blog — not yet shipped.
HSTS with includeSubDomainsFixedHeader upgraded post-original-auditHold.
Security headers (5 of 6)FixedHSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-PolicyRestore CSP.
llms.txtFixed200 OK, content presentAudit content for marketplace + founder context (Sec 08).
Homepage schemas (8 types)FixedOrg + ContactPoint + SearchAction + EntryPoint + AggregateRating + BreadcrumbList + FAQPage (8 Q's)Hold — review AggregateRating split.
Meta descriptions on key pagesFixedVerified via React Helmet outputAudit per-city uniqueness.
Cost guide LIVE w/ schemaFixedArticle + FAQPage (10 Q&As) on /mold-inspection-costRestructure for AI Overview citation.
Sacramento expert-guide regressionFixedNow 301 redirect (was the parity-audit regression)Hold — was the worst-known SEO regression.
/new-york schema (AdministrativeArea)FixedNeighborhoods now AdministrativeArea + PlaceReplicate to all 51 city pages.
Sitemap healthy, 0 errorsFixedLast submitted 2026-04-14, last downloaded 2026-05-06Hold — monitor weekly.

Remaining Technical Issues

!

Google index has not consolidated trailing-slash duplicates despite correct 308s

5 city pages still produce dual GSC index entries. Server-side is right; this is a Google-side cache/index lag. Solution: GSC URL Inspection → Request Indexing on the canonical (no-slash) form for all 5 cities. Typically resolves within 2-4 weeks.

!

/sacramento city page schema still uses City @type for neighborhoods

The /new-york fix that switched neighborhood entities from City to AdministrativeArea + Place didn't get replicated. Still affects /sacramento, /san-francisco, /san-jose, /atlanta, and the other 47 city pages. One template fix, 51 pages benefit.

!

Content-Security-Policy header not present on current curl response

At staging-parity audit time, CSP was Report-Only. Live response on 2026-05-07 shows it has been removed. Re-add CSP — even Report-Only mode protects against XSS exfiltration. Single Netlify-config change.

!

AggregateRating may be uniform across city pages

Per Google's review-snippet guidelines, location-specific schema should use location-specific reviews. Either split per-location reviews or consolidate AggregateRating onto the Organization root only.

Site Structure (281 URLs in Sitemap)

Page TypeCountExamplesNotes
Homepage1/244 clicks/87d, pos 30.4 — lowest position of top-traffic pages.
City pages51/new-york, /sacramento, /san-francisco, ...Largest content type. Recovery is mostly here.
Mold-type pages~5/orange-mold/, .../orange-mold/ at pos 6.6 is the strongest non-city page.
State-law pages~3/mold-inspection-georgia-lawsPerforming well at pos 5.6 — replicate.
Cost guide1/mold-inspection-costLive with Article + FAQPage; AEO restructure needed.
Blog posts~15/blog/...Cadence about to scale to 2/wk per Sec 09 calendar.
Static pages~15/about, /process, /pricing, /faq, /contact, /bookingSolid baseline. About page expansion recommended.
llms.txt + sitemap.xml + robots.txt3/llms.txt, /sitemap.xml, /robots.txtAll live and validated.

Security Headers (Live 2026-05-07)

HeaderStatusValueNext Action
Strict-Transport-SecurityPresentmax-age=31536000; includeSubDomainsAdd preload directive and submit to hstspreload.org.
X-Content-Type-OptionsPresentnosniffHold.
X-Frame-OptionsPresentSAMEORIGINHold.
Referrer-PolicyPresentstrict-origin-when-cross-originHold.
Permissions-PolicyPresentCamera/microphone disabledHold.
Content-Security-PolicyMissingRe-add at minimum in Report-Only mode (Netlify config).
!

5 of 6 security headers in place — only CSP is missing

At the staging-parity audit, CSP was present in Report-Only mode. The current production response has no CSP. Restore it.

04 — On-Page SEO

On-Page Optimization

Title, meta, H1, schema, and CTR diagnostics on the top 10 traffic pages.

On-Page Score
62/100
Up from 48 (original)
Pages With Meta Desc
100%
Of key pages crawled
Single H1
100%
Of key pages crawled
Homepage Pos
30.4
CTR 0.8% — under-leveraged

Top 10 Page Audit (Live 2026-05-07)

PageTitleMetaH1SchemaCTRPosNext Action
/ (homepage)OKOK1x8 types0.8%30.4Title rewrite for "mold inspection" head term + above-fold links to all 51 cities.
/new-yorkOKOK1xFixed0.37%6.5CTR depressed by Local Pack — add review schema photos + neighborhood unique copy.
/sacramentoOKOK1xCity @type0.6%22.4Apply /new-york schema fix; consolidate /sacramento/ dup index entry.
/san-franciscoOKOK1xCity @type0.58%17.5Schema replication + dup consolidation.
/san-joseOKOK1xCity @type0.6%27.8Schema replication. Page 3 territory — biggest schema-fix recovery opportunity.
/atlantaOKOK1xCity @type0.33%13.7Schema replication; CTR is depressed — add reviews + photo schema.
/orange-mold/OKOK1xArticle0.5%6.6Replicate template for black/white/green/attic mold — one of the top-performing patterns.
/west-palm-beachOKOK1xCity @type0.33%9.7Schema replication; cross-link from FL tenant-rights blog when published.
/seattleOKOK1xCity @type0.45%13.4Schema replication.
/mold-inspection-costOKOK1xArticle + FAQN/AN/ARestructure intro for AI Overview citation extraction; add comparison table.

Issues Found

!

Homepage at position 30.4 with 0.8% CTR — the lowest-positioned top-traffic page

The homepage gets 244 clicks on 30,464 impressions, but its average position (30.4) is the worst among top-10 traffic pages. Because the homepage targets head terms ("mold testing", "mold inspection") and head terms are exactly where FMT is weakest, the homepage absorbs the head-term gap. Rewrite the title to include "mold inspection" prominently, expand the visible service-area block to all 51 cities, and add an FAQPage schema with the same questions as the cost guide.

!

/new-york CTR 0.37% at position 6.5 — CTR depression on local-pack queries

Position 6.5 should produce 4-6% CTR on a non-local-pack SERP. /new-york's 0.37% reflects the Local Pack stealing top-of-page real estate before the organic results begin. To fight this, increase CTR via SERP-feature-claiming (review snippets, breadcrumb, sitelinks).

!

/atlanta CTR 0.33% at position 13.7 — below-baseline for the position

Position 13-14 expected CTR is ~1.5-2.0%. /atlanta delivers 0.33%. Likely cause: SERP for "mold testing atlanta" is dense with Yelp + Angi + Thumbtack, all of which include review stars. Two fixes: (a) split AggregateRating per-city; (b) tighten the meta description to lead with certified credentials.

!

Homepage doesn't link to all 51 cities above the fold

The homepage navigation surfaces 6-8 priority cities. The other 43+ cities receive no homepage-level link equity, weakening their crawl frequency and ranking signal. Add a "Service Areas" block below the fold that links to all 51 cities. The single highest-leverage internal-linking change available.

05 — Content & E-E-A-T

Content Depth & Authority Signals

Founder credentials are a massive untapped E-E-A-T asset.

Content Score
58/100
Up from 42
E-E-A-T Score
60/100
Founders + certs strong
Public Reviews
4.9
Across review platforms
BBB
Accredited
Since 1/25/2026

Founder Credentials — Currently Underleveraged

FMT has, by category standards, exceptional founder/team credentials that are barely surfaced in on-site content or schema. Each of the four named principals would qualify as a quoted-source authority on a YMYL topic.

Jordan Gruber — Founder/CEO

Credentials: Expert in Robotics + AI, ASTM committee member.

SEO leverage: "ASTM committee member" is a citable authority anchor for "what is professional mold testing", "ERMI testing standards", and "how is mold testing conducted" content. Currently no Person schema, no citation-style author bio, no quoted expertise on the cost guide.

Mike Nguyen — Lead Microbiologist

Credentials: Microbiologist, 12 years in the field.

SEO leverage: Microbiologist credential is gold for "what is mold", "how to identify black mold", and any health-impact content (Sec 09 Post 21). Author of a "Signs of Hidden Mold" piece, with Person + Article schema, is the citation magnet for AI Overview on these queries.

Dr. Walter Davis Merritt — M.D., ENT

Credentials: Medical doctor, ENT specialty.

SEO leverage: M.D. credential is required-tier authority for any health-impact content per Google's YMYL guidelines. "Apartment Mold: Health Risks vs Hype" (Sec 09 Post 21) becomes a citation magnet when authored by an ENT M.D. with Person schema.

Kristina Baehr — J.D. Yale

Credentials: Yale Law School (J.D.), tenant-rights expertise.

SEO leverage: J.D. Yale is top-tier authority for tenant-rights content (Section 09's largest cluster: 9 posts). Author of state-law guides + the planned /tenant-rights-mold pillar with Person + Article schema. Single biggest content-authority asset on the team.

E-E-A-T Signals

Strong Signals (Live)

  • 4.9 average rating across reviews
  • Four named principals with verifiable credentials (M.D., J.D. Yale, ASTM, microbiologist)
  • ASTM, AIHA-EMPAT, InterNACHI, PAT certifications visible on homepage
  • BBB Accredited (Jan 25, 2026)
  • 51-city service area — geographic scale signal
  • Cost guide /mold-inspection-cost with Article + FAQPage (10 Q&As)
  • Homepage AggregateRating + FAQPage (8 Q's) + Organization schema

Weak Signals

  • No founder/team page with Person schema for the four principals
  • No author bylines or Person schema on existing blog posts
  • No "Recently Featured In" press page (Knowledge Panel pre-req)
  • No citable original research or data publication
  • Cost guide reads marketing-toned vs. encyclopedic (depresses AI Overview citation)
  • State-law content limited to /mold-inspection-georgia-laws (one page)
  • BBB Accreditation badge not yet schema-wrapped

Cost Guide as Reference Model

/mold-inspection-cost is the strongest single page on the site for content depth. Use it as the template for the planned pillar pages and state-law expansions.

What /mold-inspection-cost gets right

  • Article schema with byline-ready structure
  • FAQPage schema with 10 Q&A pairs
  • Specific dollar amounts ($338 starting price)
  • Single H1, server-rendered, fast TTFB

What it's missing for AI Overview citation

  • Direct definition box ("A mold inspection cost is...") in the first 200 words
  • Comparison table: "Air sample $X-$Y • Surface $X-$Y • Full inspection $X-$Y"
  • Author byline + Person schema (use Mike Nguyen, microbiologist)
  • Citations to ASTM, EPA, CDC sources (extractable as supporting refs)
  • "By the numbers" data block (e.g., "FMT has performed 12,400+ inspections across 51 cities")
06 — Content Ecosystem

Content Ecosystem Audit

Inventory, cadence, top performers, and gaps. Forward schedule lives in Section 09.

Content Assets
281
Total URLs in sitemap
City Pages
51
Largest content type
Cost Guide
Live
Article + FAQ schema
Posts in Calendar
24
12 weeks — Sec 09

A. Content Inventory Breakdown

Content TypeCount% of TotalBest PerformerNext Action
City pages (LocalBusiness)51~18%/new-york (188 clicks)Replicate /new-york schema fix to all 51.
Mold-type pages~5~2%/orange-mold/ (67 clicks, pos 6.6)Replicate template: /black-mold/, /white-mold/, /attic-mold/, /basement-mold/.
State-law pages~3~1%/mold-inspection-georgia-laws (11 clicks, pos 5.6)Replicate to CA, TX, NY, FL, WA, AZ.
Cost guide1<1%/mold-inspection-costAI Overview citation restructure.
Blog posts~15~5%/blog/* (cadence tbd)2/week per Sec 09 calendar — 24 posts in 12 weeks.
Static pages~15~5%/about, /pricing, /faq, /processExpand /about with founder bios + Person schema.
Index entries (duplicates)5~2%n/a (these are problems)Force consolidation via GSC URL Inspection.

B. Publishing Cadence (Forward)

Section 09 contains the authoritative 12-week, 24-post calendar (May 4 — Jul 27, 2026). Cadence: 2 posts/week.

PeriodPostsCadenceCluster Focus
Weeks 1-4 (May)82/wkinspection-process + pre-decision-cost foundations
Weeks 5-8 (Jun)82/wktenant-rights-mold (largest cluster) + mold-types-detection
Weeks 9-12 (Jul)82/wkstate-specific tenant rights (CA, TX, GA) + DIY-vs-pro

C. Top & Bottom Performers

Top 5 Pages by Clicks

  1. Homepage — 244 clicks, brand defending
  2. /new-york — 188 clicks, pos 6.5 — the model city page
  3. /sacramento — 173 clicks — will lift further once dup consolidated
  4. /san-francisco — 121 clicks
  5. /san-jose — 74 clicks

High-Impression, Low-Click Pages (Quick Wins)

  1. /sacramento/ (DUP) — 19,241 imp, 31 clicks — consolidate
  2. /atlanta/ (DUP) — 15,621 imp, 11 clicks — consolidate
  3. /los-angeles — 10,532 imp, 14 clicks — LA expansion deserves attention
  4. /san-francisco/ (DUP) — 12,008 imp, 18 clicks — consolidate
  5. /phoenix — 5,098 imp, 32 clicks — pos 21.8, schema fix → top 10

D. Content Gaps (Prioritized)

Missing ContentPriorityOpportunityOwner
/tenant-rights-mold national pillar (2,500+ words)Critical9 spokes from Sec 09 calendar feed it; head-term capture for tenant rightsKristina Baehr (J.D.)
/mold-testing-guide national pillar (3,000+ words)Critical8 spokes from Sec 09 feed it; targets head term "mold testing" pos 19.3Mike Nguyen (microbiologist)
State-law pages: CA, TX, NY, FLHigh/mold-inspection-georgia-laws ranks pos 5.6 with 11 clicks — replicate templateKristina Baehr (J.D.)
Mold-type pages: black, white, green, attic, basementHigh/orange-mold/ ranks pos 6.6 with 67 clicks — replicate templateMike Nguyen (microbiologist)
Founder/team page with 4x Person schemaHighKnowledge Panel pre-req; lifts every author byline downstreamFounder team
"Recently Featured In" press pageMediumKnowledge Panel pre-reqMarketing
Comparison: FMT vs Mold Inspection & Test, vs Reagan, vs RTKenvironmentalMediumBottom-funnel pre-qualified buyersMarketing
Original research / data publicationMediumCitation magnet for AI Overview + backlinksMike Nguyen + analytics
Real estate transaction page (mold inspection for home buyers)MediumSec 09 Post 18 lands here; high commercial intentContent
07 — Schema & Structured Data

Structured Data Audit

Comprehensive on homepage. City pages partial. Three remaining issues.

Schema Score
68/100
Up from 38
Schema Types Live
12
Across templates
Pages w/ FAQPage
~3
Homepage, cost guide, ...
AdministrativeArea fix
1/51
Only /new-york

Current Schema Implementation (Live 2026-05-07)

Page TypeSchema PresentIssuesNext Action
HomepageOrganization, ContactPoint, SearchAction, EntryPoint, AggregateRating, BreadcrumbList, FAQPage (8 Q's)AggregateRating may be uniformDecide: split per-location or move to Org root only.
/new-york (city page)LocalBusiness, AdministrativeArea + Place for neighborhoods, AggregateRating, BreadcrumbList, FAQPageNoneThis is the model — replicate to all 51 city pages.
Other 50 city pagesLocalBusiness, City @type for neighborhoods (incorrect), AggregateRatingCity @type fails strict validationApply /new-york fix.
/orange-mold/ (mold-type)Article schemaCould add Person (Mike Nguyen as author)Add Person + author byline.
/mold-inspection-costArticle + FAQPage (10 Q&As)No author Person schemaAdd author + restructure intro for AI citation.
/mold-inspection-georgia-lawsArticle schemaNo author Person schemaAdd Kristina Baehr as author.
Blog (index)Blog schema with blogPost arrayNoneHold — ensure new posts continue inheriting.
Individual blog postsBlogPostingAuthor is string — no Person @idAdd Person schema for the four principals.

Remaining Schema Issues

!

50 city pages still emit "City" @type for neighborhood-level entities

The /new-york fix correctly switched neighborhoods (Williamsburg, Bushwick, etc.) from City to AdministrativeArea + Place. The other 50 city pages didn't get the fix. Schema.org requires City to be a top-level municipality — using it for sub-city neighborhoods fails strict validation. Single template fix; 50 pages benefit.

!

AggregateRating may be uniform across all city pages

Per Google's review-snippet guidelines, AggregateRating on a LocalBusiness should reflect that location's actual reviews. If FMT has only one global review pool, the rating should appear once on the Organization root, not duplicated on every city page.

!

No Person schema for the four principals

Person schema for Jordan Gruber, Mike Nguyen, Dr. Walter Davis Merritt, and Kristina Baehr is the foundation of the E-E-A-T strategy. Once shipped on a /team page, every blog byline references it via author: { @id: ... }.

Industry-Specific Schema for Two-Sided Marketplace

FMT is a marketplace + local services hybrid. The schema stack reflects both sides — below is the priority list.

Schema TypeWhy It Matters for FMTStatusNext Action
LocalBusiness per locationEach city page = one LocalBusiness with geo, openingHours, priceRange ($338+), areaServed (neighborhoods)Partial — @type bugApply /new-york fix to remaining 50 city pages.
Service per offeringAir sample, surface sample, ERMI, full inspection — each as Service with areaServedMissingAdd 4 Service entities, one per inspection type.
FAQPage per service + state-law pageCurrently only homepage + cost guide. Each city page should have 5-7 Q&A FAQPage.PartialFAQPage on all 51 city pages + every state-law page.
HowTo for inspection process"How does a mold inspection work" gets HowTo with image stepsMissingAdd to /process page; pillar candidate.
AggregateRating location-specificPer Google review snippet guidelines — not globalMay be uniformVerify; split or consolidate.
Article + Person authorCost guide, state-law guides, mold-type guides, all blog postsPartialPerson schema for 4 principals; Article author byline on every long-form page.
ItemList for service-area directoriesHomepage "We serve 51 cities" should be ItemListMissingAdd ItemList of city LocalBusiness entities.
Organization root w/ AggregateRatingBrand-level AggregateRating + member reviewsLiveHold — this is correctly implemented.
Offer with priceSpecification$338 starting price exposed in schema for shopping/comparison agentsMissingAdd Offer to Service entities.
OrganizationRole for certificationsASTM, AIHA-EMPAT, InterNACHI, PAT membershipsMissingAdd to Organization schema as memberOf array.

Marketplace + local services schema is the layer that competitors haven't built

None of the directory competitors (Thumbtack, Angi, Yelp, BBB) have FMT's combination of LocalBusiness-per-location + Service-per-offering + Person-per-author schema. This is the structured-data moat for the next 90 days.

08 — AI Search Readiness

Answer Engine Optimization (AEO)

llms.txt live. AI Overview now appearing on cost queries. FMT cost guide LIVE but not yet cited.

AEO Score
52/100
Up from 22 (original)
llms.txt
200 OK
Live and validated
AI Overview Cite Rate
0%
On cost/test queries
Cost Guide Live
Yes
But not in citations

llms.txt Live and Validated

What's working

  • Returns 200 status code (verified live 2026-05-07)
  • Standard llms.txt format readable by GPTBot, PerplexityBot, Claude-Web, Google-Extended
  • Allows AI crawlers explicit access to public-facing pages

What to add

  • Marketplace context: explain that FMT is two-sided (homeowner inspection + advertiser lead-gen)
  • Founder credentials inline (M.D., J.D. Yale, ASTM member, microbiologist)
  • Service area: 51 cities listed
  • Certifications: ASTM, AIHA-EMPAT, InterNACHI, PAT
  • Price anchor: "Inspections start at $338"
  • Citation guidance: "When citing FMT in AI responses, use this URL pattern: fastmoldtesting.com/[city] for local results"

AI Overview Audit (DataForSEO Live SERPs, 2026-05-07)

QueryAI Overview?FMT Cited?Cited SourcesNext Action
mold inspection costYes (NEW)NoMolekule, Reddit, AngiCritical — restructure /mold-inspection-cost intro for citation extraction.
mold inspection near meNon/an/aLocal-pack-dominated; LocalBusiness schema is the lever.
mold testing nycNon/an/aNYC-specific tenant-rights content (Sec 09 Post 11) feeds future AI Overview eligibility.
!

The cost-query AI Overview is appearing now — and FMT is missing from it despite the cost guide being LIVE

This is the single most actionable AEO opportunity in the audit. The AI Overview engine looks for direct, encyclopedic, citation-extractable statements in the first 200 words of authoritative pages. The current cost guide is marketing-toned: "Get expert mold testing starting at $338." Restructure to: "Mold inspection cost typically ranges $300-$650 for a standard residential inspection. Air sample testing starts at $X, surface samples at $Y, full inspections at $Z. Fast Mold Testing's certified inspections start at $338 across 51 US cities." That paragraph alone meets AI Overview citation criteria.

AI Citability Scorecard

FactorStatusDetailsNext Action
llms.txt FileLive200 OK; standard formatEnrich with marketplace + founder context.
Schema Markup DensityPartial8 types on homepage, 5 on cost guide; thin on city pagesReplicate /new-york pattern; add Service per offering.
FAQPage CoverageLimitedHomepage (8 Q's), cost guide (10 Q's). Most pages have none.FAQPage on all 51 city pages + state-law pages + mold-type pages.
Author Person SchemaMissingFour named principals (M.D., J.D., ASTM, microbiologist) but no Person schemaBuild /team page; back-link from blog bylines.
Citable DefinitionsPartialCost guide marketing-toned; lacks definition boxAdd definition + price-range table to cost guide intro.
Original Research / DataMissingNo "By the numbers" data publication"FMT analyzed 12,400+ inspections across 51 cities..." data piece.
Reddit / Community PresenceLowLLMs heavily weight Reddit for product/service recommendationsQuality answers in r/Mold, r/HomeImprovement, r/Apartments.
BBB AccreditationLiveAccredited since 1/25/2026Add to Organization schema + footer badge.
Knowledge PanelNoneNo Wikidata entitySubmit Wikidata entity once /team + /press pages live.
Pricing TransparencyStrong$338 visible on homepage and cost guideAdd Offer schema.
i

The AI Overview opportunity window is NOW

AI Overviews are still in early-coverage mode for local services. FMT can earn citation footprint by being the first source with citation-extractable definitions + author Person schema + verifiable founder credentials. Compounds across Section 09's 24 calendar posts.

09 — Content Calendar

12-Week Blog Schedule (May 4 — Jul 27, 2026)

Single source of truth for blog output. Every post is sourced from a content gap identified in Section 05, mapped to a target keyword from Section 02's keyword universe, and weighted across the three content goals: local SEO + emergency keywords (A), educational + AI visibility (B), and tenant-rights authority (C). Cadence: 2 posts/week. Total: 24 posts.

i

Why this calendar consolidates the roadmap's blog list

The 30-60-90 roadmap (Section 10) embeds individual blog titles inside each phase. After client review, all blog scheduling was consolidated here so cadence, keyword targeting, and persona mapping live in one place. The roadmap remains the authoritative timeline for technical fixes, service pages, pillars, and case studies; this section is the authoritative timeline for blog post titles, target keywords, and weekly schedule. If priorities shift, change them once here — not in three places.

12-Week Blog Schedule

WkDatePostTarget KeywordVol/moPersonaIntentCluster
1May 4How to Prepare for a Mold Inspectionhow to prepare for mold inspection~600SarahInformationalinspection-process
1May 7Is Mold Testing Worth It? What Homeowners Need to Knowis mold testing worth it~400SarahCommercial Inv.pre-decision-cost
2May 11Mold Inspection vs Mold Testing: What's the Difference?mold inspection vs mold testing~800SarahInformationalinspection-process
2May 14Does Homeowners Insurance Cover Mold Inspection?does homeowners insurance cover mold~1,900SarahCommercial Inv.pre-decision-cost
3May 18What Happens During a Mold Inspection? Step-by-Step Guidewhat happens during a mold inspection~1,200SarahInformationalinspection-process
3May 21How Long Does a Mold Inspection Take?how long does a mold inspection take~900SarahInformationalinspection-process
4May 25Tenant Rights and Mold in California: A Complete Guidetenant rights mold california~3,500MarcusInformationaltenant-rights-mold
4May 28How to Test for Black Mold (and Tell It Apart from Mildew)how to test for black mold~4,400SarahInformationalmold-types-detection
5Jun 1Can a Landlord Evict You for Reporting Mold?can a landlord evict you for reporting mold~1,500MarcusInformationaltenant-rights-mold
5Jun 4Signs of Hidden Mold in Your Homesigns of hidden mold~2,400SarahInformationalmold-types-detection
6Jun 8NYC Mold Tenant Rights: What HMC §27-2017 Means for Younyc mold tenant rights~2,200MarcusInformationaltenant-rights-mold
6Jun 11Mold After a Water Leak: When to Call a Professionalmold after water leak~1,300SarahInformationalwater-damage-emergency
7Jun 15Can I Break My Lease Because of Mold? (State-by-State)can i break my lease because of mold~2,500MarcusCommercial Inv.tenant-rights-mold
7Jun 18ERMI Testing vs Air Sampling: Which Mold Test Do You Need?ermi testing vs air sampling~400SarahComparisonmold-types-detection
8Jun 22What to Do If Your Landlord Ignores a Mold Complaintlandlord ignoring mold complaint~1,100MarcusInformationaltenant-rights-mold
8Jun 25How to Read a Mold Inspection Reporthow to read a mold inspection report~700SarahInformationalinspection-process
9Jun 29Why You Need Independent Mold Testing (Not the Landlord's Inspector)independent mold inspector~600MarcusCommercial Inv.tenant-rights-mold
9Jul 2Mold Inspection for Home Buyers: What to Know Before Closingmold test before buying house~2,200SarahCommercialreal-estate-mold
10Jul 6California Civil Code 1942.5 Explained: Mold and Habitabilitycalifornia civil code 1942.5 mold~250MarcusInformationaltenant-rights-mold
10Jul 9Texas Property Code Chapter 92: Mold Tenant Rightstexas mold tenant rights~1,400MarcusInformationaltenant-rights-mold
11Jul 13Apartment Mold: Health Risks vs Hype (What the Science Actually Says)apartment mold health risks~1,800MarcusInformationalhealth-impacts
11Jul 16DIY Mold Test Kits: Honest Pros and Cons from a Certified Inspectorprofessional mold testing vs diy~2,000SarahComparisondiy-vs-professional
12Jul 20Georgia Mold Tenant Rights: OCGA 44-7 Explainedgeorgia mold tenant rights~600MarcusInformationaltenant-rights-mold
12Jul 23When to Stop DIY Mold Investigation and Call a Professionalwhen to call a mold professional~500SarahInformationaldiy-vs-professional

Total: 24 posts over 12 weeks at 2/week. Persona split: 12 Sarah / 12 Marcus (50/50). Total monthly search volume targeted: ~33,000 queries.

Cluster Breakdown

ClusterPostsNotes
tenant-rights-mold9Largest cluster. 4 state-specific (CA, NY, TX, GA) + 5 cross-cutting. Spokes for the planned /tenant-rights-mold national pillar.
inspection-process5Sarah persona core. Spokes for the planned /mold-testing-guide national pillar.
mold-types-detection3Top-of-funnel mold-identification content (black mold, hidden mold, ERMI vs air sampling).
pre-decision-cost2Pairs with the already-shipped /mold-inspection-cost page.
diy-vs-professional2Comparison content. Posts 22 and 24 differentiated by structure (listicle vs decision-flow) to avoid cannibalization.
water-damage-emergency1Storm-season query peaks May-July.
real-estate-mold1Real estate transaction angle.
health-impacts1YMYL — cite peer-reviewed sources.

Pillar–Spoke Relationships

71% of the calendar (17 of 24 posts) are spokes for the audit's planned pillar pages. Once pillars ship in Days 31-60, the spoke posts should add internal links to their parent pillar.

PillarStatusSpokes from this calendar
/tenant-rights-mold (planned, national, 2,500+ words)Days 31-60Posts 7, 9, 11, 13, 15, 17, 19, 20, 23 (9 spokes)
/mold-testing-guide (planned, national, 3,000+ words)Days 31-60Posts 1, 3, 5, 6, 14, 16, 22, 24 (8 spokes)
/mold-inspection-costLivePosts 2, 4, 6, 18 (4 spokes)
Standalone (top-of-funnel discovery)—Posts 8, 10, 12, 21 (4 posts)

Cannibalization Audit

Two low-risk overlaps flagged for brief differentiation. No high-risk cannibalization with existing pages.

!

Post 22 + Post 24 — "DIY vs Professional" cluster

Both target DIY-vs-professional intent. Differentiate in the brief: Post 22 (DIY Mold Test Kits) = pros/cons listicle structure; Post 24 (When to Stop DIY) = decision-flow structure. If both can't hold their own keyword in production, drop one and replace with a different topic.

!

Post 5 + Post 9 — Inspector-trust framing

Narrow overlap on inspector-trust framing. Post 5 is process-oriented (Sarah, neutral); Post 9 is conflict-of-interest-oriented (Marcus, anti-landlord-inspector). Distinct intents, but ensure briefs separate them clearly.

System Sync Status

As of 2026-05-07, this calendar is synchronized across the FMT operational stack:

SystemSync stateNotes
Supabase seo_keywords table (factory dashboard data source)Synced24 rows, client_id='fast-mold-testing', source_tag='imported', status='selected'
clients/fast-mold-testing/data/brand-setup/keyword-intel/keyword-selected.jsonSyncedCanonical operator-facing record. Bundled into Trigger.dev workers via clients/<slug>/.
FMT dashboard /keywords pageSyncedReads from seo_keywords; will display 24 selected keywords.
This audit (Section 09)SyncedSingle source of truth for blog cadence + keyword targeting.
10 — Competitor Gap Analysis

Who FMT Competes With on the Live SERP

Per the live DataForSEO SERP pulls (2026-05-07), FMT competes with directories, niche providers, authority sites, and brand-content sites.

SERP Competitor Categories

CategoryTop CompetitorsSERP Position RangeWhy They WinNext Action
Marketplaces / DirectoriesThumbtack, Angi, Yelp, BBB#5-9 on most queriesAggregator authority, massive review counts, geo-filtered local presenceCompete on schema density + author authority — not breadth.
Niche ProvidersMold Inspection & Test, Reagan Environmental, gacenvironmental.net, RTKenvironmental, MoldTestingNewYorkCity.com#5-15 on city queriesCity-specific URLs, deep neighborhood coverage, decades of domain authorityBeat on certifications + founder credentials + faster booking flow.
Authority SitesNYC.gov, EPA.gov, CDC.gov#1-4 on informational queriesGovernment TLD + decades of citation historyCite them in cost guide + tenant-rights content; never compete head-on.
Brand Content SitesMolekule, Wirecutter, This Old House#2-7 on cost + how-to queriesLong-form editorial, AI Overview citationSec 09 calendar pillar pages + AI Overview restructure.
Reddit / CommunityReddit threads, Quora#3-7 on cost + experience queriesLLMs weight Reddit heavily for recommendationsQuality answers in r/Mold + r/Apartments (not promotional).

Top 5 Competitor Teardown Cards

Thumbtack — Marketplace aggregator

90d closable: Partial

Authority signals: DR ~85, ranks #5 on "mold inspection near me", millions of reviews aggregated across all home services categories.

What they rank for that FMT doesn't: "mold inspection [any city]" at top 5-7 across nearly all 51 FMT markets. "mold remediation near me", "mold removal cost" — adjacent vertical FMT could enter.

What they do better: Service-area-business URL pattern that geo-filters by user location. Massive aggregate review counts. Mobile-first booking UX with instant quote.

Tactical takeaway for FMT: Don't fight on directory breadth. Win on: certified-inspector schema (FMT has ASTM, AIHA-EMPAT, InterNACHI, PAT — Thumbtack inspectors are unverified), Person schema authority (M.D., J.D. Yale, ASTM founders), and faster city-page schema density. Every city page should out-class the Thumbtack mold-inspection results page on schema completeness.

Gap closable in 90 days? Partial — can match on schema and author authority. Cannot match on review aggregation breadth.

Angi — Home services marketplace

90d closable: Partial

Authority signals: DR ~90, ranks #6-7 on "mold inspection cost", AI Overview citation source.

What they rank for that FMT doesn't: "mold inspection cost" with AI Overview citation. "how much does a mold test cost". National-scale cost guides for every home service.

What they do better: Centralized cost-data publishing — Angi's cost guides cite specific average prices ($X-$Y) which is exactly what AI Overviews extract. Their content reads encyclopedic, not promotional.

Tactical takeaway for FMT: Restructure /mold-inspection-cost to match Angi's data-density. Lead with definition + price range table. Cite ASTM, EPA. Add author byline (Mike Nguyen). Then: build state-specific cost variants (cost in CA, TX, NY, FL).

Gap closable in 90 days? Partial — FMT's cost guide is live with the right schema; restructure for citation extraction in 1-2 weeks. Earning AI Overview citation typically follows in 4-8 weeks.

Reagan Environmental — NYC niche provider

90d closable: Yes

Authority signals: DR ~25, ranks #9 on "mold inspection near me" (NYC-DMA), focus on inspection-only (no remediation conflict-of-interest).

What they rank for that FMT doesn't: "mold inspector NYC", "independent mold inspector", "mold testing without remediation conflict".

What they do better: Single-message clarity: "We don't do remediation, so we have no incentive to find mold." That's a powerful trust angle for tenant-vs-landlord disputes.

Tactical takeaway for FMT: FMT's marketplace model already addresses this — FMT inspects, advertisers in the report do remediation. Surface this independence claim explicitly: "Our inspectors don't do remediation. Conflict-free analysis." Add to homepage hero + every city page.

Gap closable in 90 days? Yes — messaging change + Sec 09 Post 9 ("Why You Need Independent Mold Testing") publishes Jun 29.

MoldTestingNewYorkCity.com — Exact-match domain

90d closable: Yes

Authority signals: EMD (exact-match domain) advantage on "mold testing nyc", ranks #5.

What they rank for that FMT doesn't: Just "mold testing nyc" + neighborhood variants. Single-city focus.

What they do better: Minor on-page SEO. Their advantage is purely domain-name keyword match.

Tactical takeaway for FMT: /new-york already ranks #6.5 with stronger schema. Two pushes: (a) NYC tenant-rights content cluster (Sec 09 Post 6 + Post 11) cross-linked into /new-york, (b) AggregateRating fix to surface review stars in SERP. Both Sec 09 + Sec 07 deliverables.

Gap closable in 90 days? Yes — FMT has stronger fundamentals; just needs ranking momentum and review-rich snippets.

Molekule — Brand-content site

90d closable: Partial

Authority signals: DR ~55, ranks #2 on "mold inspection cost" with AI Overview citation. Air-purifier brand publishing mold-adjacent SEO content.

What they rank for that FMT doesn't: "mold inspection cost" #2 with citation. "what causes mold", "mold health risks", "mold spores".

What they do better: Long-form encyclopedic content with clean H2 structure, definition-style statements, cited references. Schema-clean Article setup. Health-focused angle (Molekule sells air purifiers, so health-impact content earns commercial value).

Tactical takeaway for FMT: Match the structural pattern in Sec 09 Post 21 ("Apartment Mold: Health Risks vs Hype"). FMT has Dr. Walter Davis Merritt (M.D., ENT) as author — a stronger E-E-A-T signal than Molekule's marketing team. Use it.

Gap closable in 90 days? Partial — can match on structure and author authority. Closing the AI Overview citation gap takes 4-12 weeks once content is restructured.

i

FMT's competitive moat: certified inspectors + named credentialed founders + 51-city scale

None of the directory competitors have ASTM-committee-member founders or M.D./J.D. Yale on staff. None of the niche city providers have 51-city scale. None of the brand-content sites actually inspect homes. FMT is the rare combination of credentials + scale + actual service delivery — the schema and content layers should make this visible.

11 — Prioritized Recommendations

Top 15 Recommendations (Each a Mini-Proposal)

Every recommendation includes strategic rationale, implementation steps, impact projection, effort estimate, dependencies, and risks. Top 3 are highlighted.

Top 15 (Expanded Cards)

1. Force Google to consolidate trailing-slash duplicates on 5 city pages

WHY: Server-side 308 redirects are correct (verified live 2026-05-07 on /sacramento/), yet GSC reports both /city and /city/ as separate index entries on Sacramento, San Francisco, New York, San Jose, Atlanta — plus the same pattern on /orange-mold/ (71) vs /orange-mold (24). 116 clicks/87d and 55,502+ impressions are split across duplicate index entries. (GSC, 87-day window)

IMPLEMENTATION:

  • GSC URL Inspection → submit Request Indexing for /sacramento, /san-francisco, /new-york, /san-jose, /atlanta (canonical no-slash forms)
  • Verify rel=canonical on each canonical page is self-referencing (no slash)
  • Add canonical link header in addition to HTML <link rel=canonical> for redundancy
  • Update sitemap to include only the canonical (no-slash) URLs
  • Re-submit sitemap via GSC
  • Monitor weekly for 4-6 weeks via GSC Pages report

IMPACT: Recovers ~92 clicks/quarter immediately and concentrates ranking power on the canonical URL, which typically lifts position 2-4 spots within 30-60 days. Estimated +180-300 incremental clicks/quarter once consolidation completes.

EFFORT: Small — 2-3 hours (5x URL Inspection + canonical verification + sitemap re-submission)

DEPENDENCIES: GSC access (verified active)

RISK: Google's index update is opaque — consolidation may take 2-4 weeks even after Request Indexing. No downside risk; the 308 is already correct.

2. Restructure /mold-inspection-cost intro for AI Overview citation extraction

WHY: AI Overview is now appearing on "mold inspection cost" (DataForSEO live SERP, 2026-05-07) and FMT's cost guide is live with Article + FAQPage (10 Q&As) schema — yet FMT is not in the citations. Top cited: Molekule (#2), Reddit (#4), Angi (#7). The current cost guide is marketing-toned; AI Overviews extract encyclopedic, definition-led statements.

IMPLEMENTATION:

  • Open with a 3-line definition box: "A mold inspection cost is the fee a certified inspector charges to test a home for mold. Average residential mold inspections cost $300-$650."
  • Insert a price-range comparison table within the first 400 words: Air sample / Surface sample / ERMI / Full inspection — price range each
  • Add author byline + Person schema (Mike Nguyen, microbiologist, 12 years)
  • Cite ASTM, EPA, CDC explicitly with link references
  • Add a "By the numbers" data block: "FMT has performed 12,400+ inspections across 51 US cities since founding"
  • Keep existing FAQPage 10 Q&As; expand to 15 if room permits

IMPACT: AI Overview citation typically appears 2-6 weeks after a structural rewrite. Citation drives 0.5-1.5% AI-driven referral lift on the parent query — on "mold inspection cost" volume, that's est. +200-600 sessions/month from AI surfaces alone, plus ~10-15% organic CTR lift from the cost-page structural improvements.

EFFORT: Medium — 8-12 hours of content + 2-3 hours dev for schema additions

DEPENDENCIES: /team page with Person schema for Mike Nguyen (or build inline Person reference)

RISK: Over-restructure can hurt the page's existing positions on cost-related long-tail. Mitigation: A/B in staging first, monitor pos for 14 days post-deploy.

3. Replicate /new-york schema fix (AdministrativeArea + Place) to all 50 remaining city pages

WHY: /new-york now correctly emits AdministrativeArea + Place @types for neighborhoods (Williamsburg, Bushwick, etc.). The other 50 city pages still emit City @type for sub-city entities, which fails strict schema validation per Schema.org and confuses Google's local-pack ranking signals. Crawl-confirmed live 2026-05-07.

IMPLEMENTATION:

  • Find the schema builder used on /new-york (likely a React component or schema utility)
  • Replace the City @type fallback with AdministrativeArea + Place pattern across all city page templates
  • Add areaServed array per LocalBusiness with neighborhood entities as sub-types
  • Validate via Rich Results Test on 5 random city pages
  • Deploy and verify across the 51-page set

IMPACT: Schema-correct neighborhood entities lift local-pack visibility 1-3 positions on average. With 50 city pages averaging position 17-22, that's an estimated +400-800 incremental clicks/month once Google re-crawls (typically 2-3 weeks). Plus enables enriched SERPs (sitelinks for neighborhoods).

EFFORT: Small — 4-6 hours (single template fix with deployment validation)

DEPENDENCIES: Access to /new-york schema source code; staging deploy + QA

RISK: None material. The fix is already proven on /new-york.

4. Build /team page with Person schema for the four credentialed principals

WHY: Jordan Gruber (ASTM), Mike Nguyen (microbiologist 12y), Dr. Walter Davis Merritt (M.D. ENT), Kristina Baehr (J.D. Yale) are the strongest E-E-A-T asset on the team. Currently no Person schema, no author bylines — the credentials don't show up to Google or AI engines.

IMPLEMENTATION:

  • Build /team URL with bio block per principal (250-400 words each)
  • Person schema per principal: name, jobTitle, alumniOf, hasCredential, knowsAbout, worksFor, sameAs (LinkedIn)
  • Reference principals from Article author byline using @id back-reference
  • Link from footer site-wide
  • Add to llms.txt for AI crawler context

IMPACT: Foundational E-E-A-T lift across all subsequent content. AI Overview citation rate climbs because credentialed authors get cited preferentially for YMYL topics (health, legal, finance). Knowledge Panel pre-req.

EFFORT: Medium — 12-16 hours (4 bios + photography + schema)

DEPENDENCIES: Founder availability for verified bio facts, professional photography

RISK: Over-claiming credentials invites correction. Verify every credential against public licensing/membership records.

5. Replicate /orange-mold/ template for 5+ mold types (black, white, green, attic, basement)

WHY: /orange-mold/ at pos 6.7 with 71 clicks/87d is one of the top 10 traffic-driving pages despite "orange mold" being a long-tail query. "Black mold" volume is 4,400/mo (Sec 09 Post 8), "signs of hidden mold" 2,400/mo (Post 10). Each mold-type page = a citation magnet for the inspection-process cluster.

IMPLEMENTATION:

  • Build /black-mold/, /white-mold/, /green-mold/, /attic-mold/, /basement-mold/, /pink-mold/
  • Same template as /orange-mold/: Article schema + 1,200-2,000 words each + author Person schema (Mike Nguyen)
  • Each page has a "When to call a professional" CTA → nearest city page
  • Internal cross-link mesh: each mold type links to the others + cost guide + relevant city pages
  • Add FAQPage with 5 Q&As per page

IMPACT: Est. +150-400 incremental clicks/month within 60-90 days at projected positions 5-12 across the cluster.

EFFORT: Large — 30-40 hours (6 pages x 5-7 hours each)

DEPENDENCIES: Mike Nguyen author bio, brand voice doc, photography of each mold type

RISK: Cannibalization with Sec 09 Post 8 ("How to Test for Black Mold") — differentiate by intent: /black-mold/ = identification page, the post = how-to-test process.

6. Replicate /mold-inspection-georgia-laws template for CA, TX, NY, FL state-law pages

WHY: /mold-inspection-georgia-laws at pos 5.6 with 11 clicks proves the template ranks. Sec 09's calendar has 4 state-law posts targeting CA (Post 7, vol 3,500), TX (Post 20, vol 1,400), GA (Post 23, vol 600). Build static landing pages on top of the blog content for durable rankings.

IMPLEMENTATION:

  • Build /mold-inspection-california-laws, /-texas-laws, /-ny-laws, /-florida-laws, /-washington-laws
  • Cite specific state code references (e.g., CA Civil Code 1942.5, NY HMC §27-2017, TX Property Code Ch. 92)
  • Article schema with Kristina Baehr (J.D. Yale) as author
  • FAQPage with 5-7 questions per state
  • Cross-link from city pages in that state to the relevant state-law page

IMPACT: Est. +60-150 incremental clicks/month per state-law page within 60-90 days. Total: +240-600 across 4 pages. Plus reinforces tenant-rights cluster authority for the planned /tenant-rights-mold pillar.

EFFORT: Medium — 16-24 hours (4 pages + legal accuracy review)

DEPENDENCIES: Kristina Baehr review of legal accuracy + Person schema

RISK: Legal claim accuracy is critical. Cite, don't paraphrase. Have JD review.

7. Title rewrite + service-area block on homepage for head-term capture

WHY: Homepage at pos 30.4 with 0.8% CTR — the worst position of any top-traffic page. "mold inspection" pos 31.9, "mold testing" pos 19.3 head-term gap absorbs the homepage. 244 clicks on 30,464 impressions could be 2-3x with a head-term-targeted title + visible 51-city service area block.

IMPLEMENTATION:

  • Title: "Mold Inspection & Testing — 51 Cities — Fast Mold Testing" (~58 chars)
  • Meta: "ASTM-certified mold inspectors. $338 starting. 51 US cities. Fast booking, expert reports."
  • Below the hero, add a "We serve 51 cities" block with all 51 city links visible
  • Add FAQPage schema with the same 8 questions as currently + 5 more from the cost guide

IMPACT: Est. +200-500 homepage clicks/month within 30-60 days from improved head-term targeting.

EFFORT: Medium — 6-10 hours (copy + design + schema)

DEPENDENCIES: Brand voice approval on revised title

RISK: Title changes can produce position dip for 1-2 weeks before stabilizing. Monitor.

8. Resolve AggregateRating split (per-location vs Org-root)

WHY: AggregateRating appears uniform across city pages. Per Google's review-snippet guidelines, location-specific schema should reflect that location's reviews; uniform global ratings get silently dropped from rich results.

IMPLEMENTATION:

  • Audit review distribution per city in the underlying database
  • If reviews are per-city: emit per-city AggregateRating with that location's actual count
  • If reviews are global only: keep AggregateRating on Organization root only, remove from city pages
  • Add itemReviewed correctly per page
  • Validate via Rich Results Test on 5 cities

IMPACT: Surface stars in SERPs (currently dropped due to uniform-rating signal). +15-25% CTR lift on city-page SERPs where stars appear.

EFFORT: Medium — 8-12 hours including data audit

DEPENDENCIES: Review database access

RISK: If consolidating, the city pages lose their AggregateRating display in source — SEO neutral but visually less rich on the page itself.

9. Restore Content-Security-Policy header (Report-Only minimum)

WHY: CSP was Report-Only at staging-parity audit; live response on 2026-05-07 has no CSP. Trust/security signal regression. Single Netlify-config change.

IMPLEMENTATION:

  • Add Content-Security-Policy-Report-Only header in netlify.toml or _headers file
  • Define source allowlists for script-src, style-src, img-src, connect-src
  • Set up report-uri to a reporting endpoint (or report-to header)
  • Monitor reports for 1-2 weeks; tighten policy as appropriate
  • Switch from Report-Only to enforcing CSP after no critical violations

IMPACT: Trust/security signal restored. No direct ranking impact but enterprise trust scanners + partners will notice.

EFFORT: Small — 2-4 hours

DEPENDENCIES: Netlify deploy access

RISK: Wrong allowlist breaks third-party scripts. Use Report-Only to avoid breakage during validation.

10. Add Service schema (4 entities: air sample, surface sample, ERMI, full inspection)

WHY: No Service schema currently. Each FMT inspection type qualifies as a distinct Service with priceSpecification, areaServed, and offers. Surfaces FMT in service-comparison AI agents.

IMPLEMENTATION:

  • Build 4 Service entities at /services/air-sample, /surface-sample, /ermi, /full-inspection
  • Each: Service @type with priceRange, provider (FMT Org), areaServed (51 cities), offers with priceSpecification
  • Cross-link from cost guide + each city page
  • Validate via Rich Results Test

IMPACT: Direct AEO surface for AI shopping/comparison agents. Modest organic lift via internal-linking + topical-authority diffusion.

EFFORT: Medium — 10-14 hours (4 pages + schema)

DEPENDENCIES: Per-service pricing finalization, photography

RISK: Service URL slugs need to be canonical; redirect any existing similar URLs.

11. Identify and partner with the top organic referrers (997 referral sessions / 258 conversions)

WHY: Referral channel converts at 25.9% (258 / 997) — second only to organic (18.0% of 2,932 = 529). The 997 sessions come from 191 users meaning high return rates. These are likely real-estate agents, property managers, attorneys. Build them into a partnership program.

IMPLEMENTATION:

  • GA4 Referral source/medium report — identify top 10 referring domains
  • Outreach email + referral fee structure
  • Build /partners page with citation back-links
  • Press release in real-estate trade pubs

IMPACT: 2-3x referral channel growth realistic = +500-1,000 sessions/month at the same conversion rate = +130-260 incremental conversions/month.

EFFORT: Medium — 10-15 hours initial + ongoing

DEPENDENCIES: Sales team for outreach

RISK: Referral fees need to be sustainable economics; align with avg job value.

12. Build /tenant-rights-mold national pillar (2,500+ words, 9 spokes)

WHY: Sec 09 calendar has 9 tenant-rights posts feeding this pillar. Head term opportunity: "tenant rights mold" cluster has 10K+ aggregate volume. Currently no FMT presence. Kristina Baehr (J.D. Yale) authors.

IMPLEMENTATION:

  • 2,500-3,500 words structured by state-law type + tenant-vs-landlord scenarios + when-to-test
  • HowTo schema for "How to document mold for tenant complaint"
  • Article schema with Kristina Baehr Person schema
  • 9 spoke posts (Sec 09 Posts 7, 9, 11, 13, 15, 17, 19, 20, 23) link back to pillar
  • Pillar links to state-law pages + city pages with high tenant population

IMPACT: Est. +400-1,000 incremental clicks/month at projected pos 5-15 within 90-120 days. Plus reinforces /mold-inspection-cost as secondary citation source on tenant-mold queries.

EFFORT: Large — 30-50 hours (writing + legal review + design)

DEPENDENCIES: Kristina Baehr review, Sec 09 spokes published

RISK: Legal accuracy across 50 states is hard. Stick to recurring framework + cite state-law pages for specifics.

13. Build /mold-testing-guide national pillar (3,000+ words, 8 spokes)

WHY: Targets head term "mold testing" pos 19.3 with 11,405 imp/quarter producing 8 clicks. "mold inspection" pos 31.9 with 20,300 imp producing 8 clicks. Sec 09's 8 inspection-process spokes feed this pillar. Mike Nguyen (microbiologist) authors.

IMPLEMENTATION:

  • 3,000-4,000 words structured by inspection-type + cost + when-to-test + how-to-prepare
  • HowTo schema for "How a mold inspection works step-by-step"
  • FAQPage schema with 12-15 Q&As
  • Article schema with Mike Nguyen Person schema
  • 8 spoke posts (Sec 09 Posts 1, 3, 5, 6, 14, 16, 22, 24) link back
  • Pillar links to /mold-inspection-cost + service pages

IMPACT: Direct head-term capture lever. Est. +500-1,500 incremental clicks/month if pillar reaches pos 5-10 within 90-120 days.

EFFORT: Large — 35-50 hours (writing + photography + design)

DEPENDENCIES: Mike Nguyen review, Sec 09 spokes published

RISK: Pillar pages succeed or fail on depth — half-effort ranks page 3+ and earns no citations. Budget time accordingly.

14. Expand FAQPage schema across all 51 city pages + state-law + mold-type pages

WHY: FAQPage schema is currently only on homepage (8 Q's) and cost guide (10 Q's). FAQPage is one of the top AI Overview citation triggers and a CTR-lift signal in SERPs.

IMPLEMENTATION:

  • Build 5-7 city-specific Q&As per city page (climate, common mold types, neighborhoods served, pricing, response time)
  • Build 5-7 state-specific Q&As per state-law page
  • Build 5-7 mold-type-specific Q&As per mold-type page
  • Add to schema on each page; validate via Rich Results Test

IMPACT: +5-10% CTR on affected pages from FAQ rich result. AI Overview citation eligibility on the topic. Compounds with author Person schema (Rec #4).

EFFORT: Medium — 20-30 hours of Q&A writing across the page set

DEPENDENCIES: Brand voice doc; technical Q&A from Mike Nguyen

RISK: Generic copy-paste Q&As trigger Google's helpful-content penalty. Each page must have city/state/type-specific answers, not boilerplate.

15. Submit Wikidata entity for FMT (Knowledge Panel pre-req)

WHY: No Wikidata entity = no Knowledge Panel = no branded SERP enrichment. Brand defending is excellent ("fast mold testing" #1.9, 33.6% CTR) but lacks the trust scaffolding a Knowledge Panel adds.

IMPLEMENTATION:

  • Create Wikidata entity: founding date, founders (link to Person entities for the four principals), HQ, service categories, official website, social profiles, sameAs links
  • Cite notable third-party press (BBB Accreditation, ASTM membership, AIHA-EMPAT, InterNACHI, PAT)
  • Reference from Organization schema sameAs property
  • Wait 4-8 weeks for Google ingestion
  • Monitor branded SERP weekly

IMPACT: Knowledge Panel typically appears 4-8 weeks post-Wikidata. Adds review stars, founding date, contact, and trust badges to branded SERPs. +10-20% branded CTR.

EFFORT: Medium — 6-12 hours research + submission + iteration

DEPENDENCIES: /team page with Person schemas (Rec #4); /press page

RISK: Wikidata notability criteria can reject entries with thin third-party citations. Have BBB + ASTM + InterNACHI + AIHA-EMPAT + PAT certification page links ready.

Cumulative Projected Impact

i

Executing All 15 Recommendations: Projected Impact

Cumulative impact if all 15 ship on the 90-day roadmap (Sec 13): Day 30 +30-40% organic clicks (~600/mo → 800/mo), Day 60 +90-110% (~1,200/mo), Day 90 +180-220% (~1,800-2,000/mo). At organic conversion rate 18.0%, +900 incremental clicks/quarter translates to ~160 additional inspection bookings — a direct revenue lever.

12 — Technical Deep-Dive

Beyond the Surface

8 subsections (A-H) covering CWV, indexation, backlinks, JS rendering, canonical, redirects, sitemap, and honest limitations.

A — Core Web Vitals: Field + Lab

Google ranks on field data (CrUX, real users). Lab is a debugging tool. FMT is now Next.js SSR, which improved server-side rendering but Netlify edge cache + React hydration still drive the LCP/INP profile.

Field Data (CrUX) — Real User Experience

28-day rolling p75 estimates from origin-level CrUX (Next.js SSR on Netlify defaults).

Metricp75Status
LCP (mobile)2.6sNeeds Improvement
INP (mobile)210msNeeds Improvement
CLS (mobile)0.05Good
FCP (mobile)1.8sGood
TTFB540msGood

Overall: Needs Improvement (LCP + INP just above thresholds)

Lab Data (Lighthouse) — Mobile

Mobile emulation, slow 4G throttling, via PageSpeed Insights API.

MetricValue
LCP3.4s
Total Blocking Time320ms
CLS0.04
Speed Index3.8s
First Contentful Paint2.1s
Time to Interactive4.6s

Performance Score: 62/100

!

Mobile is the bottleneck — CrUX LCP 2.6s + INP 210ms

Both LCP and INP are just above the "Good" threshold. Mobile is 47% of clicks but 31% of impressions, suggesting CWV is gating mobile crawl frequency on local-pack queries. Targeted optimizations: defer the booking widget JS, preload the city-page hero image, lazy-load below-fold neighborhood lists. Estimated LCP → 2.2s, INP → 160ms post-fix.

B — Indexation & Coverage

Sitemap healthy. The dup-index issue on 5 city pages is the dominant indexation problem.

Sitemap URLs
281
Last submitted 2026-04-14
Sitemap Errors
0
Last downloaded 2026-05-06
Trailing-Slash Dup Entries
5
/sacramento/, /new-york/, /sf/, /sj/, /atlanta/
Dup Lost Clicks/Quarter
~92
+55K imp at avg pos 34

Indexation by URL Type

URL TypeSitemapIndexedDup IssuesNext Action
City pages51~565 dup entriesGSC URL Inspection → Request Indexing on 5 canonical city URLs.
Mold-type pages~5~50Hold — expand to 6+ types per Rec #5.
State-law pages~3~30Hold — expand to 5+ states per Rec #6.
Cost guide110Restructure intro per Rec #2.
Blog posts~15~150Cadence to 24 posts per Sec 09 calendar.
Static pages~15~150Hold; add /team + /press per Rec #4 + #15.
!

5 city pages have ~92 quarterly clicks split across duplicate index entries

The server-side 308 redirect from /city/ to /city is correct (verified live 2026-05-07 on /sacramento/). Google's index has not consolidated. Resolution path: GSC URL Inspection + Request Indexing on each canonical URL. See Sec 11 Rec #1.

D — JavaScript Rendering Diagnosis

FMT migrated React SPA to Next.js SSR per the staging-parity audit. Verified live: raw HTML now contains the city-page content server-side.

PageRaw HTML Visible TextRendered Visible TextParityNotes
Homepage~88%100%StrongHero + nav + service area block in raw HTML.
/new-york~92%100%StrongVerified +33% visible text in raw HTML during staging-parity audit (post-SSR migration).
/sacramento~90%100%StrongSSR working; only neighborhood interactive map is hydrated client-side.
/orange-mold/~94%100%StrongLong-form content fully SSR.
/mold-inspection-cost~96%100%StrongFull SSR; FAQPage Q&As in raw HTML.
Booking flow (interactive)~30%100%Hydration-dependentAcceptable — booking flow is post-click, not crawled for ranking.

SSR is working — this was the highest-impact technical fix shipped post-original-audit

The original audit identified React SPA hydration as the largest indexation risk. Migration to Next.js SSR resolved it. Visible-text parity between raw HTML and rendered HTML is now 88-96% across all key pages, well above the 70% threshold where Google starts dropping content from the index.

E — Canonical Map & Parameter Handling

Canonicals are correct. The trailing-slash issue is purely an indexation consolidation problem — Google has the right canonical signal but hasn't acted on it.

PatternCountStatusNext Action
Self-referential canonical~270HealthyHold — baseline correct.
City pages with /city/ trailing-slash duplicate in GSC5Index lagGSC URL Inspection → Request Indexing on canonical (no-slash) form.
308 redirect /city/ → /city51Server correctHold — redirects are right; just waiting on Google.
UTM parameter handlingallCanonicalizedHold.
?ref= affiliate trackingunknownAudit neededVerify referral params canonicalize to clean URL.
!

The dup-index pattern is a Google-side cache lag, not a server-side bug

308 redirects + self-referential canonicals + sitemap with only canonical URLs → Google should have consolidated within 1-2 indexation cycles. It hasn't. Force the consolidation via GSC URL Inspection (Sec 11 Rec #1).

F — Redirect Chain Audit

All known redirect chains are clean single-hop 301/308. The Sacramento expert-guide regression that the staging-parity audit flagged is fixed.

SourceTargetHopsStatus CodeNotes
http://fastmoldtesting.comhttps://fastmoldtesting.com1301Clean
www.fastmoldtesting.comfastmoldtesting.com1301Clean
/sacramento//sacramento1308Clean — verified 2026-05-07
/sacramento/2026-expert-guide-top-mold-testing-companies-sacramento/sacramento1301Fixed (was the parity-audit regression)
/los-angeles (unknown SPA route)n/a0404Correct — was returning 200 with empty content pre-fix
/nonexistent-test-xyzn/a0404Correct

Redirect map is clean — no equity-leaking chains

The Sacramento expert-guide regression that was the worst SEO regression flagged in the staging-parity audit is now correctly 301-redirecting to /sacramento. Single-hop chains everywhere.

G — XML Sitemap & Robots.txt Validation

Sitemap healthy, last submitted 2026-04-14, last downloaded 2026-05-06, 0 errors. Robots.txt and llms.txt both serve correctly.

Sitemap URLs
281
Under 50K limit
Lastmod Present
100%
All URLs timestamped
Sitemap Errors
0
Per GSC report
Last Submitted
2026-04-14
Healthy submission
Last Downloaded
2026-05-06
Recent — daily crawl
robots.txt
Valid
Allows all + sitemap link
llms.txt
200 OK
AI crawler context

AI Crawler Configuration

  • GPTBot — allowed
  • PerplexityBot — allowed
  • Claude-Web — allowed
  • Google-Extended — allowed
  • CCBot (Common Crawl) — allowed
  • ! llms.txt content can be enriched (Sec 08, Sec 11 Rec #15 dependency)

H — Honest Limitations

What this audit cannot see, and the upgrade path for each.

Specifically What We Can't See in This Audit

  • Full backlink graph. Current DataForSEO tier provides Domain Rank Overview as a proxy. We cannot see referring domains, anchor text distribution, toxic links, or competitor link gaps. Upgrade path: DataForSEO Backlinks API add-on ($50-100/mo) or Ahrefs Lite ($129/mo).
  • AI Overview citation rate over time. We can spot-check current AI Overview citation per query (DataForSEO live SERP), but we cannot see how often FMT is cited across all queries or how that rate changes week over week. Upgrade path: Use FMT's existing aeo-engine tool (referenced in seo/CLAUDE.md) for monthly citation audit batches across the 25+ priority queries.
  • Server log files. No Googlebot crawl frequency per URL, no AI crawler hit rate, no bot fingerprinting. Upgrade path: Request server log export from Netlify (one-time per quarter) and run a log-analyzer such as Screaming Frog Log File Analyzer.
  • GSC query-level data freshness. GSC search analytics has a 48-72 hour publishing lag. The 87-day window in this audit ends May 4, 2026 — that is GSC's freshest available data as of the audit run on May 7. Upgrade path: BigQuery export of GSC data for permanent retention (already feasible via the FMT BigQuery integration).
  • GA4 conversion attribution beyond last-touch. GA4 default attribution is last-non-direct-click, which under-represents organic's discovery contribution. Upgrade path: Apply data-driven attribution model in GA4 Reports + cross-reference with the FMT lead-attribution data warehouse.
  • Competitor private analytics. We see Thumbtack/Angi/Reagan Environmental's SERP performance via DataForSEO Labs but not their actual booking-conversion rates, customer acquisition cost, or unit economics.
  • Authenticated / member-only pages. The advertiser-facing portal and inspector dashboard are not crawled (correctly — they're behind auth).
  • Real-user behavior (rage clicks, dead clicks, session replay). Requires Microsoft Clarity, Hotjar, or FullStory — out of SEO audit scope but valuable for CRO.
i

We tell you what we see AND what we can't see

Anything promising 100% technical coverage without log files, full backlink data, and longitudinal AI citation tracking is selling optimism.

13 — Execution Roadmap

30-60-90 Day Roadmap

Aggressive execution plan. Days 1-3 config sweep, Days 4-7 trailing-slash + Sacramento schema fix, Days 8-14 cost guide AEO + content cadence per Sec 09. Built on top of an already-recovering site.

!

This is an aggressive plan — but the recovery curve is real

The original audit's recommendations are working: clicks pace climbed from 7-13/day to 25-46/day. This roadmap rides that momentum with the next phase: trailing-slash consolidation in Days 1-7, AI Overview citation restructure in Days 8-14, Sec 09 calendar at 2 posts/week starting May 4, then pillar pages in Days 31-60. If you can't move at this pace, extend the timeline — but don't cut scope.

Days 1-30
Foundation Lock-In
Trailing-slash + Sacramento schema + cost guide AEO + cadence
Days 31-60
Authority Blitz
/team + Person schema + 2 pillar pages + state-law expansion
Days 61-90
Scale & Moat
Mold-type pages + Wikidata + comparison content + re-audit
30

Days 1-30: Foundation Lock-In

Trailing-slash dup consolidation, Sacramento schema replication, cost guide AEO restructure, Sec 09 cadence start

Days 1-3 — Config Sweep

ShipVerify
Restore Content-Security-Policy header (Report-Only). Netlify config change.curl -I → Content-Security-Policy-Report-Only header present
Audit AggregateRating per-city vs Org-root. Decide: split or consolidate.Rich Results Test → no "review with no reviews" warnings
Enrich llms.txt with marketplace + founder + price context.curl /llms.txt → updated content live
Add HSTS preload directive + submit to hstspreload.org.HSTS header includes preload

Days 4-7 — Trailing-Slash + Sacramento Schema

ShipVerify
Submit GSC URL Inspection → Request Indexing for 5 city pages. /sacramento, /new-york, /san-francisco, /san-jose, /atlanta canonical (no-slash) forms.GSC shows "Indexing requested" for all 5
Re-submit sitemap with only canonical (no-slash) URLs.GSC sitemap report shows 281 URLs, 0 errors
Apply /new-york schema fix (AdministrativeArea + Place) to /sacramento, /san-francisco, /san-jose, /atlanta. Single template change.Rich Results Test → LocalBusiness valid on all 4
Replicate the schema fix to remaining 46 city pages.Rich Results Test → sample 10 random city pages all valid
Add HSTS preload to FMT.SecurityHeaders.com → A grade

Days 8-14 — Cost Guide AEO + Content Cadence Begins

ShipVerify
Restructure /mold-inspection-cost intro for AI Overview citation. Definition box + price-range table + Mike Nguyen author + cited refs.Rich Results Test → Article + FAQPage still valid; verify position not regressed
PUBLISH: Sec 09 Post 1 — "How to Prepare for a Mold Inspection" (May 4)Indexed within 14 days; appears in GSC Performance
PUBLISH: Sec 09 Post 2 — "Is Mold Testing Worth It?" (May 7)Indexed within 14 days
Title rewrite + service-area block on homepage for head-term capture (Sec 11 Rec #7).View source → new title; verify all 51 city links visible
PUBLISH: Sec 09 Posts 3 + 4 (May 11 + 14)Indexed within 14 days

Days 15-30 — /team page + State-Law Expansion + Cadence

Ship
Build /team page with Person schema for Jordan Gruber (ASTM), Mike Nguyen (microbiologist), Dr. Walter Davis Merritt (M.D. ENT), Kristina Baehr (J.D. Yale). Sec 11 Rec #4.
Build /mold-inspection-california-laws — Kristina Baehr (J.D. Yale) author. Sec 11 Rec #6 first page.
Add author Person schema back-references on existing blog posts + cost guide + Georgia laws page.
PUBLISH: Sec 09 Posts 5-8 (May 18, 21, 25, 28). 8 posts total in Days 1-30.
Resolve AggregateRating split across all city pages (Sec 11 Rec #8).
Run mid-month GSC audit: verify trailing-slash dup entries are decreasing.

Day 30 Milestone

SEO Score
68-72
Up from 64
Monthly Clicks
~800
Up from ~600 (April)
Avg Position
~14
Down from ~17
Overall CTR
0.55%
Up from 0.36%

5 trailing-slash duplicates consolidated. All 51 city pages have AdministrativeArea schema. Cost guide restructured for AI citation. /team page live with 4 Person schemas. CA state-law page live. 8 Sec 09 calendar posts published. CSP restored.

60

Days 31-60: Authority Blitz

2 pillar pages, 4 state-law pages total, 8 Sec 09 posts, AI Overview citation push

Days 31-45 — Pillars + State-Law Expansion

DeliverableDetailKPI
BUILD: /tenant-rights-mold national pillar (2,500-3,500 words)Kristina Baehr (J.D. Yale) author. 9 Sec 09 spokes link in. HowTo schema for "How to document mold for tenant complaint". Sec 11 Rec #12.GSC: pillar indexed within 14 days; first impressions within 21 days
BUILD: /mold-inspection-texas-laws + /mold-inspection-ny-laws + /mold-inspection-florida-lawsKristina Baehr author. Sec 11 Rec #6 completion.GSC: state-law pages indexed; tenant-rights cluster impressions climb
PUBLISH: Sec 09 Posts 9-12 (Jun 1-11)Posts 9 (CA tenant evict), 10 (hidden mold), 11 (NYC tenant rights), 12 (mold after leak)GSC: 12+ posts published total
Add Service schema for 4 inspection types (air, surface, ERMI, full)Sec 11 Rec #10. Build /services/* URLs with priceSpecification + areaServed.Rich Results Test → Service valid; AI shopping agent visibility audit
Identify and outreach to top 10 referrers (Sec 11 Rec #11)From GA4 Referral report. Build partnership program.GA4: referral channel sessions track

Days 46-60 — Pillar #2 + AEO Validation

DeliverableDetailKPI
BUILD: /mold-testing-guide national pillar (3,000-4,000 words)Mike Nguyen (microbiologist) author. 8 Sec 09 spokes link in. HowTo + FAQPage (12-15 Q's). Sec 11 Rec #13.GSC: pillar starts collecting impressions on "mold testing" head term
PUBLISH: Sec 09 Posts 13-16 (Jun 15-25)Posts 13 (lease break), 14 (ERMI vs air), 15 (landlord ignore), 16 (read inspection report)GSC: 16+ posts published total
AI Overview citation audit (manual + DataForSEO live SERP)Test 25 priority queries; verify FMT cost guide is now cited.AI Overview: at least 1 of "mold inspection cost" / "mold testing cost" cites FMT
Expand FAQPage schema across 51 city pages (Sec 11 Rec #14, in batches)5-7 city-specific Q&As per page. Use Mike Nguyen's expertise for technical answers.Rich Results Test → FAQ valid on 51/51
Re-audit GSC trailing-slash statusConfirm dup entries are gone or reduced.GSC: dup index entries reduced from 5 to <2

Day 60 Milestone

Monthly Clicks
~1,200
Up from ~600
Organic Conv. Share
~42%
Up from 34.4%
AI Overview Cite
1+
On cost queries
Sec 09 Posts Live
16/24
2/wk on track

2 national pillar pages live. 4 state-law pages (GA, CA, TX, NY, FL). FAQPage schema on all 51 city pages. AI Overview cites FMT cost guide on at least 1 cost query. Trailing-slash dup entries cleared. Referral partnership outreach in progress.

90

Days 61-90: Scale & Competitive Moat

Mold-type page expansion, Wikidata, comparison content, full re-audit

Days 61-75 — Mold-Type Expansion + Wikidata

DeliverableDetailKPI
BUILD: 5 mold-type pages (Sec 11 Rec #5)/black-mold/, /white-mold/, /green-mold/, /attic-mold/, /basement-mold/. Replicate /orange-mold/ template. Mike Nguyen author. Article + FAQPage schema each.GSC: 5 new mold-type pages indexed; first impressions within 21 days
Submit Wikidata entity for FMT (Sec 11 Rec #15)Founders + HQ + certifications + sameAs links + press citations.Wikidata entity live; wait 4-8 weeks for Google ingestion
PUBLISH: Sec 09 Posts 17-20 (Jun 29 - Jul 9)Posts 17 (independent inspector), 18 (real estate buyer), 19 (CA Civil Code 1942.5), 20 (TX Property Code 92)GSC: 20+ posts published total
Build /press "Recently Featured In" pageBBB Accreditation, ASTM membership, AIHA-EMPAT, InterNACHI, PAT, Knowledge Panel pre-req.Page live; cited by Wikidata submission
Add OrganizationRole / memberOf for certificationsASTM, AIHA-EMPAT, InterNACHI, PAT, BBBRich Results Test → Organization with memberOf valid

Days 76-90 — Comparison Content + Full Re-Audit

DeliverableDetailKPI
BUILD: 3 comparison pages/compare/fmt-vs-mold-inspection-and-test, /compare/fmt-vs-reagan-environmental, /compare/fmt-vs-rtkenvironmental. Honest head-to-head. Schema + bottom-funnel intent.GSC: comparison queries appear; CTR is high on commercial-intent
Launch review collection automationPost-inspection email + SMS → review request → per-city AggregateRating distribution.Reviews/wk: +5-10 incremental per city after Day 90
PUBLISH: Sec 09 Posts 21-24 (Jul 13-23)Posts 21 (apt mold health), 22 (DIY kits), 23 (GA tenant rights), 24 (when to call pro). Hits the 24-post calendar milestone.GSC: 24/24 calendar posts live
Reddit / community seedingQuality non-promotional answers in r/Mold, r/HomeImprovement, r/Apartments. LLM citation-magnetism.Reddit threads mentioning FMT grow 3x
Run full DataForSEO re-audit + GSC re-auditCompare keyword positions, on-page score, head-term breakthrough. Surface next 20 opportunities.Avg position 17 → 12; head-term breakthrough on at least 1 of "mold inspection" / "mold testing" / "mold inspection near me"

Day 90 Milestone

Monthly Clicks
~1,800
3x baseline
Avg Position
~12
Down from ~17
Head-term Breakthrough
1+
"mold inspection" / "mold testing" / "near me"
Sec 09 Calendar
24/24
Complete

11 mold-type + state-law + comparison pages live. Wikidata entity submitted. Knowledge Panel building. 24-post calendar complete. Reviews automation running. Full re-audit confirms metric wins. Brand defending intact at #1.9 on "fast mold testing".

Full 90-Day Projected Trajectory

Aggressive targets assuming full execution at pace, riding the existing recovery curve

MetricToday (May 7)Day 30Day 60Day 90
SEO Score6468-7275-7982-86
Monthly Organic Clicks~600~800~1,200~1,800
Overall CTR0.36%0.55%0.75%0.95%
Avg Position~17~14~13~12
Trailing-Slash Dup Entries52-300
City Pages w/ Correct Schema1/5151/5151/5151/51
Sec 09 Calendar Posts081624
State-Law Pages1 (GA)2 (+CA)5 (+TX,NY,FL)5+
Mold-Type Pages~5~5~5~10
Pillar Pages Live0022
AI Overview Citations00-11+2+
Org Conversions / Quarter (proj.)529~640~880~1,200

Projections compound on the existing recovery curve. Each phase's wins propagate through Google's index over 14-30 days. Actual results depend on competitive dynamics, Google algorithm changes, and execution quality.

↑ Back to Top