YOOtheme Pro Health Checker
This plugin integrates with the Joomla Health Checker component to provide specialized diagnostics and recommendations for websites built with YOOtheme Pro. It automatically checks server requirements, Joomla configuration, and YOOtheme Pro settings to ensure optimal performance, stability, and best practices.
Included Checks
Server Environment
Ensures the hosting environment meets YOOtheme Pro's requirements.
- PHP Version: Verifies that the PHP version is supported (Warning if <= 8.1).
- Required Extensions: Checks for essential PHP extensions:
GD,JSON,MBString,Intl. - Memory Limit: Verifies
memory_limit(Critical < 128M, Recommended 512M). - Max Input Vars: Checks
max_input_vars(Critical < 2000, Recommended 10000+ for large layouts/menus). - Upload Limits: Verifies
post_max_sizeandupload_max_filesize(Recommended 30M+). - Image Format Support: Checks if the GD extension supports WebP and AVIF formats.
- Apache Modules: Detects problematic modules like
mod_pagespeedthat conflict with YOOtheme. - Apache Mod Security: Checks if
ModSecurityis enabled (Warning if enabled). - Allow URL Fopen: Verifies
allow_url_fopenis enabled (required for fetching remote assets like YouTube posters). - File Timestamp: Checks if
filectimefunction is available (Critical if disabled). - Temp Directory: PHP system temporary directory is fully functional (Write/Read/Delete)
Joomla Configuration
Checks Joomla settings that impact YOOtheme Pro functionality.
- Debug Mode: Warning. Checks if Joomla's "System Debug" mode is enabled in production.
- Media Support: Verifies that SVG, ICO, MP4, MS Office, and OpenOffice extensions and MIME types are allowed in the Joomla Media Manager.
- Favicon in Root: Checks for
favicon.icoin the site root. Recommends removal in favor of YOOtheme Pro settings to avoid inconsistencies. - Apple Touch Icon in Root: Checks for
apple-touch-icon.pngin the site root. Recommends removal in favor of YOOtheme Pro settings. - Permissions: Checks specifically if YOOtheme cache directories are writable.
- News/Changelog Access: Checks if YOOtheme News and Changelog files are accessible (Critical if blocked by security plugins like Admin Tools).
- Error Reporting: Checks if Joomla's "Error Reporting" is set to "Maximum" (Critical if enabled, as it may block access to layouts).
- Fields Indexing: Checks if custom fields are allowed to be indexed by Smart Search. (Warning if any field has indexing disabled).
- Search Filter: Verifies that the Smart Search filter used in YOOtheme Pro settings is valid and active. (Warning if missing/unpublished, Critical if params is empty).
- ROOT category: Checks for the existence of the ROOT category (ID 1) in the database.
- Critical: If missing for YOOtheme Pro versions below 5.0.26, as it prevents the theme from opening. SQL recovery query provided.
Theme Status & Storage
Monitors the internal health of YOOtheme Pro data.
-
Scripts configuration: Detects legacy Google Tag Manager script configuration in YOOtheme Pro 5.0.0 - 5.0.13 that should be replaced with the native Google Analytics script type.
-
Theme Storage Size: Monitors the
custom_datafield size (MediumText, ~16MB limit).- Warning: > 75% usage.
- Critical: > 90% usage (Risk of data loss when saving layouts).
- Recommendation: Upgrade to LONGTEXT (4Gb). SQL instruction provided.
-
Custom assets location: Verifies if
custom.jsandcustom.cssare correctly placed when using a child theme.- Warning: If custom files exist in the main theme but are ignored (shadowed) because files with the same name exist in the child theme.
- Warning: If custom files exist in the main theme while a child theme is active, suggesting they be moved to the child theme for better management and portability.
-
Module Storage Type: Checks field type of
contentin#__modulestable.- Warning: If usage is TEXT type (Maximum 64KB).
- Critical: If TEXT usage > 80%.
- Recommendation: Upgrade to MEDIUMTEXT (16MB). SQL instruction provided.
-
Media folder check: Verifies if the configured media folder (e.g.
/images/yootheme/) exists and is writable.- Critical: If the folder is not writable.
-
Style Folder: Verifies the existence and writability of the CSS folder for the active theme.
- Checks
/templates/yootheme/css/if no child theme is used. - If a child theme is active, it verifies
/templates/yootheme_child/css/. - Critical: If the folder does not exist or is not writable.
- Checks
-
Logo files existence: Verifies if the logo files specified in the theme settings (
image,image_inverse,image_mobile, etc.) exist on the server.- Critical: If any of the configured logo files are missing from the disk.
-
Cache Health:
- Monitors
/media/yootheme/cacheand/templates/yootheme/cache. - Checks for excessive folder size or file counts (potentially indicating orphaned cache files).
- Monitors
-
Events Error Log:
- Monitors the YOOtheme error log (e.g. GraphQL errors).
- Reports the last logged error from
source.errorevents, if logging is enabled in the plugin settings.
-
Old Language Files:
- Checks for deprecated language files (e.g.,
mod_yootheme_builder,mod_yootheme_link,plg_fields_location,plg_fields_mediafile,tpl_yootheme) in language folders (excluding overrides) that should be removed in YOOtheme Pro 5+.
- Checks for deprecated language files (e.g.,
-
Installer Plugin: Checks if "Installer - YOOtheme" plugin is installed. (Warning if installed on YOOtheme Pro > 4.3.5, as it is no longer required).
-
jQuery: Checks if jQuery is used in the theme configuration (e.g., in Custom JS or builder elements) but not enabled in the YOOtheme Pro settings (
Settings > Advanced > Load jQuery).- Warning: If patterns like
jQuery(,$(function,$.ajax, etc., are found in any section of the theme configuration while thejqueryparameter is disabled or missing.
- Warning: If patterns like
-
Custom code issues: Checks if the custom script code starts with HTML comments, which can cause display issues (only for YOOtheme Pro versions before 5.0.0).
-
Default Style: Verifies that a default YOOtheme style is selected in the template settings.
-
404 Page: Optimized check for 404 page consistency.
- Verifies that a custom 404 layout is enabled in YOOtheme Pro.
- Detects if an active
error.phpin a child theme is being ignored because of the active template. - Detects server-level
ErrorDocumentdirectives in.htaccessthat override YOOtheme Pro / child theme settings.
-
API Key: Checks if the YOOtheme Pro API key is installed (Warning if missing).
-
Style Recompilation: Checks if theme styles need to be recompiled after a theme update to disable loading the
theme.update.cssfile.- Warning: If the theme core files are newer than the generated CSS, recommending style recompilation in the Theme Style section.
-
Child theme index file: For YOOtheme Pro 5.0+, verifies if the active child theme's
index.phpcontains required<jdoc:include>tags for metas, styles, and scripts.- Critical: If any required tags are missing, providing instructions to update the file from the parent theme.
Theme Style Validator Checks
Validates critical LESS variables to prevent CSS compilation errors and layout failures.
- Layout & Media Queries: Validates breakpoint and container width variables used in media queries (e.g.,
@breakpoint-small,@theme-page-container-width). - Navbar & Dropdown Calc: Checks navbar and dropdown variables used in
calc()functions (e.g.,@navbar-dropdown-padding,@navbar-nav-item-line-height). - Decoration & Masks: Validates border width variables used in
clip-path: polygon()functions (e.g.,@theme-box-decoration-default-border-width). - Positioning & Tooltips: Checks positioning and transform variables (e.g.,
@tooltip-margin, transform horizontal/vertical values). - Animations: Validates transition duration variables (e.g.,
@theme-transition-border-transition-duration). - Hex Color Format: Analyzes custom LESS variables for colors missing the
#prefix (e.g.,3199D4instead of#3199D4).
Note: Missing units (px, %, em, s, etc.) in these variables will cause calc() failures, invalid polygon shapes, or broken media queries.
Best Practices
Recommendations to ensure you are getting the most out of YOOtheme Pro capabilities.
-
Image Optimization: Checks if WebP and AVIF loading are enabled in YOOtheme settings (if supported by server).
-
Cache-Friendly URLs: Verifies that "Cache-friendly Image URLs" setting is active.
-
Favicons: Comprehensive validation for standard and SVG Favicon settings.
- Verifies file existence on the server (Critical if missing).
- Validates image dimensions:
- Critical: Smaller than 8x8px (Google minimum requirement).
- Warning: Smaller than 48x48px (Google recommendation - link provided).
- Warning: Smaller than 96x96px (Optimal size recommendation - link provided).
- Checks for recommended file formats (ICO, PNG, GIF, JPEG, APNG, SVG).
- Encourages SVG favicon for consistency across high-resolution devices.
-
Apple Touch Icon:
- Verifies if the Apple Touch Icon is configured in YOOtheme settings.
- Warning: If not configured (recommends 180x180px PNG).
- Warning: If the configured image is smaller than 180x180px.
- Critical: If configured but the file is missing from the server.
-
Templates:
- 404 Template: Verifies that a custom 404 error page layout is created and enabled in YOOtheme Pro.
- Live Search: Verifies that a Live Search template exists and is enabled (Warning if missing).
- Logo Text: Checks if a text value is set for the logo when using images (Important for WCAG 2.4.4 accessibility).
- Multilingual Menu: Recommends using Joomla Menu modules instead of the theme's built-in menu settings on multilingual sites for proper language-specific control.
-
jQuery Loading: Recommends disabling jQuery if not strictly required to improve page load times and performance. Warning: If "Load jQuery" is enabled in theme settings. Encourages migration to Vanilla JS.
Third Party Extensions
Checks for known conflicts with third-party extensions.
- RSForms! Pro: CRITICAL. Checks if RSForms! Pro is configured to load its own UIkit assets, which conflicts with YOOtheme Pro styling.
- RSFirewall!: Checks if RSFirewall! is installed and active option "Convert email addresses from plain text to images".
- Advanced Custom Fields (ACF): Checks for compatibility with YOOtheme Pro (versions below 3.1.1 are incompatible).
- System - DJ-ContentFilters: Checks for compatibility with YOOtheme Pro 5+. Versions 1.7.1 and below may have issues with dynamic content sources.
- System - PayPlans: Checks for compatibility with YOOtheme Pro 5+. Version 5.0.8 is currently incompatible.
- Seblod: Checks if Seblod CCK is installed (Compatibility check).
Installation & Usage
- Install the Joomla Health Checker component.
- Install this plugin (
plg_healthchecker_yoothemeprochecker). - Go to Components -> Health Checker to view the report.
Share Report
The component has an export feature for reports, including HTML and Markdown formats. The latter is suitable for posting on forums, GitHub, and similar platforms. The HTML version can be downloaded and sent to your client. You can export either a full report or just a list of issues.
Requirements
- Joomla 5.0 or higher
- YOOtheme Pro 4.0 or higher
- PHP 8.1 or higher
- Health Checker component 3.4.0 or higher