=== Performance Tweaks ===
Contributors: rhoekman
Tags: performance, speed, pagespeed, optimize
Requires at least: 6.0
Tested up to: 6.8.2
Requires PHP: 8.0
Stable tag: 0.7.3
License: GPLv2 (or later)

WordPress Performance Tweaks

== Description ==
Simple but effective performance tweaks for WordPress—now with a polished, tabbed settings UI.

Features are grouped like your workflow: Scripts & Assets, Network, Security, Performance & Admin, and Database.

= Scripts & Assets =

* Contact Form 7 Smart Loader — Only loads CF7 assets on pages with a form.
* CF7 reCAPTCHA Smart Loader — Dequeues reCAPTCHA when no CF7 form is present.
* Disable Advanced Custom Fields on Frontend — Stops ACF assets from loading on the frontend.
* Emoji Unloader — Removes Emoji CSS and JavaScript.
* Defer JavaScript — Adds defer attribute to eligible scripts.
* Async JavaScript — Adds async attribute to eligible scripts.
* Async/Defer Exclude Handles — A textarea to exclude script handles from async/defer.
* Remove Query Strings — Strips ?ver= from CSS/JS URLs to improve CDN caching.
* Block CSS Smart Loader (classic themes) — Dequeues block CSS on singular pages without blocks.
* Separate Core Block CSS (WP 5.8+) — Opt-in to load only the CSS for blocks used on the page.
* Disable Dashicons for Visitors — Removes dashicons for non-logged-in users.
* Disable jQuery Migrate (frontend) — Drops jquery-migrate from frontend dependencies.
* Boost Hero Image (fetchpriority) — Adds fetchpriority="high" to the first content image on singular pages.
* Lazy‑load iframes in Content — Ensures iframes in post content use loading="lazy".
* WooCommerce Smart Loader — Loads WC CSS/JS only on WooCommerce pages (shop, product, cart, checkout, account).

= Network =

* DNS Single Post Prefetch — Prefetch homepage on singular pages to speed return navigation (HTTP/2).
* Resource Hints Hosts — Add domains for dns-prefetch and preconnect (one per line).
* Google Fonts Preconnect — Adds preconnect hints for fonts.googleapis.com and fonts.gstatic.com.

= Security =

* Disable XML-RPC — Blocks the XML-RPC endpoint unless you need it.
* Disable WP Embeds / oEmbed — Removes discovery links and wp-embed script.
* Head Cleanup — Removes RSD, WLW, generator, shortlink, and extra feed links.

= Performance & Admin =

* Disable WordPress Heartbeat (Frontend) — Keep editor autosave, reduce frontend pings.
* Heartbeat Interval — Set between 15–120 seconds.
* WP‑Cron Guidance — Advisory copy to move cron to a real system cron.

= Database =

* Limit Post Revisions — Define WP_POST_REVISIONS to 5.
* Autosave Interval (advisory) — Suggest a wp-config constant.
* Empty Trash Days (advisory) — Suggest a wp-config constant.

= UI/UX =

* Tabbed settings with keyboard navigation and ARIA roles.
* Card layout, helpful tooltips, and consistent spacing.
* Sticky save bar with “unsaved changes” hint.
* “Reset all settings” link (with nonce) to clear options without uninstalling.

== Installation ==

= Installation from within WordPress =

1. Visit **Plugins > Add New**.
2. Search for **Performance Tweaks**.
3. Install and activate the Performance Tweaks plugin.

= Manual installation =

1. Upload the entire `rh-performance` folder to the `/wp-content/plugins/` directory.
2. Visit **Plugins**.
3. Activate the Performance Tweaks plugin.

= After activation =

1. Visit the new **Settings > Performance Tweaks** menu.
2. Use the tabs to navigate categories and enable only what you need.
3. Optional: Click “Reset all settings” to clear options (no uninstall required).

== Changelog ==

= 0.7.3 =

Major update with new features and a refined UI.

**Features**

* WooCommerce Smart Loader (only load WC assets on Woo pages)
* Separate Core Block CSS (WP 5.8+)
* Block CSS Smart Loader for classic themes
* Disable Dashicons for visitors
* Disable jQuery Migrate on the frontend
* Resource Hints hosts + Google Fonts preconnect
* Heartbeat interval + frontend-only disable
* Hero image fetchpriority and iframe lazy‑loading
* CF7 reCAPTCHA smart loader
* Async/Defer exclude handles

**Security/Head**

* Disable WP Embeds / oEmbed discovery
* Head cleanup (RSD, WLW, generator, shortlink, extra feeds)

**UI/UX**

* Tabbed settings with accessible ARIA roles and keyboard nav
* Card layout and spacing improvements
* Sticky “unsaved changes” save bar
* “Reset all settings” helper (nonce-protected)

= 0.6.6 =

Tested with WordPress 6.7

= 0.6.5 =

Tested with latest WordPress and PHP 8.1

= 0.6.4 =

**Features**

Added an option to limit Post Revisions to a maximum of 5

= 0.6.3 =

**Bug Fixes**

* The 'defer' tag for JavaScript is now only inserted on the frontend.
