# blocks/trunk/src/Settings/Tabs/PerformanceTab.php

Blocks – Reusable Content, Shortcodes &amp; Site Variables, version trunk. 269 lines.

- Page: https://pluginprobe.com/plugins/blocks/trunk/code/src/Settings/Tabs/PerformanceTab.php
- Raw: https://pluginprobe.com/plugins/blocks/trunk/raw/src/Settings/Tabs/PerformanceTab.php
- Modified: 2026-08-23T04:31:32+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/blocks/trunk/code/src/Settings/Tabs/PerformanceTab.php#L10-L20`.

```php
<?php

declare(strict_types=1);

namespace RenzoJohnson\Blocks\Settings\Tabs;

use RenzoJohnson\Blocks\Settings\FieldDefinition;
use RenzoJohnson\Blocks\Settings\FieldType;
use RenzoJohnson\Blocks\Settings\Requirement;
use RenzoJohnson\Blocks\Settings\SanitizerType;
use RenzoJohnson\Blocks\Settings\SectionDefinition;
use RenzoJohnson\Blocks\Settings\SettingDefinition;
use RenzoJohnson\Blocks\Settings\TabDefinition;
use RenzoJohnson\Blocks\Settings\TabProvider;

\defined( 'ABSPATH' ) || exit;

final class PerformanceTab implements TabProvider {

	public function definition(): TabDefinition {
		return new TabDefinition(
			'performance',
			\__( 'Performance', 'blocks' ),
			array(
				new SectionDefinition(
					'blocks_performance_section',
					\__( 'Performance', 'blocks' ),
					array(
						\__( 'Remove unnecessary CSS, JS, and editor bloat from the frontend.', 'blocks' ),
					),
					array(
						new FieldDefinition(
							'blocks_perf_disable_gutenberg',
							\__( 'Disable Block Editor', 'blocks' ),
							\__( 'Force the classic editor for all post types.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_disable_gutenberg', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_remove_global_styles',
							\__( 'Remove Global Styles', 'blocks' ),
							\__( 'Remove Gutenberg global styles, SVG filters, and layout support.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_remove_global_styles', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_remove_jquery_migrate',
							\__( 'Remove jQuery Migrate', 'blocks' ),
							\__( 'Deregister jQuery Migrate on the frontend.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_remove_jquery_migrate', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_dequeue_block_css',
							\__( 'Dequeue Block Library CSS', 'blocks' ),
							\__( 'Remove wp-block-library styles on the homepage.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_dequeue_block_css', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_dequeue_woo_css',
							\__( 'Dequeue WooCommerce CSS', 'blocks' ),
							\__( 'Remove WooCommerce layout, general, and smallscreen CSS on homepage.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_dequeue_woo_css', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_dequeue_woo_block_css',
							\__( 'Dequeue WooCommerce Block CSS', 'blocks' ),
							\__( 'Remove WooCommerce block styles and vendors CSS on homepage.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_dequeue_woo_block_css', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_dequeue_cart_fragments',
							\__( 'Dequeue Cart Fragments', 'blocks' ),
							\__( 'Disable WooCommerce AJAX cart fragment loading on homepage.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_dequeue_cart_fragments', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_dequeue_stripe_css',
							\__( 'Dequeue Stripe Checkout CSS', 'blocks' ),
							\__( 'Remove Stripe payment gateway CSS on homepage.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_dequeue_stripe_css', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_disable_emoji',
							\__( 'Disable WP Emoji', 'blocks' ),
							\__( 'Remove WordPress emoji scripts and styles sitewide.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_disable_emoji', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_dequeue_classic_theme_styles',
							\__( 'Dequeue Classic Theme Styles', 'blocks' ),
							\__( 'Remove block editor classic theme inline styles on homepage.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_dequeue_classic_theme_styles', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_dequeue_img_auto_sizes',
							\__( 'Dequeue Image Auto Sizes CSS', 'blocks' ),
							\__( 'Remove wp-img-auto-sizes-contain inline CSS sitewide.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_dequeue_img_auto_sizes', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_dequeue_woo_inline_css',
							\__( 'Dequeue WooCommerce Inline CSS', 'blocks' ),
							\__( 'Remove WooCommerce inline CSS on the homepage.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_dequeue_woo_inline_css', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_dequeue_woo_noscript',
							\__( 'Dequeue WooCommerce Gallery/NoJS', 'blocks' ),
							\__( 'Remove WooCommerce gallery noscript styles and no-js class swap script on the homepage.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_dequeue_woo_noscript', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_dequeue_apfs',
							\__( 'Dequeue Subscribe & Save (APFS) Assets', 'blocks' ),
							\__( 'Remove WooCommerce Subscriptions wcsatt-frontend / wcsatt-css from all pages except product/cart/checkout. Safe when no product uses "Subscribe & Save".', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_dequeue_apfs', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_disable_speculation_rules',
							\__( 'Disable Speculation Rules', 'blocks' ),
							\__( 'Disable WordPress speculation rules (prefetch/prerender) sitewide.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_disable_speculation_rules', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_delay_analytics',
							\__( 'Delay Analytics Script', 'blocks' ),
							\__( 'Load Google Analytics (gtag.js) after first user interaction or shortly after page load. Events fired earlier are queued and replayed.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_delay_analytics', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
					),
					false,
				),
				new SectionDefinition(
					'blocks_javascript_minification_section',
					\__( 'JavaScript Minification', 'blocks' ),
					array(
						\__( 'Cache minified copies of selected local registered JavaScript while preserving WordPress handle metadata. Remote scripts are never fetched.', 'blocks' ),
					),
					array(
						new FieldDefinition(
							'blocks_perf_minify_js',
							\__( 'Minify JavaScript', 'blocks' ),
							\__( 'Minify the built-in Blocks JavaScript handles on the frontend.', 'blocks' ),
							FieldType::Checkbox,
							array(
								new SettingDefinition( 'blocks_perf_minify_js', 'boolean', false, SanitizerType::Boolean, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
						new FieldDefinition(
							'blocks_perf_minify_js_handles',
							\__( 'Additional Script Handles', 'blocks' ),
							\__( 'One local WordPress handle per line. Blocks handles are automatic. Chimpmatic can use spartan. URLs and paths are rejected.', 'blocks' ),
							FieldType::Textarea,
							array(
								new SettingDefinition( 'blocks_perf_minify_js_handles', 'string', '', SanitizerType::ScriptHandleList, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
					),
					false,
				),
				new SectionDefinition(
					'blocks_resource_hints_section',
					\__( 'Resource Hints', 'blocks' ),
					array(
						\__( 'Tell the browser to start the DNS + TCP + TLS handshake with third-party origins before they are needed. Useful for analytics, payment SDKs, or CDN-hosted CSS that the page loads on every request.', 'blocks' ),
					),
					array(
						new FieldDefinition(
							'blocks_perf_preconnect_origins',
							\__( 'Preconnect Origins', 'blocks' ),
							\__( 'One origin per line. Use https://host (no path). Empty = no hints. Browsers will silently ignore origins not allowed by your CSP connect-src.', 'blocks' ),
							FieldType::Textarea,
							array(
								new SettingDefinition( 'blocks_perf_preconnect_origins', 'string', '', SanitizerType::Textarea, sensitive: false, exportable: true, public_token: null ),
							),
							array(),
							Requirement::Always,
						),
					),
					false,
				),
			),
			Requirement::Always,
		);
	}
}

```
