Changelog
What's new in AIScan
A running log of releases, features, and improvements. Built in public. New here? Start with the docs; rubric and score changes are explained in Scoring & Levels.
v3.12.0
September 8, 2026Scan and domain reports are visible again
- fixedEvery report rendered blank below its heading. The report body is wrapped in a Framer Motion element whose initial={{opacity:0}} is server-rendered as an inline opacity:0 style, so the fully laid-out content — 5,800 to 8,700 pixels of it — was painted invisible whenever Motion did not run the entrance animation. Server-rendered content no longer depends on JavaScript to become visible, on the report wrapper, all 245 check rows, the agent-prompt block, the comparison table and the homepage feature cards.
- improvedEntrance animations were removed from server-rendered blocks rather than made conditional. The homepage hero already carried a note explaining why it has no entry animation; the same reasoning now applies everywhere content arrives in the HTML.
v3.11.0
September 8, 2026Domain pages no longer go blank below the heading
- fixedScan-history timestamps were formatted with toLocaleString() and no pinned locale or time zone, so the server (UTC) and the browser produced different text — “6 Sept” against “7 Sept” for a reader in UTC+4. React treats that as a corrupted tree, raises hydration error #418, and discards the entire server-rendered subtree: the heading survived and the whole report below it went blank. Timestamps are now pinned to UTC and labelled UTC, on /site/ and /scan/ alike.
- fixedRelative timestamps (“4m ago”) were server-rendered into HTML that is cached for minutes, so the server wrote “4m ago” and a browser hydrating that cached document later computed “9m ago” — the same hydration failure, on /scans, the homepage feed and /r/. They now render a fixed date on the server and switch to relative time after mount, which also means a crawler reading a cached page sees a real date instead of a stale “4m ago”.
- fixedHomepage stat counters formatted their numbers the same unpinned way, which could break hydration for anyone whose browser groups digits differently from the server.
- improvedThe homepage feed is now sorted purely by scan time, newest first, one row per site. It previously interleaved a spread of high, middle and low scores after the first five rows, which put two-day-old scans directly under four-minute-old ones and never matched /scans.
- improvedRemoved the short scan-ID badge from each row of the public scans directory. It stays inside a site’s expanded history, where it distinguishes one scan from another.
v3.10.1
September 7, 2026Homepage “Improved with AIScan” no longer loads forever
- fixedThe Improved with AIScan section on the homepage sat on “Loading verified improvements…” indefinitely. It was the last block on the page still fetching only from the browser, and its server function returns 500 over HTTP while working correctly in-process — the /improved page, which server-renders the same data, was never affected. The homepage loader now prefetches it, so the rows are in the served HTML.
- fixedThat section now says when it failed instead of showing a loading message that never ends.
v3.10.0
September 7, 2026Domain pages load instantly and stop de-indexing themselves
- fixedEvery /site/<domain> page briefly replaced its own report with a "no public scan yet" empty state — wrong title, wrong canonical, and a noindex tag — on every single page view. The route treated "loader still running" as "there is no scan"; only a resolved miss does that now. The same conflation is fixed on /scan/$id and /blog/$slug.
- fixedThe /site/<domain> query refetched on arrival for every visitor because its 60s staleTime was shorter than the TTL of the cached HTML it hydrates from. Both now read the same constant, so hydration resolves from the data already in the page.
- improvedstale-while-revalidate is now actually implemented. Cached pages were hard-expired at their TTL despite the header promising a stale window, so /site/ pages measured a cache MISS on 12 of 12 sampled domains and every click paid a full render. A stale page is now served immediately and re-rendered behind the response.
- improvedPer-domain pages cache for 15 minutes instead of 5.
- fixedConcurrent requests for the same uncached page now share a single render instead of each starting their own, and a request that arrives while a render is already running gets a slightly stale copy rather than queueing behind it — age-limited, so a slow render cannot quietly serve a page past its stale window.
- fixedBounded how long a stale page can be served. This runtime cancels a render dispatched behind a response, so a stale page was never actually refreshed in the background — mutable pages now re-render on the first request past a 60s grace window instead, and the stampede guard expires on its own rather than wedging when a cancelled task never finishes.
- improvedBuilding a domain page no longer loads the full report JSON for up to 50 historical scans when only the newest one is rendered.
v3.9.4
September 6, 2026Homepage community stats survive without JavaScript
- fixedHomepage Total scans / Avg score / Not AI-ready and the first curated rows are server-rendered via the home loader + curatedFeedQuery, so Safari (and any client where the feed fetch never runs) no longer shows permanent grey placeholders.
- improvedIf the feed is slow or errors, StatCell shows "Live stats unavailable" after a few seconds instead of an endless shimmer. Live polling every 30s still updates after hydration.
- improvedHome loader caps the feed prefetch at ~1.5s so a slow DB round-trip cannot dominate homepage TTFB on a cache miss.
v3.9.3
September 2, 2026Telegram links that actually open Telegram
- fixedTelegram links now navigate in the same tab on phones, so iOS and Android hand off straight to the Telegram app instead of a dead-end browser tab. Desktop still opens a new tab.
- newOpening the Telegram link from a report page pre-fills that site: the bot scans it as soon as you tap Start.
v3.9.2
September 2, 2026Leaner scan reports
- improvedThe "fix automatically with AIScan" instructions and the generic "verify" line now appear once per report, near the roll-up, instead of being repeated inside every failing check.
- improvedThe hoisted block is derived from your scan: it names the open checks and the copyable commands carry your own URL. A 100/100 report doesn't show it at all.
- improvedPer-check fix guides now contain only steps specific to that check. Check-specific verification commands (like the 404 probe) are kept.
- fixedAgent surfaces are unchanged — the REST API, MCP `get_fixes` and the CLI `--fix` prompt still return complete, self-contained instructions per check.
v3.9.1
September 1, 2026CLI telemetry and Telegram discovery
- fixedThe AIScan CLI now sends an identifying User-Agent (`aiscan-cli/<version>`) so telemetry can distinguish CLI scans from raw API calls.
- improvedA Telegram bot banner now appears at the end of every scan report, making it easy to re-run or share a scan from a phone.
v3.9.0
August 28, 2026Use-case directory: 40 business stories, redesigned hub
- new22 new business stories — garages, builders, cleaners, salons, vets, therapists, fashion and electronics retailers, makers, car dealers, estate agents, brokers, recruiters, travel operators, takeaways, photographers, event planners, venues, course creators, schools, charities and web studios.
- newThree new industry categories: Health & wellness, Creative & events, and Learning & community — nine in total, each with its own filter and description.
- improvedThe use-case hub has a new hero with live counts, numbered entry points, and the search and industry filter moved into a sticky right-hand rail.
- improvedPlaybook and story pages now open with a proper header card, and every story shows the checks that decide it up front.
v3.8.2
August 28, 2026Free llms.txt Generator, surfaced properly
- improvedThe free llms.txt Generator is now named clearly in the Resources menu, listed in the server-rendered footer, and announced in /llms.txt — so people and agents can actually find it.
- improvedFailing the llms.txt check now links straight to the generator. On WordPress, ThinkRank generating the file automatically stays the first recommendation, with the generator as the no-plugin fallback.
- fixedInvestigated why pages still say “no-cache” in production: our caching policy is correct and applied, but the hosting layer rewrites the header after our code runs. Documented so nobody re-implements it.
v3.7.1
August 26, 2026Checkout hardening and admin access fix
- fixedAdmin role checks failed for some sessions because the role-check function ran without elevated privileges. It is now a security-definer function with a fixed search path and explicit grants, so admin pages and role-gated endpoints work reliably — and stay closed to everyone else.
- fixedThe Founder LTD 100-seat cap is now enforced before payment: checkout is refused once the seats are gone or if you already hold a licence, and in the rare race where a payment still lands without a seat it is refunded automatically.
- improvedReturning customers reuse their existing billing profile at checkout instead of creating a duplicate one, so the billing portal always finds the right subscription.
- improvedCheckout errors are now shown on the pricing page instead of failing silently.
v3.7.0
August 26, 2026Scan telemetry — measuring the non-web surfaces
- newEvery scan now records which surface it came from — web, CLI, REST API, MCP, Telegram or the Chrome extension — plus coarse geography, so scans arriving outside the website are finally measurable.
- newA new admin dashboard at /admin/scan-telemetry charts scans by surface over time, by country and region, the browser/OS/device split for browser scans, cache hit and error rates, plan mix and the platform mix of scanned sites.
- improvedPrivacy by design: the telemetry table stores no IP addresses, no raw User-Agent strings, no city, no scanned URL and no account, email, session or API-key data. User-Agents are parsed to a coarse browser/OS/device bucket and the original is discarded, so nothing recorded is joinable back to an individual — and no privacy-policy change is required.
- improvedTelemetry writes are fire-and-forget and admin-only behind row-level security: a failed insert can never slow or break a scan, and the data is never exposed in a report, a public API response, the MCP tools or CLI output.
v3.6.0
August 26, 2026Stable per-domain report URLs
- newEvery scanned domain now has one canonical, shareable page at /site/example.com showing its latest public scan and full public history. No UUID to paste, and an agent can construct the URL without a lookup.
- improvedThe sitemap now lists one URL per domain instead of one per scan, collapsing 991 near-duplicate report URLs down to the number of distinct domains. Individual /scan/<id> links keep working exactly as before, but are now noindex and canonicalised to their domain page.
- improvedwww., uppercase and IDN variants of a domain redirect to a single canonical form, so one site can never occupy two URLs.
- improvedLinks across the site are prefetched on hover, so navigating between pages is instant — while every page is still fully server-rendered on first load.
- fixedPrivate scans remain private: the domain page only ever reads public scans, and a domain whose only scans are private shows an explicit empty state.
v3.5.0
August 26, 2026Shared render cache and crawler recovery
- improvedPublic rendered pages now use a database-backed shared cache behind the in-memory LRU, so a warm render can be reused across server instances. Response diagnostics distinguish HIT-MEMORY, HIT-SHARED and MISS.
- fixedBlog writes, public scan writes and showcase preference changes now invalidate the affected shared pages automatically.
- fixedMalformed agent URLs ending in repeated markdown punctuation now recover across app routes, API routes and the homepage, while genuinely unknown URLs remain real 404s.
- improvedThe public scans table is server-rendered, and the free llms.txt Generator is now discoverable from the header, footer, llms.txt and generic C2 fix guidance.
v3.4.0
August 26, 2026Edge-cached pages
- improvedPublic pages are now served from an in-process render cache instead of re-running data loaders and re-rendering the page on every single request. Warm servers replay stored HTML, cutting repeat page loads to a fraction of a cold render.
- improvedCache policy by content type: stored report snapshots (/r/… and /scan/…) for a day, reference pages (docs, guides, pricing, changelog, about) for an hour, and frequently changing public pages (home, /blog, /scans, /improved) for two minutes.
- improvedBlog staleness is bounded at two minutes: publishing or editing a post rolls out without a manual purge.
- fixedSigned-in surfaces — /profile, /admin, /auth and every API route — are explicitly excluded from caching, and responses carrying credentials or cookies are never stored.
v3.3.0
August 26, 2026Every WordPress SEO plugin gets its own fix guide
- newYoast SEO, All in One SEO and SEOPress now get real per-check fix steps — robots.txt, XML sitemaps, titles/meta, schema and AI bot rules — using each plugin's actual admin menu path. Previously only Rank Math had a dedicated path and everyone else was sent to ThinkRank.
- improvedRank Math guidance gained C3 (titles, meta, schema) and B1 (Content Signals) steps.
- improvedWhere a plugin genuinely can't do something — llms.txt, /index.md, .well-known files — the guide says so plainly and gives the manual or WPCode route instead of glossing over it.
- improvedThe ThinkRank section is now appended after the detected plugin's steps, framed as running alongside it, never as a replacement. It is hidden entirely on sites already running ThinkRank, and on checks ThinkRank doesn't fix it is reduced to a single honest line instead of a pitch.
v3.2.0
August 26, 2026One consolidated WordPress fix path
- newWordPress reports now show a single "Fix with ThinkRank" roll-up card above the checks. It names the exact failing checks ThinkRank covers (by ID and title, derived from your scan) and states plainly how many remaining issues need a different fix, with links down to them.
- newThe card and the fix guides both disclose that ThinkRank is a free WordPress plugin from the team behind AIScan. Every check stays fixable by hand — the manual robots.txt, PHP and WPCode steps are unchanged.
- improvedThe ThinkRank intro no longer repeats inside every failing check's guide; per-check "In ThinkRank →" steps and code snippets are untouched.
- newNew ThinkRank fix steps for B1 (Content Signals), M4 (machine-readable pricing on WooCommerce) and a note on Rank Math sites that ThinkRank can generate and keep /llms.txt current alongside Rank Math.
v3.1.0
August 24, 2026Rubric versioning and honest "we changed the rules" alerts
- newEvery scan now records the exact scoring rubric version that produced it, so a score from June and a score from today are never silently compared as if the rules were the same. Scans from before this change are marked `legacy`.
- newPublished rubric release notes (see below): each rubric version lists in plain English what was added, removed or reweighted.
- newNew rubric-change email. When AIScan updates how it grades, monitored sites get a notice that says plainly the site did not regress and the delta came from our rubric — instead of a regression alert.
- improvedMonitoring now classifies score moves: same rubric behaves exactly as before (alerts, digests, grade celebrations); a different rubric with a score move sends the rubric notice only; a different rubric with no score move sends nothing.
v3.0.0
August 24, 2026Plans, metering and AIScan Pro
- newFour-tier plan ladder: Guest (3 lifetime public scans), Free (20 scans/month, 1 watched site, weekly monitoring), Pro ($12/mo or $99/yr — 250 scans, 10 watched sites, daily checks, alerts, exports, 2,000 MCP/API calls) and a Founder lifetime deal ($129 once, hard-capped at the first 100 licences).
- newNew /pricing page with monthly/annual toggle, live Founder seat counter, honest competitor price benchmarks and explicit lifetime-deal scope.
- newPlan & usage card on /profile showing scans, watched sites and MCP/API calls used this month against your allowance, with contextual upgrade prompts.
- newServer-side metering: monthly usage counters, a founder_licenses table with a 100-seat cap enforced in the database, and quota checks on the web scan endpoint, the public API and watched-site limits.
- improvedWatched-site limits and daily monitoring are now enforced per plan instead of per admin flag, and /docs/plans documents every allowance.
v2.9.1
August 24, 2026Docs coverage for the new checks and plan limits
- newNew docs page /docs/plans documenting exactly what anonymous, free registered and Pro accounts get: scan limits, report visibility, Pro-only per-page scans, monitoring, rate limits and the RFC 9457 problem responses a gated call returns.
- newChecks reference now documents E1 (correct 404 handling), E2 (machine-readable API description), E3 (heading hierarchy & server-rendered text), E4 (HTTPS & canonical host) and E5 (content feed) — what we probe, how points are split, and when a check is marked not applicable.
- improvedStep-by-step fix guides added for E1–E5, so every one of the checks adopted from the Is Agentic benchmark now ships remediation instead of a one-line summary.
v2.9.0
August 24, 2026AIScan CLI — npx aiscan-cli
- newZero-dependency CLI: run `npx aiscan-cli example.com` to get the full report in your terminal — score, dimension bars, every failing check with the evidence we observed and the fix.
- newCI gates: --min-score and --fail-on essential|any set the exit code, so a build can fail when agent readiness regresses. --md writes a Markdown summary straight into a PR comment or GitHub step summary.
- new--fix prints a copy-paste prompt for Claude Code or Cursor containing every failing check, the observed evidence, the required outcome and the re-verify command.
- newPer-page scans from the CLI with --page for Pro accounts; the public API now accepts scope=page and returns a clear 403 instead of silently downgrading to a site scan.
- newNo-npm fallback: curl -fsSL https://aiscan.site/cli.mjs | node - example.com.
- newNew CLI docs at /docs/cli and a root CLAUDE.md describing every feature and surface for AI coding agents working on the project.
v2.8.0
July 6, 2026Evidence-backed scoring & the comparison sheet
- newEvery check now cites the published standard it is measured against (RFC 9309, RFC 9457, RFC 9727, sitemaps.org, schema.org, MCP and more), linked directly from the expanded result and exposed as check.specs in the API.
- newNew check E4 — HTTPS & canonical host: verifies TLS, the http→https upgrade, www/apex canonicalisation and HSTS, so agents never index two copies of a site.
- newNew check E5 — content feed: detects a declared RSS, Atom or JSON Feed, and marks itself not-applicable with a reason on sites that publish no periodical content.
- newHomepage 'How AIScan compares' sheet benchmarking us against Vercel's Is Agentic, with every row limited to publicly shipped features and linked to our methodology.
- improvedNot-applicable checks now explain in plain language why they were excluded instead of silently disappearing from the score.
- improvedScoring docs expanded with the essential/recommended/bonus tier definitions, how evidence and citations work, and an explicit limitations section.
v2.7.0
July 5, 2026Developer surface hardening & tiered scoring
- newStable versioned API: GET/POST /api/public/v1/scan and GET /api/public/v1/report/{id}. The v1 contract is additive-only — fields are never removed or renamed.
- newOpenAPI 3.1 description published at /openapi.json, advertised from every v1 response via a Link: rel="service-desc" header and from the RFC 9727 API catalog.
- newAll v1 errors are now RFC 9457 application/problem+json documents with stable type URIs (invalid-url, missing-parameter, not-found, rate-limited, method-not-allowed, scan-failed).
- newNew /developers guide documenting endpoints, authentication, rate limits, error format, and a written versioning + 180-day deprecation policy.
- newNew /about page: who builds AIScan, how the rubric is versioned, and what an HTTP-only scanner deliberately does not measure.
- newThree new checks — E1 correct 404 handling (catches soft 404s), E2 machine-readable API description, E3 heading hierarchy & server-rendered text.
- newEvery check is now tiered essential / recommended / bonus, shown as a badge in the report and exposed as check.tier in the API.
- newReports include a 'How this score is calculated' panel breaking down essential vs recommended points, bonus signals earned, and which checks were not counted.
- newPublished /server.json (MCP registry manifest) and /.well-known/ai-catalog.json; expanded /.well-known/api-catalog with service-desc, service-doc, service-meta and status-page links.
- improved404 pages now return a recovery body linking the homepage, docs, developer guide, blog, sitemap.xml, llms.txt and openapi.json.
- improvedHomepage JSON-LD upgraded to a @graph with WebSite, Organization and SoftwareApplication entities.
- improvedllms.txt now opens with explicit 'When to use AIScan' guidance and lists every developer surface.
v2.6.0
July 5, 2026Scan designation, cleaner header
- newEvery scan row across the community feed, /scans, /profile, and scan history now carries a short scan ID chip (#abc12345) so you can reference a specific scan unambiguously.
- fixedHeader logo no longer exposes a ?reset=1 query string in the URL — clicking the logo on the homepage silently resets the form via a client-side event.
- fixedRemoved duplicate extension CTA on the homepage — the header 'Get extension' pill is now hidden on / where the larger install banner already appears.
v2.5.0
July 5, 2026Private-by-default visibility
- newAuthenticated scans are now private by default across every channel — web, Chrome extension, REST API, MCP, Telegram bot, and scheduled scans.
- newNew 'Default scan visibility' toggle on /profile — one setting all channels read.
- newREST API and MCP now accept an isPublic override per call (query string on GET, JSON body on POST).
- improvedAnonymous scans remain public (required for shareable /scan/[id] URLs); a scans_public_or_owned DB constraint enforces this at the row level.
- improvedRescans from /scan/[id] respect the owner's default visibility instead of forcing public.
- improvedREST API docs updated to document the new default and override parameters.
v2.4.0
July 5, 2026Sign-up CTA everywhere
- newEvery scan surface now shows a 'Create a free account' prompt after a scan completes — homepage, /scan/[id], Chrome extension popup, MCP tool responses, and Telegram bot messages.
- newTelegram free daily limit raised to 5 scans/day for anonymous chats; linked accounts get 100/day.
- improvedSigned-in / linked users don't see the CTA — the prompt is scoped to unauthenticated sessions only.
v2.3.0
July 4, 2026Telegram bot
- new@AISiteScanBot on Telegram — scan any URL from a Telegram chat and get a full breakdown with top fixes.
- newLink your Telegram chat to your AIScan account (from /scan/[id] or /profile) so bot scans save to your history.
- newBotFather description artwork (640x360) matching the AI/scan branding.
- new'Chat with the Telegram bot' card on every scan report page and a pill CTA on the homepage.
v2.2.1
June 28, 2026Blog, monitoring, emails
- newFull blog at /blog with server-rendered markdown, cover images, OG cards, and RSS-friendly per-post .md endpoints.
- newAdmin blog editor at /admin/blog — draft, publish, upload cover images, and edit rich content.
- newMonitored sites — track any domain from a scan page or /profile and get a scheduled re-scan (daily or weekly) with grade-change alerts.
- newCron endpoint /api/public/hooks/run-scheduled-scans to run monitored-site scans in the background.
- newTransactional email pipeline: welcome, magic-link, signup, contact confirmation, grade-improvement, score-alert, reengagement, daily/weekly digest, and unsubscribe flow.
- newContact form at /contact with confirmation + notification emails.
- newSignup notifications so admins get a ping whenever a new account is created.
v2.2.0
June 25, 2026Polish & Performance
- fixedAdmin panel access restored — EXECUTE grant on has_role and SELECT grant on user_roles.
- newScan cache transparency — cached results now show a badge with timestamp and a one-click Re-scan for fresh data button.
- newForce a fresh scan with ?fresh=1 to bypass the 5-minute result cache.
- fixedHomepage community feed properly deduplicates domains — each site appears only once.
- newmissiondeck.ai hit 100/100 via xCloud nginx Link header configuration.
- improvedChrome Web Store listing description rewritten to remove keyword spam and resubmitted.
- fixedLogo navigation restored to client-side SPA routing — instant home, no more full page reload.
v2.1.0
June 24, 2026llms.txt Generator & SEO
- new/llms-txt-generator — free tool to build a standards-compliant llms.txt file with live preview, copy, and download.
- newGoogle Search Console verification meta tag for aiscan.site.
- improvedSitemap now includes every /docs page, /extension, /changelog, and the new /llms-txt-generator route.
- improved/llms.txt and /llms-full.txt updated to advertise docs, the Chrome extension, and the llms.txt generator.
- fixedScan report header — site favicon and domain are now the hero; duplicate dimension breakdown removed; gauge arc fully closes at 100/100.
- fixedHardened SECURITY DEFINER database helpers and upgraded @tanstack/react-start to patch undici advisories.
v2.0.0
June 24, 2026Chrome Extension
- newAIScan Chrome Extension published on the Chrome Web Store — scan any site without leaving your browser.
- newExtension popup with score, grade, 5-dimension breakdown, top fixes, and View full report link.
- newAPI key authentication in the extension — connect your account for scan history.
- newSmart install banner on the homepage for Chrome users (auto-hides when extension is installed).
- new/extension page with Chrome Web Store link, feature highlights, and popup screenshot.
v1.1.10
June 24, 2026Documentation
- newFull /docs section — 20 pages covering Getting Started, Scoring, all 5 check dimensions, 5 platform guides (WordPress, Shopify, Lovable, Replit, Next.js), REST API, MCP, Agent Skills, API Keys, and Chrome Extension.
- newDocs link in the site header and footer.
- improvedFooter redesigned as a clean 4-column layout (Product, Legal, For Agents, copyright bar).
v1.1.9
June 24, 2026Performance & UX
- newReact Query caching — admin, profile, and shared report pages load instantly on revisit.
- newCommunity feed live-updates after each scan and auto-refreshes every 60 seconds.
- newRe-test button on every scan card — pre-fills the form and auto-scans.
- newScan limit modal — anonymous users who exhaust free scans see a sign-up prompt.
- new3 stat counters above the community feed (sites scanned, avg score, not AI-ready %).
- fixedLogo link forces full page reload for a clean homepage state.
- fixedINFO checks excluded from score calculation (informational only, don't affect grade).
- fixedMobile overflow on homepage, scan result pages, and shared report pages.
- improvedLovable platform detection via JS bundle scanning — works on custom domains.
v1.1.8
June 23, 2026Global layout & detection accuracy
- newGlobal site header and footer now appear on every page (scan results, profile, admin, how-it-works, changelog, auth, 404).
- fixedReplit detection now uses attribute-scoped scanning (src/href values) to avoid false positives on body text, while correctly identifying custom-domain Replit sites.
- fixedLovable detection for custom domains — detects via data-lovable-id, lovable-tagger scripts, lovableproject.com references, and meta generator tag.
- fixedaiscan.site no longer misidentified as Replit.
v1.1.7
June 23, 2026User accounts & privacy
- newUser profile page at /profile with full scan history (public + private).
- newEditable display name on profile page.
- newPublic/private scan toggle on the scan form — private scans only visible to their owner.
- improvedLogged-out users attempting private scans see a sign-in prompt instead of being silently blocked.
- newHeader avatar dropdown for logged-in users with Profile, Admin (if applicable), API Keys, and Sign out.
v1.1.6
June 23, 2026API keys & agent authentication
- newAPI key system — generate named keys (ask_…) from your profile page.
- newMCP and REST API now accept Authorization: Bearer ask_… for authenticated scans attributed to your account.
- improvedAll fix guides now lead with AIScan's own tools (Claude skill, MCP, REST API) as the primary fix path before manual steps.
- newPlatform-specific fix guidance for Lovable and Replit projects.
v1.1.5
June 23, 2026Community scans & public result pages
- newCommunity scan feed on the homepage showing the latest 10 public scans with favicons, scores, and grade badges.
- newBrowse all public scans at /scans.
- newSEO-friendly public scan result pages at /scan/[id] with full OG metadata and canonical URLs.
- newDynamic sitemap includes all public scan result pages.
- newScan results now saved to the database on completion (previously only computed client-side).
v1.1.4
June 23, 2026Admin panel
- newRole-based access system with admin/user roles.
- newAdmin dashboard at /admin — total scans, registered users, score distribution, top domains, recent scans table, and full user list with role badges.
- fixedAdmin redirect no longer fires before role is resolved from the database.
- newAdmin link appears in the header dropdown only for admin accounts.
v1.1.3
June 23, 2026Agent surface polish
- newPublic REST API now serves a designed HTML docs page at /api/public/scan when opened in a browser, with a try-it form and example curl commands.
- newFull favicon + PWA manifest set (16, 32, 180, 192, 512, .ico) so the icon shows in browsers, mobile home screens, and link previews.
- newChangelog page (this one) — link in the footer.
v1.1.2
June 23, 2026Smarter detection & cleaner sharing
- improvedFramework detection now identifies Astro, Next.js, Nuxt, SvelteKit, Remix, Gatsby, Angular, Vue and React — meta-frameworks take priority over generic library matches.
- newServer-side report storage with short share URLs — aiscan.site/r/abc12345 instead of a giant base64 hash. Each report has its own OG metadata.
- fixedReplaced the brittle hash-based share link with a proper Create-share-link → copy flow.
v1.1.1
June 13, 2026Built for AI agents
- newProgrammatic scan API at /api/public/scan (GET + POST) with 5 req/min rate limiting per IP.
- newMCP server at /api/mcp exposing scan_website, get_fixes, and get_grade tools.
- newAgent Skill (aiscan-skill.json) and Claude Code skill (CLAUDE.md) available as one-click downloads.
- newAgent integration panel on the homepage with direct copy buttons for the MCP URL and CLAUDE.md.
- newDiscovery files: llms.txt, /.well-known/api-catalog, /.well-known/mcp/server-card.json, and robots.txt entries that explicitly allow AI crawlers.
v1.1.0
June 10, 2026Better reports, faster fixes
- newQuick wins panel surfaces the highest-impact failing checks first.
- improvedCollapsible check sections grouped by dimension (Discoverability, Content, Bot access, Capabilities, Commerce).
- newPer-check Fix-with-AI prompts that open directly in ChatGPT or Claude with the right context pre-loaded.
- newEmbeddable score badge at /api/public/badge.svg.
- improvedRefreshed submit form and site header.
v1.0.0
June 9, 2026Initial release
- newAI-readiness scanner covering 25+ checks across discoverability, content, bot access, capabilities, and commerce.
- new5-level scoring system (Invisible → Agent-Native) with letter grades A–F.
- newPlatform detection for WordPress, Shopify, Lovable, Replit, Bolt, Next.js, and more — each with platform-specific remediation.
- newPlain-English fix guides with ordered steps and copy-pasteable code.
- newStreaming scan progress UI with live per-check updates.
- newShareable HTML reports with print-friendly styles.
Scoring rubric
Rubric versions
The rubric is the check catalogue, tiering and weights that turn what we observe into a score. Scores are only directly comparable within one rubric version. Current version: 2026.08.2.
rubric 2026.08.2
2026-08-24currentCommerce detected from real selling signals, split into transactional and catalogue
- · Commerce is now detected from actual selling signals — structured pricing data, payment providers such as Stripe or Paddle, and checkout/pricing routes — instead of only Shopify and WooCommerce fingerprints.
- · Sites that sell are split into transactional (SaaS, digital plans) and catalogue (storefronts); each is scored against the checks that genuinely apply, so a three-plan SaaS is no longer judged against product-catalogue standards.
- · Added M4 Machine-readable pricing: does your pricing page publish schema.org Offer / AggregateOffer JSON-LD with price, currency and billing period?
- · UCP and x402 remain bonus-only for transactional sites and can never cost points.
rubric 2026.08.1
2026-08-24Standards-cited rubric with essential/recommended/bonus tiering
- · Every graded check now cites the RFC or published specification it measures, and checks without a citation can no longer cost you points.
- · Checks are split into essential, recommended and bonus tiers — bonus checks (emerging standards) can only add points, never subtract them.
- · Added the checks adopted from the standards baseline: correct 404 handling, machine-readable API description, heading hierarchy and server-rendered text, HTTPS and canonical host, and content feeds.
- · Markdown content negotiation and Agent Skills discovery are now graded as separate sub-signals instead of one combined check.
- · Not-applicable checks (for example commerce checks on a non-commerce site) are excluded from the weighting rather than scored as zero.
rubric legacy
2026-06-08Pre-versioning rubric
- · Scans recorded before AIScan started stamping a rubric version. Their scores are not directly comparable with current results.