Skip to content

Health Checks Reference

This page provides a complete reference of all health checks included in Health Checker for Joomla. Each check is designed to identify potential issues with your Joomla installation across eight categories.

Status Indicators

  • 🟢 Good - Everything is optimal, no action needed
  • 🟡 Warning - Should be addressed, but site still functions
  • 🔴 Critical - Immediate action required, site may be broken or compromised

Categories

Note: The core plugin provides 129 checks across these 8 categories. Additional plugins may add more checks.


Content Quality

Checks for content organization, quality, and accessibility issues.

Check Name🟢 Good🟡 Warning🔴 Critical
Archived ContentNo archived articles or small count--
Category DepthCategories nested ≤5 levelsCategories nested >5 levels-
Draft Articles≤20 draft articles>20 draft articles-
Empty Articles≤5 articles with minimal content>5 published articles with <50 chars content-
Expired ContentNo expired content still publishedPublished articles past expiry date-
Menu OrphansAll menu items link to existing content-Menu items link to non-existent articles (404s)
Orphaned Articles≤10 articles not in menus>10 published articles not linked from menus-
Scheduled ContentReport of future-scheduled articles--
Trashed Content≤50 articles in trash>50 articles in trash-
Uncategorized Content≤10 articles in "Uncategorized">10 articles in "Uncategorized" category-
Unpublished Category ArticlesAll published articles in published categoriesPublished articles in unpublished categories-

Database

Checks for database health, configuration, performance, and integrity.

Check Name🟢 Good🟡 Warning🔴 Critical
Auto-Increment ValuesAll values have sufficient headroomAuto-increment >80% of INT maxDatabase not available
Backup AgeBackup within last 7 daysBackup 7-30 days old OR Akeeba not installedNo backup in 30+ days OR never backed up
ConnectionDatabase connected and responding-Connection failed (credentials, server down, etc.)
Connection CharsetUsing utf8mb4Using utf8/utf8mb3 or non-UTF8Database not available
Index UsageAll tables have primary keys & indexesTables missing primary key OR no indexesDatabase not available
Max Packet Sizemax_allowed_packet ≥16MBBetween 1MB-16MB<1MB
Orphaned TablesReport of tables with Joomla prefix-Database not available
Server VersionMySQL 8.0.13+ OR MariaDB 10.4.0+Below recommended versionDatabase not available
Database Size<1GB1-5GB (monitor growth)>5GB
Slow Query LogEnabled with threshold shownDisabled-
SQL ModeNo problematic modesONLY_FULL_GROUP_BY enabledDatabase not available
Table CharsetAll tables using utf8mb4Non-utf8mb4 tables existDatabase not available
Table EngineAll tables using InnoDBNon-InnoDB tables (e.g., MyISAM)Database not available
Table Prefix3+ character prefix (not "jos_")Default "jos_" OR ❤️ chars-
Table StatusAll tables healthy-Tables corrupted (NULL engine)
Transaction IsolationREPEATABLE-READ or READ-COMMITTEDREAD-UNCOMMITTED OR SERIALIZABLEDatabase not available
User PrivilegesHas all required privilegesMissing required privilegesDatabase not available
Wait TimeoutBetween 30 seconds - 8 hours<30s OR >8hDatabase not available

Extensions

Checks for extension updates, compatibility, and configuration issues.

Check Name🟢 Good🟡 Warning🔴 Critical
Cache PluginSystem cache plugin enabledCache plugin disabled-
Disabled ExtensionsNo unexpectedly disabled extensionsExtensions disabled that should be enabled-
Joomla Core VersionRunning latest stable versionUpdate availableRunning unsupported/EOL version
Language PacksAll language packs up to dateLanguage pack updates available-
Missing UpdatesAll extensions up to dateExtension updates availableCritical security updates available
Module PositionsAll published modules in valid positionsModules in undefined/missing template positions-
OverridesNo outdated template overridesTemplate overrides outdated compared to core-
Plugin OrderCritical plugins in correct load orderPlugins may have suboptimal load order-
Search PluginsSearch plugins enabledNo search plugins enabled-
TemplateUsing supported, up-to-date templateTemplate updates availableTemplate incompatible with Joomla
Unused ModulesNo unpublished modules detectedMany unpublished modules consuming resources-
Update ChannelStable channel configuredNon-stable channel (next/custom)-
Update Minimum StabilityMinimum stability set to StableMinimum stability below Stable (Dev/Alpha/Beta/RC)-
Update SitesAll update sources accessibleSome update sites unreachableCritical update sites failing

Performance

Checks for caching, compression, and optimization settings.

Check Name🟢 Good🟡 Warning🔴 Critical
Browser CachingBrowser caching headers configuredNo browser caching headers-
Database Query CacheQuery caching enabledQuery caching disabled-
Gzip CompressionGzip compression enabledGzip disabled-
Image OptimizationImages optimized for webLarge unoptimized images detected-
Lazy LoadingLazy loading enabled for imagesLazy loading disabled-
Media Manager ThumbnailsThumbnail generation enabledThumbnail generation disabled-
Page CachePage caching enabledPage caching disabled (consider enabling)-
RedirectsNo excessive redirect chainsMultiple redirect chains detected-
Smart Search IndexSmart Search index up to dateIndex outdatedSmart Search broken/not configured
System CacheSystem cache enabledSystem cache disabled-

Security

Checks for security vulnerabilities, configuration issues, and attack vectors.

Check Name🟢 Good🟡 Warning🔴 Critical
Action Logs EnabledAction logs enabled & recordingAction logs disabled-
Admin UsernameNo "admin" or "administrator" accountsSuper admin using common username-
API AuthenticationAPI tokens properly configuredAPI authentication weak/missingAPI publicly accessible without auth
configuration.php PermissionsFile permissions 444 (read-only)File writable (644/666)File publicly writable (777)
Content Security PolicyCSP headers configuredNo CSP headers-
CORS ConfigurationCORS properly restrictedCORS allows all origins (*)-
Index FileNo placeholder index files in site rootPlaceholder files found (index.html, etc.)-
Debug ModeDebug disabledDebug enabled (exposes sensitive info)-
Default SecretUnique secret configuredUsing default/weak secret-
Error ReportingError reporting disabled for publicPHP errors displayed to visitors-
Force SSLSSL required for admin & siteSSL not enforcedSite accessible without HTTPS
.htaccess Protection.htaccess protecting sensitive foldersMissing .htaccess protectionsSensitive folders publicly accessible
HTTPS RedirectAll HTTP redirects to HTTPSMixed HTTP/HTTPSNo HTTPS redirect
Mail SecuritySecure mail configuration (SMTP/TLS)Using PHP mail() functionMail credentials in plain text
Password PolicyStrong password policy enforcedWeak password requirementsNo password policy
Privacy DashboardPrivacy tools configuredPrivacy features disabled-
reCAPTCHAreCAPTCHA enabled on formsNo CAPTCHA protection-
Session HandlerUsing database/Redis for sessionsUsing file-based sessionsSession files world-readable
Session LifetimeSession timeout 15-60 minutesTimeout <15min OR >60minSessions never expire
Two-Factor Auth2FA required for admin accounts2FA optional/disabledNo 2FA configured
User Actions LogUser activity logging enabledUser Actions Log plugin disabled-
X-Frame-Options (Deprecated)Clickjacking protection enabledNo X-Frame-Options header (consider CSP frame-ancestors instead)-

SEO

Checks for search engine optimization and discoverability.

Check Name🟢 Good🟡 Warning🔴 Critical
Alt TextAll images have alt attributes>10% of images missing alt text-
Broken LinksNo broken internal linksBroken internal links detectedMany broken links (>50)
Canonical URLsCanonical URLs configuredDuplicate content without canonicals-
Facebook Open GraphEssential OG tags present (og:title, og:description, og:image, og:url)Missing Facebook Open Graph tags-
Meta KeywordsNot using deprecated meta keywords tagUsing meta keywords (ignored by search engines)-
Open Graph PluginOpen Graph plugin installed & enabledNo Open Graph plugin detected-
robots.txtrobots.txt exists and properly configuredrobots.txt missing or blocking important contentrobots.txt blocks all crawlers
SEF URLsSearch engine friendly URLs enabledSEF URLs disabled-
Site Meta DescriptionGlobal meta description configuredMissing global meta description-
SitemapXML sitemap exists and accessibleSitemap missing or outdatedSitemap contains errors
Structured DataSchema.org markup presentNo structured data markup-
X/Twitter CardsTwitter Card meta tags present (or OG fallbacks)Missing Twitter Card tags-

System & Hosting

Checks for server configuration, PHP settings, and required extensions.

Check Name🟢 Good🟡 Warning🔴 Critical
Apache ModulesRequired modules loadedOptional modules missingRequired modules missing
Core DirectoriesAll 14 core directories present-Core directories missing (lists which)
cURL ExtensioncURL installed and workingcURL missing (some features unavailable)-
Disk Space>5GB free space1-5GB free<1GB free space
DOM ExtensionDOM extension installed-DOM extension missing
EXIF ExtensionEXIF installedEXIF missing (image metadata unavailable)-
Failed TasksNo failed scheduled tasksSome tasks failingCritical tasks failing repeatedly
FileInfo ExtensionFileInfo installed-FileInfo missing
GD or ImagickImage library installed-No image library available
Intl ExtensionIntl extension installedIntl missing (i18n issues)-
JSON ExtensionJSON installed-JSON extension missing
Log File SizeLog directory ≤100MBLog directory 100-500MBLog directory >500MB
Mail FunctionPHP mail() function workingmail() not available-
max_execution_time≥60 seconds30-60 seconds<30 seconds
max_input_time≥60 seconds30-60 seconds<30 seconds
max_input_vars≥25001000-2500<1000
Mbstring ExtensionMbstring installed-Mbstring missing
memory_limit≥256MB128-256MB<128MB
OPcacheOPcache enabled and configuredOPcache disabled-
OpenSSL ExtensionOpenSSL installed-OpenSSL missing
Output BufferingOutput buffering properly configuredProblematic buffer settings-
Overdue TasksNo overdue scheduled tasksTasks overdue by <24hTasks overdue by >24h
PDO MySQLPDO MySQL extension installed-PDO MySQL missing
PHP End-of-LifePHP under active supportPHP in security-only support or nearing EOLPHP past end-of-life date
PHP SAPIRunning under recommended SAPIUsing CGI/FastCGIUsing deprecated SAPI
PHP VersionPHP 8.2+PHP 8.1 (below recommended)PHP <8.1 (unsupported)
post_max_size≥64MB8-64MB<8MB
Realpath CacheAdequate realpath cacheCache too small-
Server TimeServer time matches expected timezoneTime offset detectedMajor time difference (>1 hour)
Session Save PathSession save path writableSession path not writable-
SimpleXML ExtensionSimpleXML installed-SimpleXML missing
Temp DirectoryTemp directory writableTemp directory issuesTemp directory not writable
upload_max_filesize≥64MB2-64MB<2MB
ZIP ExtensionZIP extension installed-ZIP extension missing

Users

Checks for user account security and configuration.

Check Name🟢 Good🟡 Warning🔴 Critical
Admin EmailUnique email for each adminMultiple admins sharing email-
Blocked UsersNo unexpectedly blocked users>10 blocked user accounts-
Default User GroupAppropriate default registration groupDefault group has elevated permissionsDefault group is Super Admin
Duplicate EmailsAll users have unique emailsMultiple users sharing email addresses-
Inactive Users<10% users inactive >1 year>10% users inactive >1 year-
Last LoginAdmin accounts logged in recentlyAdmin accounts inactive >90 daysAdmin accounts never used
Password ExpiryPassword expiry policy enforcedNo password expirationPasswords never expire
Super Admin Count2-5 super admin accounts1 super admin OR >5 super admins-
User FieldsCustom user fields configured properlyIssues with custom fields-
User GroupsUser groups properly configuredUnusual group permissionsPublic group has admin access
User NotesUser notes used appropriately--
User RegistrationRegistration settings appropriateRegistration open without controls-

Need More Checks?

Health Checker for Joomla is extensible! Developers can add custom health checks through the plugin API.

  • Extension Developers: Add checks specific to your extension
  • Third-party Integrations: Monitor external services (Akeeba Backup, Admin Tools, etc.)
  • Custom Requirements: Build checks for your organization's specific needs

Learn how to create custom health checks →


Running Health Checks

To run all health checks:

  1. Navigate to Components → Health Checker
  2. Click Run Health Check in the toolbar
  3. Review results organized by category and status
  4. Take action on Critical and Warning items

Learn more about running health checks →

Released under the GPL v2+ License