== Full changelog == Recent versions (2.6.x) live in readme.txt, in the Changelog section displayed on WordPress.org. Older entries are archived here for historical reference. = 2.5.14 = * Fixed: Backup - Backups and database exports sit in a folder whose name cannot be guessed, so they can no longer be downloaded by URL. Existing backups move across on their own. * Fixed: Backup - A large database now restores on hosts that cap execution time: it is rebuilt beside your live data and swapped in at the end. * Fixed: Backup - Restoring a large site no longer runs out of memory; the database dump is read straight from disk instead of being loaded whole. * Fixed: Backup - Stopping or closing a restore midway leaves your site exactly as it was, and the leftovers are cleared on the next attempt. * Fixed: Backup - Uploading a backup to cloud storage resumes where it stopped instead of being cut off, and never sends the same archive twice. * Fixed: Backup - Listing backups from the command line shows every backup on disk instead of only some of them. * Fixed: Forms - A webhook pointing at a private or reserved network address is refused, so a public form cannot probe your internal network. * Fixed: Forms - SVG files are never accepted as an upload, even when another plugin adds them to the types WordPress allows. * Fixed: Post Types Order - Reordering requires permission to edit other people's content, so lowering the required role no longer lets a contributor reorder the site. * Fixed: Content Duplicator - A copy is created as a draft when the person duplicating cannot publish, instead of going live straight away. * Fixed: Fatal Error Recovery - The pending-error file is stored under a name that cannot be guessed, so the server paths it records cannot be fetched by URL. * Improved: Backup - A restore continues over several passes when your host caps execution time, with progress shown as it goes. * Improved: Core - Stored credentials use an authenticated cipher, so tampering is detected instead of silently accepted. Saved credentials keep working. * Improved: Core - The review request also appears after two weeks of use, so people running modules with no "it worked" moment are asked too. Still once, still dismissible. = 2.5.13 = * Fixed: Backup - Backups no longer fail with a fatal error on hosts that cap PHP execution time; the run continues over as many passes as it needs. * Fixed: Backup - Restoring a backup no longer fails outright on hosts that block changes to the PHP time limit. * Fixed: Backup - A pre-update snapshot that cannot be completed is reported as failed instead of being kept as an unusable restore point. * Fixed: Backup - Empty folders such as wp-content/upgrade are kept in split archives, so WordPress can still update itself after a restore. * Fixed: Core - Uninstalling the plugin removes the dashboard notice preferences it had left behind in the database. * Improved: Backup - Archives are sized from the time your host actually grants rather than a fixed size in megabytes, and scheduled backups resume where they stopped. * Improved: Backup - Large databases are exported in a stream, so a big site no longer runs out of memory while its dump is built. = 2.5.12 = * Fixed: Backup - Creates the pre-update backup before WordPress core updates, whether the update is started from the dashboard, by automatic updates or from WP-CLI. * Fixed: Backup - Reports a pre-update backup that could not be created, instead of letting the update run silently without a restore point. * Fixed: Backup - Applies the "keep last N backups" limit to backups created from the admin screen, and never removes scheduled, uploaded or pre-restore backups. * Fixed: Backup - Flags a scheduled, pre-update or WP-CLI backup that was interrupted mid-run, instead of offering it for restore. = 2.5.11 = * Fixed: Core - Prevents a fatal error on activation on sites running PHP 8.1. * Fixed: SEO/GEO - Imported title and description variables from Yoast, Rank Math and All in One SEO now render correctly instead of showing their raw code in the page title. * Fixed: Cache & Performance - The cache stack status badge now reads correctly in translated languages. * Improved: SEO/GEO - The importer also brings over site-wide defaults (title templates, separator, search-results visibility), not just per-page settings. = 2.5.10 = * Added: Fatal Error Recovery - Optionally reports the errors this plugin causes to its developer, so they get fixed without you writing in. Off by default and anonymous. * Added: Fatal Error Recovery - Keeps a dated history of the distinct fatal errors caught over the last 90 days, and lets you clear it in one click. * Added: Fatal Error Recovery - Reports a plugin crash in one click, with a ready-made report stripped of paths, emails, IPs and credentials that you review before sending. * Improved: Fatal Error Recovery - Error dates now say how long ago the error happened, so you can tell at a glance whether an incident is current. * Improved: Fatal Error Recovery - The last detected error now reads as a single readable line instead of a wall of stack trace. * Fixed: Hide Login Page - Prevents a fatal error on requests whose URL carries no path, such as those forwarded by some proxies and CDNs. * Fixed: Cache & Performance - Prevents a fatal error when a CDN or font URL carries no path. * Fixed: Fatal Error Recovery - Keeps recovery access working when the key file exists but cannot be read. = 2.5.9 = * Fixed: Core - Save stays enabled after you only delete items in a settings screen, such as removing an appointment time slot or closing a booking day. = 2.5.8 = * Fixed: Redirections 301 - Prevents a rare fatal error on front-end requests carrying a malformed URL. = 2.5.7 = * Fixed: Calendar - The WP-CLI resource list command reports each resource's real stock instead of always 0. * Fixed: Calendar - The booking recap date follows the site language instead of the visitor's browser language. = 2.5.6 = * Added: Backup - Create and restore backups from WP-CLI (wp blaminhor backup create / restore) for scripted, scheduled or CI backups. * Added: Calendar - Reschedule an appointment, correct its contact details, set its video link or create a rental reservation, all from WP-CLI. * Added: User Role Editor - WP-CLI commands export and import roles as JSON and grant a capability to a role or user, honoring the multisite super-admin guard. * Added: Cache & Performance - A WP-CLI preload command rebuilds the sitemap queue and warms the cache on demand. * Added: SEO/GEO - A WP-CLI import command copies SEO meta from Yoast, Rank Math or All in One SEO, with a dry-run that counts posts first. * Added: Redirections 301 - WP-CLI commands list the logged 404s and turn any 404 entry into a 301 redirection. * Added: Anti-Spam - WP-CLI commands show block stats, list or clear the journal and unblock an IP. * Added: Calendar - Manage appointments from the Month view: click a day to book, or an appointment to view, edit, reschedule or cancel it. * Added: Calendar - Edit a booked appointment's name, email, phone and notes in place, without cancelling and recreating it. * Added: Calendar - Reservation emails for bookable resources are now editable (confirmation, reminder, waitlist, cancellation, approval), each with its own on/off switch. * Added: Calendar - Give each service its own note (what to bring, how to prepare) shown in its emails via the {service_note} tag. * Added: Calendar - A "Next appointment" button jumps the Month, Week or Day view to the period holding your next upcoming booking. * Added: Calendar - Create a rental reservation by hand (taken by phone or in person), confirmed right away with availability re-checked so it never overbooks. * Added: SEO/GEO - A dismissible notice warns when another SEO plugin (Yoast, Rank Math, AIOSEO, SEOPress, The SEO Framework) is active, to avoid duplicate meta and sitemaps. * Added: SMTP Mailer - Email logging separates the delivery log (recipient, subject, status) from a new "Store email content" option, off by default, kept for review and resend. * Added: SMTP Mailer - Sites that already logged emails get a notice that message content is no longer stored unless they opt in, so a working resend is never lost silently. * Fixed: Cache & Performance - The preloader refuses private or reserved addresses, so a crafted preload or sitemap URL can no longer probe internal services. * Fixed: Forms - CSV exports of form entries neutralize spreadsheet formula injection, so a value typed into a public form can't run as a formula on open. * Fixed: Cookie Banner - The consent log CSV export is protected against spreadsheet formula injection. * Fixed: Calendar - RSVP and booking CSV exports are protected against spreadsheet formula injection. * Fixed: User Role Editor - On multisite, a non super-admin site administrator can no longer grant network-level capabilities through the role or user editor. * Fixed: Fatal Error Recovery - The recovery screen reads the recovery key and HTTPS Redirect status correctly, so the "Disable HTTPS Redirect" button works in a redirect loop. * Fixed: Fatal Error Recovery - The on-disk recovery key file now stores only a hash, so the secret can't be read by downloading the file. * Fixed: HTTPS Redirect - Requests behind a TLS-terminating reverse proxy are recognized as secure, avoiding a redirect loop that could lock the site. * Fixed: Maintenance - While a maintenance or coming-soon mode is active, the REST API returns 503 instead of serving full site content over /wp-json. * Fixed: Calendar - The venue map popup shows the venue title as plain text, so a title containing markup can't run on the public event page. * Fixed: Core - Uninstalling with "delete all data" removes three leftover options and the recovery key file, so nothing is left behind. * Fixed: Core - Dialogs no longer close when a text selection started inside a field is released outside the window. * Fixed: Calendar - The nature filter (Appointments, Events, Rentals) stays applied when navigating between periods instead of resetting to All. * Translations: Core - Updated translations for the 8 active languages (French, German, Spanish, Italian, Portuguese, Japanese, Russian, Turkish). = 2.5.5 = * Improved: Calendar - Each service is a clearly separated card with per-field labels; its options collapse under one row with real on/off toggles and an active-options count. * Improved: Calendar - The online-meeting option shows only for services that can take place online, and its off choice reads "No video link" instead of contradicting the location. * Improved: Calendar - Appointment, event and bookable settings follow a natural setup flow, with plainer wording throughout. * Improved: Calendar - Availability settings are visible at a glance instead of hidden behind collapsible panels. * Improved: Calendar - Start times offer a simple back-to-back or denser-grid choice with a live example, and spacing accounts for the break between appointments. = 2.5.4 = * Added: Calendar - Show a map of the venue on the event page (OpenStreetMap, no API key), with a drop-a-pin picker and address geocoding when editing a venue. * Added: Calendar - Clients can book a recurring series of appointments (same weekly or fortnightly slot) in one go, and cancel the whole series themselves. * Added: Calendar - Events can sell several ticket tiers (each with its own price and quota) and accept promo codes (percentage or fixed amount) on paid sign-ups. * Added: Calendar - Manage the calendar from WP-CLI: sign-ups, appointments, resources and promo codes, plus reminders, occurrence rebuild, venue geocoding and iCal/TEC import. * Added: Forms - Manage forms and stored entries from WP-CLI: list, export to CSV, mark, delete, GDPR purge, per-form stats and re-send a notification. * Improved: Calendar - The "Back" link in the booking widget follows the configured hover colour like the other slots and buttons. = 2.5.3 = * Added: Calendar - Events can close sign-ups a set number of hours before they start, so you have a head count in time. * Added: Calendar - Events can require your approval: sign-ups come in as requests that hold their seat until you approve or decline them. * Added: Calendar - Bookables can offer a waitlist when out of stock for the chosen dates, and alert people the moment those dates free up. * Added: Calendar - Custom date and time formats for the calendar, slots and emails (or follow your site's own formats). * Improved: Calendar - Settings are reorganised so each scheduling type (appointments, events, bookables) has its own self-contained tab navigated by a section menu; shared options stay in a Settings tab. * Improved: Calendar - Each email now lives in the tab of the type it belongs to; the separate Emails tab is gone. = 2.5.2 = * Fixed: Calendar - Adds breathing room below the "Next availability" button so it no longer touches the day-of-week row on empty weeks. * Fixed: Calendar - Evens out the spacing around the consent checkbox on the booking form so it matches the rest of the form. * Improved: Calendar - Clarifies the booking and sign-up consent wording so it plainly states that details are stored to process the request. * Improved: Calendar - The client self-service space (passwordless reschedule and cancel, no account) is now on by default on new sites. * Improved: Calendar - Streamlines the settings tabs so the sections that need a decision stay open and secondary ones start collapsed. = 2.5.1 = * Added: Forms - Strict CAPTCHA mode rejects submissions when the verification provider can't be reached. * Added: HTTPS Redirect - Optional HSTS toggles for includeSubDomains and preload, off by default with a clear warning. * Fixed: Fatal Error Recovery - The recovery key is stored outside the public web root so it can't be read on some server setups. * Fixed: Fatal Error Recovery - The toolbar shortcut no longer exposes the recovery key on the front end. * Fixed: HTTPS Redirect - Redirects always target your site's canonical address. * Fixed: Maintenance - The visitor IP allowlist can no longer be bypassed with a spoofed header. * Fixed: Calendar - Public booking, RSVP and resource forms are rate-limited per visitor to prevent automated flooding. * Fixed: Calendar - A duplicated payment return can no longer create a booking twice or trigger a false refund. * Fixed: Calendar - Booking emails and the booking widget labels now display in your site language instead of falling back to English. * Fixed: Calendar - Email and widget text left at its default no longer stays frozen in one language; it follows your site language and updates when you switch it. * Fixed: Calendar - Self-cancellation links in confirmation emails now expire after 45 days. * Fixed: Broken Links - The scanner can't be tricked into probing internal addresses and verifies SSL like the rest of WordPress. * Fixed: SEO/GEO - Inline meta edits keep full JSON-LD and multi-line schema descriptions intact. * Fixed: SEO/GEO - Prevented a possible fatal error when a custom post type has been removed. * Fixed: Database Optimizer - The autoload opt-out list is preserved when saving settings. * Fixed: Mute Core Emails - Removed a PHP warning when recovery-mode emails are muted. * Fixed: Post Types Order - Reordering now refreshes the cached content order on object-cache sites. * Fixed: SMTP Mailer - Password-reset links are masked in email logs and a warning flags plain-text body storage. * Fixed: SMTP Mailer - A failing fallback relay no longer recurses into a timeout. * Fixed: User Role Editor - Capability changes enforce a per-user permission check. * Fixed: Content Duplicator - Bulk duplication checks edit permission on each item. * Fixed: Backup - Large backup uploads no longer risk exhausting server memory. * Fixed: Hide Login Page - External (SSO) login redirects are preserved, and a warning flags a login slug that clashes with an existing page. * Improved: Redirections - The list loads far faster on large redirection sets, and regex patterns that could hang the site are blocked and auto-disabled. * Improved: Forms - A failed webhook delivery is retried once after five minutes so a transient outage no longer loses a lead. * Improved: Forms - Allowed upload file types are now configurable, with archives and plain text excluded by default. * Improved: SMTP Mailer - The connection test now works with relays that don't require authentication. * Improved: Cookie Banner - Consent records validate the IAB TC string format before storage. * Improved: Calendar - In specific-dates availability, you can paste copied hours straight onto another date in the list, not only via the calendar. * Improved: Calendar - The client self-service space turns on with a single switch and a built-in address — no page to create or shortcode to place, with your own page still an option. = 2.5.0 = * New module: Calendar (Beta) - A complete scheduling suite for events, appointments and rentals, all in one screen: - Events with recurrence, venues, organizers, RSVP, calendar views and iCal feed subscriptions. - Online appointment booking from your weekly availability: reminders, waitlists, approvals and optional Stripe payments. - Resource rentals (rooms, equipment, tables…) by date range, with stock control and optional Stripe payments. - Client self-service pages, fully customizable emails, and public and private calendar subscriptions. * Added: Backup - SFTP backups can authenticate with an SSH key instead of a password: paste your own private key, or generate a key pair and copy the public key to your server. * Fixed: Cache & Performance - The dashboard no longer falsely warns that the page cache is broken when a loopback request is blocked or another cache plugin is active. * Fixed: Database Optimizer - Creating a backup now shows a progress spinner and confirms completion with the file name and size, instead of leaving the button stuck. * Fixed: Core - On the dashboard, the module detail popover no longer covers the module directly below it, so every module in the list stays reachable. * Fixed: Core - Picking a colour or typing in a settings field now reveals Save immediately, instead of only after you click away from the field. * Improved: Core - Dashboard alerts now explain what is wrong and what to do the moment you hover them, and each link opens the exact settings page that fixes it. * Improved: Core - Inline link-style actions (remove, add, in-page links) now use the brand colour, with delete actions in red, instead of the default WordPress blue. * Improved: Core - Secondary text, status badges and inline link actions now meet WCAG 2.1 AA colour contrast for better readability. * Improved: Core - A floating Save bar with an unsaved-changes count appears the moment you edit a setting and follows you as you scroll, so you can save without scrolling back up. = 2.4.0 = * Added: Backup - Off-site backups to S3, WebDAV, SFTP and pCloud (plus Google Drive, Dropbox, OneDrive in Beta) with setup guides, a Remote Copies browser to restore after a server loss, and email reports after scheduled backups. * Added: Core - Full multisite support with per-site isolation (Beta), a dashboard Notifications panel, and a cross-module dashboard alerts widget. * Added: Redirections - Per-rule status codes (301/302/307/410/451) and a 404 Monitor that logs broken URLs and creates the missing redirect in one click. * Added: SEO/GEO - A GEO/AEO tab with an llms.txt file for AI answer engines, one-click JSON-LD templates, and SEO/GEO editing with live scoring inside Elementor. * Added: Anti-Spam - Email-address protection that encodes addresses against harvesters (with an [email] shortcode and block), plus Contact Form 7 and WPForms coverage. * Added: Forms - Collect payments with Stripe Checkout, recording the entry only after payment succeeds (Beta). * Added: User Role Editor - Restrict any page or post to selected roles (with a [be_restrict] shortcode), assign several roles from the profile screen, and auto-snapshot permissions before each change. * Added: Disable Comments - Disable comments on selected post types only, block the XML-RPC and REST comment endpoints, and delete comments per post type. * Added: Image Sizes - Regenerate thumbnails from the Media Library (row and bulk actions) and optionally scale down oversized uploads. * Added: Broken Links - Scheduled background scans (daily or weekly) with optional email alerts and one-click Unlink that keeps the anchor text. * Added: Database Optimizer - A new Autoload tab that flags which options are safe to disable and toggles them in one click. * Added: Cookie Banner - One-click Cookie Policy page with an auto-generated declaration table and a [blaminhor_cookie_declaration] shortcode. * Added: Maintenance - Built-in email capture on the coming-soon page, stored locally with CSV export and no third-party service. * Added: Mute Core Emails - A single "mute everything" switch plus control over auto-update emails. * Added: Domain Changer - One-click Undo of the last domain change, with the post GUID preserved and selectable column exclusions. * Added: Cache & Performance - A Script & Style Manager to stop specific scripts or styles from loading, everywhere or on chosen URLs. * Added: HTTPS Redirect - A daily SSL certificate check that emails an alert a chosen number of days before expiry. * Added: Fatal Error Recovery - Detect a theme-caused fatal error and switch to a safe theme from recovery mode. * Added: Favicon Generator - A live preview of the icon in a browser tab and on a phone home screen before generating. * Fixed: Core - Clicking an inactive module now activates it and opens its settings instead of an "access denied" error; uninstall removes every table (including the cookie-consent and Web Vitals tables) and the backups folder; and filter pills no longer show an underline. * Fixed: SEO/GEO - Scores read the real content of Elementor pages, count protocol/root-relative links and no longer treat an empty alt as alt text; the SEO box is hidden for content with no public page. * Fixed: Cache & Performance - Captcha scripts (Turnstile, hCaptcha) are excluded from JS delay and optimizations skip the login page, so forms and sign-in keep working. * Fixed: Core - A leftover internal name was removed from the Image Sizes help text and the exported database-backup header. * Improved: SEO/GEO - Scoring now uses defensible on-page signals with partial-credit (amber) states and clearer focus-keyword guidance. * Improved: SMTP Mailer - The general settings show one option per row with clear on/off toggles. = 2.3.2 = * Fixed: Database Optimizer - The "Optimize Tables" button returns to its normal label as soon as optimization finishes, even during the short page reload. * Fixed: Database Optimizer - The "Items to Clean" count reaches zero after a full cleanup; comments awaiting moderation are listed separately since Clean All never removes them. * Improved: SEO/GEO - When the SEO title or description is empty, a hint explains search engines build it automatically, and clicking the preview copies that suggestion in as an editable starting point. * Improved: Backup - The backup list explains that the listed sizes are those of the compressed files, smaller than the database since indexes are rebuilt on restore, and can vary slightly between backups. = 2.3.1 = * Added: Post Types Order, Favicon and User Role Editor - One-click import from their matching standalone plugin (Custom Taxonomy Order, Favicon by RealFaviconGenerator, and User Role Editor) so you keep your existing order, icon and custom capabilities when you switch to Blaminhor Essentials. * Fixed: Backup - Named database backups keep their name after being downloaded and re-uploaded to another site; deleting the safety backup from the restore notice clears it from the list and counter; a restore no longer leaves "plugin file does not exist" errors (plugins missing from the backup are switched off cleanly); and media-heavy sites no longer stall, since already-compressed files like images, video and PDFs skip pointless re-compression. = 2.3.0 = * New module: Forms (Beta) - Accessible contact forms with a drag-and-drop builder, Gutenberg block and shortcode; submissions are stored in the database and exportable as CSV; spam is blocked without a CAPTCHA by default, with optional reCAPTCHA or Cloudflare Turnstile; conditional logic and multi-step forms; GDPR controls (consent field, optional hashed IP, automatic entry purge); merge tags like {name} and a fully editable notification body with an {all_fields} recap; notifications and auto-replies go through your SMTP relay. * Added: Cache & Performance - Preload and Purge & preload buttons in the overview and toolbar Cache menu warm your pages on demand with a live progress bar, and after a theme change clears your Critical CSS a dismissible notice regenerates it in one click. * Added: Backup - A manual backup can be given a name shown in the list and file name, and the list flags backups made on a different domain so you can see which ones need a domain change on restore. * Fixed: Backup - Uploaded backups keep their name, date and label and import once cleanly without duplicates or stray archives; a restore keeps you signed in and on your current site address even when the backup came from another domain (prompting a domain change to finish), reports its exact outcome including any file it could not write, blocks a second restore while one is running, and ends a stalled step with a clear message; scheduled retention deletes the oldest backups as configured, the table sorts by the column you click, and automatic pre-update backups get a clean file name. * Improved: Cache & Performance - Clearing the cache simply empties it without starting a background crawl, so a quick purge stays quick. * Improved: Backup - The pre-restore safety backup snapshots only what the restore will overwrite, so a database-only restore is far faster, and tells you when no rollback point exists; the Undo offer appears only for a complete, valid safety backup; an empty or corrupt archive leaves your folder untouched; and leftover temp files are cleaned on the next run while files over 100MB skipped from a backup are listed in the log. = 2.2.0 = * New module: Anti-Spam Honeypot - Blocks spam bots on your comment, login, registration and password forms with a hidden trap — no CAPTCHA, no external service; spam goes to the recoverable Spam queue, with a link filter, IP throttle, fail-open login and a privacy-friendly journal of hashed IPs. = 2.1.1 = * Improved: Backup - Restoring a backup runs smoothly through to completion, including large and previously-uploaded backups. * Improved: Backup - Restoring a site to a new web address keeps both the site and the admin reachable. * Improved: Backup - Restore options stay available, settings save safely while a backup runs, and the confirmation buttons read clearly. * Improved: Cache & Performance - Cache preloading runs reliably through to completion. = 2.1.0 = * Added: Cache & Performance - Major overhaul: a new Overview of your whole cache stack, a live preview editor, and an empirical auto-pilot that tests each optimisation on your real pages before recommending it. * Improved: Cache & Performance - Plain-language relabel across every tab, settings regrouped by intent, and a one-click auto-pilot with a real progress bar. * Fixed: Cache & Performance - Security hardening: logged-in pages can no longer leak to anonymous visitors, plus fixes for cache poisoning, SSRF on self-hosted Google Fonts, and rate-limit bypass. * Fixed: Cache & Performance - Page caching is more reliable: correct HTML minification spacing, coalesced purge cycles, object-cache (Redis/Memcached) invalidation, and accurate host detection. * Removed: Cache & Performance - Dropped the unsafe "cache pages for logged-in visitors" option and a few non-functional toggles. * Fixed: SMTP Mailer - Drag-and-drop relay reordering works again and saves reliably; the test result now shows next to the relay you tested. * Improved: Core - Enabling a module no longer jumps you to its settings, so you can switch several on in a row; modules that still need configuring show a "Needs setup" badge. = 2.0.2 = * Fixed: Cache & Performance - Clear button on per-template Critical CSS rows is now a standard secondary button, visually consistent with the adjacent Generate button. * Updated: Core - Dashboard vertical spacing tightened so the header, search bar and category grid stay compactly aligned on a single 16px rhythm. = 2.0.1 = * Updated: Core - Button corners now match the WordPress 7 native style (2px radius) for a tighter, more familiar look across every module. = 2.0.0 = * Improved: Core - Plugin redesigned across all 21 modules on a unified visual grammar aligned with WordPress 7: buttons, fields, tables, tabs and notices share the same look. * Improved: Core - Full WCAG 2.1 AA accessibility: keyboard navigation, screen-reader support (ARIA), focus rings on every interactive element and reduced-motion support. * Improved: Core - Codebase modernised on PHP 8.1 with strict types, enums and value objects for tighter security and faster execution. * Improved: Core - Save bar at top and bottom of every module shows the unsaved-changes count and offers one-click Cancel and Save. * Improved: Core - Redesigned tab bar (per-tab unsaved-changes dot, Alt+1..9 keyboard shortcuts), and tabs persist in the URL for reloads and shared links. * Improved: Core - Dashboard loads faster with a lighter stylesheet footprint, and module pages follow your WordPress admin colour scheme. * Added: Core - Optional 'Alerts & quick actions' dashboard widget that surfaces module alerts and exposes shortcut buttons on the WP dashboard (off by default). * Improved: SEO/GEO - Content Overview redesigned with stat cards, filters, search, pagination, bulk actions (indexed/noindex/clear meta) and a new 'All indexed types' view. * Improved: Cookie Banner - GDPR Article 7 personal-data exporters and erasers added for privacy-rights requests. * Improved: Broken Links - Scan terminal prefixes each line with a status icon (success/warning/error) for clearer reading. * Fixed: Core - Security hardening: Domain Changer SQL injection during migration, Backup filename injection on downloads, Cache & Performance POST input handling. * Fixed: Core - Localisation gaps closed: Backup list dates, SEO/GEO archive date placeholder and Broken Links result counts now follow the active language (singular/plural). = 1.11.0 = * Added: Core - Introduces a full WP-CLI command tree (`wp blaminhor ...`) covering every module's settings and the most-used actions, enabling automation, AI-driven configuration, and CI/CD setup without the admin UI. * Fixed: Cache & Performance - Disabling the module now fully removes its .htaccess sections instead of leaving empty marker blocks behind. * Fixed: SEO/GEO - Saving settings from a non-browser context no longer triggers a noisy redirect warning and now returns a clean success message. * Improved: Cache & Performance - GZIP/Brotli compression now applies reliably to HTML and other text responses on hosting setups where the previous rules were silently skipped. * Improved: Redirections - Public API now exposes create, list and delete operations so external tooling reuses the same loop detection and cache invalidation as the admin form. * Translations: Core - 110 new strings translated across 12 languages for the WP-CLI command tree. = 1.10.0 = * Added: Cookie Banner - New module that shows a consent banner and blocks tracking scripts (analytics, ads, embedded videos) until visitors agree. * Fixed: Core - Text fields no longer accumulate backslashes in front of apostrophes, quotes or backslashes on successive saves. * Fixed: Core - One-time cleanup removes backslashes already stored in module options from earlier versions. * Fixed: Core - Feedback replies now reach the sender directly when they provide their email, instead of bouncing on the site's From address. * Fixed: SMTP Mailer - SMTP authentication no longer silently fails when the relay password contains an apostrophe, quote or backslash. = 1.9.10 = * Fixed: Cache & Performance - Logged-in administrators now see the front-end as if the module were not active, exposing page-builder regressions that were previously hidden. * Fixed: Cache & Performance - Elementor Pro and other page-builder dropdown menus open correctly on hover; bundled libraries are no longer delayed alongside ordinary scripts. * Fixed: Cache & Performance - Critical CSS cells state why an extraction was rejected (size limit, write failure, network error) instead of resetting silently to "Not generated". * Added: Cache & Performance - Preload tab exposes a "Pages per run" setting (1 to 200, default 30) so a small sitemap is warmed in a single batch instead of multiple hourly ticks. * Added: Cache & Performance - A status banner at the top of the cache page shows the preload progress (queue size, last batch, next run) and warns when WP-Cron seems stuck. * Added: Cache & Performance - Preload tab lists every page currently saved on disk with size, age, variant, and a per-URL purge button. * Added: Cache & Performance - A full cache purge now triggers an immediate preload run instead of waiting up to an hour for the next cron tick. * Added: Cache & Performance - Settings backup section in the Advanced tab to export every cache option as a JSON file and import it back on another site or after troubleshooting. * Added: Core - Dashboard shows a "What's new" block above Feedback & Ideas, summarising the current version's upgrade notice in the user's language. * Improved: Cache & Performance - Preload starts within seconds of a purge or settings save and chains batches, so a 30-page sitemap drains in a minute instead of an afternoon. * Improved: Cache & Performance - Async loading of non-critical CSS is locked until a Critical CSS sheet is generated, preventing the unstyled flash and broken nav menus. * Improved: Cache & Performance - Frontend helper scripts no longer load for logged-in administrators, saving four needless requests per admin page view. * Improved: Cache & Performance - Network errors during Critical CSS generation are recorded so they show up in the diagnostic export. * Translations: Cache & Performance - 60 new strings in 11 languages for the new preload, cached pages, Critical CSS, settings backup and Pages-per-run interfaces. * Translations: Core - Cleaned up 154 module descriptions across the 11 supported languages where the same sentence was repeated two or three times on the modules dashboard. = 1.9.9 = * Added: Cache & Performance - Render watchdog probes the home anonymously after every change and auto-disables any optimisation that breaks the layout. * Added: Cache & Performance - Theme adapters for Avada, Elementor and Divi sync purges with the builder's cache and contribute Defer JS / RUCSS exclusions. * Added: Cache & Performance - Cloudflare integration with scoped API token and Zone ID, encrypted at rest, auto-purges on content updates. * Added: Cache & Performance - Top third-party hosts auto-matched with dns-prefetch / preconnect hints, and the CDN tab now shows the detected hosting provider. * Added: Cache & Performance - Self-hosted Google Fonts (GDPR + perf) and auto-filled image dimensions on every to cut Cumulative Layout Shift. * Fixed: Cache & Performance - Async CSS loading no longer breaks Avada / Divi / Elementor layouts: theme stylesheets stay in synchronous cascade order. * Fixed: Cache & Performance - Aggressive optimisations are now off by default on Avada and Divi to avoid first-activation layout breakage; users opt-in per option. * Fixed: Cache & Performance - Page cache is fully purged on any optimisation change, so visitors stop seeing the old version after a settings update. * Fixed: Cache & Performance - Critical CSS no longer breaks on modern compound selectors (:is, :where, attribute selectors with commas). * Fixed: Fatal Error Recovery - Recovery emails no longer trigger on errors that don't take the site down, and identical errors are deduplicated within 24h. * Improved: Cache & Performance - The "Enable Cache & Performance" toggle is now the module's master switch — OFF stops the page cache AND every optimisation. * Removed: Cache & Performance - The "Enable RUCSS" toggle is hidden until the server-side application is implemented; the previous switch did nothing. = 1.9.8 = * Added: Logs - New cross-module debug logger with copy / download / clear actions, filtered by module / level / search. Cookies, nonces and tokens are auto-redacted. Off by default. * Added: Logs - Exported JSON includes a full environment block (server, PHP / WP versions, theme, active plugins, memory limits) so a single export is enough to diagnose a bug. * Added: Cache & Performance - "Preload all pages now" button on the Preload tab. Crawls every sitemap URL with a live progress bar and Stop button, without blocking the cron. * Added: Cache & Performance - Critical CSS now records detailed client-side log events to the Logs page so generation failures can be diagnosed without browser-console access. * Fixed: Cache & Performance - Critical CSS now generates reliably on production sites behind a CDN (was silently stuck on "Not generated"). * Fixed: Cache & Performance - "Preload all pages now" button no longer returns an empty queue. * Fixed: Cache & Performance - Audit results panel now renders with its full styling (cards, status dots). * Fixed: Cache & Performance - Critical CSS now falls back to the home URL when the requested template (Page, Article, Archive) has no published content yet. * Fixed: Cache & Performance - Audit no longer recommends turning on an option that is already enabled. * Fixed: SEO/GEO - Sitemap URL list stays correct when a third-party theme returns false from the home_url filter. * Improved: Cache & Performance - PageSpeed Insights error messages now explain what to fix in Google Cloud Console (API enablement, key restrictions, referrer restrictions). * Improved: Cache & Performance - "How to get a free API key" tutorial now covers API restrictions and HTTP-referrer restrictions, the two most common causes of failure. * Improved: Cache & Performance - Live preload table now uses the plugin's design system for visual consistency with other modules. * Translations: 360 new strings added in the 11 supported locales for the new Logs page, the live preload UI and the PageSpeed tutorial. = 1.9.7 = * Fixed: Cache & Performance - Critical CSS no longer times out on heavy pages or behind a CDN; extraction is now near-instant. * Fixed: Cache & Performance - PageSpeed Insights audit and "Test" button now work with Google API keys restricted by HTTP referrer. * Fixed: Cache & Performance - Audit recommendation buttons now correctly switch to the target tab when the user is already on the cache settings page. * Fixed: Cache & Performance - Audit no longer recommends turning on an option that is already enabled. * Fixed: Cache & Performance - Audit loading message and recommendation group titles now appear in the user's language. * Improved: Cache & Performance - Audit buttons now show a spinner while the audit is running. * Improved: Cache & Performance - Audit recommendations now use a suggestive tone ("Try X...") instead of imperative commands. * Improved: Cache & Performance - Audit results panel refreshed to match the visual style of the rest of the plugin. * Improved: Cache & Performance - Targeted setting now briefly pulses when landing on a settings tab from an audit recommendation. * Translations: 330 new strings added in the 11 supported locales. = 1.9.6 = * Fixed: Cache & Performance - Module now automatically takes over when another cache plugin is removed but its cache file is left on disk (previous file is safely backed up first). * Fixed: Cache & Performance - Properly distinguish between an active competing cache plugin and an obsolete cache file left by a removed plugin. * Fixed: Cache & Performance - WooCommerce cart, checkout and my-account pages are now reliably excluded from caching, including on sites with custom permalinks. * Translations: 293 Cache & Performance strings now available in the 11 supported locales. = 1.9.5 = * Fixed: Cache & Performance - Cache optimisations are now automatically paused when another cache plugin is detected (WP Rocket, W3 Total Cache, WP Super Cache, LiteSpeed, etc.), with a clear admin notice. * Fixed: Cache & Performance - Conflicts with other cache plugins are now detected continuously, not only at module activation. * Fixed: Cache & Performance - Page Cache and Advanced tabs no longer show a misleading "cache file missing" warning while the module is intentionally paused for a conflict. * Fixed: Cache & Performance - Native browser alert popups in the cache UI replaced with proper WordPress admin notices that respect the active language. * Fixed: Cache & Performance - "Lazy load exclusions" now correctly keep listed images and iframes eager-loaded. * Fixed: Cache & Performance - Page cache is now automatically bypassed on themes that handle CSS in non-standard ways (Avada included by default). * Fixed: Admin - "Save Changes" button under tabbed module pages now aligns properly with the tab content. * Improved: Cache & Performance - Defer JS and Delay JS now ship with built-in safelists covering ~50 common patterns (jQuery, Stripe, PayPal, Recaptcha, Elementor, WooCommerce, WPML, etc.). * Improved: Cache & Performance - "Remove Unused CSS" default safelist now covers dynamic class patterns from WordPress, Gutenberg, Elementor, WPML and WooCommerce. * Improved: Cache & Performance - Cache file indicator on the Advanced tab now shows a "yielded to another cache plugin" state instead of a misleading "Not installed" label. * Removed: Cache & Performance - "Concatenate CSS" and "Minify JS" options hidden until their implementation is complete. * Translations: 7 new strings added in the 11 supported locales. = 1.9.4 = * Fixed: Cache & Performance - Cache configuration line is now reliably added to the WordPress configuration file on shared hosts where some safety checks were reporting false negatives. * Fixed: Cache & Performance - Page Cache tab no longer stacks duplicate plugin-managed comments in the WordPress configuration file on every reinstallation. * Fixed: Cache & Performance - Cache configuration line is now retried silently on every admin page load when missing, so a transient permission issue at activation no longer leaves the site stuck without caching. * Improved: Cache & Performance - Clearer wording for the "caching is not active" admin notice. = 1.9.3 = * Fixed: Cache & Performance - Cache file no longer outputs garbage characters when something writes to the page before the cache hit (visible in private-window browsing only). * Fixed: Cache & Performance - Cache file now serves uncompressed HTML when PHP automatic compression is enabled, to prevent double compression. * Fixed: Cache & Performance - Critical CSS rows no longer get stuck on "Generating..." when extraction is skipped, times out or fails; cells now reset to "Not generated". * Fixed: Cache & Performance - Clicking "Generate" or "Generate all" while a previous Critical CSS run is still extracting no longer creates parallel runs. = 1.9.2 = * Fixed: Cache & Performance - Critical CSS generator no longer reloads the page when a row finishes or is cleared; unsaved settings on other tabs are now preserved. * Fixed: Cache & Performance - Per-row generation feedback: clicked "Generate" button switches to a spinner and the relevant cell shows a "Generating..." placeholder. * Fixed: Cache & Performance - "Save Changes" button now correctly aligned with the tab content. = 1.9.1 = * Fixed: Cache & Performance - Activation no longer blocks when a leftover cache file from another plugin is still present after that plugin has been deactivated. The cache file is now taken over with a timestamped backup. * Improved: Cache & Performance - Detection of leftover cache files now identifies the originating plugin (WP Rocket, W3 Total Cache, WP Super Cache, LiteSpeed, WP Fastest Cache, Cache Enabler, etc.) for clearer diagnostics. = 1.9.0 = * Added: Cache & Performance - New module covering page cache, browser cache, GZIP, HTML minification, lazy loading, JS defer / delay, YouTube facade, sitemap warmup, hover prefetch, CDN URL rewrite, resource hints, Critical CSS, Remove Unused CSS, PageSpeed audit and a Web Vitals dashboard. * Added: Cache & Performance - 8-tab admin interface (Page Cache / Files / Media / Preload / CDN / Audit / Web Vitals / Advanced). * Added: Cache & Performance - Cache plugin conflict detection (refuses activation if WP Rocket, W3 Total Cache, WP Super Cache, LiteSpeed Cache or WP Fastest Cache is active). * Added: Cache & Performance - Three-layer safety switch to disable caching instantly: a PHP constant, a file flag, and an admin URL parameter for emergency bypass. * Added: Cache & Performance - Heartbeat control for the front-end, the admin and the post editor with independent throttling. * Added: Cache & Performance - Hybrid audit (Google PageSpeed Insights + built-in local audit) producing actionable recommendations classified as fixable by the plugin, by the theme, or by hosting. * Added: Cache & Performance - Real User Monitoring of Core Web Vitals (LCP, INP, CLS, FCP, TTFB) with daily aggregation and an inline dashboard. * Added: Cache & Performance - Embedded Health Check in the Advanced tab with 25 self-tests and a one-click report. * Added: Core - New "Performance" category in the modules dashboard. * Added: Core - Modules can now run setup and cleanup actions when activated or deactivated. * Added: Core - Cross-module cache purge so any module can request a cache flush on state changes. * Added: Mute Core Emails - New "Password change (to admin)" toggle to suppress the admin notification when a user changes their password. * Added: Hide Login - Page cache is now automatically bypassed on the custom login URL. * Fixed: User Role Editor - Capabilities panel now appears when a role is clicked. * Fixed: Hide Login - Custom login slug now serves the login form correctly when the Cache module is active. * Fixed: Hide Login - Eliminated 5 PHP "Undefined variable" warnings on the login page. * Fixed: Mute Core Emails - Eliminated 8 PHP warnings and 2 deprecation notices on user creation. * Fixed: Mute Core Emails - Admin notification "Password Changed" now correctly intercepted when the new toggle is on. * Fixed: Cache & Performance - Eliminated 4 PHP warnings on the Advanced tab. * Fixed: Backup - "Create Backup Now" button now correctly starts the backup. * Fixed: Backup - Replaced a misleading "already saved" icon on the "Create Backup Now" button with a clearer "upload" icon. * Improved: Core - JavaScript and CSS files are now versioned by their modification time when WordPress is in script-debug mode, so edits show up instantly during development. * Improved: Redirections - Adding, updating, deleting, toggling, bulk-deleting and CSV-importing redirections now flushes the page cache so new redirect rules take effect immediately. * Improved: Maintenance - Toggling maintenance mode now flushes the page cache so visitors do not see a stale state. = 1.8.2 = * Fixed: Redirections - False slug change detection on newly created posts. = 1.8.1 = * Fixed: SEO/GEO - Fatal error when using the [blaminhor_toc] shortcode. * Improved: SEO/GEO - Noindex warning notice now also triggers when the Reading Settings "Discourage search engines" option is checked. * Improved: SEO/GEO - Score details panel now stays expanded after clicking Refresh. * Improved: SEO/GEO - Score Refresh button now uses current unsaved metabox data. = 1.8.0 = * Added: SEO/GEO - Schema.org / JSON-LD structured data output (Organization, Person, WebSite, Article, WebPage, BreadcrumbList). * Added: SEO/GEO - New "Schema" settings tab with Site Identity and Structured Data Defaults. * Added: SEO/GEO - Schema tab in the post / page metabox for per-content schema type override and custom JSON-LD. * Added: SEO/GEO - Automatic FAQ detection from page content with FAQPage schema generation. * Added: SEO/GEO - Granular AI crawler blocking via robots.txt (GPTBot, Google-Extended, ClaudeBot, PerplexityBot, CCBot). * Added: SEO/GEO - HowTo schema auto-detection from ordered lists, step-by-step patterns and how-to blocks. * Added: SEO/GEO - VideoObject schema auto-detection from YouTube, Vimeo and HTML5 embeds. * Added: SEO/GEO - Author E-E-A-T enrichment (jobTitle, description, knowsAbout, alumniOf, sameAs) in Article schema. * Added: SEO/GEO - Key Takeaways feature: summary points displayed at the top of content and added to the Article schema abstract. * Added: SEO/GEO - Table of Contents shortcode [blaminhor_toc] with configurable depth, style and title. * Added: SEO/GEO - GEO Content Score: 20-criteria analysis (0-100) measuring structure, machine interpretability, citability and E-E-A-T signals. * Added: SEO/GEO - Schema Description field with fallback to meta description then automatic excerpt. * Added: SEO/GEO - SEO Score: 20-criteria on-page analysis (0-100) covering title, description, content quality, technical SEO and readability. * Fixed: SEO/GEO - Unresolved title template placeholders (e.g. {page_number}) no longer displayed in SERP previews and page titles. * Fixed: Core - Modals now open reliably across all modules. * Improved: SEO/GEO - Metabox reorganised to 3 tabs: SEO (Advanced merged), GEO and Social. * Improved: SEO/GEO - Settings page Schema tab enriched with Author E-E-A-T, Table of Contents and Key Takeaways sections. * Improved: SEO/GEO - Content Overview edit modal displays all sections stacked vertically with scroll. * Improved: SEO/GEO - Added descriptive introductions to all settings page tabs and metabox sections. * Improved: SEO/GEO - JSON-LD preview and FAQ detection indicator added in the Schema metabox section. * Improved: Core - Cleaner and lighter CSS spacing system shared across all modules. * Improved: SEO/GEO - Tab descriptions are now collapsible accordions. * Improved: SEO/GEO - Score widget toggle and refresh button redesigned with info banner style. * Improved: SEO/GEO - GEO score criteria now display current values and recommended thresholds. * Improved: SEO/GEO - Each SEO/GEO score criterion now links to its authoritative source. * Improved: SEO/GEO - Replaced 3 duplicate GEO E-E-A-T criteria with GEO-specific ones. * Improved: SEO/GEO - Added note in score details clarifying that not all criteria apply to every page. = 1.7.5 = * Added: SEO/GEO - Unsaved changes warning when leaving the post editor with modified SEO fields. * Fixed: SEO/GEO - Invalid lastmod dates in the sitemap when post modification GMT date is empty. = 1.7.4 = * Fixed: SEO/GEO - Placeholders like {year}, {month}, {sep} not being replaced in custom SEO titles, meta descriptions, OG and Twitter Card tags on the frontend. = 1.7.3 = * Fixed: SEO/GEO - Variable buttons (Title, Separator, Site Name, etc.) not inserting placeholders in the post editor metabox. * Improved: Redirections - Cleaner internal database query handling. * Improved: Domain Changer - Modernised table name handling in database queries for better safety on recent WordPress versions. = 1.7.2 = * Fixed: Backup - Backups created by DB Optimizer and Domain Changer now appear in the Backup module list and can be restored from there. * Fixed: DB Optimizer - Pre-optimisation backups are now saved as .zip archives compatible with the Backup module format. * Fixed: Domain Changer - Pre-domain-change backups are now saved as .zip archives compatible with the Backup module format. = 1.7.1 = * Added: DB Optimizer - "Create Backup Now" button to create a SQL database backup directly from the page (in the backup notice and the confirmation modal). * Added: Multisite - Backup files are now stored in separate subdirectories per blog ID for full isolation across the network (Backup, Domain Changer, DB Optimizer). * Fixed: SMTP - Fatal error on PHP 8.4 caused by a corrupted French translation of the email log status message. * Fixed: Backup - Pre-update backups now display the plugin or theme name in the Type column. = 1.7.0 = * Added: Disable Comments - New module to completely disable comments on all post types, with tools to close existing comments and delete all comments from the database. * Added: SEO/GEO - Clickable variable tags (Title, Separator, Site Name, etc.) under SEO Title and Meta Description fields in the metabox and the SEO list edit modal. * Added: Domain Changer - Editable search domain field to find and replace traces of a previously migrated domain. * Added: Domain Changer - Exhaustive database search across all tables, including third-party plugin tables. * Added: Redirections - Loop detection: redirections creating loops (same source/target, reverse pairs, chains) are automatically disabled with visual warnings. = 1.6.1 = * Fixed: SEO/GEO - Variables like {site_name}, {sep}, {title} are now properly replaced in the SERP preview for meta descriptions. * Improved: Core - Extracted inline CSS styles to proper stylesheet classes across all modules for better maintainability. = 1.6.0 = * Added: Hide Login - New module to change the login URL and block access to wp-login.php and wp-admin for non-logged-in users. * Added: Classic Editor - Renamed to "Classic Editor & Widgets" with independent toggles for the Classic Editor and the Classic Widgets screen. * Added: DB Optimizer - 7 new cleanup types: duplicated postmeta, oEmbed cache, duplicated commentmeta, pending comments, orphaned usermeta, duplicated usermeta and dead cron events. * Added: DB Optimizer - Configurable toggles for new cleanup types in scheduled cleanup settings. * Added: Backup - Configurable archive splitting by size (default 200 MB) to prevent PHP timeout on large backups. * Added: Backup - Real-time log panel during backup operations with terminal-style display. * Added: Backup - "Max Archive Size" setting to control the archive splitting threshold. * Added: Backup - "View Log" button to consult the log of each backup from the backup list. * Added: Backup - "Interrupted" status badge for backups that did not complete successfully. * Added: Backup - Detailed restore logging (SQL errors, table operations, component progress). * Added: SEO/GEO - Automatic conversion of Yoast, Rank Math and AIOSEO placeholders during SEO data import. * Fixed: Backup - PHP timeout (error 500) when backing up large components, by splitting into smaller archives. * Fixed: Backup - Duplicated component names in the backup list when archives are split into multiple parts. * Fixed: Backup - Inability to delete pre-restore safety backups. * Fixed: Backup - Pre-restore notice not disappearing after deleting the related backup. * Fixed: Backup - Database export was including unrelated tables from other WordPress installations sharing the same database. * Fixed: SEO/GEO - Yoast shortcodes (%%sep%%, %%sitename%%, etc.) appearing as raw text after SEO import. * Fixed: DB Optimizer - "Overhead" column no longer displays misleading values for InnoDB tables (the space shown was pre-allocated, not reclaimable). * Fixed: DB Optimizer - Hardened the database query that lists table sizes. * Improved: Backup - Renamed module from "Backup" to "Backup & Restore" to better reflect its capabilities. = 1.5.6 = * Added: Backup - Separate scheduling for database and files backups (independent frequency, time and retention). * Added: Backup - "Every Two Weeks" frequency option for scheduled backups. * Fixed: Backup - Scheduled backups now run correctly. * Fixed: Backup - Scheduled backup cleanup not identifying scheduled backups correctly. * Fixed: SEO/GEO - HTML entities displaying literally in the SERP preview. * Fixed: SEO/GEO - Error 500 when loading the content list on sites using page builders. * Fixed: Redirections - Infinite loop when importing from the Redirection plugin. * Improved: SEO/GEO - SERP preview now displays the real site favicon, publication date and featured image thumbnail. * Improved: Backup - Redesigned scheduled backups layout with side-by-side cards. * Improved: SEO/GEO - Renamed module from "SEO/GSO" to "SEO/GEO". = 1.5.5 = * Added: Redirections - Bulk delete, duplicate URL detection and add-redirection notices. * Fixed: Redirections - Multiple fixes covering add / edit / refresh buttons, CSV import, stats update and modal close. * Improved: Redirections - Code cleanup and consistent error messages. = 1.5.4 = * Fixed: SEO/GEO - Sitemap 404 for custom post types. * Improved: SEO/GEO - SERP preview now uses the default title template. = 1.5.3 = * Added: SEO/GEO - New "Titles" settings tab with collapsible accordion panels for post types, taxonomies and special pages. * Added: SEO/GEO - Title templates with configurable separator and dynamic variables for all content types. * Added: SEO/GEO - Clickable variable buttons for easy template composition. * Added: SEO/GEO - Live title preview under each template field with sample data. = 1.5.2 = * Fixed: Core - Filled all missing translations across the 11 supported languages. = 1.5.1 = * Fixed: User Role Editor - Missing translations and French accents. * Fixed: User Role Editor - Icon alignment in action buttons. * Fixed: Classic Editor - Missing translation for the status notice. * Improved: User Role Editor - User capabilities modal now uses friendly labels, a search bar and shows role-inherited capabilities as checked but greyed out. = 1.5.0 = * Added: User Role Editor - New module to manage user roles and capabilities (create, clone, delete roles, per-user capabilities, import/export JSON, reset to defaults). = 1.4.7 = * Improved: SEO/GEO - SERP preview redesigned to match real Google results (correct layout, fonts, truncation). * Removed: SEO/GEO - Homepage meta and title separator settings. = 1.4.6 = * Fixed: Post Types Order - Custom post order now applies correctly on the frontend with Elementor and other page builders. * Fixed: Backup - Permalinks no longer get corrupted in the database export. * Fixed: Backup - Data corruption during restore when source and target table prefixes differ. * Fixed: Backup - Lost admin permissions after restore with a different table prefix. * Fixed: Backup - HTTP / HTTPS protocol difference between source and target sites is now handled correctly during restore. * Fixed: Backup - Page-builder data is now correctly preserved during restore. * Fixed: Backup - Restore now replaces directory contents instead of merging, preventing leftover files from previous installations. = 1.4.5 = * Fixed: Backup - Download button now works correctly on all server configurations, including PHP 8 and above. * Fixed: Backup - Multi-archive backups now download all files instead of only the first one. = 1.4.4 = * Added: Backup - Download button to save backup archives directly to your computer. = 1.4.3 = * Fixed: Post Types Order - Custom post type order now applies to page builder queries on the frontend (Elementor, Beaver Builder, Divi, etc.). = 1.4.2 = * Fixed: Post Types Order - Custom taxonomy terms now display correctly in the native admin list when sorting is enabled. = 1.4.1 = * Fixed: Post Types Order - Custom taxonomy terms no longer disappear from the native admin list when sorting is enabled. * Fixed: Backup - Pre-update backups for plugins and themes now appear as a single grouped row instead of two separate entries. = 1.4.0 = * Added: Post Types Order - New module to reorder any post type or taxonomy with drag and drop. * Added: Backup - Bulk delete with checkboxes and select all / deselect all. * Added: Backup - Missing pre-restore notice translation in the 11 supported languages. * Added: Classic Editor - Complete translations in the 11 supported languages. * Added: HTTPS Redirect - Complete translations in the 11 supported languages. * Fixed: Backup - Database was not included in automatic pre-update backups for plugins and themes. * Fixed: Backup - Backup list missing per-row checkboxes for bulk selection. * Fixed: DB Optimizer - Missing translation for the "Go to Backup Module" button. * Fixed: SEO/GEO - Edit modal closing when selecting text in the title or description fields. * Fixed: SEO/GEO - Removed unnecessary "Save Settings" button from the Overview and Import tabs. * Fixed: SEO/GEO - Added unsaved changes warning when closing the edit modal without saving. * Fixed: Core - Removed duplicate sort icons on sortable table columns. * Improved: Core - CSS deduplication between admin.css and modules.css for lighter page loads. = 1.3.2 = * Fixed: SEO/GEO - Critical compatibility fix for the Avada theme: editing a page no longer loads the wrong content. * Fixed: SEO/GEO - Content overview list now correctly filters by post type, even on sites where third-party themes alter WordPress queries. = 1.3.1 = * Added: Core - Admin bar menu with quick access to Dashboard and all active modules. * Fixed: Content Duplicator - Unicode characters (accents, special characters) are now preserved correctly when duplicating page builder content. * Fixed: Content Duplicator - Title suffix now displays correctly with proper spacing (" - Copie" instead of "- copie"). * Fixed: SEO/GEO - XML sitemaps now work correctly on WordPress installations in subdirectories. * Fixed: SEO/GEO - Sitemap rewrite rules timing issue resolved for better compatibility. * Improved: Content Duplicator - Page-builder content is now copied directly at the database level so all special characters are preserved exactly. * Improved: Content Duplicator - All post types and taxonomies (including custom ones) are now enabled by default. * Improved: Backup - After backup completion, automatically switches to the Backups tab with the updated list and a success message. * Improved: Backup - Upload tab now supports multiple files with queue management before uploading. = 1.3 = * Added: Core - 9 new languages: Spanish, Portuguese, Italian, Japanese, Russian, Turkish, Dutch, Brazilian Portuguese and Indonesian. * Added: Backup - Automatic backup before WordPress core, plugin or theme updates. * Added: Core - Feedback invitation on the plugin dashboard to encourage user suggestions. * Added: Content Duplicator - Full support for page builders (Elementor, Beaver Builder, Divi, Brizy, Oxygen). * Fixed: Content Duplicator - Page builder content now duplicates correctly with regenerated CSS. * Fixed: SMTP - Error during configuration import. * Fixed: SMTP - Email log now refreshes automatically after sending a test email. * Fixed: HTTPS Redirect - Added missing translations for French and other languages. * Fixed: Backup - Default backup options are now correctly applied to the backup creation interface. * Fixed: Backup - Archive names now show the actual time instead of random characters. * Fixed: SEO/GEO - Noindex warning link now correctly opens the Indexing tab. * Fixed: SEO/GEO - Auto-generated meta descriptions now appear in grey italic to distinguish them from manual entries. * Fixed: SEO/GEO - Content overview now refreshes automatically after importing SEO data. * Fixed: Fatal Error Recovery - Admin bar option is now disabled by default. * Fixed: Fatal Error Recovery - Email notifications are now sent immediately during PHP shutdown, even when the site crashes. * Fixed: Core - Resolved various code-quality warnings flagged by the WordPress Plugin Check. * Improved: Content Duplicator - Default suffix changed from " (Copy)" to " - copy" for cleaner titles. * Improved: Backup - Progress label now reads "Backing up" instead of "Creating". = 1.2.0 = * Added: Backup - Upload external backup files with automatic domain change detection. * Added: Backup - Scheduled automatic backups with configurable frequency (daily, weekly, monthly) and retention settings. * Added: Backup - Step-by-step progress bar during backup creation. * Added: SEO/GEO - Import data from Yoast SEO, Rank Math and All in One SEO. * Added: Redirections - Import redirections from Redirection plugin and Safe Redirect Manager. * Added: SMTP - Import configuration from WP Mail SMTP, Post SMTP and Easy WP SMTP. = 1.1.2 = * Added: Backup - Automatic pre-restore backup before any restore operation. * Added: Backup - Undo restore feature to revert to the previous state if a restore goes wrong. * Added: Backup - Separate archives per component (database, plugins, themes, uploads) for smaller file sizes and better flexibility. * Added: Backup - Pre-restore backups now appear in the main backup list. * Added: SEO/GEO - Focus keywords now display as visual tags / badges in the metabox and the edit modal. * Added: SEO/GEO - Keywords are now visible in the Content Overview listing. * Fixed: DB Optimizer - Removed duplicate backup feature; the page now links to the Backup module. * Fixed: Core - Resolved double event binding issues causing duplicate actions across multiple modules. * Fixed: SMTP - Test relay now correctly uses the configured From Email. * Fixed: SMTP - Updated Brevo tutorial with domain authentication steps. * Improved: SEO/GEO - Archive indexing settings now use positive logic (check to index instead of check to noindex). * Improved: SEO/GEO - Renamed module from "SEO" to "SEO/GSO". * Improved: SMTP - Merged tabs into a single Configuration tab with a dropdown provider selector. * Improved: SMTP - Enhanced relay visibility with a primary badge and clearer action buttons. * Improved: SMTP - Added "Compare SMTP providers" link. * Improved: Core - Admin sidebar modules now sorted alphabetically by translated name. * Improved: Redirections - Smarter slug change detection (ignores trash and plain permalinks). * Improved: Backup - Backup selection cards with a more compact design. = 1.1.1 = * Added: Core - Redirect to the plugin dashboard after activation. * Added: Core - "Settings" link in the plugins list page. * Added: SMTP - Email log auto-refresh after a successful test email. * Added: Fatal Error Recovery - Recovery email notification option. * Fixed: SEO/GEO - Missing translation for placeholder text. * Fixed: Favicon - "Alfred Proteus" references in HTML comments. * Fixed: Image Sizes - Cleanup button now scrolls to the cleanup section. * Fixed: Mute Core Emails - Design consistency fixes (missing card styles). = 1.1.0 = * Added: Core - 13 new modules: Backup, Broken Links Checker, Classic Editor, Database Optimizer, Domain Changer, Favicon Generator, Fatal Error Recovery, HTTPS Redirect, Image Sizes, Mute Core Emails, Redirections 301 and SEO/GSO. * Added: Core - Dashboard modules organised by categories with collapsible accordion sections. * Added: Core - "Delete data on uninstall" option in Advanced Settings. * Added: SMTP - Complete translations for all 13 provider tutorials. * Improved: Fatal Error Recovery - Plugin deactivation now uses the database instead of renaming folders, for safer recovery. * Improved: Fatal Error Recovery - Added support for single-file plugins (e.g. Hello Dolly). * Improved: HTTPS Redirect - Module is now disabled by default with a safety warning. * Improved: Core - Better translation handling for WordPress 6.7+ compatibility. * Improved: Core - Aligned with WordPress Plugin Check guidelines. * Fixed: Core - Various translation issues, with French and German improvements. = 1.0.0 = * Added: Core - Initial release with 3 modules: Content Duplicator, Maintenance Mode and SMTP Mailer.