=== Blaminhor Essentials – All-in-One: SEO, Cache, SMTP & More ===
Contributors: blaminhor
Tags: seo, cache, smtp, backup, redirection
Requires at least: 6.2
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.9.10
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

All-in-one: SEO, cache, SMTP, backup, redirections, broken links, duplicator, and more. 20 modules in one lightweight plugin. Free, no upsells.

== Description ==

**One plugin to replace twenty. Free forever.**

I was tired of my WordPress installs looking like a graveyard of single-purpose plugins — one for SEO, one for cache, one for SMTP, one for redirects, one for backups. Each one with its own dashboard, its own upsell banners, its own freemium dance. So I built Blaminhor Essentials.

**Why this plugin exists:**

*   **Every WordPress essential under one roof.** SEO, cache, SMTP, backup, redirections, broken links, duplicator, database optimizer, domain changer, fatal error recovery, favicon, HTTPS redirect, hide login, image sizes, maintenance mode, mute core emails, post types order, user role editor, classic editor, disable comments. Switch on what you use today; the rest stays out of your way until the day you need it.
*   **No tax for what you don't use.** Each module is independent: an inactive one loads no PHP, registers no hooks, enqueues no assets, runs no queries. You're only paying — in memory and milliseconds — for the features you actually turned on.
*   **Replaces what you already have.** SEO, cache, SMTP, backup, redirections, duplicator, user role editor, and a dozen more — the kind of dedicated plugins you've stacked one by one over the years, now in a single coherent toolkit. Built-in importers for Yoast, Rank Math, All in One SEO, WP Mail SMTP, Post SMTP, Easy WP SMTP, Redirection, and Safe Redirect Manager — your existing data comes with you.
*   **Free.** All features above are free. No tracking, no telemetry.
*   **Translated in 12 languages.** English, French, German, Spanish, Italian, Portuguese (PT & BR), Japanese, Russian, Turkish, Dutch, Indonesian.
*   **You can email me anytime.** `hi+wp@blaminhor.com`

**Available Features:**

= Cache & Performance =
Full performance stack: page cache, asset optimization, lazy load, audit, and Web Vitals dashboard.

*   **Page Cache**: Disk-based static cache with smart invalidation on content updates. WooCommerce cart, checkout, and my-account pages auto-excluded.
*   **Asset Optimization**: Minify HTML, CSS, and JS. Combine and defer scripts safely.
*   **Critical CSS**: Above-the-fold CSS extracted automatically per template (Page, Article, Archive, Home), works behind a CDN.
*   **Lazy Load**: Images and iframes loaded on scroll, with per-element exclusion rules.
*   **Preload**: Crawl every sitemap URL on demand or on schedule, with a live progress bar and Stop button.
*   **PageSpeed Audit**: Run a Google PageSpeed Insights audit directly from the dashboard, with actionable recommendations that link straight to the right setting.
*   **Conflict Detection**: Auto-pauses cache features when WP Rocket, W3 Total Cache, WP Super Cache, LiteSpeed Cache, or any other cache plugin is detected.
*   **Logs**: Every cache event recorded in the cross-module Logs page with auto-redaction of cookies, nonces, and tokens.

= SEO/GEO =
Complete SEO toolkit: meta tags, indexing control, social sharing, and XML sitemaps.

*   **Indexing Control**: Choose which content types and archives search engines should index.
*   **Site-wide Noindex**: Disable indexing for the entire site with admin reminder notice.
*   **Meta Tags**: Manage SEO titles, descriptions, and focus keywords for every post and page.
*   **Social Sharing**: Open Graph and Twitter Card meta tags for rich social previews.
*   **SERP Preview**: See how your pages will appear in search results on mobile, tablet, and desktop.
*   **Content Overview**: Manage SEO meta for all content from a single table with inline editing.
*   **AI Crawlers**: Block AI training on your content with noai/noimageai meta tags.
*   **XML Sitemaps**: Auto-generated sitemaps with optional Google Images support.
*   **Import**: Migrate SEO data from Yoast SEO, Rank Math, or All in One SEO.

= Backup & Restore =
Complete backup and restore solution with scheduling and external file support.

*   **Separate Archives**: Each component (database, plugins, themes, uploads) is saved as a separate archive for flexibility.
*   **Scheduled Backups**: Set up automatic backups daily, weekly, or monthly with retention settings.
*   **Pre-Update Backups**: Automatically backup before WordPress core, plugin, or theme updates.
*   **Progress Tracking**: Step-by-step progress bar during backup creation.
*   **Upload External Backups**: Import backup files from other sites with automatic domain change detection.
*   **Pre-Restore Safety**: Automatic backup created before any restore operation, with one-click undo.
*   **Secure Storage**: Backups protected from direct access with .htaccess rules.

= SMTP Mailer =
Reliable email delivery with multi-relay fallback.

*   **12+ Providers**: Preset configs for Brevo, SendGrid, Mailgun, AWS SES, Postmark, SparkPost, Mailjet, SMTP2GO, Elastic Email, Gmail, Outlook, Zoho, and custom SMTP.
*   **Relay Fallback**: Define multiple relays. If the primary fails, it automatically tries the next one.
*   **Email Log**: Keep track of every email sent (status, subject, relay used) with auto-cleanup.
*   **Developer Friendly**: Force 'From Email' and 'From Name', disable SSL verification for local dev.
*   **Testing**: Built-in tools to test individual relays or the full sending stack.
*   **Import**: Migrate settings from WP Mail SMTP, Post SMTP, or Easy WP SMTP.

= Redirections 301 =
Manage 301 redirections with simple rules or regex patterns.

*   **Simple Redirects**: Create basic URL redirects with source and target paths.
*   **Regex Support**: Use regular expressions for advanced URL matching.
*   **Slug Change Detection**: Get notified when a post or taxonomy slug changes to add a redirect.
*   **Import Options**: Import from CSV or from other plugins (Redirection, Safe Redirect Manager).
*   **Hit Counter**: Track how many times each redirection has been used.
*   **Toggle Active**: Enable or disable individual redirections without deleting them.

= Broken Links Checker =
Keep your site healthy by finding dead links.

*   **Deep Scan**: Scans posts, pages, and custom post types for broken URLs.
*   **Internal & External**: Checks your own internal links and external references.
*   **Real-Time Results**: View scan progress and broken links as they are found.
*   **Smart Management**: Recheck individual links, edit the source post, or dismiss false positives.
*   **Batched Scanning**: One post at a time to prevent server timeouts.

= Content Duplicator =
Duplicate posts, pages, and custom post types with precision.

*   **Complete Copy**: Duplicates content, excerpt, parent, template, and menu order.
*   **Deep Cloning**: Copies all custom fields (post meta), taxonomies (categories/tags), and child posts.
*   **Smart Options**: Choose new status (draft, publish, private), copy author, date, and comments.
*   **Admin Integration**: 'Duplicate' links in list view, edit screen, and admin bar. Bulk duplication supported.
*   **Taxonomy Support**: Duplicate categories and tags with all their metadata.

= Database Optimizer =
Optimize and clean your WordPress database for better performance.

*   **Overview Dashboard**: See database size, overhead, and items to clean at a glance.
*   **Smart Cleanup**: Remove post revisions, auto-drafts, trashed posts, spam comments, expired transients.
*   **Orphan Data**: Clean orphaned post meta, comment meta, term meta, and relationships.
*   **Table Optimization**: Reclaim disk space by optimizing database tables.
*   **Scheduled Cleanup**: Set up automatic cleanup on daily, twice daily, or weekly schedule.
*   **Revision Control**: Keep a configurable number of revisions per post.
*   **Backup Reminder**: Prompts to create a backup before cleanup (links to Backup module if active).

= Domain Changer =
Change your site domain and update all database references in one click.

*   **One-Click Migration**: Update all database references to the new domain automatically.
*   **Smart Replacement**: Handles serialized data in options, post meta, and other tables.
*   **Preview Changes**: See how many rows will be affected before making changes.
*   **Backup Integration**: Prompts to create a database backup before migration.
*   **Change History**: Track previous domain changes with timestamps.

= Fatal Error Recovery =
Recover from fatal errors without FTP access.

*   **Error Detection**: Automatically detects PHP fatal errors that crash your site.
*   **Recovery Interface**: Access a standalone page to manage plugins when your site is down.
*   **Smart Detection**: Identifies which plugin caused the error from the stack trace.
*   **Database Deactivation**: Deactivates plugins via database (files remain intact) for safe recovery.
*   **Secure Access**: Secret recovery URL required to prevent unauthorized access.
*   **Email Notification**: Optionally receive an email with the recovery link when an error is detected.

= Hide Login Page =
Protect your login page from bots and brute force attacks.

*   **Custom Login URL**: Replace wp-login.php with a custom URL of your choice.
*   **Block Direct Access**: Blocks access to wp-login.php and wp-admin for non-logged-in users.
*   **Custom Redirect**: Choose where unauthorized visitors are redirected (e.g., a 404 page).
*   **Safety First**: Module disabled by default. Compatible with Fatal Error Recovery for lockout prevention.

= HTTPS Redirect =
Force secure connections for your entire site.

*   **Automatic Redirect**: Redirects all HTTP requests to HTTPS with a 301 permanent redirect.
*   **Admin & Login**: Force HTTPS on wp-admin and wp-login.php for secure authentication.
*   **Mixed Content Fix**: Optionally fix HTTP URLs in page output to prevent browser warnings.
*   **HSTS Support**: Enable HTTP Strict Transport Security header with configurable max-age.
*   **Safety First**: Module is disabled by default with clear warnings about potential lockout.

= Image Sizes =
Take control of your media library and disk space.

*   **Disable Sizes**: Prevent WordPress, themes, and plugins from generating unused thumbnail sizes.
*   **Custom Sizes**: Register new image sizes with exact crop settings directly from the UI.
*   **Regenerate Thumbnails**: Re-create thumbnails for existing images after changing settings.
*   **Cleanup**: Delete old files for disabled sizes to free up disk space.
*   **Big Image Control**: Disable the default "scaled" big image generation (2560px).

= Favicon Generator =
One image, perfect branding everywhere.

*   **Universal Support**: Generates PNG icons (16, 32, 48), Apple Touch Icon (180), Android Chrome (192, 512), and Windows Tiles.
*   **Manifest & Config**: Automatically serves `site.webmanifest` and `browserconfig.xml`.
*   **Customization**: Set theme color and background color for mobile and tile interfaces.
*   **Simple**: Upload one high-res square image (512x512+), and we handle the rest.

= Maintenance Mode =
Simple, effective Coming Soon and Maintenance pages.

*   **Two Modes**: Choose between "Maintenance" (503 Service Unavailable) or "Coming Soon" (200 OK).
*   **Access Control**: Whitelist user roles (e.g., Administrators) or specific IP addresses.
*   **Customization**: Set headline, message, background color, and text color.
*   **Login Link**: Optional link to the admin login page for restricted users.

= User Role Editor =
Full control over user roles and capabilities.

*   **Role Management**: Create, clone, rename, and delete custom roles.
*   **Capability Editor**: Visual interface to assign or remove capabilities per role.
*   **Per-User Capabilities**: Grant or revoke capabilities for individual users beyond their role.
*   **Import/Export**: Backup and restore roles configuration as JSON.
*   **Reset to Defaults**: Restore WordPress default roles with one click.
*   **Human-Readable Labels**: Display friendly capability names instead of technical slugs.

= Post Types Order =
Reorder any post type or taxonomy with drag and drop.

*   **Drag & Drop**: Intuitive sortable list to reorder posts, pages, and custom post types.
*   **Taxonomy Support**: Reorder categories, tags, and custom taxonomies.
*   **Auto Sort**: Automatically apply custom order on the frontend.
*   **Capability Control**: Choose which user role can reorder items (Administrator, Editor, or Author).
*   **No Extra Tables**: Uses native WordPress `menu_order` for posts and `term_meta` for taxonomies.

= Classic Editor & Widgets =
Restore the classic editor and/or classic widgets independently.

*   **Classic Editor**: Disables the Block Editor (Gutenberg) and restores the traditional TinyMCE editor.
*   **Classic Widgets**: Disables the block-based Widgets editor and restores the classic Widgets screen.
*   **Independent Toggles**: Enable or disable each feature independently.
*   **Performance Cleanup**: Removes block library CSS from frontend and optionally from admin.

= Disable Comments =
Kill comment spam by removing the comment system entirely.

*   **Site-wide Disable**: Disable comments on posts, pages, and custom post types in one click.
*   **Hide from Admin**: Remove the Comments menu, the Discussion settings, and comment-related dashboard widgets.
*   **Clean UI**: No comment forms, no comment counts, no "Recent Comments" widget — as if comments never existed.
*   **Reversible**: Toggle off the module to instantly restore native WordPress comments without data loss.

= Mute Core Emails =
Silence automatic emails from WordPress.

*   **Auto-Updates**: Mute email notifications after automatic core, plugin, or theme updates.
*   **User Emails**: Control emails for new user registration, password changes, and email changes.
*   **Comment Emails**: Mute comment notification and moderation emails.
*   **System Emails**: Optionally mute recovery mode emails (use with caution).
*   **Granular Control**: Enable or disable each email type individually.

== Installation ==

1. Upload the `blaminhor-essentials` folder to the `/wp-content/plugins/` directory.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. Go to "Blaminhor Essentials" in the admin menu.
4. Turn on the features you need.

== Frequently Asked Questions ==

= Will activating all features slow down my site? =
No. Each module only loads its code when activated. Disabled modules have zero impact on performance.

= Can I replace multiple plugins with this one? =
Yes, that's the main goal. Blaminhor Essentials can replace Redirection, Yoast/Rank Math, WP Mail SMTP, UpdraftPlus, Duplicate Post, User Role Editor, and many others.

= How do I migrate my data from other plugins? =
Several modules include import features:
- **SMTP**: Import from WP Mail SMTP, Post SMTP, Easy WP SMTP
- **SEO**: Import from Yoast SEO, Rank Math, All in One SEO
- **Redirections**: Import from Redirection plugin, Safe Redirect Manager, or CSV

= Can I backup my entire site? =
Yes. The Backup module creates separate archives for database, plugins, themes, and uploads. You can schedule automatic backups (daily, weekly, monthly) and set retention limits.

= What happens if a backup restore goes wrong? =
The plugin automatically creates a safety backup before any restore. If something goes wrong, you can undo with one click.

= Does the SMTP module support multiple providers? =
Yes. You can configure multiple relays with automatic fallback. If the primary fails, it tries the next one in your list.

= Can I duplicate Elementor/Divi pages? =
Yes. The Content Duplicator fully supports all major page builders including Elementor, Divi, Beaver Builder, Brizy, and Oxygen.

= Will SEO data be lost if I switch from Yoast or Rank Math? =
No. Use the import feature in the SEO module to migrate your titles, descriptions, and keywords before switching.

= Can I control which user roles can access certain features? =
Yes. For example, the Post Types Order module lets you choose which roles can reorder content (Administrator, Editor, or Author).

= What if my site crashes after a plugin update? =
The Fatal Error Recovery module detects PHP fatal errors and provides a secret recovery URL to deactivate problematic plugins without FTP access.

= Does the plugin work with multisite? =
Most modules work on individual sites within a multisite network. Since version 1.7.1, backup files (Backup, Domain Changer, DB Optimizer) are stored in separate subdirectories per site, so backups are fully isolated. Full network-level administration is not yet supported.

= How can I get support? =
Email hi+wp@blaminhor.com or visit [wp.blaminhor.com](https://wp.blaminhor.com/). You can also use the feedback form on the plugin dashboard.

== Screenshots ==

1. Modular dashboard – Enable only the features you need with instant toggle activation.
2. SMTP Mailer – Configure multiple relays with automatic fallback and detailed logging.
3. SEO/GEO – Edit meta titles and descriptions with live mobile and desktop SERP preview.
4. Backup – Select components to backup (database, plugins, themes, uploads) with scheduling.
5. Database Optimizer – Overview of database size with one-click optimization actions.
6. Fatal Error Recovery – Detect PHP fatal errors and recover without FTP access.
7. Image Sizes – Manage all registered thumbnail sizes and disable unused ones.
8. User Role Editor – Edit capabilities per role with search, add/clone roles, and per-user overrides.

== Changelog ==

= 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 <img> 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.

Older entries (versions 1.0.0 to 1.8.2) are archived in `changelog.txt` shipped with the plugin.

== Upgrade Notice ==

= 1.9.10 =
Critical fix for Elementor Pro: dropdown menus now open correctly on hover. Logged-in admins see the front-end as-is so they can debug. New: configurable preload batch size, immediate preload after a purge, and JSON export/import of cache settings.

= 1.9.9 =
Major Cache & Performance update: layout breakage on Avada / Divi / Elementor with async CSS loading is fixed, the module gains a master on/off switch, an automatic render watchdog that auto-disables any optimisation that breaks the page, Cloudflare integration, self-hosted Google Fonts and theme-purge sync. Recommended for all sites.

= 1.9.8 =
Recommended update: fixes Critical CSS generation that could silently fail on production sites behind a CDN, adds a manual "Preload all pages" button and a new cross-module Logs page for diagnostics.

= 1.9.7 =
Recommended update for Cache & Performance users: Critical CSS no longer times out on heavy pages, and PageSpeed audits now work with referrer-restricted Google API keys.

= 1.9.6 =
Important update: WooCommerce cart, checkout and my-account pages are now reliably excluded from caching, plus 293 Cache & Performance strings localised in 11 languages.

= 1.9.5 =
Important update: prevents conflicts with other cache plugins (WP Rocket, W3 Total Cache, etc.) by automatically pausing our cache when one is active. Better defaults for Defer / Delay JS and Remove Unused CSS.

= 1.5.0 =
New User Role Editor module to manage roles and capabilities. Create, clone, delete roles, edit per-user capabilities, import/export JSON.

= 1.4.6 =
Backup restore fixes (prefix, permissions, permalinks, serialized data, HTTP/HTTPS). Post Types Order now works with Elementor.

= 1.4.5 =
Fixed Download button crash on PHP 8+ and multi-archive download support.

= 1.4.4 =
Backup module now includes a Download button to save backup archives directly to your computer.

= 1.4.3 =
Custom post type order now applies to page builder queries (Elementor, etc.).

= 1.4.2 =
Fixed taxonomy sorting using LEFT JOIN for reliable term display in admin.

= 1.4.1 =
Fixed custom taxonomy terms disappearing from admin when Post Types Order sorting is enabled. Pre-update backups now grouped correctly.

= 1.4.0 =
New Post Types Order module. Fixed pre-update backups not including database. Bulk delete backups. Added missing translations for backup notices. Various SEO and CSS fixes.

= 1.3.2 =
Critical fix for Avada theme users: editing pages no longer loads wrong content. Fixed SEO content list filtering with third-party themes.

= 1.3.1 =
Fixed Unicode character corruption when duplicating page builder content. Fixed XML sitemaps on subdirectory installations. Custom post types and taxonomies now enabled by default. Backup shows updated list after completion. Admin bar menu added for quick access.

= 1.3 =
9 new languages added. Full page builder support in Content Duplicator (Elementor, Beaver Builder, Divi, etc.). Fixed SMTP import and email log refresh. Added missing HTTPS translations. Various bug fixes and improvements.

= 1.2.0 =
New import features: Upload external backups with domain change detection, import SEO data from Yoast/Rank Math/AIOSEO, import redirections from Redirection/Safe Redirect Manager, import SMTP config. Scheduled automatic backups with retention. Backup progress bar.

= 1.1.2 =
Major backup improvements: separate archives per component, pre-restore backups visible in list. Fixed double-action bugs across modules. SEO renamed to SEO/GSO. SMTP redesign with provider comparison link.

= 1.1.1 =
UX improvements: Dashboard redirect on activation, settings link in plugins list, SMTP log auto-refresh, recovery email notifications, and design fixes.

= 1.1.0 =
Major update: 13 new modules, complete SMTP translations, improved Fatal Error Recovery, and new Advanced Settings.

= 1.0.0 =
Initial release.

== Privacy Policy ==

Blaminhor Essentials does not collect any personal data. The SMTP Mailer feature stores email metadata locally if logging is enabled, but this data stays on your server.

== Third Party Services ==

This plugin allows you to optionally configure connections to external SMTP services for email delivery. **No data is sent to any external service unless you explicitly configure an SMTP relay.**

When you configure the SMTP Mailer module, your emails will be sent through the service you choose. The following services have preset configurations available: Gmail, Microsoft Outlook/Office 365, Brevo (formerly Sendinblue), SendGrid, Mailgun, Amazon SES, Postmark, Elastic Email, SparkPost, Mailjet, SMTP2GO, Zoho Mail.

You can also configure any other SMTP server using the "Other" option. Please review the privacy policy of any third-party service you choose to use.


== Support ==

For support or feedback, email me at **hi+wp@blaminhor.com** or visit **[https://wp.blaminhor.com/](https://wp.blaminhor.com/)**.
