Next.js App Router & Vercel Blueprint: Deterministic /llms.txt, /pricing.md & /ai/summary.json
Updated 2026-10-31 · Telemetry across 512 audited B2B SaaS domains
In our live audit of 512 B2B SaaS domains, Next.js sites using dynamic app/[...slug]/page.tsx or localized middleware.ts redirects frequently intercept /llms.txt, /pricing.md, and /ai/summary.json, returning locale redirects or 292.7 KB RSC HTML shells instead of clean UTF-8 text and JSON.
1. Bypass Locale & Auth Redirects in middleware.ts
import { NextResponse, type NextRequest } from "next/server";
const ASO_PATHS = new Set([
"/llms.txt", "/llms-full.txt", "/pricing.md", "/answers.md",
"/.well-known/ai.txt", "/.well-known/mcp.json",
"/ai/summary.json", "/ai/faq.json", "/ai/service.json"
]);
export function middleware(req: NextRequest) {
if (ASO_PATHS.has(req.nextUrl.pathname)) return NextResponse.next();
const res = NextResponse.next();
res.headers.set("Link", '</llms.txt>; rel="llms-txt", </.well-known/mcp.json>; rel="mcp"');
return res;
}
2. Ship All 26 Validated Files + GitHub Actions Regression Gate
Place your deterministic plain-text and JSON specifications under public/ and enforce a 95+/100 CI check via .github/workflows/aso-score-gate.yml so future marketing deploys never strip your Schema.org @graph or agent feeds.
[ Probe Your Next.js Site Live in <400ms → ] [ Have ASO Studio Open Your 26-File Next.js PR First ($0 Today) ]