What the plugin and H5P publish
On 30 October 2026 the WordPress.org listing for Interactive Content - H5P showed version 1.17.10, last modified 20 October 2026, requiring WordPress 3.8.1 or higher, tested up to 7.0.8, with 40,000+ active installations. It states no PHP minimum. H5P's own setup page for WordPress covers installing from Plugins > Add new and loading content types from the H5P Hub; it does not list server requirements either.
The requirements are in H5P's troubleshooting pages. The PHP troubleshooting guide says to check phpinfo for the zip, mbstring and openssl extensions and, on hosted plans, to ask the host to confirm they are enabled. The H5P troubleshooting guide lists the matching errors: the ZipArchive extension "is needed for H5P", mbstring must be loaded, and file-permission errors appear when H5P cannot write content or the downloadable .h5p file. It also says outbound HTTPS certificate problems are usually solved by adding a valid cacert to the server setup. Replies in the comments on that setup page say the web server needs write access to wp-content/uploads/h5p and that content type libraries cannot be uploaded by FTP; they come through the Hub or a package upload.
The plugin's changelog shows the Hub endpoint moved to hub-api.h5p.org in 1.17.0, so a server that blocks outbound HTTPS will not load the Hub. Metadata fetching from H5P.org can be disabled in settings, and a reply on H5P's installation page says the Hub can be toggled on the H5P Settings page.
What H5P stores, folder by folder
The folder names below come from H5P's default storage class in its official PHP library on GitHub; the WordPress plugin builds on that library.
| Folder | Holds | Grows when |
|---|---|---|
| libraries/ | One folder per installed library version; saving replaces that version's folder | You install or update content types from the Hub or by uploading packages |
| content/{id}/ | One folder per content item, including its images, audio and video files | Authors create, clone or upload content |
| exports/ | Downloadable .h5p files | Export or download is used; the plugin changelog notes improved cleanup of exports on delete |
| temp/ | Unique temporary folders while packages are processed | Packages are uploaded; the latest release fixed temporary file handling during uploads |
| editor/ | Files uploaded in the editor before content has an ID | Authors add media while editing |
| cachedassets/ | Combined .js and .css files, one pair per cache key | Content is viewed and its scripts and styles are combined for caching |
| Database tables | Content records, per-user saved state (added in 1.5.0) and results tracking (added in 1.2); removed on uninstall | Learners resume content or submit answers |
Upload limits
A .h5p file is a zip archive, so the whole package has to pass PHP's upload limits in one request. PHP's manual lists defaults of upload_max_filesize 2M, post_max_size 8M and memory_limit 128M when php.ini does not override them, says post_max_size must be larger than upload_max_filesize, and says memory_limit should generally be larger than post_max_size. If a request exceeds post_max_size, PHP leaves $_FILES empty, which looks like a failed upload with no clear message.
Kinsta's PHP documentation lists post_max_size of 128M on its smaller plans and 256M on Single 315k and WP 5, with 500M possible on dedicated servers. SiteGround's pages we read do not publish upload limits; ask Support for the value on your plan before an author builds a video-heavy item. A practical rule: keep video out of H5P packages and embed it from a video host, which keeps both package size and the content folder small.
File counts: the limit people miss
Every library version, content item and cached asset is its own set of files, so an H5P site adds files faster than it adds megabytes. SiteGround's fair-use page counts inodes (files, folders and email messages) per account: 200,000 on StartUp, 400,000 on GrowBig and 600,000 on GoGeek. Disk space on those plans is 10 GB, 50 GB and 100 GB.
Measure rather than guess. Run find wp-content/uploads/h5p -type f | wc -l on staging before and after installing the content types you plan to use, then again after creating a sample lesson. Worked example with hypothetical numbers: if the rest of a StartUp account already uses 150,000 inodes and your H5P folder measures 30,000 files, you have 20,000 left before the cap, and old email in the same account counts too. Moving to GrowBig doubles the cap to 400,000.
Caching and performance
H5P content renders inside ordinary posts and lessons through a shortcode such as [h5p id="1"], and the cachedassets folder serves combined scripts and styles as static files, so anonymous pages cache like any other page. Logged-in learners are different: saving state for resume and recording results are per-learner requests that must reach PHP. On SiteGround, Speed Optimizer does not cache content for logged-in users by default, which is what you want for graded H5P activities.
After updating content types, purge the page cache so cached pages pick up the new library versions; Speed Optimizer offers a Purge Cache button and, with Automatic Purge on, a full purge on plugin and theme updates.
Pre-publish checklist
- phpinfo shows zip, mbstring and openssl enabled (do not leave a public phpinfo page online; H5P warns it can contain sensitive information).
- The web server user can write to wp-content/uploads/h5p.
- upload_max_filesize and post_max_size exceed your largest .h5p package, and memory_limit exceeds post_max_size.
- The H5P Hub loads from the server (outbound HTTPS to hub-api.h5p.org works).
- File count under uploads/h5p measured and compared with your plan's inode cap.
- A test learner can resume an activity and their result appears in the results view.
- Backups include both the uploads/h5p folder and the database; one without the other will not restore content.
Questions before you decide
What PHP version does the H5P WordPress plugin need?
The WordPress.org listing states no PHP minimum. H5P's troubleshooting guides focus on extensions instead: zip, mbstring and openssl must be enabled.
Why does uploading an .h5p file fail?
Common documented causes are a missing ZipArchive extension, file permissions on the H5P folder, or a package larger than PHP's upload limits, which default to 2 MB for upload_max_filesize.
Can I upload H5P libraries by FTP?
No. A reply in the comments on H5P's WordPress setup page says libraries cannot be uploaded by FTP; use the H5P Hub or upload a package through WordPress.
Does H5P use a lot of disk space?
It depends on media in your content, but it creates many files: libraries, content folders, exports and cached assets. On SiteGround, inode caps of 200,000 to 600,000 per account can bind before disk space does.
Sources & verification
Product details and prices can change. Check the linked provider before buying.
- WordPress.org: Interactive Content - H5P plugin listing Accessed 30 Oct 2026
- H5P: WordPress setup Accessed 30 Oct 2026
- H5P: Installation and setup Accessed 30 Oct 2026
- H5P: Troubleshooting H5P errors Accessed 30 Oct 2026
- H5P: Troubleshooting PHP Accessed 30 Oct 2026
- H5P PHP library on GitHub: default storage class Accessed 30 Oct 2026
- PHP manual: core php.ini directives Accessed 30 Oct 2026
- SiteGround: Fair use of hosting resources Accessed 30 Oct 2026
- SiteGround: Shared hosting features and plan comparison Accessed 30 Oct 2026
- SiteGround: Speed Optimizer caching settings Accessed 30 Oct 2026
- Kinsta Docs: PHP settings by plan Accessed 30 Oct 2026
Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.