=== ProRank SEO – All-in-One SEO & Performance for WordPress ===
Contributors: prorankseo
Donate link: https://prorank.io
Tags: seo, image optimization, performance, schema markup, xml sitemap
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 8.2
Stable tag: 1.3.5
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Rank higher and load faster with the only WordPress plugin that combines full SEO, image optimization, caching, and performance in one install.

== Description ==

Most SEO plugins only do SEO. ProRank does SEO, performance, and image optimisation — so you can stop stacking 5 plugins that fight over the same hooks. One dashboard for metadata, schema, sitemaps, redirects, internal linking, caching, image compression, and site audits.

The free plugin covers on-page SEO, technical SEO, page caching, script optimisation, local image compression, H1 and title-length repair workflows, AI metadata cleanup, object-cache health controls, and one-click migration from Yoast, AIOSEO, Rank Math, or SEOPress. [ProRank Premium](https://prorank.io/pricing?utm_source=wporg&utm_campaign=readme) adds Keyword Research (Beta) powered by Ahrefs for Business and Agency plans, cloud image optimisation (WebP, AVIF, JXL), critical CSS extraction, unused CSS removal, AI-assisted content tools, advanced analytics, local SEO, WooCommerce SEO, and agency features.

= On-Page SEO =

* SEO titles and meta descriptions
* Canonical URL controls
* Robots meta controls
* Open Graph and X (Twitter) cards
* Search result and social previews in the editor
* SEO revision history API for ProRank metadata changes
* Site basics, social profile, and site representation settings
* Breadcrumb settings and breadcrumb schema
* Bulk editing tools for SEO metadata
* H1 audit and guided repair for missing or duplicated main headings
* Title-length audit and per-page SEO title repair workflow

= Schema & Structured Data =

* Core schema settings for WebSite, Organization, Article, and Breadcrumbs
* Schema output controls from the on-page SEO settings
* Local schema support through site representation and business details
* Schema validation helpers

= AI Discovery & AI Endpoints =

* Site-wide JSON-LD @graph at `/wp-json/prorank-seo/v1/schema-map`
* Public NLWeb-compatible `/ask` endpoint with `mode=list`
* Public MCP-compatible `/mcp` endpoint over the same discovery data
* Shared on/off gate for `/schema-map`, `/ask`, and `/mcp`
* ProRank Premium adds authenticated BYOK `summarize` and `generate` modes on `/ask` and `/mcp`

= Sitemaps, Indexing & Technical SEO =

* XML sitemap generation with content-type controls
* HTML sitemap generation
* Robots.txt controls and physical-file detection
* Indexing controls and global noindex options
* Post index status REST checks for publish/noindex/canonical blockers
* URL cleanup tools
* Head cleanup tools
* RSS feed before/after content and attribution settings
* AI metadata leak detection and cleanup for editor attributes left in generated content
* Redirect manager with 301/302 redirects
* 404 monitoring and redirect suggestions
* IndexNow and search-engine ping support where configured

= Content Analysis & Internal Linking =

* Content analysis settings and editor integration
* Readability checks
* Headline analysis
* Numeric SEO/content score badges in the WordPress 7 post list
* Inclusive-language and prominent-words analysis
* Internal-link scan and suggestions
* Inbound and outbound link opportunities
* Broken-link checks
* Orphan detection
* Link reports and auto-linking rules
* Optional internal-link click tracking

= Audits & Monitoring =

* Local site audit dashboard
* Issue history and audit tracking
* Core Web Vitals dashboard
* H1, title-length, AI metadata leak, font delivery, and bloat audit panels
* Accessibility audit tools
* Notifications and workflow guidance inside the plugin

= Image Optimisation & Performance =

* Local image optimisation
* Image SEO pattern tools for bulk alt text, attachment titles, and captions
* WebP-ready image workflow
* Lazy loading controls
* Performance presets for Standard, Aggressive, and E-commerce profiles
* Page cache settings with URL, category, tag, and post-type exclusions
* Per-role, per-user, and WooCommerce country/currency cache variants
* REST GET cache for safe public API routes
* Browser cache controls
* CSS and JavaScript optimisation
* Role-based asset-optimisation skips and content-visibility rendering controls
* HTML minification
* Missing thumbnail generation and upload big-image threshold controls
* Resource hints and Google Fonts local hosting
* Per-zone Heartbeat controls for frontend, admin dashboard, and post editor
* Cloudflare zone detection, dev-mode toggle, and clear-on-purge-all controls
* Font Delivery Health and Bloat diagnostics
* Object cache health and opt-in drop-in lifecycle controls for Redis or Memcached (server backend required; not bundled; never auto-enabled)
* Cache safety hardening with atomic `.htaccess` writes, variant-aware purges, bounded UCSS fallback handling, and a secret-gated raw-analysis bypass
* Unused media scan and confirmation-gated dry-run deletion endpoints
* Database cleanup endpoints with estimated savings previews, power tweaks, and server-side tuning checks

= Import, Export & Workflow =

* Setup wizard
* Import from Yoast SEO, AIOSEO, Rank Math, and SEOPress
* Builder support for Gutenberg, Elementor, Divi Builder, Beaver Builder, SeedProd, and WPBakery
* Export and import settings
* Import feedback with post counts and import type badges
* Settings snapshots and backups
* Module manager
* Support, feedback, and documentation screens

= Upgrade to ProRank Premium =

ProRank Premium adds advanced workflows for larger sites, teams, and agencies:

* Google Analytics 4 and Microsoft Clarity integrations
* Content decay, AI brand insights, AI overviews, action opportunities, query fan-out planner, advanced analytics modules, and Keyword Research (Beta) powered by Ahrefs for Business and Agency plans
* Advanced content analysis and AI-assisted tools
* AI image attributes and AI performance doctor tools
* Visual schema builder and advanced schema controls
* Visual link map, content safeguard, and enhanced internal-linking workflows
* Local SEO modules including locations and KML sitemap support
* WooCommerce SEO modules including product schema, cart schema, shop optimisation, and visibility controls
* E-E-A-T monitoring and advanced audit workflows
* Advanced cloud image optimisation workflows
* Advanced performance modules including critical CSS, unused CSS, cache preload, Cache Coverage, Warm Cache Now, script management, font subsetting, video optimisation, speculation rules, INP/LCP optimisers, and view transitions
* Advanced technical SEO modules including author/video/special sitemaps, redirect logging, hreflang/internationalisation, ethical SEO, headless mode, and LLMs.txt support
* Business and agency features including Role Manager, client reporting, audit log, SEO roadmaps, white label, user manager, and SEO simulator

[See pricing and plans →](https://prorank.io/pricing?utm_source=wporg&utm_campaign=readme)

= Learn More =

* [Website](https://prorank.io?utm_source=wporg&utm_campaign=readme)
* [Documentation](https://prorank.io/docs?utm_source=wporg&utm_campaign=readme)
* [Pricing](https://prorank.io/pricing?utm_source=wporg&utm_campaign=readme)
* [Support](https://prorank.io/support?utm_source=wporg&utm_campaign=readme)

== External Services ==

ProRank SEO connects to external services only for features that need them. No data is sent unless you use the specific feature.

* **ProRank API** — Admin notifications and optional feedback submissions. Sends site URL, plugin version, and feedback fields. [Terms](https://prorank.io/terms) | [Privacy](https://prorank.io/privacy-policy)
* **Google PageSpeed Insights API** — Core Web Vitals and performance audits. Sends the analysed URL and optional API key. [Terms](https://policies.google.com/terms) | [Privacy](https://policies.google.com/privacy)
* **Schema.org Validator** — Schema validation. Sends the validated page URL. [Terms](https://schema.org/docs/terms.html)
* **IndexNow** — Instant indexing notifications. Sends host, API key, and URLs. [Protocol](https://www.indexnow.org/)
* **Sitemap Pings** — Notifies Google and Bing of sitemap updates. Sends the sitemap URL.
* **Google Fonts** — Downloads fonts locally when local hosting is enabled. Sends the font request URL.

== Privacy ==

ProRank SEO does not collect personal data by default. All SEO data is stored locally in your WordPress database. Optional features like click tracking and RUM monitoring are disabled by default and only activate when you enable them.

[Privacy Policy](https://prorank.io/privacy-policy)

== Installation ==

1. Upload the plugin files to `/wp-content/plugins/prorank-seo/`
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Go to ProRank SEO in your admin menu and run the setup wizard

== Frequently Asked Questions ==

= Does ProRank SEO require an account or API key? =

No. The free plugin works entirely locally — no account, no API key, no cloud dependency. Its AI Discovery surface is public list mode only (`/schema-map`, `/ask`, and `/mcp`). ProRank Premium requires a license key for cloud features, and its richer AI Discovery modes (`summarize` and `generate`) use your own AI Tools provider key plus WordPress application-password auth.

= Can I import from Yoast, Rank Math, All in One SEO, or SEOPress? =

Yes. ProRank SEO includes import tools for Yoast SEO, AIOSEO, Rank Math, and SEOPress so you can switch without losing your existing SEO settings.

= What is ProRank Premium? =

ProRank Premium is the paid upgrade that adds cloud audits, rank tracking, advanced analytics, AI-assisted workflows, and agency tools. [See plans](https://prorank.io/pricing?utm_source=wporg&utm_campaign=readme).

= Does the plugin send data to external services? =

Only when you use features that require them (PageSpeed audits, IndexNow, etc.). See the External Services section for full details.

= Does the free plugin include the admin app? =

Yes. The free plugin package includes the compiled admin app required to run ProRank SEO. Development source and build tooling are kept out of the install package so the WordPress.org download stays focused on runtime files.

= Does Object Cache require Redis or Memcached? =

Only if you choose to enable the object-cache drop-in. ProRank SEO does not bundle Redis or Memcached and does not auto-install the drop-in. The install control first checks that a backend is reachable, protects foreign drop-ins, creates a backup, and fails open to WordPress' in-memory cache if the backend becomes unavailable.

= Will uninstalling remove my data? =

Yes. Uninstalling removes all plugin options, metadata, and custom database tables.

== Screenshots ==

1. Dashboard overview with SEO score, issue summary, page totals, and Core Web Vitals.
2. On-page SEO settings for site basics, metadata, schema, content analysis, and social/search previews.
3. Performance tools for caching, asset optimisation, image optimisation, and database cleanup.
4. Internal linking workspace with link reports, link map, broken-link checks, and auto-linking tools.

== Upgrade Notice ==

= 1.3.5 =
Improves performance delivery with safer delayed JavaScript, responsive image sizes, forced image re-optimization, AVIF/WebP delivery ownership, WooCommerce cache safeguards, cache purge controls, and settings persistence fixes.

= 1.3.4 =
Adds visible admin controls for performance presets, cache exclusions, role-based optimization skips, content-visibility rendering, image hygiene, per-zone Heartbeat, Cloudflare tooling, and WP-CLI cache/preset workflows.

= 1.3.3 =
Adds RSS content settings, SEO revision history APIs, post index status checks, REST GET caching, cache variants, unused media cleanup endpoints, database cleanup previews, database power tweaks, SeedProd/WPBakery support, and safety fixes for the editor/admin screen.

= 1.3.2 =
Improves WordPress 7 admin-list readability, Dashboard and Site Audit summary consistency, and release metadata. No new setup is required.

= 1.3.1 =
Adds inclusive-language checks, prominent-word insights, bulk Image SEO attributes with preview and rollback, and three related-content Gutenberg blocks. Premium adds per-sentence AI Optimize.

= 1.3.0 =
Adds explicit Object Cache health and lifecycle controls (Redis/Memcached, opt-in and gated), one-click H1 and title-length repair, AI metadata-leak cleanup, a Font Delivery Health panel, and internal-linking fixes — plus hardened page-cache safety and an activation-stability fix.

= 1.2.5 =
Fixes robots.txt sitemap output, keeps ProRank XML sitemaps canonical, improves URL cleanup redirects, and fills missing image alt text from media-library metadata on rendered pages.

= 1.2.4 =
Refreshes the post-editor SEO sidebar for easier scanning, fixes settings toggles that could display incorrectly on admin pages, and keeps editor controls ready for newer WordPress versions.

= 1.2.3 =
Hardens frontend performance delivery with safer JS minification, CDN-safe cache keys, CSS delivery fixes, image optimisation safety, and corrected release/version reporting.

= 1.2.2 =
Maintenance release for the 1.2 line. Adds simple GA4/GTM Site Basics fields and fixes image-optimisation runtime enablement, sitemap cache invalidation for deleted content, Site Audit probing, archive metadata controls, and admin workflow feedback.

= 1.2.1 =
Fixes imported SEO title placeholders, improves admin/cache responsiveness, strengthens Module Manager state sync, and hardens frontend performance delivery for review widgets, optimized CSS, images, fonts, and lazy media.

= 1.2.0 =
Ships the AI Discovery surface built on ProRank's Schema Aggregation system: a site-wide JSON-LD @graph endpoint, an NLWeb-compatible /ask list-mode endpoint, and an MCP-compatible /mcp endpoint over the same data. All three share one on/off gate. This release is the free baseline — list mode only; summarize and generate are Pro+.

= 1.1.5 =
Improves responsive image and font delivery, builder-page lazy media, third-party defer handling, and fixes shared Module Manager state sync in free admin pages.

= 1.1.4 =
Improves author schema and archive metadata with richer E-E-A-T fields, duplicate-title cleanup for personal-brand sites, and shared HowTo schema foundations for upcoming schema workflows.

= 1.1.3 =
Improves admin speed with cache-first dashboard loading and ships broader performance compatibility, browser-cache, and third-party optimisation refinements across the free plugin.

= 1.1.2 =
Improves browser-cache delivery for safe anonymous HTML responses, adds clearer Nginx snippet guidance, and strengthens performance compatibility defaults across the free plugin.

= 1.1.1 =
Corrective release fixing missing sprintf imports that could break some ProRank admin screens after updating to 1.1.0.

= 1.1.0 =
Adds advanced settings for code injection, CDN rewrite, Google Maps blocking, and third-party governance, while improving cache stability and fixing multiple performance/runtime edge cases.

= 1.0.10 =
Improves front-page social/meta output reliability, taxonomy description fallbacks, cache-clearing behavior, and update-package reliability in the free plugin.

= 1.0.9 =
Improves editor SEO workflows, internal-linking report clarity, performance/settings reliability, and WordPress.org update-package consistency.

= 1.0.8 =
Adds Elementor, Divi Builder, and Beaver Builder support and improved competitor imports.

= 1.0.7 =
Refreshes the free admin UI, improves editor SEO workflows, adds faster row and admin-bar controls, and fixes multiple routing, preview, and audit feedback issues.

= 1.0.6 =
Improves audit accuracy and latest-score reporting, adds safer builder-aware performance fallbacks, and fixes several frontend optimisation regressions.

= 1.0.5 =
Fixes WordPress posts-page title handling, keeps posts-page metadata aligned with saved ProRank settings, and improves rendered author/date archive-link cleanup.

= 1.0.4 =
Fixes noindex archive sitemap exclusions, corrects blog-page meta description handling, and adds optional normalization for rendered archive links.

= 1.0.3 =
Improves bulk image optimisation reliability on shared hosting and fixes backup handling for future restores.

= 1.0.2 =
Fixes a packaging issue in the 1.0.1 WordPress.org release so admin pages load correctly after install. Updated plugin title.

= 1.0.1 =
Bug fixes, UI cleanup, and improved upgrade messaging for ProRank SEO.

== Changelog ==

= 1.3.5 =
* Safer delayed JavaScript that keeps Elementor frontend/admin/editor contexts stable
* Responsive image delivery for Elementor and standard large attachment images
* Forced image re-optimization for existing JPEG, WebP, and AVIF sub-sizes
* AVIF/WebP delivery ownership with stale competitor-rule detection and Vary: Accept support
* Deeper WooCommerce cache safeguards and cache variation controls
* Adaptive cache preload throttling and tag-based page-cache purge support
* Visible settings and persistence fixes for performance controls
* Added:
  - Added adaptive cache preload throttling for safer cache warming under server load.
  - Added tag-based page-cache purge support for narrower invalidation.
  - Added deeper WooCommerce cache safeguards for dynamic cart, checkout, account, Store API, cookie, preload, and payment-script contexts.
  - Added visible admin controls for smart compression, cache warming, WooCommerce safe cache, and preload throttling.
* Improved:
  - Improved responsive image delivery for builder images and standard large attachment images.
  - Improved smart compression and forced re-optimization so existing sub-sizes can be regenerated with current quality profiles.
  - Improved AVIF/WebP delivery ownership, stale competitor-rule detection, repair handling, and Vary: Accept support.
  - Improved settings persistence for image optimization, cache, WooCommerce safe cache, and performance controls.
* Fixed:
  - Fixed delayed JavaScript delivery so delayed scripts are not fetched early and Elementor frontend initializes after wake-up.
  - Fixed admin/editor safety so optimization does not break Elementor or WordPress editing contexts.
  - Fixed responsive image sizes that used intrinsic image width and caused mobile over-fetching.
  - Fixed forced re-optimization queues that previously skipped or failed to rewrite existing image derivatives.
  - Fixed image delivery repair edge cases involving stale competitor rewrite rules and missing Vary: Accept headers.
  - Fixed output safety around Elementor, image optimization, and cache rebuild paths found during production smoke testing.

= 1.3.4 =
* Performance Presets UI for Standard, Aggressive, and E-commerce profiles
* Cache exclusion controls for categories, tags, and post types
* Role-based CSS and JavaScript optimization skip controls
* Content-visibility controls for below-fold selector rendering
* Image hygiene controls for missing thumbnails and oversized uploads
* Per-zone Heartbeat controls for frontend, admin dashboard, and post editor contexts
* Cloudflare zone detection, development-mode toggle, and clear-on-purge-all controls
* WP-CLI cache and preset commands for agency workflows
* Added:
  - Added Performance Presets UI for Standard, Aggressive, and E-commerce profiles in Caching & Delivery.
  - Added cache exclusion controls for categories, tags, and post types.
  - Added role-based optimization skip controls for CSS and JavaScript rewriting.
  - Added content-visibility controls for below-fold selector rendering.
  - Added image hygiene controls for missing thumbnail generation and WordPress big-image upload thresholds.
  - Added per-zone Heartbeat controls for frontend, admin dashboard, and post editor contexts.
  - Added Cloudflare zone auto-detection, development-mode toggle, and clear-on-purge-all controls in the CDN panel.
  - Added WP-CLI cache and preset commands for agency workflows.
* Improved:
  - Improved free/premium settings persistence parity so the new performance controls are saved through REST and visible in the admin UI.
* Fixed:
  - Fixed preset option targets so JavaScript/CSS delivery settings are written to the correct cache and asset settings groups.
  - Fixed auto-linking REST setting compatibility so saved legacy enable flags are honored.
  - Fixed keyword-map apply batching and memory guards for larger internal-linking runs.
  - Fixed the image bulk optimization UI so selected attachments are queued through one REST request.
  - Fixed resize-large-image and missing-size controls so saved image hygiene settings are read by the runtime module and keep image optimization active.
  - Fixed module and module-group toggle persistence so saved Local SEO and analytics states do not silently revert.

= 1.3.3 =
* RSS feed before/after content settings with attribution and canonical feed metadata
* SEO revision history API support for ProRank metadata
* Post index status REST checks for local indexability blockers
* REST GET cache for safe public API routes, plus page-cache variants for roles, users, and WooCommerce country/currency context
* Unused media scan and confirmation-gated deletion endpoints
* Database cleanup savings previews and idempotent database power-tweak recommendations
* SeedProd and WPBakery content extraction and performance safety support
* Admin/block-editor safety fix for Advanced Settings version-string cleanup
* Added:
  - Added RSS feed before/after content controls with attribution and canonical feed metadata.
  - Added SEO revision history API support for ProRank metadata, including focus keywords, robots/noindex, schema, social, and canonical fields.
  - Added post index status REST checks for local indexability blockers.
  - Added REST GET caching for safe public API routes, plus per-role/per-user page-cache variants and WooCommerce country/currency variants.
  - Added unused media scan and confirmation-gated dry-run deletion endpoints for unattached or missing image files.
  - Added database cleanup endpoints with savings previews and idempotent database power-tweak recommendations.
  - Added SeedProd and WPBakery content extraction and performance safety support.
* Fixed:
  - Fixed Advanced Settings version-string cleanup so admin and block-editor assets are skipped safely and do not trigger PHP fatals.
  - Fixed SEO revision snapshots so first edits can restore the previous metadata state.
  - Hardened REST GET cache for logged-in requests by rejecting edit/private contexts and varying entries per user.
  - Fixed database cleanup preview rows so repeated cleanup types do not overwrite each other.
  - Hardened unused media cleanup by checking meta/options references and requiring explicit delete confirmation.

= 1.3.2 =
* Post-list score/status columns stay compact so core WordPress columns remain readable
* Dashboard and Site Audit totals are clearer when the latest audit data is available or still loading
* Release metadata and compatibility labels are updated for WordPress 7.0
* Improved:
  - Improved WordPress 7 post-list layouts so ProRank score/status columns stay compact and title, author, categories, tags, comments, and date columns remain readable.
  - Improved Dashboard and Site Audit summaries so score and issue totals display consistently when audit data is available or still loading.
  - Updated release metadata and WordPress 7.0 compatibility labels.

= 1.3.1 =
* Inclusive Language checks in the editor and Posts/Pages list, with an ignored-terms list for your site
* Prominent Words shows the main topics found in each post so editors can check topical focus
* Image SEO bulk attributes can preview and apply alt text, attachment titles, and captions from safe templates, with rollback history
* Related Content Gutenberg blocks add Related Posts, Sibling Pages, and Subpages lists without theme code
* Content-analysis results now refresh more reliably when content, settings, or noindex status changes
* Added:
  - Added Inclusive Language checks in the Content Analysis sidebar with a curated starter dictionary, ignored terms, severity counts, and a Pass/Review badge. Settings live under On-Page SEO → Content Analysis.
  - Added an Inclusive Language filter to the Posts and Pages list so editors can quickly find content that needs review.
  - Added Prominent Words in the editor sidebar so each post shows its main terms from the title and body.
  - Added Image SEO bulk attributes for alt text, attachment titles, and captions using templates such as filename, attachment title, parent title, site name, file type, and year. Includes preview, apply, rollback history, and a Media Library filter for images generated by ProRank.
  - Added three Gutenberg blocks: Related Posts, Sibling Pages, and Subpages. They only show eligible published content and automatically hide when there is nothing useful to display.
* Improved:
  - Content Analysis settings page now exposes per-feature toggles for inclusive language and prominent words, plus per-site ignored terms for each.
  - Inclusive Language and Prominent Words results now update when content, ignored terms, feature settings, or noindex status changes.
  - Post-list layouts are more readable in the WordPress 7 admin, with ProRank columns kept compact.
* Security:
  - Bulk Image Attributes requires a fresh preview before applying changes and refuses to overwrite an attachment when its current values changed after preview.

= 1.3.0 =
* Object Cache health and lifecycle controls (requires a Redis or Memcached backend; drop-in install is explicit, gated, and never overwrites a foreign drop-in)
* One-click H1 repair with dry-run, backup/restore, and rendered-page verification
* Title-length repair with deterministic suggestions and dry-run/backup/restore
* AI metadata-leak cleanup that detects and removes hidden AI/OpenAI/ChatGPT metadata attributes from stored content (editor sidebar + bulk)
* Internal-linking orphan/canonical reconciliation fixes (check-orphan endpoint, dry-run before applying links, canonical-aware resolution)
* Font Delivery Health and Database Bloat panels
* Hardened page-cache safety: atomic/validated .htaccess writes, variant-aware targeted purge, secret-gated raw-analysis bypass
* Activation stability fix in the module manager
* Added:
  - Added Object Cache health and lifecycle controls: test connection, install/update the ProRank drop-in, remove drop-in, flush, and flush-by-group. Install is refused unless a Redis or Memcached backend is verified reachable; the drop-in fails open to the in-memory array cache and never overwrites a drop-in ProRank does not own.
  - Added H1 repair workflow (audit, deterministic fix, dry-run, backup and restore, rendered-page check).
  - Added title-length repair workflow (audit, deterministic suggestions, dry-run, backup and restore).
  - Added AI metadata-leak detection and cleanup that removes hidden AI/OpenAI/ChatGPT-origin metadata attributes from stored content, with an editor sidebar panel and a Site Audit bulk cleanup surface.
  - Added a Font Delivery Health panel and a Database Bloat control panel.
  - Added a keep-warm maintenance task and a bounded unused-CSS cache-skip safety valve that can never skip caching indefinitely.
* Improved:
  - Improved page-cache safety with atomic, validated .htaccess writes and variant-aware targeted cache purging.
  - Improved internal-linking orphan and canonical reconciliation, including a check-orphan endpoint alias and canonical-aware link resolution with a dry-run before any links are applied.
* Fixed:
  - Fixed a plugin-activation fatal in the module manager (a missing plugin-instance reference during activation) so activation is stable on a clean install.
* Security:
  - The raw-analysis cache bypass is now gated by a per-site secret, so an unauthenticated request can no longer bypass the page cache.

= 1.2.5 =
* Fixed robots.txt output so WordPress core wp-sitemap.xml is removed when ProRank XML sitemaps are active
* Ensured the ProRank sitemap index is always listed in robots.txt even when another Sitemap line is present
* Improved URL cleanup redirects when lowercase URLs and trailing slashes are both enabled
* Added frontend missing-alt repair so local media images with empty alt attributes can use media-library alt text
* Improved builder/widget coverage for image alt repair through content, excerpt, widget, and output-buffer handling
* Added:
  - Added automatic missing-alt backfill for local media images when the attachment already has alt text saved in WordPress.
* Improved:
  - Improved robots.txt sitemap handling so ProRank's sitemap index is not skipped because another plugin or WordPress core already added a Sitemap line.
  - Improved URL cleanup canonicalisation by combining lowercase handling with configured trailing-slash enforcement when WordPress receives the request.
  - Improved image optimisation frontend processing so builder-rendered images with empty alt attributes can be repaired at render time.
* Fixed:
  - Fixed robots.txt output that could keep the disabled WordPress core wp-sitemap.xml URL visible.
  - Fixed sitemap robots output so the ProRank sitemap index is listed reliably.
  - Fixed missing image alt text in rendered HTML when page builders stored empty alt attributes instead of using media-library metadata.

= 1.2.4 =
* Refreshed the post-editor SEO sidebar with clearer typography and more consistent layouts across Content Analysis, Headline Analyzer, and Internal Links
* Made SEO score panels easier to read with larger score numbers, clearer status labels, helpful hints, and compact supporting metrics
* Standardized success, warning, and issue colours across editor scores so results are easier to interpret
* Fixed settings toggles that could stretch or display incorrectly on some admin screens
* Updated editor controls for better compatibility with upcoming WordPress admin UI changes
* Added:
  - Added a more consistent editorial layout across the post-editor SEO sidebar.
* Improved:
  - Improved sidebar hierarchy so scores, status labels, and secondary metrics are easier to scan while editing content.
  - Improved score row spacing and dividers so supporting metrics feel cleaner and less crowded.
  - Improved keyboard focus styling across settings controls for clearer navigation.
* Fixed:
  - Fixed admin settings toggles so switches keep the correct size and on/off state.
  - Fixed editor metabox controls so they stay compatible with newer WordPress control sizing.
  - Fixed several small admin UI consistency issues found during the 1.2.4 cleanup.

= 1.2.3 =
* Replaced unsafe JavaScript minification with a parser-backed minifier to avoid broken ASI-style scripts
* Added CDN-safe asset cache keys so rebuilt JavaScript files publish under fresh URLs after minifier changes
* Fixed CSS delivery edge cases around combined, async, and inline builder/theme styles
* Improved image optimisation safety for stale WebP/AVIF variants and large source images
* Corrected version reporting so admin screens and REST payloads show the installed release consistently
* Improved:
  - Improved CSS delivery by keeping protected builder/theme base styles stable while asyncing safe stylesheet groups.
  - Improved inline CSS handling for builder/theme styles and avoided duplicate style IDs in optimized output.
  - Improved image optimisation safety for stale generated variants and original source processing.
* Fixed:
  - Fixed JavaScript minification that could remove ASI-sensitive statement boundaries and create parse errors.
  - Fixed stale CDN edge cache after JavaScript cache regeneration by publishing rebuilt assets under fresh URLs.
  - Fixed stylesheet delivery edge cases that could leave duplicate or stale optimized CSS files.
  - Fixed version reporting so admin screens and update checks show the installed release consistently.

= 1.2.2 =
* Added simple Google Analytics 4 and Google Tag Manager fields in Site Basics so users can enter IDs instead of pasting scripts
* Fixed image-optimisation runtime enablement so bulk optimisation can be activated after enabling Image Optimisation
* Fixed sitemap cache invalidation for trashed/deleted posts and terms so stale 404 URLs are not kept after content cleanup
* Improved Site Audit HTTP probing to avoid false 4xx results during local audits
* Improved archive and miscellaneous-page metadata controls plus admin bulk-edit feedback
* Added:
  - Added simple Google Analytics 4 and Google Tag Manager fields in Site Basics, with generated frontend snippets from sanitized IDs.
* Improved:
  - Improved Site Basics verification handling so pasted Google Search Console meta tags are reduced to the verification code.
  - Improved Additional Meta Tags validation so script snippets are rejected with a clear error instead of silently removed.
  - Improved archive and miscellaneous-page metadata defaults for crawler-facing descriptions.
  - Improved admin bulk-edit feedback and SEO status reporting in list tables.
* Fixed:
  - Fixed image-optimisation runtime enablement from the Performance screen.
  - Fixed per-image optimisation stats so AVIF/WebP variants report real optimized size and savings.
  - Fixed sitemap cache invalidation after post trash/delete and term changes.
  - Fixed Site Audit HTTP probing that could report valid internal URLs as 4xx.
  - Fixed admin bundle stability issues found during live dogfooding.

= 1.2.1 =
* Fixed imported SEO title placeholders such as %sep% and %sitename% so migrated metadata renders clean titles
* Improved dashboard and admin-bar speed by checking cached audit data before cloud/API refresh work
* Improved Module Manager state sync across admin pages
* Improved third-party, image, font, lazy media, cache, and optimized CSS handling for performance stability
* Improved:
  - Improved dashboard and admin-bar performance by checking cached audit summaries before starting cloud/API refresh work.
  - Improved Module Manager state sync across admin pages so section toggles and child module screens stay aligned.
  - Improved third-party performance handling for review widgets and tracker-delay governance.
  - Improved cache and optimized CSS handling so generated page cache and used-CSS files are less likely to regress after cache clears.
  - Improved responsive image, font, lazy media, and frontend performance compatibility paths used by builder-heavy sites.
* Fixed:
  - Fixed imported SEO title placeholders such as %sep% and %sitename% so migrated metadata renders real page titles instead of raw template tokens.

= 1.2.0 =
* Added /wp-json/prorank-seo/v1/schema-map: site-wide JSON-LD @graph with deduplication, caching, and pagination
* Added /wp-json/prorank-seo/v1/ask in NLWeb list mode for natural-language queries against the graph
* Added /wp-json/prorank-seo/v1/mcp as an MCP-compatible agent endpoint (JSON-RPC 2.0) over the same data
* Added a shared SchemaMapGate so /schema-map, /ask, and /mcp open and close together
* Added:
  - Added AI Discovery endpoint at /wp-json/prorank-seo/v1/schema-map with stable @id deduplication and cache invalidation on post/schema writes.
  - Added /wp-json/prorank-seo/v1/ask supporting mode=list (public).
  - Added /wp-json/prorank-seo/v1/mcp supporting MCP core methods (initialize, tools/list, tools/call, prompts/list, prompts/get, notifications, ping).
  - Added a shared on/off gate so the three endpoints serve or close together; when closed they return HTTP 404 with a raw schema_map_disabled body.
  - Added the ask tool (mode=list) and list_sites tool to /mcp tools/list.
* Improved:
  - Improved JSON-RPC 2.0 conformance on /mcp: empty batch, scalar body, invalid-id, version, and method validation all return spec-shaped errors.

= 1.1.5 =
* Fixed shared Module Manager state sync in On-Page SEO and Technical SEO admin pages
* Improved responsive image delivery with better sub-size coverage and carousel-aware sizing
* Improved icon-font optimisation, resource hints, and builder-page lazy media handling
* Improved third-party defer handling so GTM matching is more reliable on real-world markup
* Improved:
  - Improved responsive image delivery with better sub-size coverage and carousel-aware sizes for boxed layouts.
  - Improved icon-font optimisation, resource hints, and builder-page lazy media handling across the performance stack.
  - Improved third-party defer handling so GTM matching is more reliable on real-world markup.
* Fixed:
  - Fixed shared Module Manager state sync in On-Page SEO and Technical SEO admin pages.

= 1.1.4 =
* Improved Article.author schema with richer E-E-A-T author fields from saved profile metadata
* Improved author/archive title and description rendering so personal-brand collisions collapse cleanly
* Added shared HowTo schema foundations used by upcoming targeted schema workflows
* Added:
  - Added shared HowTo schema foundations for reusable structured-data generation paths.
* Improved:
  - Improved Article.author schema with richer E-E-A-T fields from saved author profile metadata.
  - Improved archive title and description rendering so personal-brand collisions collapse cleanly.

= 1.1.3 =
* Improved admin performance so dashboard and admin-bar SEO summaries return cached audit data before any cloud pagination work runs
* Improved dashboard API responsiveness by avoiding unnecessary audit-summary refreshes when a valid transient already exists
* Improved third-party performance handling, browser-cache delivery, and compatibility defaults across the free plugin
* Improved:
  - Improved admin performance so dashboard and admin-bar SEO summaries return cached audit data before any cloud pagination work runs.
  - Improved dashboard API responsiveness by avoiding unnecessary audit-summary refreshes when a valid transient already exists.
  - Improved third-party performance handling, browser-cache delivery, and compatibility defaults across the free plugin.

= 1.1.2 =
* Improved browser-cache delivery so safe anonymous HTML responses can use configurable cache headers instead of always forcing revalidation
* Improved Nginx cache guidance in Performance settings with a clearer generated snippet workflow for browser-cache enforcement
* Improved performance optimisation coverage across delayed and deferred asset handling and stronger compatibility defaults for common WordPress stacks
* Improved:
  - Improved browser-cache delivery so safe anonymous HTML responses can use configurable cache headers instead of always forcing revalidation
  - Improved Nginx cache guidance in Performance settings with a clearer generated snippet workflow for browser-cache enforcement
  - Improved performance optimisation coverage across delayed and deferred asset handling and stronger compatibility defaults for common WordPress stacks

= 1.1.1 =
* Fixed missing sprintf imports that broke some admin pages after 1.1.0 update
* Fixed:
  - Fixed missing sprintf imports that could break some ProRank admin screens after updating to 1.1.0.

= 1.1.0 =
* Added advanced settings UI for code injection, CDN URL rewriting, Google Maps blocking, and performance governance controls
* Added third-party governance controls for Google services, review widgets, consent scripts, and identity widgets
* Improved cache stability with recurring keep-warm scheduling for core URLs to reduce cold-cache score swings
* Fixed Woo archive metadata duplication, image optimisation edge cases, UCSS runtime issues, and other performance regressions found during live migrations
* Added:
  - Added advanced settings UI for code injection, CDN URL rewriting, Google Maps blocking, and performance governance controls
  - Added third-party governance controls for Google services, review widgets, consent scripts, and identity widgets
* Improved:
  - Improved cache stability with recurring keep-warm scheduling for core URLs to reduce cold-cache score swings
  - Improved performance reliability across delayed-script handling, cache warming, and advanced settings coverage
* Fixed:
  - Fixed Woo archive metadata duplication, image optimisation edge cases, UCSS runtime issues, and other performance regressions found during live migrations

= 1.0.10 =
* Fixed front-page Open Graph title and description handling
* Improved taxonomy meta description fallbacks
* Fixed admin-bar cache clearing so HTML cache purges more reliably
* Refreshed the free update package for cleaner installs and updates
* Improved:
  - Improved front-page and taxonomy metadata fallbacks so more pages inherit the expected title and description values
  - Improved free-plugin update-package consistency for cleaner installs and updates
* Fixed:
  - Fixed front-page Open Graph title and description handling so stored metadata is used more reliably
  - Fixed admin-bar cache clearing so ProRank HTML cache purges fully instead of leaving stale output behind

= 1.0.9 =
* Improved editor meta workflows, title analysis clarity, and suggestion handling
* Improved Internal Linking report presentation and scan-history clarity
* Improved Performance settings normalization and image/performance feedback
* Improved install, update, and admin reliability in the free plugin
* Improved:
  - Improved editor SEO workflows with clearer analysis labeling, cleaner suggestion handling, and more reliable meta-box behavior
  - Improved Internal Linking report presentation, scan-history clarity, and operational data consistency
  - Improved Performance settings normalization, capability reporting, and admin reliability across free workflows
  - Improved install and update consistency so the free plugin behaves more reliably after upgrades
* Fixed:
  - Fixed free-plugin labels and admin behavior so the editor, linking, and performance tools stay more consistent after install and update
  - Fixed multiple shared UI and data-state issues that affected editor, linking, and performance surfaces in the free plugin

= 1.0.8 =
* Added Elementor, Divi Builder, and Beaver Builder support
* Improved imports from Yoast SEO, AIOSEO, Rank Math, and SEOPress
* Improved keyword import compatibility when switching SEO plugins
* Improved Import & Export workflow
* Added:
  - Added Elementor, Divi Builder, and Beaver Builder support with live SEO editing in each builder
* Improved:
  - Improved imports from Yoast SEO, AIOSEO, Rank Math, and SEOPress
  - Improved keyword import compatibility when switching SEO plugins
  - Improved Import & Export workflow with post counts and import type badges

= 1.0.7 =
* Updated free dashboard, module pages, widgets, and editor panels with the refreshed design system and clearer empty states
* Added direct post-level SEO controls from Quick Edit and the ProRank admin bar for canonical and robots directives
* Improved internal linking, schema preview, social/search previews, and Core Web Vitals feedback across the free workflow
* Added:
  - Added admin-bar post controls for canonical URL and robots toggles on singular post and page screens
  - Added Quick Edit and Bulk Edit support for canonical URL and common robots directives in the free plugin
  - Added Link Map Lite as a real Internal Linking tab in free
* Improved:
  - Improved free dashboard, dashboard widget, and header messaging so empty states explain what data is available and where it comes from
  - Improved editor search, social, schema, and content-analysis previews with more realistic fallbacks and clearer feedback
  - Improved internal-linking scans, link-map routing, support backups, and notification onboarding links
* Fixed:
  - Fixed multiple free admin routing issues affecting Internal Linking, Import/Export, Site Audit settings, and onboarding shortcuts
  - Fixed schema preview route failures, broken support-page header rendering, backup download handling, and On-Page SEO media modal loading
  - Fixed misleading free premium-lock UI so the free package presents only working free functionality

= 1.0.6 =
* Dashboard, admin bar, widget, and Site Audit now prefer the newest completed audit across local and cloud
* Cloud audit history and issue totals are normalized more reliably instead of showing stale or truncated counts
* Added safer builder-aware JS defer and CSS async fallback behavior
* Improved:
  - Improved audit score selection so the latest completed audit is surfaced consistently across plugin UI surfaces
  - Improved cloud audit scoring and checker accuracy to reduce duplicate and false-positive penalties
  - Improved builder compatibility for low-risk performance fallbacks
* Fixed:
  - Fixed stale local audit summaries overriding newer cloud audit results in the dashboard, widget, and admin bar
  - Fixed cloud history and issue reporting so counts stay aligned instead of showing truncated or misleading totals
  - Fixed performance state drift, lazyload/runtime sync, and several frontend optimization regressions

= 1.0.5 =
* The WordPress posts page now uses its saved ProRank title and description
* Rendered author and date archive links are cleaned up more reliably in final HTML output
* URL cleanup settings now stay aligned more reliably between grouped settings and legacy storage
* Improved:
  - Improved URL cleanup compatibility so grouped settings and legacy per-option settings stay aligned
  - Improved rendered archive-link detection for author and date archive URLs in builder-generated HTML
* Fixed:
  - Fixed the WordPress posts page using the wrong fallback title instead of the saved ProRank title
  - Fixed rendered archive-link cleanup so author/date link policies apply more reliably to final HTML output

= 1.0.4 =
* Noindex taxonomy archives are now removed correctly from XML sitemaps
* The WordPress posts page now uses its saved ProRank meta description
* New optional URL cleanup control can normalize same-site author, date, category, and tag archive links in rendered HTML
* Added:
  - Added an optional URL cleanup setting to normalize rendered same-site author, date, category, and tag archive links so builder output respects your site trailing-slash format
* Improved:
  - Improved taxonomy sitemap exclusion compatibility across grouped settings, legacy settings, and legacy term-meta values
* Fixed:
  - Fixed noindex taxonomy archives still appearing in XML sitemaps
  - Fixed the WordPress posts page using the wrong fallback meta description instead of the saved ProRank description
  - Fixed package consistency for the free release so shipped version metadata and archive structure match the published release

= 1.0.3 =
* Bulk image optimisation now recovers more reliably when background queues stall on slower hosts
* Future image backups are stored in a safer non-public directory
* Restore feedback now explains when legacy backup files are missing
* Improved:
  - Bulk image optimisation now resumes existing jobs more cleanly and handles stalled shared-host queues better
  - Local image optimisation guidance is clearer when WebP must be enabled before a bulk run
* Fixed:
  - Fixed browser-assisted recovery for stalled image-optimisation jobs
  - Fixed bulk-job resume and stop-state handling so stopped jobs do not restart incorrectly
  - Fixed image-optimisation stats so modern-ready counts reflect real outputs instead of stale flags
  - Fixed future image backup storage and restore messaging for missing legacy backup files

= 1.0.2 =
* Fixed broken admin pages caused by missing JavaScript chunks in the 1.0.1 WP.org package
* Refreshed build directory to remove stale assets
* Updated plugin title to ProRank SEO – All-in-One SEO & Performance for WordPress
* Improved:
  - Updated plugin title for better WordPress.org search visibility
* Fixed:
  - Corrected the WordPress.org package build so admin pages no longer fail with missing JavaScript chunks
  - Refreshed the published build directory from a clean package to avoid stale assets in the plugin ZIP

= 1.0.1 =
* Improved editor meta box and internal-linking workflows
* Refined site audit, sitemap, redirects, notifications, and support screens
* Updated free plugin description and premium upgrade messaging
* Added:
  - Automatic daily cleanup for internal-link click tracking data
* Improved:
  - Setup wizard, notifications feed, and support pages
  - Site Basics, social profile, site representation, and site policy handling
  - Titles and Meta, breadcrumbs, schema markup, redirects, XML sitemap, and HTML sitemap workflows
  - Image optimisation, caching, asset optimisation, database tools, and Core Web Vitals screens
* Fixed:
  - Bulk editor routing and editor meta box preview defaults
  - Inbound internal-link suggestions reappearing after apply
  - Premium feature description links and changelog alignment on prorank.io
* Removed:
  - Unneeded files from the free package
