{"generatedAt":"2026-09-08T21:29:26.840Z","health":{"generatedAt":"2026-09-08T21:29:26.840Z","overall":97.5,"pillars":[{"name":"seo","score":97.8,"components":[{"name":"Technical","score":100,"weight":20,"source":"canonical, robots, sitemap, middleware"},{"name":"Crawlability","score":100,"weight":10,"source":"pages with evidence ref"},{"name":"Indexability","score":95.6,"weight":10,"source":"inventory indexable / total"},{"name":"Metadata","score":100,"weight":10,"source":"centralized metadata.ts"},{"name":"Structured Data","score":100,"weight":10,"source":"schema.ts typed generation"},{"name":"Content","score":93,"weight":15,"source":"mean quality from inventory"},{"name":"Internal Linking","score":100,"weight":10,"source":"pages with thin internal links"},{"name":"Freshness","score":96.5,"weight":5,"source":"pages past freshness window"},{"name":"Performance","score":90,"weight":5,"source":"SSR + edge cache, see seo:live"},{"name":"Authority","score":100,"weight":5,"source":"canonical research & methodology pages"}],"recommendations":["Lift mean content quality by closing source-data gaps (push makers to add descriptions).","Refresh 10 indexable pages past the freshness window."]},{"name":"geo","score":97.3,"components":[{"name":"Answerability","score":95,"weight":20,"source":"Quick Answer / FAQ on programmatic pages"},{"name":"Evidence","score":100,"weight":20,"source":"indexable pages with evidence refs"},{"name":"Entity clarity","score":95,"weight":15,"source":"authority-graph.ts"},{"name":"Data accessibility","score":100,"weight":15,"source":"/data/*.json|csv + /api/seo/"},{"name":"Methodology","score":100,"weight":10,"source":"rank/methodology + research/methodology"},{"name":"Freshness","score":90,"weight":10,"source":"freshness.ts"},{"name":"Citation readiness","score":100,"weight":10,"source":"citation-block.ts + /api/seo/page/"}],"recommendations":[]},{"name":"authority","score":97.5,"components":[{"name":"Research","score":95,"weight":20,"source":"research families + closed snapshots"},{"name":"Unique data","score":100,"weight":20,"source":"Harpd Rank — promotional placement dataset"},{"name":"Historical data","score":90,"weight":15,"source":"rank history + research snapshots"},{"name":"External citation readiness","score":100,"weight":15,"source":"citation-block + llms.txt"},{"name":"Entity graph","score":100,"weight":10,"source":"authority-graph.ts"},{"name":"Dataset quality","score":100,"weight":10,"source":"/data/*.json schema + methodology"},{"name":"API accessibility","score":100,"weight":10,"source":"pages reachable within graph (3-click rule)"}],"recommendations":[]}],"summary":{"seo":97.8,"geo":97.3,"authority":97.5},"topProblems":[{"dimension":"differentiatingSignals","label":"Differentiating signals","missing":7,"pctMissing":2.5}]},"summary":{"totalPages":298,"indexablePages":285,"noindexPages":13,"suppressedPages":0,"productCount":89,"categoryCount":6,"researchCount":10,"answerCount":10,"averageQuality":93},"graph":{"nodes":180,"edges":2340,"byKind":{"source":2,"methodology":3,"dataset":3,"rank":22,"category":19,"product":89,"answer":10,"research":10,"evidence":3,"historical-snapshot":5,"question":10,"claim":4}},"topProblems":[{"dimension":"differentiatingSignals","label":"Differentiating signals","missing":7,"pctMissing":2.5}],"pipeline":[{"step":"data-update","status":"ok","summary":"Fetch latest Rank + research data","startedAt":"2026-09-08T21:29:23.867Z","finishedAt":"2026-09-08T21:29:23.879Z","durationMs":12,"payload":{"productCount":89}},{"step":"entity-update","status":"ok","summary":"Build ProductEntity + category + research entities","payload":{"productCount":89,"categoryCount":6,"graphNodes":180},"startedAt":"2026-09-08T21:29:25.321Z","finishedAt":"2026-09-08T21:29:25.321Z","durationMs":0},{"step":"evidence-update","status":"ok","summary":"Resolve evidence refs for every indexable page","payload":{"evidenceNodes":3},"startedAt":"2026-09-08T21:29:25.321Z","finishedAt":"2026-09-08T21:29:25.321Z","durationMs":0},{"step":"quality-score","status":"ok","summary":"Score every page against the spec quality gate","payload":{"averageQuality":93},"startedAt":"2026-09-08T21:29:25.321Z","finishedAt":"2026-09-08T21:29:25.321Z","durationMs":0},{"step":"content-generation","status":"ok","summary":"Render Quick Answer, FAQ, evidence, related links from data","payload":{"generatedPages":298},"startedAt":"2026-09-08T21:29:25.321Z","finishedAt":"2026-09-08T21:29:25.321Z","durationMs":0},{"step":"duplicate-check","status":"ok","summary":"Jaccard-based duplicate detection against sibling pages","payload":{"nearDuplicates":0},"startedAt":"2026-09-08T21:29:25.321Z","finishedAt":"2026-09-08T21:29:25.321Z","durationMs":0},{"step":"schema-generation","status":"ok","summary":"Generate per-type JSON-LD (no fabricated ratings/prices/reviews)","payload":{"schemaTypes":["Product","CollectionPage","ItemList","WebPage","Report","Dataset","FAQPage","BreadcrumbList","SoftwareApplication"]},"startedAt":"2026-09-08T21:29:25.321Z","finishedAt":"2026-09-08T21:29:25.321Z","durationMs":0},{"step":"internal-link-generation","status":"ok","summary":"Compute the semantic internal-link graph","payload":{"edges":2340},"startedAt":"2026-09-08T21:29:25.321Z","finishedAt":"2026-09-08T21:29:25.321Z","durationMs":0},{"step":"sitemap-update","status":"ok","summary":"Refresh per-family child sitemaps with indexable URLs only","payload":{"indexablePages":285},"startedAt":"2026-09-08T21:29:25.321Z","finishedAt":"2026-09-08T21:29:25.321Z","durationMs":0},{"step":"indexability-check","status":"ok","summary":"Validate every page against the spec indexability rules","payload":{"indexablePages":285,"noindexPages":13,"suppressedPages":0},"startedAt":"2026-09-08T21:29:25.321Z","finishedAt":"2026-09-08T21:29:25.321Z","durationMs":0},{"step":"publish","status":"ok","summary":"All indexability rules passed","startedAt":"2026-09-08T21:29:25.321Z","finishedAt":"2026-09-08T21:29:25.321Z","durationMs":0}],"publishable":true,"blockedReasons":[]}