Skip to content

Changelog

GEO Site Profilespageflare geo audit and geo fix now auto-classify the site as a Content Site or an API/Application and only run the rules that apply. The /geo-audit web tool gets a 4-pill site-type selector with classifier feedback in the result terminal.

Auto-classification

  • New --profile <auto|all|content|api> flag on geo audit and geo fix. Default auto runs a pure-input classifier that scores DOM + filesystem signals (openapi.json at the build root, <article> + word count, og:type=article, llms.txt, RSS feed link, framework hint, MCP / agent-card well-known files, OpenAPI / API path HEAD probes in URL mode). Decisive thresholds at ±3 → content or api; ambiguous → all.
  • New --explain-profile flag prints the resolved profile + every signal (kind, weight, evidence) to stderr.
  • 63 GEO rules tagged with which profile they apply to. Excluded rules synthesize one Skip-severity finding per page with excluded by profile=<token> (where <token> is the active profile), so they don’t penalize the score.

Web audit tool

  • /geo-audit and the all-types audit page show site-type pills (Auto-detect / All Checks / Content Site / API / Application) only when GEO is selected.
  • Result terminal displays Site classified as <profile> (auto-detected | forced) plus the per-signal breakdown.
  • Skip-finding count and finding list are filtered out of the actionable totals.
  • Cache key is namespaced per profile so different pills don’t collide on the same URL.

Path-mode signals

  • geo audit on a local build directory now sees openapi.json, swagger.json, .well-known/mcp-server[.json], and .well-known/agent-card[.json] as classifier evidence — no live URL or network needed.
  • geo fix template generators are filtered by profile (Content sites skip MCP / agent-card / API-catalog templates; API sites skip llms.txt / RSS templates).

WASM API

  • New exports runAuditHtmlWithOptions(url, html, opts) and runAuditHtmlWithResourcesOptions(url, html, resources, opts) accept { profile?: "all"|"content"|"apiapp"|"api" }. Existing geo_audit_html / geo_audit_html_with_resources keep their signatures for backwards compatibility.

SEO fix & audit hardening

  • The fix report now lists exactly which rules were fixed (applied_rule_ids) alongside the ones that couldn’t be (unfixable_findings). Every proposed fix lands in one of the two — no silent drops.
  • unfixable_findings now includes a reason for each entry, including cases where pageflare refused to apply a fix because it would have been ambiguous (e.g., the target text appears in multiple places).
  • seo audit --url retries transient network failures up to three times with backoff and identifies as a recent Chrome browser, so sites that gate unknown clients respond normally. 404s and similar permanent errors still fail fast.

Browser-driven optimization (major upgrade)

  • Critical CSS, font preloading, LCP image preloading, and below-fold lazy-rendering now use a real browser to make decisions, replacing string-scanning heuristics. Result: cleaner extractions, fewer false positives, smaller HTML.
  • New --no-browser flag for CI environments without Chrome — pageflare falls back to the previous heuristic mode automatically.
  • All four browser-driven extractions share a single render per (page, viewport) — no extra cost for adding more.

Critical CSS — what’s new

  • Real layout-aware above-fold detection that catches rules earlier extractors missed (dynamic classes, interactive hero elements, hover-only declarations).
  • Multi-viewport by default — lays out at desktop and mobile and keeps any rule critical at either. Configurable via critical_css_viewports. Still one HTML per page, so no per-device CDN split.
  • The asynchronously-loaded remainder is named with a content hash and uses the full original source minus the critical rules — preserving cascade correctness when it finishes loading.
  • Old orphaned stylesheets are removed from the output automatically.

Remove Unused CSS (new opt-in)

  • remove_unused_css: true removes CSS rules unused across any page on your site. Same idea as the feature you may know from other tools, applied at build time. Default off — review the output the first time you enable it. Safe for static-site generators (Astro, 11ty, Hugo) and React/Vue sites without runtime class manipulation.

Better font optimization

  • Font subsetting now ships a smaller alongside-version of each font, falling back to the original automatically — no risk of breaking glyphs the subset doesn’t cover.
  • Subsetting skips fonts that wouldn’t get meaningfully smaller, avoiding work that doesn’t help.
  • Synthetic font-fallback rules (used for layout-shift-free font swap) are now derived live for fonts pageflare hasn’t seen before, so the fallback metrics are accurate even for self-hosted or unusual fonts.
  • Font preloading picks the right weight/style match using the same algorithm the browser uses, including hero-aware overrides when a hero element pins a specific variant.

Better LCP detection

  • The hero-image preloader now sees CSS background images and <video> posters too — both previously missed when only <img> tags were considered. Picked candidates get fetchpriority="high".

Output management

  • Output directory now auto-cleans files no longer produced by the current build — no more leftover artifacts from previous configs.
  • New --clean-output flag for a full reset before writing.
  • Better detection of already-hashed filenames so framework-output assets aren’t double-hashed.

PWA Platform — turn any static site into an installable Progressive Web App. Plus a new unified pricing page, CLI + Cloud split, and expanded team/project workflows.

PWA Platform

  • pageflare pwa build — local manifest, service worker, icons, and SDK script generator with full vite-pwa parity. Supports shortcuts, share target, protocol handlers, runtime caching strategies, background sync, and refresh-prompt flows. Free.
  • pageflare pwa init|config|push send|push list|stats — cloud-backed PWA management: push notification campaigns (Chrome / Firefox / Edge / Safari 16.4+), install and engagement analytics, hosted install landing pages with 30+ language localization, 9-step onboarding wizard.
  • 4 new free browser tools at /tools/*: PWA icon generator, manifest builder, screenshots generator, and maskable icon editor.

Unified Pricing Page

  • New /pricing covers all four pillars (PageSpeed, SEO, GEO, PWA) across two products.
  • CLI tiers: Free, Solo ($79/yr), Studio ($199/yr, 3 seats), Agency ($399/yr, 10 seats). Per-seat, unlimited sites.
  • Cloud tiers: Free, Pro ($29/mo), Team ($99/mo), Enterprise. Annual billing saves 20%. Every paid Cloud tier bundles the equivalent CLI license.
  • LLM commands support BYOK (OpenAI / Anthropic / Gemini) on the CLI, or credit packs ($15 per 1,000 credits, 12-month validity) for centralized billing.
  • Legacy /pwa/pricing redirects to /pricing.

CLI Licensing Change (breaking for Free CLI)

  • pageflare seo fix --auto and pageflare geo fix --auto now require a paid CLI license (Solo or higher). Audits (seo audit, geo audit) remain free. LLM fix modes also accept BYOK keys on paid tiers.

Cloud Dashboard

  • Team / organization / project hierarchy with a switcher.
  • GitHub OAuth login alongside email auth.
  • Sidebar dashboard layout with profile, settings, logout nav.
  • User-sites management — add, list, remove, per-site embed script.

Marketing Site

  • Mega-menu navbar with Product (4-card grid) and Platforms dropdowns, compact scroll mode, SVG vector icons.
  • Rich mega-footer, 12 new PWA feature pages, restored content across framework and platform pages.
  • Cinematic GSAP scroll effects on the WordPress page.
  • Brand lowercased to pageflare sitewide.

Security + Fixes

  • Auth session lookups now go directly through Better Auth (no self-fetch).
  • Modal portals isolated for team / project creation flows.
  • PWA embed snippet builds absolute URLs using the user’s configured domain.

GEO (Generative Engine Optimization) — audit your site’s AI-readiness and fix issues automatically or with LLM-powered suggestions.

GEO Audit

  • New pageflare geo audit command scores pages 0–100 across 8 categories: discoverability, structured data, content quality, technical, signals, AI discovery, brand & entity, and negative signals.
  • 48 rules including Princeton GEO citability analysis, AI discovery endpoint checks, brand coherence, and keyword stuffing detection.
  • Supports local directories (positional path argument) and live URLs (--url) with response-time and content-type analysis.
  • 6 output formats: table, JSON, Markdown, GitHub (PR comments), HTML (standalone report with dark mode), and SARIF (CI integration with GitHub Code Scanning).
  • --badge flag generates shields.io and SVG badge snippets for your README.
  • --fail-under flag for CI quality gates.

GEO Auto-Fix (Free)

  • New pageflare geo fix --auto generates deterministic fixes without an LLM or API key.
  • Automatically creates robots.txt (with per-bot AI access rules), llms.txt, JSON-LD schemas, meta tags, and AI discovery files (/ai/summary.json, /ai/faq.json).
  • Shows estimated score improvement before applying fixes.

GEO Fix (Pro)

  • pageflare geo fix proposes AI-powered patches for content-level GEO issues.
  • Writes fixes to the resolved output directory (same as optimize), making commands composable and idempotent.

SEO Audit

  • New pageflare seo audit command scores pages 0–100 across 4 categories: indexability, meta & structure, link architecture, and i18n & media.
  • 20 rules checking titles, meta descriptions, headings, canonical URLs, Open Graph tags, JSON-LD, image alt text, hreflang, internal links, and orphan pages.
  • Supports local directories (positional path argument). JSON and table output formats.
  • --fail-under flag for CI quality gates.

SEO Fix (Pro)

  • New pageflare seo fix command generates targeted patches for SEO issues.
  • Writes fixes to the resolved output directory (same as optimize), making commands composable and idempotent.
  • pageflare seo run combines audit and fix in one step.

Unified CLI Interface

  • All seo and geo subcommands now accept a positional INPUT path (default .) instead of --path, matching the optimize command.
  • Framework auto-detection and output directory resolution shared across all commands.
  • Commands are composable: optimizeseo fixgeo fix all read from and write to the same output directory.

SEO Fix (Free)

  • pageflare seo fix --auto generates deterministic fixes: JSON-LD schemas, canonical URLs, Open Graph tags.

Page Speed Testing

  • New pageflare speed <url> command — measures LCP, FCP, CLS, INP via Google PageSpeed Insights with lab and field data.

New SEO Rules & Formats

  • 3 new rules: readability scoring (Flesch-Kincaid), image dimensions (CLS prevention), lazy loading detection.
  • SEO audit now supports 6 output formats: table, JSON, Markdown, GitHub, HTML, SARIF.
  • Broken link detection in SEO audit via shared analysis cache.

Unified Audit

  • pageflare audit now runs performance + SEO + GEO in one command with combined output and --fail-under for CI.

Improvements

  • Smaller default binary — optional WASM plugins no longer bundled by default.
  • Better markdown conversion for llms.txt — faster streaming engine.
  • Shared analysis cache across seo/geo/audit commands — second command runs near-instant.

Bug Fixes

  • Fixed seo audit / geo audit failing when run from project root without arguments.
  • Fixed Pro license not being recognized after local generation.

Major feature release — site audit, image optimization, analytics self-hosting, managed robots.txt, and significant performance improvements.

Site Audit

  • New pageflare audit command with 20+ rules across images, CSS, JS, fonts, SEO, and WordPress.
  • HTML report with scores, charts, and per-page findings. JSON output for CI.

Image Optimization

  • Responsive srcset generation, format conversion (WebP/AVIF), disk caching, and content deduplication.
  • Platform image CDN support for Vercel, Netlify, and Cloudflare Pages.
  • New --prod flag gates Cloudflare Pages CDN image rewrites for correct preview/production behavior.

Analytics Self-Hosting

  • Download and self-host scripts from Google Analytics, Plausible, Fathom, Umami, and Matomo.
  • Minimal mode, cookieless mode, and adblocker detection.

Managed robots.txt

  • Policy-based robots.txt with Cloudflare-style content signal comments.
  • Four presets: allow-all, block-ai-training, block-all-ai, block-all.

Fonts

  • Metric-adjusted fallback stacks for 30 Google Fonts families — eliminates layout shift.
  • font-display: swap applied correctly to self-hosted fonts.

WordPress

  • Admin plugin with setup wizard, Simply Static integration, optimization presets, and health checks.

Performance

  • Incremental content hashing — ~90ms → ~7ms on content-only changes.
  • Incremental processing with dependency-aware dirty tracking.
  • All optimizations are idempotent.

Bug Fixes

  • Fixed Vercel middleware for Markdown content negotiation — resolved recursion and Build Output API v3 compatibility.
  • Fixed site audit falsely flagging SVGs and small images for missing srcset.

New package — native framework integrations for zero-config optimization.

Framework Integrations

  • One npm package (pageflare) with subpath exports for Vite, Astro, Nuxt, Next.js, and Netlify.
  • Add one line to your framework config — optimization runs automatically after every build.
  • Vite plugin also covers SvelteKit, Remix, and SolidStart.
  • Replaces the separate @pageflare/netlify package.

Performance & optimization release — SVG optimization, font subsetting, WordPress improvements, and significant pipeline speedups.

SVG Optimization

  • Inline SVGs optimized automatically — strips editor metadata and redundant attributes.

Font Subsetting

  • Font files subset to used characters only, re-encoded as WOFF2.
  • Icon fonts automatically excluded. Unicode-range injection fixed for consistent results.

WordPress

  • WP-Hide path sanitization (wp-contentcontent).
  • Gutenberg editor script removal (preserves frontend scripts).
  • Duplicate stylesheet deduplication when plugins load the same CSS twice.

SPA Mode

  • Fixed infinite recursion on # anchor links and mailto:/tel: links.

Performance

  • Per-phase timing breakdown in CLI output and --json.
  • Parallel file writes for sites with 200+ files.
  • ~8% faster processing across all file types.
  • Font unicode-range injection fixed for correct, consistent results.

Image CDN Providers

  • 21 new providers added to unpic (Imgix, Shopify, Cloudinary, and more).
  • Cloudflare Pages platform with Image Resizing.

Feature release — edge optimizer for live WordPress sites, WordPress cache purge plugin.

Edge Optimizer

  • On-demand optimization for live WordPress sites — pages optimized automatically on first visit.
  • Full multi-pass pipeline at the edge: HTML/CSS/JS minification, lazy loading, image optimization, critical CSS.
  • Content-addressed asset storage — CSS and JS processed once and shared across pages.
  • Per-URL and full-site cache purge API.
  • Image optimization, Google Fonts self-hosting, and site warm-up for Pro tier.

WordPress Plugin

  • Automatic cache purge on post publish, delete, theme/plugin changes, and menu updates.
  • Settings page with API key configuration and manual purge button.

CLI

  • --platform flag for explicit deployment target selection.
  • pageflare init promoted to dedicated subcommand.
  • Auto-detection of project root and output directory for SSG frameworks.

Images

  • CDN image detection and responsive srcset generation using native CDN resize APIs.
  • Netlify image optimization support.

LLM Files

  • llms.txt and llms-full.txt generation for AI-readable site content.
  • Subsection indexes for configurable folder structure.

Feature release — live site audit, CLI improvements, and bug fixes.

Audit Page

  • Free live performance audit at pageflare.dev/audit.
  • Current vs estimated “after pageflare” scores for Performance, Accessibility, SEO, and Best Practices.
  • Core Web Vitals display — LCP, CLS, INP, FCP, and TTFB.
  • Actionable issue list showing exactly which pageflare features fix each problem.

CLI

  • pageflare upgrade — self-update subcommand with --force support.
  • Automatic update notifications after each optimize run (12h interval).
  • Subcommand dispatch — pageflare optimize as explicit subcommand.

Bug Fixes

  • Improved accuracy of audit issue detection.
  • Fixed argument parsing for pageflare upgrade with flags.

Initial release. pageflare 0.1.0 is the first release, shipping a complete suite of post-build optimizations for static sites and WordPress installs.

HTML, CSS & JavaScript

  • HTML minification — strips whitespace, comments, and redundant attributes.
  • CSS minification — collapses shorthand properties and removes dead code.
  • JavaScript minification — reduces bundle size without altering behavior.

Images

  • Automatic loading="lazy" and explicit width/height on <img> tags to prevent layout shift.
  • Adaptive sizing with responsive srcset generation.
  • Platform-specific optimization for Vercel Image CDN.

Fonts

  • font-display: swap injection to eliminate render-blocking.
  • Self-hosting of Google Fonts with automatic unicode-range subsetting.

Scripts & Navigation

  • Script deferral — user-interaction and defer strategies to keep the main thread free.
  • Speculation Rules API injection for instant same-origin navigation.
  • SPA mode with View Transitions API support.

Critical CSS

  • Per-page critical CSS extraction and inlining; non-critical stylesheets loaded asynchronously.

Video & Third-party

  • YouTube facade replacement — lightweight placeholder until the user interacts.

WordPress

  • WordPress bloat removal — strips query strings, disables emojis script, removes unnecessary meta tags.

Assets

  • Content-based asset hashing for long-lived cache headers.

CLI & Configuration

  • Single pageflare binary with JSONC config support (pageflare.jsonc).
  • --no-progress flag and automatic non-TTY detection for CI environments.

Platform

  • Cloudflare Workers API with D1 (SQLite) and R2 storage.
  • Pro / Free tier licensing.

See Release History for a full list of versions, or Migration Guide for upgrade notes.