BLACK FRIDAY
Save 59% on PageForge Annual $191/year $485/year
Claim 59% Off →
Keyring icon
Possibly abandoned Tested up to 6.2.13 #24 in authentication

Keyring

An authentication framework that handles authorization/communication with most popular web services.

Active installs1K+1K+ tier
Downloads · 30d221▲ +13.9% vs prev. 30d
Rating4.3/56 reviews
Health score36/100At risk
All-time downloads96.2KSince Mar 2012
Support resolved—No recent threads
RequiresWP 4.0PHP any
Downloads · 7d59▼ -21.3% week over week
Our verdict

Consider an alternative

Keyring shows warning signs in 2026 — compare the alternatives below before installing. It runs on 1K+ sites, is rated 4.3/5 and was last updated 3 years ago, and scores 36/100 on our health check.

  • No update in 3 years
  • Only tested up to WordPress 6.2 (latest is 7.1)

How does it stack up?

Side-by-side on installs, updates, ratings & support

Daily downloads

4812Jun 29Aug 12Sep 26
Yesterday10
Daily average (1y)4
Peak day16Sep 15, 2026
Last 12 months1.6K

Download spikes usually follow a new release — each site that auto-updates counts as a download.

Rankings

Where Keyring stands today

WordPress.org search rankings

Live position in the plugin search, top 100
KeywordPositionCompeting pluginsCategory
authentication >100 4,263 Best authentication plugins →
authorization >100 1,956 Best authorization plugins →
http basic >100 4,075 Best http basic plugins →
oauth >100 1,436 Best oauth plugins →
security >100 10,000 Best security plugins →

Version adoption

Share of active sites per release.

  • 3.079.2%
  • 2.08.5%
  • 1.95.5%
  • Other6.8%

Rating breakdown

★★★★★★★★★★ 4.3 from 6 reviews

  • 5★83.3%
  • 4★0.00%
  • 3★0.00%
  • 2★0.00%
  • 1★16.7%

About Keyring

From the official readme · v3.0

Description

See the Keyring Developer’s Guide for more details.

Keyring provides a very hookable, completely customizable framework for connecting your WordPress to an external service. It takes care of all the heavy lifting when making authenticated requests, so all you need to do is implement cool features and not worry about these tricky bits.

Out of the box, Keyring currently comes with base Service definitions for:

  • HTTP Basic,
  • OAuth1, and
  • OAuth2.

And includes ready-to-use definitions for:

You can very easily write your own Service definitions and then use all the power of Keyring to hook into that authentication flow. See the Keyring Developer’s Guide for more details.

Contributions are welcome via Github pull request.

Installation

  1. Install Keyring either via the WordPress.org plugin directory, or by uploading the files to your server
  2. Activate Keyring in Plugins > Installed Plugins
  3. Go to Tools > Keyring > Add New and you will be prompted to configure services before making user-specific connections to them

Frequently asked questions

How Do I Use Keyring in my Plugin?

Check out the Keyring Developer’s Guide. See Keyring Social Importers for an example. You can also extend Keyring Service classes directly, rather than attaching the service as a property to an object (like the Importers do).

Will Keyring work on my WordPress?

Keyring requires PHP 5.3+ to work, because it makes use of some modern features in PHP like late static binding and abstract classes. Other than that, as long as you meet the minimum required WP version, you should be OK to get started. If you get a cryptic “T_PAAMAYIM_NEKUDOTAYIM” error, you need to upgrade to PHP 5.3+. If you get an error about “Parse error: syntax error, unexpected T_FUNCTION in …/wp-content/plugins/keyring/keyring.php on line 50” you also need to upgrade PHP. Your webserver will also need to be able to make outbound HTTPS requests for some operations with some services to…

How do I configure Services?

Most services within Keyring require some sort of API key/secret before you can connect to them. Go to Tools > Keyring > Add New. Click the name of a service in the bottom section, or ‘Manage’ next to one of the services in the top section. Enter your API details (you will need to get those from the specific service, most config screens provide links/details on how to set them up). Click ‘Save Changes’. Now you should be able to create a new connection to that service from the “Add New” screen.

How do I connect to ‘x’ service?

Go to Tools > Keyring > Add New. Click the name of the service in the top section (if it’s in the bottom section, then that service has not been configured for API access yet, see above). Follow through any authentication prompts to connect. You should now be connected, and your connection details should be listed on the Keyring admin page (which you will be redirected to once authentication is complete).

Now what?

Keyring just provides a framework for handling connections to external services. You need to download another plugin which makes use of Keyring to do anything useful (e.g. an importer or content-syncing plugin).

How does Keyring store tokens?

By default, on a single-site install, Keyring stores tokens in your wp_posts table with a custom post type of ‘keyring_token’ Coming soon, Keyring will store tokens for a multi-site install in a specified blog/site’s wp_posts (so you can set a single site aside for just token storage if you like) Keyring provides a framework for you to write your own token storage engine (see store.php and includes/stores/).

How do I add to the list of services Keyring can connect to?

Add files to includes/services/extended/ that either implement one of the includes/services/core/ service foundations, or start from scratch. Follow one of the existing service definitions for a template, and see service.php in the root of Keyring for some detail on methods you need to define, and optional ones that might make your life easier.

Changelog

3.0

  • CHANGE: Default branch has been renamed to trunk to match WordPress projects. Update your refs.
  • Enhancement: BREAKING: Removed delicious service (they have shut down completely). Props @sanmai.
  • Enhancement: BREAKING: LinkedIn now uses OAuth2. Props @glendaviesnz.
  • Enhancement: fetch_profile_picture method added to Twitter service. Props @glendaviesnz.
  • Enhancement: Added a GitHub Service definition, props @alperakgun.
  • Enhancement: Added a Google Drive Service definition, props @scruffian.
  • Enhancement: Trim spaces off API keys etc to avoid mistakes when copy/pasting. Props @kbrown9.
  • Enhancement: Allow all 2xx response codes to be considered “Success” for all requests, for all protocols. Props @bgrgicak for the proposal.
  • Enhancement: Add translator comments. Props @scruffian.
  • Enhancement: Define the self endpoint for Tumblr, and add helper methods to retrieve user info. Props @glendaviesnz.
  • Enhancement: Add a keyring_{service}_request_scope filter for OAuth2 services, matching the existing filter for OAuth1 services. Props @glendaviesnz.
  • Enhancement: Add a 'full_response' param to Keyring_Service_OAuth2::request(), which will cause the method to return the full HTTP response object. Props @glendaviesnz.
  • Enhancement: Some services (looking at you, Strava) seem to double-encode redirect URIs, resulting in “corrupted” parameter names. Added a method to clean that up.
  • Bugfix: Make the Google services always request a refresh token for offline access. Props @kbrown9 and @atrniv for input.
  • Bugfix: Update Strava to use refresh tokens and offline access, per their new API requirements. Props @mdrovdahl for pointing it out.
  • Bugfix: Update use of add_submenu_page() to comply with WP 5.3. Props @jhwwp (wp.org) for the fix.
  • Bugfix: Apply the keyring_access_token filter consistently in Google Services. Props @pablinos.
  • Bugfix: Use static “Cancel” URIs in UIs. Props @pgl.
  • Bugfix: Remove some WordPress.com-specific code from Eventbrite.
  • Bugfix: Ensure that PUT requests have a Content-Length header set. Props @glendaviesnz.
  • Bugfix: Compatibility with more recent versions of PHP7, and PHP8.
  • Bugfix: Apply keyring_access_token filter properly in Instapaper.
  • Bugfix: Remove redunant is_service check (enforced via method call signature). Props @sanmai.
  • Bugfix: Remove hover event on action links in Service listing UI.

2.0

  • Bugfix BREAKING: Remove invalid reference to $this in error handler. Changes number of params passed to keyring_error action.
  • Bugfix BREAKING: expires values in tokens MUST be UNIX timestamps now.
  • Enhancement BREAKING: All Google services now share a base service (0-google-base.php)
  • Enhancement: Added a Pocket Service, props @roccotripaldi
  • Enhancement: Added a Google Mail (Gmail) Service, props @poisa
  • Enhancement: Added a YouTube Service definition, based heavily on @superbia’s Google Analytics one.
  • Enhancement: Add a composer.json config file (Keyring is now on Packagist at https://packagist.org/packages/beaulebens/keyring)
  • Bugfix: Handle empty usernames in the Strava Service.
  • Bugfix: Updated links in readme for Google Analytics and Contacts to their user-facing URLs.

1.9

  • Enhancement: Added a Google Analytics Service definition, props @superbia.
  • Enhancement: Added a Strava Service definition, props @mdrovdahl.
  • Enhancement: Add a “Settings” link to the plugin listing if you’re using the bundled Admin UI.
  • Bugfix: Remove deprecated calls to screen_icon().
  • Bugfix: Fitbit tokens now refresh automatically.
  • Bugfix: Tumblr now requires HTTPS, so update all request URLs. Props @westi.

1.8

  • Enhancement: New Jetpack/WordPress.com service definition.
  • Bugfix: LinkedIn scope require modification because connections were failing.
  • Enhancement: Extensive linting/code cleanup, including removing some redundant code.

1.7.1

  • Bugfix: Only allow users with manage_options to access management UIs. Props Laura Lee for disclosure.

1.7

  • Enhancement: Added Pinterest Service definition.
  • Enhancement: Added Nest Service definition.
  • Enhancement: New filter for modifying credentials before saving (keyring_{service}_basic_ui_save_credentials).
  • Enhancement: Update all services so that token-meta filters use a dynamic service name, making it much easier to extend existing services. Props @jjj.
  • Bugfix: Use sentence parameter when searching for existing tokens, to avoid WordPress doing weird word-splitting. Props @dashaluna.
  • Bugfix: Correct URL for Instagram to load profile details (required for a working connection). Props @dashaluna.
  • Bugfix: Correct the URL for creating a Twitter app. Props @jjj.
  • Bugfix: Handle avatar URLs better within the admin UI. Props @jjj.
  • Bugfix: Correct URL for registering Eventbrite apps.

Full changelog on WordPress.org →

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.

Active installs badge Rating badge Health score badge

Best Keyring alternatives

All authentication plugins →
Alternatives
Rank Plugin Active installs Rating Updated Health
1 Limit Login Attempts Limit Login Attempts Limit rate of login attempts, including by way of cookies, for each IP. Fully customizable. by Automattic 300K+ ★★★★★★★★★★ 4.6 (202) 3 years ago 48
2 WPS Limit Login WPS Limit Login WPS Limit login limit connection attempts by IP address by NicolasKulka 100K+ ★★★★★★★★★★ 4.9 (83) 1 week ago 81
3 Two Factor Two Factor Enable Two-Factor Authentication (2FA) using time-based one-time passwords (TOTP), email… by WordPress.org 100K+ ★★★★★★★★★★ 4.8 (208) 6 months ago 60
4 WP-Members Membership Plugin WP-Members Membership Plugin The original WordPress membership plugin with content restriction, user login, custom… by Chad Butler 50K+ ★★★★★★★★★★ 4.6 (273) 3 weeks ago 89
5 Google Authenticator Google Authenticator Google Authenticator for your WordPress blog. by Ivan 20K+ ★★★★★★★★★★ 4.3 (135) 1 month ago 83
6 miniOrange 2FA – Two Factor Authentication for WordPress (OTP, SMS, Email, Google Authenticator) miniOrange 2FA Free 2FA plugin for unlimited users with Passkey, Google Authenticator, Email/SMS OTP, Push… by miniOrange 10K+ ★★★★★★★★★★ 4.5 (385) 6 days ago 88
7 WP Limit Login Attempts WP Limit Login Attempts Limit rate of login attempts and block IP temporarily. Brute force attack protection. GDPR… by Arshid 10K+ ★★★★★★★★★★ 4.6 (300) 2 weeks ago 88
8 Login for Google Apps Login for Google Apps Simple secure login and user management through your Google Workspace for WordPress (using… by Syed Balkhi 10K+ ★★★★★★★★★★ 4.6 (64) 1 year ago 54
9 Login by Auth0 Login by Auth0 Login by Auth0 provides improved username/password login, Passwordless login, Social login… by Auth0 10K+ ★★★★★★★★★★ 3.1 (18) 2 years ago 34
10 Two Factor (2FA) Authentication via Email Two Factor (2FA) Authentication via Email Enable one-click login with this WordPress Two-Factor Authentication (2FA) plugin… by Sully 9K+ ★★★★★★★★★★ 5 (4) 2 weeks ago 83

FAQ

Keyring: quick answers

Straight answers, pulled from live WordPress.org data.

Live data from WordPress.org · checked Sep 27, 2026

Is Keyring free?

Yes. Keyring is free to download and use from the official WordPress.org plugin directory.

Is Keyring safe to use in 2026?

Keyring shows warning signs in 2026 — compare the alternatives below before installing. It runs on 1K+ sites, is rated 4.3/5 and was last updated 3 years ago, and scores 36/100 on our health check.

How many websites use Keyring?

Keyring is active on 1K+ WordPress websites and has been downloaded 96,193 times since it launched in March 2012. It was downloaded 221 times in the last 30 days.

Does Keyring work with WordPress 7.1?

Keyring is officially tested up to WordPress 6.2.13, while the latest release is 7.1.2. It may still work, but try it on a staging site first.

When was Keyring last updated?

The latest version, 3.0, was released on April 25, 2023 (3 years ago).

Who makes Keyring?

Keyring is developed and maintained by Beau Lebens.

What are the best alternatives to Keyring?

The most popular alternatives to Keyring are Limit Login Attempts (300K+ installs), WPS Limit Login (100K+ installs) and Two Factor (100K+ 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
Sarah is here to help!
Hi there! 👋 Need help finding what you're looking for?
Sarah
Sarah
Online & Ready to Help
Hi there! 👋 Need help finding what you're looking for?

We'll use this to continue our conversation

Just now ✓ Verified

Join 500+ SEO Pros Scaling Their Strategy

Get exclusive programmatic SEO tactics, AI content workflows, and the latest PageForge updates delivered straight to your inbox. Stay ahead of the algorithm.

We care about your data in our privacy policy.