Agent readiness report

johnlacorte.com

Scanned 2026-08-24 18:22 UTC 1 pages checked of 1 discovered 87b6x3xs86r9 Engine v2.0
Rescan Compare
Agent Readability vercel
17/100Needs Improvement
Better than 0% of 7 sites scanned · 6 of 36 checks passed
llms.txt llmstxt.org
0/100Needs Improvement
0 of 10 lint rules
Accessibility A1–A23
25/100Needs Improvement
1 of 4 rules · homepage static DOM · does not affect main score
Markdown readiness accept-md
0/100No Markdown
Accept: text/markdown → HTTP 202 text/html
L0 Not Agent Ready Not yet discoverable by agents. Next: Publish robots.txt.

Next level Level 1 · Basic Crawlability

3 changes unlock Level 1.

  1. Publish robots.txtAdd /robots.txt with a User-agent: * group and a Sitemap: line (any 2 of 3 missing basics) S7
  2. Publish a valid sitemap.xmlServe /sitemap.xml as a valid urlset with <loc> and <lastmod> per page (any 2 of 3 missing basics) S8
  3. Send Link headers on the homepageSend an HTTP Link header on / advertising the markdown alternate and llms.txt (rel=alternate/describedby) (any 2 of 3 missing basics) B3

Site-wide

3 passed · 11 failed · 1 n/a

llms.txt

/llms.txt
4 failed
Failed llms.txt exists S1 No llms.txt found at /llms.txt, /.well-known/llms.txt, /docs/llms.txt or /llms-full.txt

How to fix

# johnlacorte.com

> One-paragraph summary of what the site offers.

## Docs

- [About](https://johnlacorte.com/about.md): What we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude No llms.txt found at /llms.txt, /.well-known/llms.txt, /docs/llms.txt or /llms-full.txt
Required · siteSpec: llmstxt.org
Failed llms.txt served as text/plain S2 llms.txt not found

How to fix

# johnlacorte.com

> One-paragraph summary of what the site offers.

## Docs

- [About](https://johnlacorte.com/about.md): What we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude llms.txt not found
Required · siteSpec: llmstxt.org
Failed llms.txt is non-empty S3 llms.txt not found

How to fix

# johnlacorte.com

> One-paragraph summary of what the site offers.

## Docs

- [About](https://johnlacorte.com/about.md): What we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude llms.txt not found
Required · siteSpec: llmstxt.org
Failed llms.txt links do not point at .html files S4 llms.txt not found

How to fix

# johnlacorte.com

> One-paragraph summary of what the site offers.

## Docs

- [About](https://johnlacorte.com/about.md): What we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude llms.txt not found
Recommended · siteSpec: llmstxt.org

robots.txt

/robots.txt
2 passed1 failed
Passed robots.txt allows AI crawlers S5 No robots.txt — all crawlers allowed by default

Evidence

  1. fetch GEThttps://johnlacorte.com/robots.txt → 202 · Content-Type: text/html · 33 ms — GET /robots.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Frobots.txt&y=ipc:54.167.72.249:1787595761.411"></meta></head></html>
  2. parse robots.txt not available (HTTP 202); nothing restricts AI crawlers
  3. conclude No robots.txt — all crawlers allowed by default
Required · site
Passed /llms.txt is not blocked by robots.txt S6 No robots.txt — /llms.txt is reachable

Evidence

  1. fetch GEThttps://johnlacorte.com/robots.txt → 202 · Content-Type: text/html · 33 ms — GET /robots.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Frobots.txt&y=ipc:54.167.72.249:1787595761.411"></meta></head></html>
  2. parse robots.txt not available (HTTP 202); nothing can block /llms.txt
  3. conclude No robots.txt — /llms.txt is reachable
Required · site
Failed robots.txt exists S7 robots.txt returned HTTP 202

How to fix

User-agent: *
Allow: /

Sitemap: https://johnlacorte.com/sitemap.xml

Evidence

  1. fetch GEThttps://johnlacorte.com/robots.txt → 202 · Content-Type: text/html · 33 ms — GET /robots.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Frobots.txt&y=ipc:54.167.72.249:1787595761.411"></meta></head></html>
  2. parse robots.txt not available (HTTP 202) · https://johnlacorte.com/robots.txt
  3. conclude robots.txt returned HTTP 202

Sitemap

/sitemap.xml · /sitemap.md
4 failed
Failed sitemap.xml is valid S8 sitemap.xml is not valid XML: '=' is an unexpected token. The expected token is ';'. Line 1, position 130.

How to fix

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://johnlacorte.com/</loc><lastmod>2026-01-01</lastmod></url>
</urlset>

Evidence

  1. fetch GEThttps://johnlacorte.com/sitemap.xml → 202 · Content-Type: text/html · 34 ms — GET /sitemap.xml<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fsitemap.xml&y=ipc:54.167.72.249:1787595761.445"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/sitemap_index.xml → 202 · Content-Type: text/html · 79 ms — GET /sitemap_index.xml<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fsitemap_index.xml&y=ipc:54.167.72.249:1787595761.526"></meta></head></html>
  3. parse Parsed /sitemap_index.xml: not well-formed XML ('=' is an unexpected token. The expected token is ';'. Line 1, position 130.) · https://johnlacorte.com/sitemap_index.xml'=' is an unexpected token. The expected token is ';'. Line 1, position 130.
  4. conclude sitemap.xml is not valid XML: '=' is an unexpected token. The expected token is ';'. Line 1, position 130.
Failed sitemap entries have lastmod S9 No sitemap entries to evaluate

How to fix

<lastmod>2026-01-15</lastmod>

Evidence

  1. fetch GEThttps://johnlacorte.com/sitemap.xml → 202 · Content-Type: text/html · 34 ms — GET /sitemap.xml<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fsitemap.xml&y=ipc:54.167.72.249:1787595761.445"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/sitemap_index.xml → 202 · Content-Type: text/html · 79 ms — GET /sitemap_index.xml<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fsitemap_index.xml&y=ipc:54.167.72.249:1787595761.526"></meta></head></html>
  3. parse Parsed /sitemap_index.xml: not well-formed XML ('=' is an unexpected token. The expected token is ';'. Line 1, position 130.) · https://johnlacorte.com/sitemap_index.xml
  4. conclude No sitemap entries to evaluate
Failed sitemap.md exists S10 No sitemap.md at /sitemap.md, /docs/sitemap.md or /.well-known/sitemap.md

How to fix

# Sitemap

## Pages

- [Home](https://johnlacorte.com/)
- [About](https://johnlacorte.com/about)

Evidence

  1. fetch GEThttps://johnlacorte.com/sitemap.md → 202 · Content-Type: text/html · 105 ms — Probe /sitemap.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.517"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/docs/sitemap.md → 202 · Content-Type: text/html · 33 ms — Probe /docs/sitemap.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.551"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/.well-known/sitemap.md → 202 · Content-Type: text/html · 33 ms — Probe /.well-known/sitemap.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.585"></meta></head></html>
  4. parse None of the 3 candidate locations returned a 2xx text/markdown document
  5. conclude No sitemap.md at /sitemap.md, /docs/sitemap.md or /.well-known/sitemap.md
Failed sitemap.md has headings and links S11 sitemap.md not found

How to fix

## Pages

- [Home](https://johnlacorte.com/)

Evidence

  1. fetch GEThttps://johnlacorte.com/sitemap.md → 202 · Content-Type: text/html · 105 ms — Probe /sitemap.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.517"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/docs/sitemap.md → 202 · Content-Type: text/html · 33 ms — Probe /docs/sitemap.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.551"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/.well-known/sitemap.md → 202 · Content-Type: text/html · 33 ms — Probe /.well-known/sitemap.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fsitemap.md&y=ipc:54.167.72.249:1787595761.585"></meta></head></html>
  4. parse No sitemap.md to inspect (see S10)
  5. conclude sitemap.md not found

AGENTS.md

/AGENTS.md
2 failed
Failed AGENTS.md exists S12 No AGENTS.md at /AGENTS.md, /agents.md, /.well-known/agents.md, /docs/AGENTS.md, /CLAUDE.md or /.cursorrules

How to fix

# AGENTS.md

## Getting started

…

## Configuration

…

## Usage

…

Evidence

  1. fetch GEThttps://johnlacorte.com/AGENTS.md → 202 · Content-Type: text/html · 107 ms — Probe /AGENTS.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2FAGENTS.md&y=ipc:54.167.72.249:1787595761.519"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/agents.md → 202 · Content-Type: text/html · 31 ms — Probe /agents.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fagents.md&y=ipc:54.167.72.249:1787595761.552"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/.well-known/agents.md → 202 · Content-Type: text/html · 40 ms — Probe /.well-known/agents.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagents.md&y=ipc:54.167.72.249:1787595761.584"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/docs/AGENTS.md → 202 · Content-Type: text/html · 31 ms — Probe /docs/AGENTS.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2FAGENTS.md&y=ipc:54.167.72.249:1787595761.624"></meta></head></html>
  5. fetch GEThttps://johnlacorte.com/CLAUDE.md → 202 · Content-Type: text/html · 34 ms — Probe /CLAUDE.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2FCLAUDE.md&y=ipc:54.167.72.249:1787595761.655"></meta></head></html>
  6. fetch GEThttps://johnlacorte.com/.cursorrules → 202 · Content-Type: text/html · 35 ms — Probe /.cursorrules<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.cursorrules&y=ipc:54.167.72.249:1787595761.689"></meta></head></html>
  7. parse None of the 6 candidate locations returned a 2xx text document
  8. conclude No AGENTS.md at /AGENTS.md, /agents.md, /.well-known/agents.md, /docs/AGENTS.md, /CLAUDE.md or /.cursorrules
Recommended · siteSpec: agents.md
Failed AGENTS.md has required sections S13 AGENTS.md not found

How to fix

## Getting started

## Configuration

## Usage

Evidence

  1. fetch GEThttps://johnlacorte.com/AGENTS.md → 202 · Content-Type: text/html · 107 ms — Probe /AGENTS.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2FAGENTS.md&y=ipc:54.167.72.249:1787595761.519"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/agents.md → 202 · Content-Type: text/html · 31 ms — Probe /agents.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fagents.md&y=ipc:54.167.72.249:1787595761.552"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/.well-known/agents.md → 202 · Content-Type: text/html · 40 ms — Probe /.well-known/agents.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagents.md&y=ipc:54.167.72.249:1787595761.584"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/docs/AGENTS.md → 202 · Content-Type: text/html · 31 ms — Probe /docs/AGENTS.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2FAGENTS.md&y=ipc:54.167.72.249:1787595761.624"></meta></head></html>
  5. fetch GEThttps://johnlacorte.com/CLAUDE.md → 202 · Content-Type: text/html · 34 ms — Probe /CLAUDE.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2FCLAUDE.md&y=ipc:54.167.72.249:1787595761.655"></meta></head></html>
  6. fetch GEThttps://johnlacorte.com/.cursorrules → 202 · Content-Type: text/html · 35 ms — Probe /.cursorrules<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.cursorrules&y=ipc:54.167.72.249:1787595761.689"></meta></head></html>
  7. parse No AGENTS.md to inspect (see S12)
  8. conclude AGENTS.md not found
Recommended · siteSpec: agents.md

Transport

1 passed
Passed Site is served over HTTPS S14 Root URL is HTTPS

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Root scheme: https; homepage final URL: https://johnlacorte.com/ · https://johnlacorte.com/
  3. conclude Root URL is HTTPS
Required · site

API

/openapi.json
1 n/a
Not applicable Root OpenAPI document (API-first sites) S15 Site does not look API-first (no OpenAPI/Swagger links or /api paths found)

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse API-first heuristic: inspected 0 sitemap URL(s) and the homepage links for /api, openapi or swagger — no match · https://johnlacorte.com/
  3. conclude Site does not look API-first (no OpenAPI/Swagger links or /api paths found)
Optional · site

Pages

1 checked · avg 3/22 · P1–P24 per page
Failed johnlacorte.com/ 3/22
Failed P1 Returns HTTP 200 HTTP 202
Passed P2 At most one redirect No redirects
Passed P3 Content-Type is text/html Content-Type: text/html
Failed P4 No noindex / noai X-Robots-Tag X-Robots-Tag contains noindex
Failed P5 Canonical link No <link rel="canonical">
Failed P6 Meta description (≥ 50 chars) No <meta name="description">
Failed P7 og:title No og:title
Failed P8 og:description No og:description
Failed P9 html lang attribute <html> has no lang attribute
Failed P10 JSON-LD structured data present No <script type="application/ld+json"> blocks
Failed P11 JSON-LD has required fields No JSON-LD to validate
Failed P12 At least 3 headings (h1–h3) Only 0 h1–h3 heading(s)
Failed P13 Text-to-HTML ratio Text-to-HTML ratio 0% (0 text chars / 168 HTML chars)
Failed P14 Links to a glossary No link to /glossary, /terminology or /definitions
Failed P15 Markdown mirror ({path}.md) https://johnlacorte.com/index.md → HTTP 202 text/html
Failed P16 Markdown frontmatter (title, description, last_updated) No markdown version available to inspect
Failed P17 link rel=alternate type=text/markdown No alternate markdown link in <head> or Link header
Failed P18 Markdown endpoint sends Link rel=canonical No markdown version available
Failed P19 Accept: text/markdown negotiation Accept: text/markdown → HTTP 202 text/html
Failed P20 Markdown has a ## Sitemap section No markdown version available
Not applicable P21 Code blocks declare a language No code blocks on the page
Not applicable P22 API pages link an API schema Not an API documentation page
Passed P23 Content does not depend on JavaScript rendering 0 chars of server-rendered text
Failed P24 llms.txt describedby link No rel="describedby" link to llms.txt

llms.txt lint

0 passed · 10 failed · does not affect the main score

llms.txt

/llms.txt
10 failed
Failed llms.txt returns HTTP 200 L1 llms.txt not found

How to fix

# johnlacorte.com

> Summary of the site.

## Docs

- [About](https://johnlacorte.com/about.md): what we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned HTTP 200 with a text body
  6. conclude llms.txt not found
Required · llmstxtSpec: llmstxt.org
Failed First line is an H1 title L2 llms.txt not found

How to fix

# johnlacorte.com

> Summary of the site.

## Docs

- [About](https://johnlacorte.com/about.md): what we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude llms.txt not found
Required · llmstxtSpec: llmstxt.org
Failed Content is parseable markdown (not an HTML shell) L3 llms.txt not found

How to fix

# johnlacorte.com

> Summary of the site.

## Docs

- [About](https://johnlacorte.com/about.md): what we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude llms.txt not found
Required · llmstxtSpec: llmstxt.org
Failed Blockquote summary follows the H1 L4 llms.txt not found

How to fix

# johnlacorte.com

> Summary of the site.

## Docs

- [About](https://johnlacorte.com/about.md): what we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude llms.txt not found
Recommended · llmstxtSpec: llmstxt.org
Failed At least one H2 section with a link list L5 llms.txt not found

How to fix

# johnlacorte.com

> Summary of the site.

## Docs

- [About](https://johnlacorte.com/about.md): what we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude llms.txt not found
Recommended · llmstxtSpec: llmstxt.org
Failed Link lines use - [name](url): notes format L6 llms.txt not found

How to fix

# johnlacorte.com

> Summary of the site.

## Docs

- [About](https://johnlacorte.com/about.md): what we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude llms.txt not found
Recommended · llmstxtSpec: llmstxt.org
Failed Sampled links resolve (2xx) L7 llms.txt not found

How to fix

# johnlacorte.com

> Summary of the site.

## Docs

- [About](https://johnlacorte.com/about.md): what we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude llms.txt not found
Recommended · llmstxtSpec: llmstxt.org
Failed ## Optional section used correctly L8 llms.txt not found

How to fix

# johnlacorte.com

> Summary of the site.

## Docs

- [About](https://johnlacorte.com/about.md): what we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude llms.txt not found
Optional · llmstxtSpec: llmstxt.org
Failed Served as text/plain L9 llms.txt not found

How to fix

# johnlacorte.com

> Summary of the site.

## Docs

- [About](https://johnlacorte.com/about.md): what we do

Evidence

  1. fetch GEThttps://johnlacorte.com/llms.txt → 202 · Content-Type: text/html · 72 ms — Probe /llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms.txt&y=ipc:54.167.72.249:1787595761.480"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/llms.txt → 202 · Content-Type: text/html · 45 ms — Probe /.well-known/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fllms.txt&y=ipc:54.167.72.249:1787595761.529"></meta></head></html>
  3. fetch GEThttps://johnlacorte.com/docs/llms.txt → 202 · Content-Type: text/html · 31 ms — Probe /docs/llms.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fdocs%2Fllms.txt&y=ipc:54.167.72.249:1787595761.562"></meta></head></html>
  4. fetch GEThttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fllms-full.txt&y=ipc:54.167.72.249:1787595761.593"></meta></head></html>
  5. parse None of the 4 candidate locations returned a 2xx llms.txt
  6. conclude llms.txt not found
Recommended · llmstxtSpec: llmstxt.org
Failed llms-full.txt exists L10 No /llms-full.txt or /llms-ctx-full.txt

How to fix

https://johnlacorte.com/llms-full.txt

Evidence

  1. fetch HEADhttps://johnlacorte.com/llms-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-full.txt
  2. fetch HEADhttps://johnlacorte.com/llms-ctx-full.txt → 202 · Content-Type: text/html · 31 ms — Probe /llms-ctx-full.txt
  3. parse Neither /llms-full.txt nor /llms-ctx-full.txt answered 2xx with a text body
  4. conclude No /llms-full.txt or /llms-ctx-full.txt
Optional · llmstxtSpec: llmstxt.org

Markdown negotiation

0 passed · 3 failed · 1 n/a · does not affect the main score

Accept: text/markdown

1 page(s) sampled
3 failed1 n/a
Failed Serves markdown for Accept: text/markdown M1 Accept: text/markdown → HTTP 202 text/html

How to fix

GET / HTTP/1.1
Accept: text/markdown

-> HTTP/1.1 200 OK
   Content-Type: text/markdown; charset=utf-8
   Vary: Accept

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · 32 ms — GET / with Accept: text/markdown<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595761.821"></meta></head></html>
  2. parse Response to Accept: text/markdown: HTTP 202, Content-Type text/html, Vary (none) → not a text/markdown 2xx · https://johnlacorte.com/
  3. conclude Accept: text/markdown → HTTP 202 text/html
Required · markdownSpec: acceptmarkdown.com
Failed Responds with Vary: Accept M2 No Vary header

How to fix

Vary: Accept

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · 32 ms — GET / with Accept: text/markdown<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595761.821"></meta></head></html>
  2. parse Vary header on the negotiated response: (none) → does not list Accept or * · https://johnlacorte.com/
  3. conclude No Vary header
Not applicable Returns 406 for an unsatisfiable Accept M3 Skipped — the site does not negotiate markdown (M1 failed)

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · 32 ms — GET / with Accept: text/markdown<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595761.821"></meta></head></html>
  2. parse Accept: text/markdown → HTTP 202, Content-Type text/html, Vary (none); a 406 test only makes sense once markdown negotiation works · https://johnlacorte.com/
  3. conclude Skipped — the site does not negotiate markdown (M1 failed)
Recommended · markdown
Failed Honours Accept q-values M4 q-values ignored (markdown-preferred → text/html, html-preferred → text/html)

How to fix

Accept: text/html;q=0.5, text/markdown;q=1.0 -> text/markdown
Accept: text/markdown;q=0.1, text/html;q=1.0 -> text/html

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · 31 ms — GET / Accept: text/html;q=0.5, text/markdown;q=1.0<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595761.854"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · 38 ms — GET / Accept: text/markdown;q=0.1, text/html;q=1.0<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595761.886"></meta></head></html>
  3. parse markdown-preferred → text/html (expected text/markdown); html-preferred → text/html (ok) · https://johnlacorte.com/
  4. conclude q-values ignored (markdown-preferred → text/html, html-preferred → text/html)
Recommended · markdownSpec: rfc-editor.org/rfc/rfc9110

Bot access

0 passed · 3 failed · 2 n/a · does not affect the main score

Signals

/robots.txt · headers · DNS
3 failed2 n/a
Failed robots.txt has explicit AI-bot rules B1 No robots.txt

How to fix

User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Google-Extended
Allow: /

Evidence

  1. fetch GEThttps://johnlacorte.com/robots.txt → 202 · Content-Type: text/html · 33 ms — GET /robots.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Frobots.txt&y=ipc:54.167.72.249:1787595761.411"></meta></head></html>
  2. parse robots.txt not available (HTTP 202) · https://johnlacorte.com/robots.txt
  3. conclude No robots.txt
Failed robots.txt declares Content-Signal B2 No robots.txt

How to fix

Content-Signal: search=yes, ai-input=yes, ai-train=no

Evidence

  1. fetch GEThttps://johnlacorte.com/robots.txt → 202 · Content-Type: text/html · 33 ms — GET /robots.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Frobots.txt&y=ipc:54.167.72.249:1787595761.411"></meta></head></html>
  2. parse robots.txt not available (HTTP 202) · https://johnlacorte.com/robots.txt
  3. conclude No robots.txt
Required · botsSpec: contentsignals.org
Failed Homepage sends Link headers B3 No Link header on the homepage

How to fix

Link: <https://johnlacorte.com/index.md>; rel="alternate"; type="text/markdown", <https://johnlacorte.com/llms.txt>; rel="describedby"

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Link response header on the homepage: (none) · https://johnlacorte.com/
  3. conclude No Link header on the homepage
Not applicable DNS-AID agent discovery records B4 DNS-AID lookups disabled for this scan

Evidence

  1. parse Scan options exclude DNS lookups; no queries issued
  2. conclude DNS-AID lookups disabled for this scan
Optional · bots
Informational Web Bot Auth signature directory B5 Directory present but is not valid JSON

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/http-message-signatures-directory → 202 · Content-Type: text/html · 37 ms — GET /.well-known/http-message-signatures-directory<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fhttp-message-signatures-directory&y=ipc:54.167.72.249:1787595761.924"></meta></head></html>
  2. parse Body is not valid JSON: '<' is an invalid start of a value. LineNumber: 0 | BytePositionInLine: 0. · https://johnlacorte.com/.well-known/http-message-signatures-directory
  3. conclude Directory present but is not valid JSON
Optional · bots

Protocol discovery

4 of 16 found · informational

.well-known

graded only when present
4 found · 7 issues · 5 not found7 failed
Failed MCP server card C1 /.well-known/mcp.json exists but is not valid JSON

How to fix

Serve a valid JSON document at https://johnlacorte.com/.well-known/mcp.json

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/mcp.json → 202 · Content-Type: text/html · 31 ms — GET /.well-known/mcp.json<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fmcp.json&y=ipc:54.167.72.249:1787595761.962"></meta></head></html>
  2. parse /.well-known/mcp.json → HTTP 202, text/html, body is not valid JSON · https://johnlacorte.com/.well-known/mcp.json
  3. conclude /.well-known/mcp.json exists but is not valid JSON
Optional · protocolsSpec: modelcontextprotocol.io
Not applicable MCP server card is well-formed C2 No MCP server card to validate

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/mcp.json → 202 · Content-Type: text/html · 31 ms — GET /.well-known/mcp.json<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fmcp.json&y=ipc:54.167.72.249:1787595761.962"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/mcp/server-card.json → 202 · Content-Type: text/html · 95 ms — GET /.well-known/mcp/server-card.json<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fmcp%2Fserver-card.json&y=ipc:54.167.72.249:1787595762.054"></meta></head></html>
  3. parse No MCP server card JSON was found at either location (see C1); nothing to validate
  4. conclude No MCP server card to validate
Optional · protocols
Failed OAuth protected resource metadata C3 /.well-known/oauth-protected-resource exists but is not valid JSON

How to fix

Serve a valid JSON document at https://johnlacorte.com/.well-known/oauth-protected-resource

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/oauth-protected-resource → 202 · Content-Type: text/html · 33 ms — GET /.well-known/oauth-protected-resource<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Foauth-protected-resource&y=ipc:54.167.72.249:1787595761.963"></meta></head></html>
  2. parse /.well-known/oauth-protected-resource → HTTP 202, text/html, body is not valid JSON · https://johnlacorte.com/.well-known/oauth-protected-resource
  3. conclude /.well-known/oauth-protected-resource exists but is not valid JSON
Failed A2A agent card C4 /.well-known/agent-card.json exists but is not valid JSON

How to fix

Serve a valid JSON document at https://johnlacorte.com/.well-known/agent-card.json

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/agent-card.json → 202 · Content-Type: text/html · 33 ms — GET /.well-known/agent-card.json<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagent-card.json&y=ipc:54.167.72.249:1787595761.963"></meta></head></html>
  2. parse /.well-known/agent-card.json → HTTP 202, text/html, body is not valid JSON · https://johnlacorte.com/.well-known/agent-card.json
  3. conclude /.well-known/agent-card.json exists but is not valid JSON
Not applicable A2A agent card is well-formed C5 No A2A agent card to validate

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/agent-card.json → 202 · Content-Type: text/html · 33 ms — GET /.well-known/agent-card.json<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagent-card.json&y=ipc:54.167.72.249:1787595761.963"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/.well-known/agent.json → 202 · Content-Type: text/html · 93 ms — GET /.well-known/agent.json<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagent.json&y=ipc:54.167.72.249:1787595762.057"></meta></head></html>
  3. parse No A2A agent card JSON was found at either location (see C4); nothing to validate
  4. conclude No A2A agent card to validate
Optional · protocols
Failed Agent Skills index C6 /.well-known/agent-skills/index.json exists but is not valid JSON

How to fix

Serve a valid JSON document at https://johnlacorte.com/.well-known/agent-skills/index.json

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/agent-skills/index.json → 202 · Content-Type: text/html · 33 ms — GET /.well-known/agent-skills/index.json<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fagent-skills%2Findex.json&y=ipc:54.167.72.249:1787595761.963"></meta></head></html>
  2. parse /.well-known/agent-skills/index.json → HTTP 202, text/html, body is not valid JSON · https://johnlacorte.com/.well-known/agent-skills/index.json
  3. conclude /.well-known/agent-skills/index.json exists but is not valid JSON
Optional · protocolsSpec: agentskills.io
Passed API catalog (/.well-known/api-catalog) C7 API catalog found at /.well-known/api-catalog

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/api-catalog → 202 · Content-Type: text/html · 63 ms — GET /.well-known/api-catalog<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fapi-catalog&y=ipc:54.167.72.249:1787595761.994"></meta></head></html>
  2. parse /.well-known/api-catalog → HTTP 202, text/html, body is not valid JSON (JSON not required) · https://johnlacorte.com/.well-known/api-catalog
  3. conclude API catalog found at /.well-known/api-catalog
Optional · protocols
Failed OAuth / OpenID server metadata C8 /.well-known/oauth-authorization-server exists but is not valid JSON

How to fix

Serve a valid JSON document at https://johnlacorte.com/.well-known/oauth-authorization-server

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/oauth-authorization-server → 202 · Content-Type: text/html · 63 ms — GET /.well-known/oauth-authorization-server<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Foauth-authorization-server&y=ipc:54.167.72.249:1787595761.995"></meta></head></html>
  2. parse /.well-known/oauth-authorization-server → HTTP 202, text/html, body is not valid JSON · https://johnlacorte.com/.well-known/oauth-authorization-server
  3. conclude /.well-known/oauth-authorization-server exists but is not valid JSON
Failed security.txt C9 /.well-known/security.txt exists but has no Contact: line

How to fix

Contact: mailto:security@johnlacorte.com
Expires: 2027-01-01T00:00:00.000Z

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/security.txt → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 64 ms — GET /.well-known/security.txt<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fsecurity.txt&y=ipc:54.167.72.249:1787595761.996"></meta></head></html>
  2. parse Parsed /.well-known/security.txt: fields <html><head><link rel="icon" href="data; Contact missing · https://johnlacorte.com/.well-known/security.txt
  3. conclude /.well-known/security.txt exists but has no Contact: line
Passed OpenAPI document C10 OpenAPI document found at /openapi.json

Evidence

  1. fetch GEThttps://johnlacorte.com/openapi.json → 202 · Content-Type: text/html · 67 ms — GET /openapi.json<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fopenapi.json&y=ipc:54.167.72.249:1787595761.997"></meta></head></html>
  2. parse /openapi.json → HTTP 202, text/html, body is not valid JSON (JSON not required) · https://johnlacorte.com/openapi.json
  3. conclude OpenAPI document found at /openapi.json
Optional · protocols
Informational /auth.md agent auth instructions C11 No /auth.md (optional: markdown instructions telling agents how to authenticate)

Evidence

  1. fetch GEThttps://johnlacorte.com/auth.md → 202 · Content-Type: text/html · 94 ms — GET /auth.md<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2Fauth.md&y=ipc:54.167.72.249:1787595762.026"></meta></head></html>
  2. parse /auth.md → HTTP 202 but text/html (HTML, not markdown) · https://johnlacorte.com/auth.md
  3. conclude No /auth.md (optional: markdown instructions telling agents how to authenticate)
Optional · protocolsSpec: isitagentready.com
Passed UCP manifest C12 UCP manifest found at /.well-known/ucp

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/ucp → 202 · Content-Type: text/html · 96 ms — GET /.well-known/ucp<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Fucp&y=ipc:54.167.72.249:1787595762.028"></meta></head></html>
  2. parse /.well-known/ucp → HTTP 202, text/html, body is not valid JSON (JSON not required) · https://johnlacorte.com/.well-known/ucp
  3. conclude UCP manifest found at /.well-known/ucp
Optional · protocols
Failed ACP manifest C13 /.well-known/acp.json exists but is not valid JSON

How to fix

Serve a valid JSON document at https://johnlacorte.com/.well-known/acp.json

Evidence

  1. fetch GEThttps://johnlacorte.com/.well-known/acp.json → 202 · Content-Type: text/html · 102 ms — GET /.well-known/acp.json<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F.well-known%2Facp.json&y=ipc:54.167.72.249:1787595762.028"></meta></head></html>
  2. parse /.well-known/acp.json → HTTP 202, text/html, body is not valid JSON · https://johnlacorte.com/.well-known/acp.json
  3. conclude /.well-known/acp.json exists but is not valid JSON
Optional · protocolsSpec: agentcommerceprotocol.com
Informational x402 payment-required endpoints C14 No x402 (HTTP 402 + accepts[]) endpoints observed among probed URLs

Evidence

  1. parse Inspected 24 response(s) recorded so far in this scan: 0 returned HTTP 402, none with an accepts[] body
  2. conclude No x402 (HTTP 402 + accepts[]) endpoints observed among probed URLs
Optional · protocolsSpec: x402.org
Not applicable Advertised endpoints not blocked by robots.txt C15 No same-host endpoints advertised in llms.txt / AGENTS.md

Evidence

  1. parse Collected same-host links from llms.txt (absent) and AGENTS.md (absent): 0 endpoints to evaluate
  2. conclude No same-host endpoints advertised in llms.txt / AGENTS.md
Optional · protocols
Passed Content parity for AI crawlers (GPTBot vs browser UA) C16 Baseline text 0 chars vs GPTBot 0 chars (0% difference)

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET / (baseline UA)<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 100 ms — GET / (GPTBot UA)<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipc:54.167.72.249:1787595762.031"></meta></head></html>
  3. parse Extracted visible text from both responses: baseline 0 chars vs GPTBot 0 chars → 0% difference (allowed ≤ 15%, or ≤ 25% when both exceed 500 chars) · https://johnlacorte.com/
  4. conclude Baseline text 0 chars vs GPTBot 0 chars (0% difference)
Required · protocols

Accessibility

1 passed · 3 failed · 19 n/a · does not affect the main score

A1–A23

homepage · static DOM
1 passed3 failed19 n/a
Not applicable Images have alt text A1 No <img> elements

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for image(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No <img> elements
Required · accessibility
Not applicable Form controls have labels A2 No form controls

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for form control(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No form controls
Required · accessibility
Not applicable Links and buttons have accessible names A3 No links or buttons

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for link(s)/button(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No links or buttons
Required · accessibility
Not applicable Media elements declare width and height A4 No img/video/iframe elements

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for media element(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No img/video/iframe elements
Recommended · accessibility
Not applicable ARIA/label id references resolve and ids are unique A5 No ids or id references

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for id(s)/reference(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No ids or id references
Required · accessibility
Not applicable iframes have a title A6 No iframes

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for iframe(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No iframes
Required · accessibility
Not applicable One h1 and no skipped heading levels A7 No headings

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for h1–h6: none found · https://johnlacorte.com/
  3. conclude No headings
Recommended · accessibility
Not applicable No positive tabindex A8 No tabindex attributes

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for tabindex attribute(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No tabindex attributes
Recommended · accessibility
Not applicable Viewport allows zoom A9 No viewport meta tag

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Looked for <meta name="viewport">: none · https://johnlacorte.com/
  3. conclude No viewport meta tag
Required · accessibility
Failed Document has a non-empty title A10 Missing or empty <title>

How to fix

<title>Site name — what it does</title>

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Read <title>: missing or empty · https://johnlacorte.com/
  3. conclude Missing or empty <title>
Required · accessibilitySpec: w3.org/WAI/WCAG22/quickref
Not applicable aria-label includes the visible text A11 No controls with both aria-label and visible text

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for labelled control(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No controls with both aria-label and visible text
Recommended · accessibility
Failed Landmark main or skip link A12 No <main> landmark, role="main" or skip link

How to fix

<a href="#content" class="skip-link">Skip to content</a>
<main id="content">…</main>

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Looked for <main>/role="main": none; in-page 'skip' link: none · https://johnlacorte.com/
  3. conclude No <main> landmark, role="main" or skip link
Recommended · accessibilitySpec: w3.org/WAI/WCAG22/quickref
Failed Valid BCP-47 lang A13 <html> has no lang attribute

How to fix

<html lang="en">

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Read the lang attribute on <html>: absent · https://johnlacorte.com/
  3. conclude <html> has no lang attribute
Required · accessibilitySpec: rfc-editor.org/rfc/rfc5646
Not applicable No focusable content inside aria-hidden A14 No aria-hidden regions

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for aria-hidden region(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No aria-hidden regions
Required · accessibility
Not applicable No nested interactive controls A15 No interactive controls

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for interactive control(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No interactive controls
Required · accessibility
Not applicable No empty headings A16 No headings

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for heading(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No headings
Recommended · accessibility
Passed No timed meta refresh A17 Meta refresh has no delay

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Found <meta http-equiv="refresh"> with delay 0s · https://johnlacorte.com/0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376
  3. conclude Meta refresh has no delay
Required · accessibility
Not applicable Valid autocomplete tokens A18 No autocomplete attributes

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for autocomplete attribute(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No autocomplete attributes
Recommended · accessibility
Not applicable Data tables have headers A19 No tables

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for table(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No tables
Recommended · accessibility
Not applicable SVG role=img has an accessible name A20 No svg role=img elements

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for svg(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No svg role=img elements
Recommended · accessibility
Not applicable Audio/video have captions track A21 No audio/video elements

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for media element(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No audio/video elements
Recommended · accessibility
Not applicable Lists contain only list items A22 No lists

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for list(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No lists
Recommended · accessibility
Not applicable ARIA roles and attributes are valid A23 No ARIA roles or attributes

Evidence

  1. fetch GEThttps://johnlacorte.com/ → 202 · Content-Type: text/html · X-Robots-Tag: noindex · 131 ms — GET /<html><head><link rel="icon" href="data:;"><meta http-equiv="refresh" content="0;/.well-known/sgcaptcha/?r=%2F&y=ipr:54.167.72.249:1787595761.376"></meta></head></html>
  2. parse Searched the homepage DOM for ARIA role(s)/attribute(s): none found, nothing to audit · https://johnlacorte.com/
  3. conclude No ARIA roles or attributes
Required · accessibility

Compare

Top public scans · full leaderboard

Privacy

Public scans list the domain, score and level on the leaderboards and feed the percentile corpus. Only public URLs were fetched; nothing was stored from the site beyond this report.