WordPress Plugins (and ClassicPress too!)
Some WordPress plugins (and ClassicPress plugins too, though most are compatible with both) that Iâve used and which ones I recommend.
Writing
Classic Editor (WP)
â â â â â One of my must-have plugins on WordPress. I know the block editor is a major effort, but I still find Gutenberg gets in my way more than it helps. For me, enabling the Classic Editor is a necessity. (Not needed in ClassicPress, which doesnât have a block editor.)
Smart Hashtags (WP/CP)
â â â â â Simple and useful: it just converts #hashtags to post tags. This works great on several of my sites. (Discontinued but still available.)
Editing and Admin
ClassicPress Directory Integration (CP only)
â â â â â
I donât know why this isnât included by default, because this is what makes it possible to browse and install ClassicPress plugins and themes from your dashboard! After installing it, youâll be able to use both the WordPress and ClassicPress directories. I do have trouble searching for some keywords, but that seems to be an issue with the directory itself.
Broken Link Checker (WP/CP)
Another of my must-haves, and I was so relieved to find it works on ClassicPress too. Iâm still using the local checker, not the cloud version, because Iâd rather keep the backend data here if I can, but it does a great job checking and classifying all the links on your site and making them searchable. And it provides good suggestions for cleanup: If the page is redirected, itâll show you the final URL and let you choose to replace itâŠeverywhere. With actual broken links, you can type in a replacement, just remove the link, or let it find the most recent Wayback Machine copy. And you can do any of these for an individual link, or bulk-select a bunch and let it update every link to that other blog you link to all the time that moved from www.example.com to example.com last month.
This is actually the main thing I miss when working on sites in Eleventy. I havenât found a link checker for static sites or folders full of markdown thatâs as good as this one.
Search Regex (WP only)
Incredibly powerful search tool for your dashboard, especially useful if, for example, youâve moved to a new server (or a new site structure), or someoneâs changed their name, or any other reason you might need to update a lot of things at once in the same way. Risky too - make sure you preview any replacements first! (Sadly, this one isnât compatible with ClassicPress.)
Statify (WP/CP)
A simple stats package that runs on your own site, so you arenât sending visitor data to some third party service just to count page views. Not as full-featured as Jetpack Stats, but much more privacy-friendly! Good for the basic use case of âwhere are most of my visitors coming from and what are the reading the most?â
WordPress Importer (WP/CP)
Good for the main use cases: restore from backup, and moving posts between blogs. Unfortunately the image import doesnât seem to work (WordPress 6.3 with plugin 0.8.1), which makes it a pain to clean up image-heavy posts.
One thing Iâd like to do with this that I canât is to import another copy of a cross-post and merge the comment threads. As it is, the best I can do is import the duplicate copy and then use another plugin (or dig into the database) to move the comments around.
Reading
Contextual Related Posts (WP/CP*)
A related posts plugin that runs locally on your server instead of calling out to a cloud service like Jetpack does. Highly configurable, privacy-friendly, can show thumbnails or just titles, can cache results or calculate them on the fly. Comparable to YARPP, which is also good, but this one comes up with better results on my site.
Since version 4 of the plugin, running it on ClassicPress requires fixing a mismatch in WP version requirements, which can be done manually or with WP Version Modifier for CP.
Moderation and Security
Akismet Anti-spam (WP/CP?)
Does a good job of catching comment spam. But itâs a centralized cloud service, so you need to deal with getting an API key, commercial/personal licences, possibly paid subscriptions, and connecting to Automatticâs servers whenever someone leaves a comment. (Apparently itâs compatible with ClassicPress, but Iâve only used it on WordPress.)
Antispam Bee (WP/CP)
Privacy-friendly spam filter for your comments. Works quite well without calling out to a remote service, and doesnât require your visitors to be using JavaScript. (Seriously, I posted a test comment using Dillo and it showed up in the moderation queue!) No need to deal with API keys or licensing.
There are some optional tactics that will call a remote service for things like language identification, but so far itâs doing the job fine without them!
The only problem Iâve had with it is that it only acts on comments/pings to an individual post or page. It wonât protect a contact form, for instance.
Connections
ActivityPub (WP/CP)
(Almost) seamlessly connects your blog to the Fediverse. It doesnât auto-post to another server, it turns your WordPress blog into its own instance like a Mastodon server, so people can follow and reply to your blog directly from their Mastodon/GoToSocial/whatever account. Images are attached to the Fediverse view, and remote replies show up locally as comments. People can boost your post directly instead of just linking to it. And theyâre still adding more capabilities with each release.
(It doesnât let your blog follow other Fediverse accounts, but it can integrate with the WP Friends plugin, which does.)
Note that a lot of the settings arenât in the plugin config page, theyâre put in the relevant categories. Followers show up on your user profile. You ban an instance by putting it in the general comments blocklist.
Syndication Links (WP/CP)
Simple tool that keeps track of cross-posts. Remote links are shown as icons in a postâs footer and marked up with microformatsâ u-syndication so that IndieWeb-compatible software will recognize that this oneâs the source and the other refers back to it.
It can also create remote posts on Micro.blog, Bridgy Fed, or several sites supported by Bridgy. Iâve had trouble getting Bridgy to cross-post photos to Flickr, and for a while it had problems sending some formatting to Bluesky, but those are issues with Bridgy, not with this plugin. Unfortunately that also means I donât use the feature as much as I might otherwise.
Jetpack (WP only)
â â â ââ
At its core, Jetpack is about connecting your self-hosted WordPress site to the WordPress.com infrastructure so you can use its cloud services*. And it does those things well! Iâve used it for related posts, subscriptions, stats, contact forms, email subscriptions, social media connections and probably more over the years. There are free and paid tiers, and the free tier has been more than sufficient for anything Iâve wanted to use it for. And you can deactivate most modules if you arenât using them, so if you want to switch some features over to another plugin, you can keep the rest of your Jetpack modules.
The key thing to remember is that almost everything Jetpack provides is running on WordPressâs network. If youâre ok with that, great! Itâs an effective solution! If you prefer to keep things local, or if youâre required to by policy, or if you simply donât trust WordPress and/or Automattic, youâll want to look elsewhere. I finally dropped it because I was feeling guilty sending visitor data to a third party for statistics, and thatâs one of the few modules you canât turn off.
Some alternatives Iâve found that run locally and work well include:
- Statify (for locally-processed stats)
- YARRP and Contextual Related Posts (for, well, related posts)
My personal blog had so few email subscribers I didnât even bother looking for a replacement, though I think Iâm going to have to find something for Speed Force.
Optimization
Classic SEO (CP only)
â â â ââ
Provides all the features I was using Yoast for on WordPress â sitemaps, canonical URLs, metadata, etcâŠand a whole lot of actual SEO stuff that I donât use, and donât want to use. It does the job! But itâs really cluttered.
WP Super Cache (WP/CP*)
Major speedup for the typical use case. Iâve been using this caching plugin since before Automattic took over management. Since I donât get very much in the way of comments on my site, the vast majority of hits are anonymous and donât change what should be on the page next time, so a static cache helps a lot.
Since version 2 of the plugin, running it on ClassicPress requires fixing a mismatch in WP version requirements, which can be done manually or with WP Version Modifier for CP.
Yoast SEO (WP only)
I donât use most of the âSEOâ features. Mainly it was a convenient choice to handle sitemaps, an RSS footer linking back to the source, canonical URLs and metadata for link previews. Itâs good at all of these! But itâs also way overkill for what I want to use it for. (Not compatible with ClassicPress - Iâm currently using Classic SEO as a replacement.)
WP Version Modifier for CP (CP only)
The current ClassicPress code was forked from WordPress 6.2, which means any plugins installed on it will read it as WP 6.2 for compatibility purposes. But because the code has diverged, a plugin marked as needing WordPress 6.3 or later might still run on ClassicPress just fine. The most common reasons Iâve seen:
- The plugin uses newer block features, but doesnât require blocks.
- The plugin uses a newer library which has also been updated in CP.
- The plugin author doesnât want to keep older versions around for tech support.
In cases like these, you can either manually install a plugin and change its requirements, or you can use something like this plugin to tell the others that âoh, yeah, this is totally WordPress 6.5, not 6.2!â It wonât help if thereâs an actual incompatibility, but itâll do in a pinch.
Though I did have to modify one line to get it to run on my main blog in a subdirectory.