Skip to main content
Promptway
AEO & Visibility··9 min read

is-agentic Scored Promptway 74. Here Is What I Changed

Vercel shipped a scoreboard for how well agents can read a site. I ran it on this publication, closed the gaps that apply to a magazine, and wrote the prompt I would hand an agent to do the same work.

Agnel NievesAgnel Nieves

Read in Am Puck's voice, synthesized.AI voice

View as Markdown
Engraved illustration of a brass balance scale on a cracked stone pedestal, a glowing gold greater-than glyph on the left pan outweighing a stack of books, keys, and a small house on the right, framed by botanicals on a deep cobalt blue ground.
Hero illustration and animation generated with Grok.

I ran npx is-agentic promptway.com and the report came back 74 out of 100.

Essential was 59 of 80. Recommended 12.6 of 20. A 2.4-point bonus. The label was "Ready with a few material gaps."

Earlier this week I did the same work on my personal site and wrote it up there (I fixed my site for agents by hand. Then Vercel shipped a scoreboard). The product writeup, the announcement, and the scoring model are in Vercel Shipped is-agentic.com. This piece is what happened when I pointed the grader at Promptway.

We already shipped the eight-layer stack I described in Optimizing Your Site for AI Agents and LLMs: robots allowlist, sitemap, llms.txt, llms-full.txt, JSON-LD, feeds, article markdown siblings. The scoreboard still found holes. Most of them were ordinary web hygiene. A couple were "developer resources" checks that assume you are a SaaS. I fixed the first group and refused to fake the second.

What 74 was made of

is-agentic.com wraps Ora's agent-readiness research. Essential checks share 80 points, recommended share 20, and a small bonus can add up to 5. Checks that do not apply get excluded. The methodology page is worth reading before you argue with a number. Reports cache for six hours, so a re-scan right after a deploy can lie to you.

The CLI is the useful interface:

npx is-agentic promptway.com
npx is-agentic promptway.com --json

It returns a stored report if one exists, or starts a scan and waits. --json is the shape an agent wants.

The failures that mattered on this site, in the order the report ranked them:

  1. Agent-friendly 404s. HTTP 404 already, but the body was a styled dead end. Partial credit until the 404 points at llms.txt, the sitemap, and a next step.
  2. Content without JavaScript. The homepage had an H1 and enough characters. The outline was flat, because the only nested headings lived inside card links, which the grader did not count.
  3. Markdown content negotiation. Accept: text/markdown returned text/html. Vary had the Next.js RSC list and no Accept. Failed.
  4. Developer resource discoverability. An agent searched for "promptway developer resources" and found nothing named that.
  5. Agent instruction / when-to-use. llms.txt listed pages. It did not say when to reach for us, or when not to.
  6. Trust pages. About existed. Contact and privacy did not.
  7. Organization JSON-LD. Name and description were there. contactPoint and address were not.
  8. Content efficiency. Readable text was 4.83 percent of the homepage HTML. The bar is 5.

There was also an MCP check. The site mentions MCP because we write about other people's servers. We do not run one. I did not publish a fake manifest to chase the points.

What I changed

The 404 now returns a real 404 with a recovery list: llms.txt, Promptway developer resources, sitemap, archive, about, contact. Send Accept: text/markdown and the same miss is a short markdown body instead of HTML. Verify with:

curl -s -o /dev/null -w "%{http_code}" https://promptway.com/some-path-that-does-not-exist
curl -sI -H "Accept: text/markdown" https://promptway.com/some-path-that-does-not-exist

The first must print 404. The second must print content-type: text/markdown and a vary that includes Accept.

Markdown negotiation follows acceptmarkdown.com. proxy.ts (Next.js 16's name for middleware) parses Accept, skips RSC requests, and rewrites markdown-preferring GETs to a catch-all that already knew how to render articles, bots, about, and the new pages. Vary: Accept is set on that response. HTML still comes back for a browser Accept. A client that rejects both HTML and markdown gets 406.

I did not invent a public product API. Promptway is a magazine. The developer surface is the content stack plus Prompt Inspector, which is a same-origin tool. That now lives at /for-agents under the title "Promptway developer resources," with OpenAPI at /openapi.json and an RFC 9727 catalog at /.well-known/api-catalog. llms.txt links all three.

llms.txt also gained a "When to use Promptway" section. The jobs we are right for are AEO guidance from this live Next.js site, a prompt structure with a copy-paste example, a founder interview with a number, a tool writeup that names the skip list, and a sourced news filter. We are the wrong fetch if you need a model API, an MCP server, OAuth, webhooks, or unlabeled AI copy.

/contact and /privacy are real pages, each well over 500 characters. The inbox is agnel@promptway.com. The address in JSON-LD is San Juan, PR. Organization schema now has url, sameAs, logo, email, address, and contactPoint.

The homepage grew a "How to read this site" band with an H2 and two H3s that are not inside links, plus enough server-rendered prose that a no-JS crawler sees a nested outline and more than a dek.

What I did not change

I did not stand up an MCP server. The recommended check is fair for a product with tools. For a publication it would be a toy endpoint whose only job is the score. If we ever ship one, it will have a job besides the grader.

I did not strip the magazine layout to win content-efficiency on markup ratio. The cards, the footer, the fonts, and the JSON-LD are the site. I added copy instead of deleting chrome. Locally that moved the homepage text ratio from 4.83 percent to about 5. If the production crawler still calls it partial, I will live with it.

I did not 406 ordinary browsers. Chrome sends text/html,application/xhtml+xml,... and still gets HTML.

The prompt I would hand an agent

Copy this, put your domain in, and run it in whatever coding agent you use. It is the is-agentic fix-it prompt, rewritten for a site that might be a publication rather than a SaaS.

Audit and fix this site for agentsClaudeChatGPT
Use npx is-agentic to audit this site and fix any issues that arise. Inspect the existing codebase before changing files. Follow each published protocol exactly. Preserve visual design and product behavior. Add or update tests for every behavior you change. Verify every public endpoint after implementation.

Site: YOUR_DOMAIN_HERE

1. Run the audit
   - `npx is-agentic YOUR_DOMAIN_HERE`
   - `npx is-agentic YOUR_DOMAIN_HERE --json` if you want structured errors
   - Read https://is-agentic.com/methodology so you know essential (80) vs recommended (20) vs bonus
   - Fix essential failures first. Recommended next. Do not invent product surface to chase recommended or bonus points

2. Agent-friendly 404s
   - Nonexistent paths must return HTTP 404 or 410, never 200 with an app shell
   - The 404 body should tell an agent where to go next: sitemap, llms.txt, docs index, contact
   - If the client sends Accept: text/markdown, the 404 body should be markdown
   - Verify: `curl -s -o /dev/null -w "%{http_code}" https://YOUR_DOMAIN_HERE/some-path-that-does-not-exist`

3. Content without JavaScript
   - Server-render the homepage
   - One H1, nested H2/H3 that are not trapped inside links, 500+ characters of text in raw HTML

4. Markdown content negotiation (acceptmarkdown.com)
   - The same URL that serves HTML must serve text/markdown when Accept prefers it
   - Content-Type: text/markdown; charset=utf-8
   - Vary must include Accept (Vary: Accept, Accept-Encoding is fine)
   - Do not break Next.js RSC (skip negotiation when the RSC or Next-Router-State-Tree headers are present)
   - Optional: .md siblings and Link: rel="alternate"; type="text/markdown"
   - Verify: `curl -sI -H "Accept: text/markdown" https://YOUR_DOMAIN_HERE/`

5. Agent instructions / when to use
   - Add a "When to use this" section to /llms.txt
   - Name the jobs you are right for, the jobs you are not, and how an agent should call you
   - Generic marketing copy does not count

6. Developer resources, only if they are real
   - If you have an API, OpenAPI, MCP, auth docs, or webhooks, publish them at predictable URLs, list them in llms.txt, and put the product name in the page title and H1
   - If you are a publication or a brochure site, document the machine-readable content stack (llms.txt, markdown, feeds) under a page titled "<Product> developer resources"
   - Do not stub an MCP server, OAuth provider, or webhook hub you do not run

7. Trust pages
   - Real /about, /contact, and /privacy, each with at least 500 characters
   - A real inbox and a real location beat a contact form that posts to nowhere

8. JSON-LD
   - Organization (or Person, or SoftwareApplication) with name, description, url, plus the type-appropriate fields: sameAs, logo, address, contactPoint
   - Escape "<" in JSON-LD you dump into a script tag

9. Content efficiency
   - Readable text at least 5 percent of homepage HTML
   - Prefer adding real copy under real headings over deleting the design system

10. Verify, then stop
    - curl the 404, the markdown Accept, /llms.txt, /sitemap.xml, /contact, /privacy, and any OpenAPI or catalog file you added
    - Add tests for Accept parsing, 404 markdown, and trust-page length
    - Finish with a change summary, verification results, and a list of remaining items that need a product decision (MCP, OAuth, write APIs)
    - Do not claim a new is-agentic score until a scan against the deployed host completes. Reports cache for about six hours

How to run that, as a person

  1. Read the is-agentic docs and the methodology. Know which pool a failure sits in.
  2. Run the CLI once. Save the JSON. Do not start in the recommended tier.
  3. Open the codebase. Confirm each failure against a live curl before you edit. Soft 404s, missing Vary, and "we already have llms.txt" are easy to misread from source alone.
  4. Paste the prompt above into your agent with the domain filled in. Stay in the loop for the product decisions: MCP, OAuth, fake docs. Those are how scores get dishonest.
  5. Verify on a running server, then deploy, then wait out the cache and scan again.

The grader is applicability-aware. A portfolio and a public API are not scored as the same object. That is the part of is-agentic I trust. The failure mode is treating every recommended row as a feature request.

I still want the production number to move. This piece is the receipts from the session, not a screenshot of a 100. Run the CLI on your host, hand the prompt to your agent, and keep the refusals in.

Sources

View as Markdown

Read next

Engraved illustration of a gold inspector's stamp, its face a greater-than glyph, resting on a certificate beside ledgers, an abacus, and a spilled inkwell, framed by botanicals on a kelly green ground.

AEO & Visibility · 6 min read

Vercel Shipped is-agentic.com. Here Is How the Scoreboard Works

Ora runs the checks. Vercel publishes the report. The CLI, the markdown URL, and the MCP server are how an agent uses the grader on itself.