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) and need to update a lot of things at once in the same way. (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!

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, 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.

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. Used to have issues with longer reply chains, but it looks like that’s fixed now.

(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 category. 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:

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)

★★★★★ (Alt)

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.

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.)

Notes