“One or more required modules are missing” in WordPress Site Health: what to do

By CompatNav · Published · Last reviewed · 2 min read

Short answer

Site Health checks whether the PHP extensions (modules) WordPress relies on are installed. “Required” or “recommended” modules missing means PHP on your server lacks some of them, which often happens right after switching PHP versions: on many hosts each PHP version has its own list of enabled extensions. You can’t add them from WordPress. Enable them in your hosting panel’s PHP settings, or ask your host, then reload Site Health.

What Site Health is telling you

In Tools → Site Health, WordPress runs a test called “Required and recommended modules are installed”. When it fails, the title becomes “One or more required modules are missing” or “One or more recommended modules are missing” (WordPress 7.1.2 source).

“Modules” here means PHP extensions: parts of PHP installed on your web server, such as the one that talks to your database or the one that edits images. WordPress’s own explanation in the same test: “PHP modules perform most of the tasks on the server that make your site run. Any changes to these must be made by your server administrator.” (WordPress 7.1.2 source)

In WordPress 7.1.2, the test marks only two extensions as required: hash and json. The others it checks are recommended, among them:

ExtensionWhat it’s for, in the Hosting Handbook’s words
mysqliConnects to MySQL (your database)
curlPerforms remote request operations
mbstringUsed to properly handle UTF8 text
imagickProvides better image quality for media uploads (gd is the fallback)
zipUsed for decompressing Plugins, Themes, and WordPress update packages
exifWorks with metadata stored in images
fileinfoUsed to detect MIME types of file uploads

Descriptions from the WordPress Hosting Team’s handbook, which Site Health links to; it has the full list. Click the failed test in Site Health to see which ones are missing on your server.

Why it appears after a PHP change

The most common moment for this message is right after switching PHP versions. On many hosts each PHP version has its own list of enabled extensions: the version you left had the right ones switched on, while the new one starts with its own defaults. The site may still load, with features quietly missing, such as image editing or plugin updates.

Fix it

  1. Open Site Health (Tools → Site Health), click the failed module test and note the names.
  2. Open your hosting panel’s PHP settings, where you chose the PHP version. Many panels list extensions next to the version, with a checkbox for each.
  3. Enable the missing extensions for the version your site uses now, and save.
  4. No such setting? Ask your host, with the list from step 1.
  5. Reload Site Health to confirm the test passes.

Changing PHP versions soon? Do it in this order: check the extensions of the new version first, then switch. Checking and changing your PHP version has the full steps, and the best PHP version for WordPress helps you choose.

Key takeaways

  • The message is about PHP extensions on your server, not about WordPress plugins.
  • Site Health counts two as required, hash and json; the others, such as mysqli, mbstring, curl, imagick and zip, are recommended.
  • It often appears after switching PHP versions, when the new version’s extensions weren’t enabled.
  • Only your host or hosting panel can add extensions; WordPress can’t.
  • After the fix, reload Tools → Site Health to confirm.

Frequently asked questions

Which modules does WordPress require?

In WordPress 7.1.2, Site Health marks hash and json as required; curl, dom, exif, fileinfo, imagick, mbstring, mysqli, openssl, pcre, zip, filter and image libraries are among the recommended ones. The WordPress Hosting Team’s handbook keeps the full list.

Is “One or more recommended modules are missing” a problem?

Not urgent: WordPress works, but some features may be slower or unavailable, such as image editing without imagick or gd, or plugin updates that need zip. Enable them when you can.

Why did this appear after I changed the PHP version?

On many hosts, extensions are switched on per PHP version. The old version had them enabled; the new one starts with its own default list. Enable the same ones for the new version.

Can a plugin install the missing module?

No. Extensions are part of PHP on the server, loaded before WordPress starts. Your hosting panel or your host’s support can enable them.

Check your own site before you upgrade

CompatNav is a free WordPress plugin. It reads the code of your plugins and themes on your own server and tells you, in plain words, what will break and what will only show notices on the PHP version you choose. It never changes your code. It can’t see problems that only appear while code runs with real data, so a quick check of your site after the upgrade still matters.

Get CompatNav on wordpress.org How it works

Sources

About the code examples: each output is the real output of the code shown, run with the official PHP builds, without a php.ini, with all errors reported and displayed. Only the file path was replaced by a neutral server path.