=== NBH Performance ===
Contributors: shofiqul
Tags: cache, performance, speed optimization, image optimization, woocommerce
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Improve WordPress performance with page caching, CSS and JavaScript tools, image optimization, and practical controls. Free and open source.

== Description ==

**A more manageable way to optimize your WordPress site.**

NBH Performance brings page caching, CSS and JavaScript optimization, image conversion, and useful performance tools into one WordPress dashboard. Start with a guided setup, switch on only what you need, and keep recovery options close at hand.

It is designed for site owners and developers who want straightforward controls without hiding important settings behind a paid upgrade.

= What you can do =

* **Cache public pages.** Reduce repeated page generation for eligible visitors, clear cached pages, and optionally preload your cache.
* **Manage CSS and JavaScript.** Minify files, optionally combine compatible assets, defer or delay selected scripts, and exclude files that should not be optimized.
* **Optimize image delivery.** Create WebP or AVIF versions when your server supports them while keeping original images intact.
* **Make media loading lighter.** Use lazy loading and optional click-to-load YouTube embeds.
* **Manage CDN connections.** Configure supported Cloudflare, Bunny.net, or KeyCDN connections, or a custom HTTPS cache-purge webhook.
* **Troubleshoot with confidence.** Review diagnostics, use Safe Mode, run Smart Optimize manually, and restore saved settings snapshots when needed.

= Start with control, not guesswork =

NBH Performance starts in **Safe Mode**, so you can review settings before enabling optimization. The guided setup helps identify common cache conflicts. Make changes gradually, then test your menus, forms, interactive pages, and checkout if you run an online store.

**Free and open source:** All functionality included in this plugin is free and does not require a license key or Nobash account. Optional third-party CDN or hosting services may have their own fees.

= Important compatibility notes =

* Page caching requires `WP_CACHE` enabled in `wp-config.php`, a writable cache directory, and a compatible `advanced-cache.php` drop-in. The plugin does not modify `wp-config.php` or overwrite another plugin's cache drop-in.
* Page caching is disabled on WordPress multisite installations.
* Image conversion depends on server-supported formats and the WordPress image editor. Original uploads are preserved.
* WooCommerce cart, checkout, and other sensitive or logged-in requests are excluded from public-page caching. Always test your own store.
* Settings snapshots are **not** full-site backups. The plugin does not include Redis/Memcached object caching or automated third-party speed tests.
* Results depend on your hosting, theme, plugins, and chosen settings; no performance score or compatibility outcome is guaranteed.

Learn more at [NBH Performance](https://nbhperformance.com/) and [Nobash](https://nobash.com/).

== Installation ==

1. Back up your website first. Use staging if available.
2. Go to **Plugins > Add New Plugin > Upload Plugin**, choose the NBH Performance ZIP, and activate it. Alternatively, upload the `nbh-performance` folder to `/wp-content/plugins/`.
3. Open **NBH Performance** in your WordPress dashboard and follow the guided setup.
4. Review diagnostics and available features while Safe Mode is on.
5. To use page caching, first check for other cache plugins and an existing `advanced-cache.php` file. Ask your hosting provider to enable `WP_CACHE` if needed; avoid duplicate definitions.
6. Turn off Safe Mode when ready, enable only the features you need, and check key pages after each change.

== Frequently Asked Questions ==

= Is NBH Performance free? =

Yes. Every feature included in this release is free and open source under GPLv2 or later. No license or account is required. Optional third-party CDN services may charge separately.

= What should I enable first? =

Complete guided setup, check diagnostics, and enable one optimization at a time. Page caching is a useful starting point if your hosting environment supports it. Test your website after each change.

= Why is page caching unavailable? =

Check that `WP_CACHE` is enabled, the cache directory is writable, and another plugin or your host is not managing an incompatible `advanced-cache.php` drop-in. Page caching is not supported on multisite in this release.

= What does Safe Mode do? =

Safe Mode pauses optimization behavior while you review settings or troubleshoot. Leave Safe Mode when you are ready to test enabled features.

= Can I use this plugin with WooCommerce? =

NBH Performance includes WooCommerce-aware public-cache bypasses. Still test product options, customer account pages, cart, checkout, and payment flows on your own store, especially when enabling JavaScript optimization.

= Will image optimization replace my original photos? =

No. The image-conversion feature retains your originals. WebP and AVIF output depend on your server's supported formats. Keep a separate backup of your media library.

= Can I use another caching or optimization plugin? =

Avoid running overlapping page-cache or script-optimization features. Review the diagnostics and disable conflicting features before enabling NBH Performance equivalents.

= Does the plugin send visitor data to Nobash? =

No usage telemetry is sent to Nobash by core caching and optimization. Optional administrator-configured CDN connections can contact their providers, and optional YouTube embeds load only as described under External services.

= How do I get support and updates? =

Use the WordPress.org support forum for this plugin. After publication, updates are delivered through the standard WordPress plugin updater.

== External services ==

Core caching, CSS/JavaScript optimization, and image conversion run locally. NBH Performance does not require a Nobash account, license server, remote updater, or telemetry service. External requests below occur only when the relevant optional feature is configured or activated.

= Cloudflare =

If configured by an administrator, the plugin can check the connection, discover zones, and purge CDN caches manually or through enabled automatic purges. Requests may contain an API token, zone ID, hostnames, or URLs to purge.

Service: [Cloudflare Terms](https://www.cloudflare.com/terms/) and [Privacy Policy](https://www.cloudflare.com/privacypolicy/).

= Bunny.net =

If configured, connection checks and manual or enabled automatic cache purges may send the API key, pull-zone ID, or purge URLs to Bunny.net.

Service: [Bunny.net Terms](https://bunny.net/tos/) and [Privacy Policy](https://bunny.net/privacy/).

= KeyCDN =

If configured, connection checks and manual or enabled automatic cache purges may send an API key, zone ID, or purge URLs to KeyCDN.

Service: [KeyCDN Terms](https://www.keycdn.com/terms) and [Privacy Policy](https://www.keycdn.com/privacy).

= Custom CDN or purge webhook =

An administrator may configure a custom CDN hostname or HTTPS purge endpoint. The configured provider receives cache-purge requests on manual or enabled automatic purge events. Check that provider's own terms and privacy policy before enabling it.

= YouTube =

The optional YouTube facade can replace an existing embed with a local click-to-load button. The plugin does not request YouTube content from your server. A visitor's browser contacts YouTube when the visitor clicks to load the embed, or when consent-based autoload is enabled and applicable consent exists.

Service: [YouTube Terms](https://www.youtube.com/t/terms) and [Google Privacy Policy](https://policies.google.com/privacy).

= Other third-party script names =

The script-delay and consent controls recognize hostnames associated with services such as Facebook, TikTok, LinkedIn, Stripe, PayPal, Intercom, Tawk.to, Zendesk, and Drift **only to manage scripts already added by your site**. Recognizing these names does not cause NBH Performance to contact those services. Cache preloading, health checks, and frontend validation may make same-site requests.

== Source and Licenses ==

The plugin includes human-readable PHP, JavaScript, and CSS. No JavaScript build step is required. Third-party components and license notices are retained under `vendor/`; see `vendor/THIRD-PARTY-NOTICES.md`. NBH Performance's original code is GPLv2 or later; upstream dependency terms remain intact.

== Changelog ==

= 1.0.0 =

* Initial free and open-source release.
* Public-page caching with purge and optional preload controls.
* CSS and JavaScript optimization with exclusions.
* WebP/AVIF image conversion and media-delivery options.
* Optional CDN connections and purge controls.
* Guided setup, Safe Mode, diagnostics, Smart Optimize, and settings snapshots.

== Upgrade Notice ==

= 1.0.0 =

Initial release. Back up your site and test optimization changes on staging before enabling them in production.
