All-in-one WordPress optimization toolkit with 15+ modules for performance, security, SEO, and content management. Built with modern WordPress coding standards and a clean module-based dashboard. Optimized for performance with lazy-loading, static property caching, and intelligent transients.
Version: 1.4.4
License: GPL-2.0-or-later
Text Domain: functionalities
Pricing: Free
- Download: Get the latest production-ready ZIP file from GitHub Releases.
- Upload: In your WordPress admin, go to Plugins > Add New > Upload Plugin and select the downloaded file.
- Activate: Activate the plugin through the Plugins menu in WordPress.
- Setup: Navigate to the new Functionalities menu item to enable and configure your modules.
Alternatively, you can manually copy the functionalities/ folder into wp-content/plugins/.
All modules are accessed through a unified dashboard at wp-admin/admin.php?page=functionalities. Click any module card to configure its settings.
Learn more on Functionalities Site
This plugin is built with a "Performance First" philosophy. Unlike many all-in-one plugins that slow down your site, Functionalities is designed to be as lightweight as possible:
- Modular & Lazy Loaded: Using a custom autoloader, the plugin only loads the code required for active modules. If a feature is disabled, its code is never even included in memory.
- Minimized Database Load: All module settings are cached in static properties. This ensures that
get_option()is called at most once per module per request, regardless of how many times a feature is accessed. - Zero Frontend Bloat: Most modules are "Zero Footprint" on the frontend, meaning they load no CSS or JS unless explicitly required (like the Components or Fonts modules).
- Intelligent Filtering: Content filters (
the_content, etc.) usestrpos()fast-exit checks. If the specific markers or tags for a feature aren't present in your content, the plugin exits immediately without running expensive regular expressions or DOM parsing. - Efficient HTML Processing: We use targeted regex for lightweight tasks (like Schema injection) and only resort to
DOMDocumentwhen structural manipulation is strictly necessary, ensuring maximum speed. - Aggressive Caching: Heavy operations—such as reading JSON exception lists, calculating file hashes, or managing redirects—are cached using WordPress Transients or versioned options to minimize Disk I/O.
This plugin is built with a "Performance First" philosophy. Unlike many all-in-one plugins that slow down your site, Functionalities is designed to be as lightweight as possible:
- Modular & Lazy Loaded: Using a custom autoloader, the plugin only loads the code required for active modules. If a feature is disabled, its code is never even included in memory.
- Minimized Database Load: All module settings are cached in static properties. This ensures that
get_option()is called at most once per module per request, regardless of how many times a feature is accessed. - Zero Frontend Bloat: Most modules are "Zero Footprint" on the frontend, meaning they load no CSS or JS unless explicitly required (like the Components or Fonts modules).
- Intelligent Filtering: Content filters (
the_content, etc.) usestrpos()fast-exit checks. If the specific markers or tags for a feature aren't present in your content, the plugin exits immediately without running expensive regular expressions or DOM parsing. - Efficient HTML Processing: We use targeted regex for lightweight tasks (like Schema injection) and only resort to
DOMDocumentwhen structural manipulation is strictly necessary, ensuring maximum speed. - Aggressive Caching: Heavy operations—such as reading JSON exception lists, calculating file hashes, or managing redirects—are cached using WordPress Transients or versioned options to minimize Disk I/O.
Complete external link control with nofollow automation.
Features:
- Automatic
rel="nofollow"for external links (priority 999) - Applies to content, widgets, and comments
- Exception lists: full URLs, domains, or partial matches
- JSON preset file support for bulk exceptions
- Database update tool for bulk nofollow addition
- Open external/internal links in new tab
- Pattern-based domain matching
- Zero frontend footprint (no CSS/JS)
Navigate to: ?page=functionalities&module=link-management
Strip common wp-block classes from frontend output (.wp-block-heading, .wp-block-list, .wp-block-image). Cleaner HTML markup without the bloat.
Navigate to: ?page=functionalities&module=block-cleanup
Limit link suggestions to selected post types in the block editor. Reduces clutter in link search dialogs.
Navigate to: ?page=functionalities&module=editor-links
Fine-grained control over WordPress default behaviors and performance tweaks:
- Disable emojis scripts/styles
- Disable embeds (oEmbed)
- Remove REST API and oEmbed discovery links
- Remove RSD, WLWManifest, shortlink tags
- Remove WordPress version meta
- Disable XML-RPC (complete or pingbacks only)
- Disable RSS/Atom feeds
- Disable Gravatars
- Disable self-pingbacks
- Remove query strings from static resources
- Remove DNS prefetch
- Remove Recent Comments inline CSS
- Limit post revisions
- Disable Dashicons for non-logged-in users
- Disable Heartbeat API
- Disable admin bar on frontend
- Remove jQuery Migrate
- Load core block styles separately (per-block CSS)
- Disable block-based widget editor
- Enable PrismJS on admin screens
- Enable fullscreen toggle for backend textareas
Navigate to: ?page=functionalities&module=misc
- Google Analytics 4 integration (just enter Measurement ID)
- Custom header code injection
- Custom footer code injection
- Safe sanitization with
wp_ksesfor non-superadmins
Navigate to: ?page=functionalities&module=snippets
Add microdata to your site's HTML:
itemscope/itemtypeon<html>tag- Optional WPHeader and WPFooter microdata
- Article microdata with customizable itemtype
- Automatic headline, dates, and author properties
Navigate to: ?page=functionalities&module=schema
Define reusable CSS components as selector + CSS rules. Auto-enqueued site-wide.
Default components include: cards, buttons, badges, chips, alerts, avatars, grids, accordions.
Navigate to: ?page=functionalities&module=components
Register custom font families with @font-face:
- WOFF2 and WOFF support
- Variable fonts support
- Font-display control (swap, auto, block, fallback, optional)
- Typography assignments for body and headings via theme.json data layer
- Native Bricks Builder integration — fonts appear in the Bricks typography picker
Navigate to: ?page=functionalities&module=fonts
Copyright, Dublin Core, licensing, and SEO plugin integration.
Features:
- Automatic copyright meta tags and Dublin Core metadata
- Creative Commons licensing integration
- Standalone Schema.org output for copyright/license information
- Integration with popular SEO plugins for unified metadata
Navigate to: ?page=functionalities&module=meta
Upload custom SVG icons and insert them inline in the block editor.
Features:
- Custom SVG icon library with secure sanitization
- Inline insertion via RichText toolbar (inherits surrounding font size)
- Standalone SVG Icon block with alignment, size, and color controls
- Zero frontend footprint when no icons are used
Navigate to: ?page=functionalities&module=svg-icons
Detect structural regressions when posts are updated.
Internal Link Drop Detection:
- Warns when internal links are accidentally removed
- Configurable percentage threshold (default: 30%)
- Configurable absolute threshold (default: 3 links)
- Option to exclude nofollow links
Word Count Regression:
- Alerts when content is shortened significantly
- Configurable drop percentage (default: 35%)
- Minimum content age requirement (default: 30 days)
- Shortcode exclusion support
Heading Structure Analysis:
- Missing H1 detection
- Multiple H1 detection
- Skipped heading level detection (e.g., H2 → H4)
Also includes: rolling snapshot storage, admin column for regression status, block editor integration with pre-publish warnings.
Navigate to: ?page=functionalities&module=content-regression
Monitor when technical assumptions stop being true. Philosophy: "This used to be true. Now it isn't."
Detects:
- Schema collisions (multiple JSON-LD sources)
- Analytics duplication (GA4, GTM, Facebook Pixel)
- Font redundancy (same font from multiple sources)
- Inline CSS growth (performance debt monitoring)
Dashboard UI with acknowledge/ignore actions for each detected issue.
Navigate to: ?page=functionalities&module=assumption-detection
Simple, file-based project task management for content and development workflows within WordPress admin.
Features:
- Track tasks directly in the WordPress dashboard
- Stored in a portable JSON file for version control friendliness
- Organized by status and priority
Navigate to: ?page=functionalities&module=task-manager
Manage URL redirects directly from WordPress admin with high-performance file-based storage.
Features:
- Supports 301, 302, 307, and 308 redirects
- File-based JSON storage for zero database overhead during redirects
- Integrated hit counter for tracking redirect usage
- Normalized path matching
Navigate to: ?page=functionalities&module=redirect-manager
Enhanced login protection and security measures for your WordPress site.
Features:
- Limit login attempts to prevent brute force attacks
- Configurable lockout durations
- Disable XML-RPC authentication and application passwords
- Hide detailed login errors to prevent user enumeration
- Custom login page logo and background styling
Navigate to: ?page=functionalities&module=login-security
Create exception-urls.json in your theme or plugin directory:
{
"urls": [
"https://example.com/trusted-page",
"https://partner-site.com",
"https://another-trusted-site.com/blog"
]
}Priority order: Custom path → Developer filter → Child theme → Parent theme → Plugin default
// Add exception domains
add_filter( 'functionalities_exception_domains', function( $domains ) {
$domains[] = 'trusted-site.com';
return $domains;
});
// Add exception URLs
add_filter( 'functionalities_exception_urls', function( $urls ) {
$urls[] = 'https://example.com/page';
return $urls;
});
// Custom JSON file path
add_filter( 'functionalities_json_preset_path', function( $path ) {
return get_stylesheet_directory() . '/my-exceptions.json';
});Navigate to Link Management and scroll to "Database Update Tool":
- Enter the URL you want to add nofollow to
- Click "Update Database"
- Confirm the operation
- Results show how many posts were updated
Caution: This directly modifies post content in the database.
You can render any icon from your library using the [func_icon] shortcode.
[func_icon name="car" class="my-custom-class"]
Attributes:
name(required): The slug of the icon as defined in the SVG Icons library.class(optional): Additional CSS classes to add to the<svg>element.
// Disable the SVG Icons module via code
add_filter( 'functionalities_svg_icons_enabled', '__return_false' );
// Filter the list of available icons
add_filter( 'functionalities_svg_icons_list', function( $icons ) {
// Modify $icons array
return $icons;
});
// Filter sanitized SVG content before it is saved to the database
add_filter( 'functionalities_svg_icons_sanitize', function( $svg, $slug ) {
return $svg;
}, 10, 2 );functionalities/
├── assets/
│ ├── css/
│ │ ├── admin.css
│ │ ├── admin-ui.css
│ │ ├── content-regression.css
│ │ └── svg-icons-editor.css
│ └── js/
│ ├── admin.js
│ ├── admin-ui.js
│ ├── content-regression.js
│ └── svg-icons-editor.js
├── includes/
│ ├── admin/
│ │ ├── class-admin.php
│ │ ├── class-admin-ui.php
│ │ └── class-module-docs.php
│ ├── features/
│ │ ├── class-assumption-detection.php
│ │ ├── class-block-cleanup.php
│ │ ├── class-components.php
│ │ ├── class-content-regression.php
│ │ ├── class-editor-links.php
│ │ ├── class-fonts.php
│ │ ├── class-link-management.php
│ │ ├── class-login-security.php
│ │ ├── class-meta.php
│ │ ├── class-misc.php
│ │ ├── class-redirect-manager.php
│ │ ├── class-schema.php
│ │ ├── class-snippets.php
│ │ ├── class-svg-icons.php
│ │ └── class-task-manager.php
├── languages/
├── exception-urls.json.sample
├── functionalities.php
├── index.php
└── uninstall.php
- Create a feature class in
includes/features/class-your-module.php - Add module definition in
Admin::define_modules() - Register settings in
Admin::register_settings() - Initialize in
functionalities.php
Example module definition:
'your-module' => array(
'title' => __( 'Your Module', 'functionalities' ),
'description' => __( 'Brief description', 'functionalities' ),
'icon' => 'dashicons-admin-generic',
),See readme.txt for the full changelog.