Native PHP Sessions
Use native PHP sessions and stay horizontally scalable. Better living through superior technology.
Use with caution
Native PHP Sessions works, but test it on a staging site before relying on it in 2026. It runs on 10K+ sites, is rated 4.9/5 and was last updated 10 months ago, and scores 46/100 on our health check.
- Proven at scale on 10K+ active sites
- Only tested up to WordPress 6.9 (latest is 7.1)
How does it stack up?
Side-by-side on installs, updates, ratings & supportDaily downloads
Download spikes usually follow a new release — each site that auto-updates counts as a download.
Rankings
Where Native PHP Sessions stands todayWordPress.org search rankings
Live position in the plugin search, top 100| Keyword | Position |
|---|---|
| comments | >100 |
| sessions | #2 |
Version adoption
Share of active sites per release.
Rating breakdown
★★★★★★★★★★ 4.9 from 16 reviews
About Native PHP Sessions
From the official readme · v1.4.5Description
WordPress core does not use PHP sessions, but sometimes they are required by your use-case, a plugin or theme.
This plugin implements PHP’s native session handlers, backed by the WordPress database. This allows plugins, themes, and custom code to safely use PHP $_SESSIONs in a distributed environment where PHP’s default tempfile storage just won’t work.
Note that primary development is on GitHub if you would like to contribute:
https://github.com/pantheon-systems/wp-native-php-sessions
Configuration
By default the session lifetime is set to 0, which is until the browser is closed.
To override this use the pantheon_session_expiration filter before the Native PHP Sessions plugin is loaded. For example a small Must-use plugin (a.k.a. mu-plugin) could contain:
<?php
function my_session_expiration_override() {
return 60*60*4; // 4 hours
}
add_filter( 'pantheon_session_expiration', 'my_session_expiration_override' );<h3>CLI Commands</h3>
wp pantheon session add-index
Added in 1.4.0. This command should be run if your installation of the plugin occurred before the addition of the primary ID key to the session table in version 1.2.2. You will be automatically notified when you visit any admin page if this is the case. If there’s no message, your version is good to go. Note that this command is non-destructive, a new table will be created and the existing one preserved in a backup state until you have verified that the upgrade is functioning as expected.
wp pantheon session primary-key-finalize
Added in 1.4.0. If you have run the add-index command and have verified that the new table is functioning correctly, running the primary-key-finalize command will perform a database cleanup and remove the backup table.
wp pantheon session primary-key-revert
Added in 1.4.0. If you have run the add-index command and something unexpected has occurred, just run the primary-key-revert command and the backup table will immediately be returned to being the active table.
WordPress Multisite
As of 1.4.2 the add-index, primary-key-add and primary-key-revert commands are fully multisite compatible.
Contributing
See CONTRIBUTING.md for information on contributing.
Troubleshooting
If you see an error like “Fatal error: session_start(): Failed to initialize storage module:” or “Warning: ini_set(): A session is active.”, then you likely have a plugin that is starting a session before WP Native PHP Sessions is loading.
To fix, create a new file at wp-content/mu-plugins/000-loader.php and include the following:
<?php
if (file_exists(WP_PLUGIN_DIR . '/wp-native-php-sessions/pantheon-sessions.php')) {
require_once WP_PLUGIN_DIR . '/wp-native-php-sessions/pantheon-sessions.php';
}
This mu-plugin will load WP Native PHP Sessions before all other plugins, while letting you still use the WordPress plugin updater to keep the plugin up-to-date.
Installation
- Upload to the
/wp-content/plugins/directory - Activate the plugin through the ‘Plugins’ menu in WordPress
That’s it!
Frequently asked questions
Why not use another session plugin?
This implements the built-in PHP session handling functions, rather than introducing anything custom. That way you can use built-in language functions like the $_SESSION superglobal and session_start() in your code. Everything else will “just work”.
Why store them in the database?
PHP’s fallback default functionality is to allow sessions to be stored in a temporary file. This is what most code that invokes sessions uses by default, and in simple use-cases it works, which is why so many plugins do it. However, if you intend to scale your application, local tempfiles are a dangerous choice. They are not shared between different instances of the application, producing erratic behavior that can be impossible to debug. By storing them in the database the state of the sessions is shared across all application instances.
Where do I report security bugs found in this plugin?
Please report security bugs found in the source code of the WP Native PHP Sessions plugin through the Patchstack Vulnerability Disclosure Program. The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin.
Changelog
Adds a WP-CLI command to add an index to the sessions table if one does not exist already. If you installed this plugin before version 1.2.2, you likely need to run this command. However, regardless of version at installation a notice will appear in your admin dashboard if your database table is missing the index. If no notice appears, no action is necessary.
1.4.5 (December 2025)
- Compatibility: Supports WordPress 6.9
1.4.4 (September 17, 2025)
- Compatibility: Supports PHP 8.4
- Increases minimum supported PHP version to 7.4
- Increases minimum supported WordPress version to 5.3
- Update plugin name in README files and main plugin file to “Native PHP Sessions” [#312]
- Update Troubleshooting section in README to be more defensive in mu-plugin [#308]
1.4.3 (November 13, 2023)
- Fixed a PHP warning when running the
pantheon session add-indexcommand on a single site installation. [#285]
1.4.2 (November 8, 2023)
- Fixed an issue with the
pantheon session add-indexPHP warning. [#276] - Fixed a syntax issue with the suggested WP CLI commands [#278]
- Made
wp pantheon session add-index,wp pantheon session primary-key-finalize, andwp pantheon session primary-key-revertfully multisite compatible. [#275]
1.4.1 (October 23, 2023)
- Fixed an issue with the
pantheon session add-indexcommand not working properly on WP multisite [#270] - Made the notice added in 1.4.0 dismissable (stores in user meta) & hides for multisite (an update is coming to iterate through all sites on a network) [#271]
1.4.0 (October 17, 2023)
For developers
Is this your plugin? Show off the numbers.
Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.
Best Native PHP Sessions alternatives
All comments plugins →FAQ
Native PHP Sessions: quick answers
Straight answers, pulled from live WordPress.org data.
Live data from WordPress.org · checked Sep 26, 2026
Is Native PHP Sessions free?
Yes. Native PHP Sessions is free to download and use from the official WordPress.org plugin directory.
Is Native PHP Sessions safe to use in 2026?
Native PHP Sessions works, but test it on a staging site before relying on it in 2026. It runs on 10K+ sites, is rated 4.9/5 and was last updated 10 months ago, and scores 46/100 on our health check.
How many websites use Native PHP Sessions?
Native PHP Sessions is active on 10K+ WordPress websites and has been downloaded 1,419,388 times since it launched in September 2014. It was downloaded 15,818 times in the last 30 days.
Does Native PHP Sessions work with WordPress 7.1?
Native PHP Sessions is officially tested up to WordPress 6.9.9, while the latest release is 7.1.2. It may still work, but try it on a staging site first.
What PHP version does Native PHP Sessions need?
Native PHP Sessions requires PHP 7.4 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.
When was Native PHP Sessions last updated?
The latest version, 1.4.5, was released on December 4, 2025 (10 months ago).
Who makes Native PHP Sessions?
Native PHP Sessions is developed and maintained by Pantheon Systems.
What are the best alternatives to Native PHP Sessions?
The most popular alternatives to Native PHP Sessions are Akismet Anti-spam: Spam Pro… (5M+ installs), Disable Comments (1M+ installs) and Antispam Bee (700K+ installs).
Powered by PageForge
Want thousands of pages that rank like these? Build them in an afternoon.
This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.
- CSV, Google Sheets & API data sources
- AI content, schema & internal links per page
- Works with Elementor, Gutenberg, Yoast & Rank Math
- Free on WordPress.org — no credit card