Sample report

This is an example audit of a fictional store. Scan your own site to get a report like this for your URL.

Scan your site

Scan report

https://example-store.com

Scanned 6/23/2026, 2:32:00 PM

84

/ 100

Overall readiness

Strong agentic-web readiness

Grade B

2 critical issues and 6 recommended fixes found.

AI-agent readiness

78/100

  • Content is server-rendered in the first responsePass

    Evidence: Product titles, prices, and descriptions are present in the initial HTML — an agent can read them without executing JavaScript.

  • Product structured data (JSON-LD)Pass

    Evidence: Valid schema.org/Product JSON-LD found on 18 of 18 sampled product pages, including name, price, and availability.

  • llms.txt / agents.md qualityWarning

    Evidence: A /llms.txt is published but does not follow the convention — it has no "# " title line and no markdown links, so an agent cannot navigate from it.

    Fix: Give your /llms.txt an `# H1` title, a `>` one-line summary, and markdown links to your key product and policy pages.

    # example-store.com
    > Independent outdoor-gear store. Free shipping over $75.
    
    ## Catalog
    - /collections/tents: Backpacking and car-camping tents
    - /collections/sleeping-bags: Down and synthetic bags
    
    ## Policies
    - /pages/shipping: Shipping & delivery
    - /pages/returns: 30-day returns
  • Organization structured dataWarning

    Evidence: schema.org/Organization is present but missing "sameAs" social links and "contactPoint", so agents cannot reliably attribute or contact your brand.

    Fix: Extend the Organization JSON-LD with sameAs and contactPoint fields.

    {
      "@context": "https://schema.org",
      "@type": "Organization",
      "name": "Example Store",
      "url": "https://example-store.com",
      "sameAs": [
        "https://x.com/examplestore",
        "https://www.instagram.com/examplestore"
      ],
      "contactPoint": {
        "@type": "ContactPoint",
        "contactType": "customer support",
        "email": "[email protected]"
      }
    }
  • Machine-readable metadata and canonical URLsPass

    Evidence: Every sampled page declares a self-referencing canonical URL and a descriptive <title>.

SEO & crawlability

88/100

  • robots.txt present and validPass

    Evidence: robots.txt found and parses cleanly. AI crawlers (GPTBot, Google-Extended, ClaudeBot) are allowed.

  • sitemap.xml present and referencedPass

    Evidence: sitemap.xml found with 412 URLs and referenced from robots.txt. Last-modified dates are present.

  • Unique meta descriptionsWarning

    Evidence: 23 product pages share the same generic meta description ("Shop quality outdoor gear at Example Store."). Duplicate descriptions weaken snippets and AI summaries.

    Fix: Generate a unique meta description per product from its key attributes.

  • OpenGraph tagsPass

    Evidence: og:title, og:description, og:image, and og:type are present on home, collection, and product templates.

  • Single, descriptive H1 per pagePass

    Evidence: Each sampled page has exactly one <h1> that matches the page intent.

Performance & accessibility

80/100

  • Largest Contentful Paint (LCP)Pass

    Evidence: Lab LCP is 1.9s on a simulated 4G connection — within the "good" threshold of 2.5s.

  • Cumulative Layout Shift (CLS)Warning

    Evidence: CLS is 0.14 — above the 0.1 "good" threshold. A hero banner and product images load without reserved dimensions.

    Fix: Set explicit width and height (or aspect-ratio) on the hero and product images to reserve layout space.

    <img
      src="/img/hero.jpg"
      width="1280"
      height="640"
      alt="Two hikers setting up a tent at dusk"
    />
  • Images have descriptive alt textFail

    Evidence: 41 of 96 sampled images have empty or missing alt attributes, including primary product photos. Screen-reader users and agents cannot identify them.

    Fix: Add concise, descriptive alt text to every meaningful image; mark purely decorative images with alt="".

  • Color contrast (WCAG AA)Pass

    Evidence: Body and heading text meet the 4.5:1 contrast ratio. One muted footer link sits at 4.6:1 — passing but close.

  • Semantic landmarksPass

    Evidence: <header>, <nav>, <main>, and <footer> landmarks are present and used consistently across templates.

Security

90/100

  • HTTPS with valid certificatePass

    Evidence: Served over HTTPS with a valid certificate (expires in 67 days). HTTP requests 301-redirect to HTTPS.

  • HSTS enabledWarning

    Evidence: Strict-Transport-Security is present but max-age is only 86400 (1 day) and omits includeSubDomains.

    Fix: Raise max-age to at least one year and include subdomains once you have verified HTTPS everywhere.

    Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  • Content-Security-Policy headerFail

    Evidence: No Content-Security-Policy header was returned. Without a CSP the store is more exposed to cross-site scripting and content injection.

    Fix: Add a Content-Security-Policy header, starting in report-only mode to find violations before enforcing.

    Content-Security-Policy: default-src 'self'; img-src 'self' https: data:; script-src 'self'; object-src 'none'; frame-ancestors 'none'
  • Baseline security headersPass

    Evidence: X-Content-Type-Options: nosniff and Referrer-Policy: strict-origin-when-cross-origin are both set.

  • No mixed contentPass

    Evidence: All sub-resources (scripts, styles, images, fonts) load over HTTPS. No mixed-content warnings detected.

Critical issues

Fix these first

  • No Content-Security-Policy header

    Security

    The store returns no CSP header, leaving it more exposed to cross-site scripting and content injection on pages that handle customer data.

  • Primary product images missing alt text

    Performance & accessibility

    41 of 96 sampled images — including primary product photos — have empty or missing alt attributes, hurting accessibility and how agents identify your products.

Recommended fixes

Ranked by impact

  • Publish an llms.txt at the site rootAI-agent readinessHigh impactLow effort

    Why: llms.txt gives AI assistants a curated map of your catalog and policies, so they cite and recommend the right pages instead of guessing.

    Fix: Create /llms.txt summarizing your store and linking to your top collections and policy pages.

    # example-store.com
    > Independent outdoor-gear store. Free shipping over $75.
    
    ## Catalog
    - /collections/tents: Backpacking and car-camping tents
    - /collections/sleeping-bags: Down and synthetic bags
    
    ## Policies
    - /pages/shipping: Shipping & delivery
    - /pages/returns: 30-day returns
  • Add a Content-Security-Policy headerSecurityHigh impactMed effort

    Why: A CSP is your strongest defense against cross-site scripting on pages that process customer and payment data.

    Fix: Start with a report-only policy to surface violations, then tighten and enforce it.

    Content-Security-Policy: default-src 'self'; img-src 'self' https: data:; script-src 'self'; object-src 'none'; frame-ancestors 'none'
  • Add alt text to product imagesPerformance & accessibilityHigh impactMed effort

    Why: Descriptive alt text makes products understandable to screen-reader users and to agents that rely on image semantics.

    Fix: Backfill alt text from product titles and attributes, and require it for new uploads.

  • Write unique meta descriptions for productsSEO & crawlabilityMed impactMed effort

    Why: Duplicate descriptions produce weak search snippets and bland AI summaries, lowering click-through.

    Fix: Template a description per product from its key attributes (material, use case, key spec).

  • Reserve space for hero and product imagesPerformance & accessibilityMed impactLow effort

    Why: Layout shifts during load hurt the CLS web vital and frustrate users who tap the wrong element.

    Fix: Add explicit width/height or aspect-ratio to images so the browser reserves their space.

    <img
      src="/img/hero.jpg"
      width="1280"
      height="640"
      alt="Two hikers setting up a tent at dusk"
    />
  • Strengthen the HSTS policySecurityLow impactLow effort

    Why: A one-day max-age barely protects returning visitors; a long max-age with subdomains locks HTTPS in.

    Fix: Raise max-age to a year and add includeSubDomains once HTTPS is verified everywhere.

    Strict-Transport-Security: max-age=31536000; includeSubDomains; preload