Speed Insights
Grade D
62% performance
https://onegoodthing.vercel.app
LCP
484ms
Largest paint
TBT
1962ms
Blocking time
CLS
0.000
Layout shift
75
out of 100
61
out of 100
63/103 rule points
100
out of 100
76/76 rule points
63
out of 100
54/86 rule points
76
out of 100
84/110 rule points
Category point breakdown
Biggest score-losing checks
Fix rendered axe accessibility violations
Why this needs attention
The rendered page has accessibility rule violations detected by axe-core.
axe checks the actual browser-rendered page, so these issues can affect people using keyboards, screen readers, or other assistive technology.
Recommended correction
Evidence
axe found 1 violation rule(s), including 1 serious or critical rule(s). Top rules: nested-interactive (3).
Priority
Priority 5: fix before sharing the page publicly.
Affected elements
Interactive controls must not be nested
Fix any of the following: Using a negative tabindex on an element inside an interactive control does not prevent assistive technologies from focusing the element (even with aria-hidden="true")
Interactive controls must not be nested
Fix any of the following: Using a negative tabindex on an element inside an interactive control does not prevent assistive technologies from focusing the element (even with aria-hidden="true")
Interactive controls must not be nested
Fix any of the following: Using a negative tabindex on an element inside an interactive control does not prevent assistive technologies from focusing the element (even with aria-hidden="true")
Fix Prompt
Label public form fields
Why this needs attention
Some form controls do not have a detectable label or accessible name.
Unlabeled inputs make email capture, demo requests, and signups harder for assistive technology users.
Recommended correction
Evidence
Detected labels or accessible names for 0 of 3 form control(s).
Priority
Priority 7: fix during launch polish.
Fix Prompt
Publish a valid sitemap
Why this needs attention
The sitemap file was not reachable or did not look like valid sitemap XML.
A sitemap helps search engines discover the landing page and related public pages sooner.
Recommended correction
Evidence
HTTP 404 returned for sitemap_xml.
Priority
Priority 7: fix during launch polish.
Fix Prompt
Add a canonical URL
Why this needs attention
The page does not declare which public URL is the preferred version.
A canonical tag reduces duplicate URL confusion before marketing links start spreading.
Recommended correction
Evidence
No canonical link tag was detected.
Priority
Priority 9: fix during launch polish.
Fix Prompt
Add basic structured data
Why this needs attention
No JSON-LD schema was detected on the page.
Structured data gives search and answer engines explicit facts about your product.
Recommended correction
Evidence
Detected 0 JSON-LD schema block(s).
Priority
Priority 12: fix during launch polish.
Fix Prompt
SEO / AEO
Severity mix: 1 critical, 6 high, 3 medium, 1 low.
Security
Severity mix: 2 critical, 3 high, 0 medium, 0 low.
No failed checks in this category.
Accessibility
Severity mix: 0 critical, 3 high, 4 medium, 0 low.
Design
Severity mix: 0 critical, 3 high, 6 medium, 2 low.
SEO / AEO
Severity mix: 1 critical, 6 high, 3 medium, 1 low.
Accessibility
Severity mix: 0 critical, 3 high, 4 medium, 0 low.
Security
Severity mix: 2 critical, 3 high, 0 medium, 0 low.
No failed checks in this category.
Design
Severity mix: 0 critical, 3 high, 6 medium, 2 low.
Failed checks
These checks need attention.
Canonical tag
Why this needs attention
The page does not declare which public URL is the preferred version.
A canonical tag reduces duplicate URL confusion before marketing links start spreading.
Recommended correction
Evidence
No canonical link tag was detected. Failed: earned 0 of 10 points.
How FreeScan evaluates this check (opens in a new tab)Priority
Priority 9: fix during launch polish.
Fix Prompt
robots.txt reachability
Why this needs attention
The standard crawler instruction file was not reachable.
A reachable robots.txt helps crawlers understand what they can index before launch traffic arrives.
Recommended correction
Evidence
HTTP 404 returned for robots_txt. Failed: earned 0 of 8 points.
How FreeScan evaluates this check (opens in a new tab)Priority
Priority 11: fix during launch polish.
Fix Prompt
Sitemap validity
Why this needs attention
The sitemap file was not reachable or did not look like valid sitemap XML.
A sitemap helps search engines discover the landing page and related public pages sooner.
Recommended correction
Evidence
HTTP 404 returned for sitemap_xml. Failed: earned 0 of 12 points.
How FreeScan evaluates this check (opens in a new tab)Priority
Priority 7: fix during launch polish.
Fix Prompt
Schema presence
Why this needs attention
No JSON-LD schema was detected on the page.
Structured data gives search and answer engines explicit facts about your product.
Recommended correction
Evidence
Detected 0 JSON-LD schema block(s). Failed: earned 0 of 10 points.
How FreeScan evaluates this check (opens in a new tab)Priority
Priority 12: fix during launch polish.
Fix Prompt
Form labels
Why this needs attention
Some form controls do not have a detectable label or accessible name.
Unlabeled inputs make email capture, demo requests, and signups harder for assistive technology users.
Recommended correction
Evidence
Detected labels or accessible names for 0 of 3 form control(s). Failed: earned 0 of 14 points.
How FreeScan evaluates this check (opens in a new tab)Priority
Priority 7: fix during launch polish.
Fix Prompt
Rendered axe accessibility violations
Why this needs attention
The rendered page has accessibility rule violations detected by axe-core.
axe checks the actual browser-rendered page, so these issues can affect people using keyboards, screen readers, or other assistive technology.
Recommended correction
Evidence
axe found 1 violation rule(s), including 1 serious or critical rule(s). Top rules: nested-interactive (3). Failed: earned 0 of 18 points.
How FreeScan evaluates this check (opens in a new tab)Priority
Priority 5: fix before sharing the page publicly.
Affected elements
Interactive controls must not be nested
Fix any of the following: Using a negative tabindex on an element inside an interactive control does not prevent assistive technologies from focusing the element (even with aria-hidden="true")
Interactive controls must not be nested
Fix any of the following: Using a negative tabindex on an element inside an interactive control does not prevent assistive technologies from focusing the element (even with aria-hidden="true")
Interactive controls must not be nested
Fix any of the following: Using a negative tabindex on an element inside an interactive control does not prevent assistive technologies from focusing the element (even with aria-hidden="true")
Fix Prompt
Trust signals
Why this needs attention
The page does not expose detectable proof, customer, review, security, or credibility signals.
Trust signals reduce hesitation when strangers see the product for the first time.
Recommended correction
Evidence
Detected 0 trust-signal keyword occurrence(s). Failed: earned 0 of 10 points.
How FreeScan evaluates this check (opens in a new tab)Priority
Priority 16: lower-risk cleanup after urgent launch blockers.
Fix Prompt
Runtime console health
Why this needs attention
The rendered page produced console or uncaught JavaScript errors.
Runtime errors can break forms, CTAs, animations, tracking, or responsive behavior even when the static HTML looks fine.
Recommended correction
Evidence
Detected 0 site-authored console error(s) and 1 uncaught page error(s) during render. Samples: Minified React error #418; visit https://react.dev/errors/418?args[]=HTML&args[]= for the full message or use the non-minified dev environment for full errors and additional helpful warnings. Failed: earned 0 of 7 points.
How FreeScan evaluates this check (opens in a new tab)Priority
Priority 15: fix during launch polish.
Fix Prompt
Rendered layout ergonomics
Why this needs attention
The browser-rendered page has layout or tap-target issues.
Horizontal overflow and tiny tap targets make the page feel broken on real devices, especially for mobile visitors.
Recommended correction
Evidence
Horizontal overflow: 0px. Small tap targets: 4. Failed: earned 0 of 9 points.
How FreeScan evaluates this check (opens in a new tab)Priority
Priority 13: fix during launch polish.
Affected elements
Set a Daily Compass
Interactive control
Interactive control
Interactive control
Fix Prompt
Page-level AEO readiness
Shared eligibility and content signals that affect every search and answer agent.
Index and citation eligibility
No general noindex directive was detected.
Snippet and answer controls
No general nosnippet or max-snippet:0 control was detected.
Canonical alignment
No canonical URL was detected.
Sitemap coverage and freshness
Sitemap coverage could not be verified.
Structured data
Detected 0 JSON-LD block(s), 0 parse error(s), and types none.
Public or paywalled content
No isAccessibleForFree structured-data value was detected.
Entity clarity
Detected 3 of 3 core identity signals across the title, description, and H1.
Answer-ready visible text
Detected 163 visible words and 4 audience, use-case, pricing, or integration signals.
Authorship and accountability
No author meta value or structured-data author was detected.
Published or updated date
No datePublished or dateModified value was detected in structured data.
Supporting-source links
No external supporting links were detected; this is contextual rather than a universal requirement.
Rendered content availability
Rendered audit completed with 0 visible text element(s).
Synthetic search-agent reachability
8 of 8 search/discovery User-Agent probes returned reachable content.
Optional LLM-readable summary
No llms.txt file was found; this is optional and does not reduce core AEO readiness.
OAI-SearchBotAI search
Robots: allowed
Probe: reachable · HTTP 200 · 100% parity
GPTBotModel training
Robots: allowed
Probe: not tested for this control
ChatGPT-UserUser-requested fetch
Robots: not applicable to user-requested fetches
Probe: not tested for this control
ClaudeBotModel training
Robots: allowed
Probe: not tested for this control
Claude-SearchBotAI search
Robots: allowed
Probe: reachable · HTTP 200 · 100% parity
Claude-UserUser-requested fetch
Robots: allowed
Probe: reachable · HTTP 200 · 100% parity
GooglebotSearch and discovery
Robots: allowed
Probe: reachable · HTTP 200 · 100% parity
Google-ExtendedData-use policy control
Robots: allowed
Probe: not tested for this control
BingbotSearch and discovery
Robots: allowed
Probe: reachable · HTTP 200 · 99% parity
PerplexityBotAI search
Robots: allowed
Probe: reachable · HTTP 200 · 100% parity
Perplexity-UserUser-requested fetch
Robots: not applicable to user-requested fetches
Probe: not tested for this control
ApplebotSearch and discovery
Robots: allowed
Probe: reachable · HTTP 200 · 99% parity
Applebot-ExtendedData-use policy control
Robots: allowed
Probe: not tested for this control
MistralAI-IndexAI search
Robots: allowed
Probe: reachable · HTTP 200 · 100% parity
MistralAI-UserUser-requested fetch
Robots: allowed
Probe: reachable · HTTP 200 · 100% parity
meta-externalagentModel training
Robots: allowed
Probe: not tested for this control
meta-externalfetcherUser-requested fetch
Robots: allowed
Probe: reachable · HTTP 200 · 100% parity
AmazonbotModel training
Robots: allowed
Probe: not tested for this control
Amzn-SearchBotAI search
Robots: allowed
Probe: reachable · HTTP 200 · 100% parity
Amzn-UserUser-requested fetch
Robots: allowed
Probe: reachable · HTTP 200 · 100% parity
CCBotModel training
Robots: allowed
Probe: not tested for this control
Ready combines robots policy, a bounded synthetic User-Agent fetch, indexability, and snippet eligibility. Synthetic probes do not prove vendor-origin traffic. Purple preference states are training or data-use choices and do not lower the AEO score.
The image refreshes from FreeScan after a completed rescan. Clicking it always opens the newest public report saved for this exact scanned URL.
Scan evidence is included as untrusted data. The implementation brief instructs agents to verify findings before editing and to avoid destructive or speculative changes.
