Today’s article is a bit of a PSA: we’re working to spread awareness of five simple solutions that improve WordPress in key ways.

One of the best experiences in WordPress is, “Wow, I had no idea that existed.” WordPress is a huge ecosystem, and the thousands of smart people who’ve touched it over the last ten years have solved an awful lot of problems.

So in many cases, the only obstacle to taking a big win in WordPress—your life is suddenly better, with no downside—is knowing that the win is out there.

Today’s article is a bit of a PSA: an introduction to what I believe are five of the most important “WordPress wins”: simple solutions that improve WordPress in key ways.

Defining a Win

A “WordPress win,” as defined here, has the following qualities:

It’s free. It thoroughly and easily solves a problem in WordPress. The problem it solves is important and otherwise painful. It’s broadly useful across nearly all WordPress sites.

All five of these wins are well-known among WordPress developers, and if you’re well-versed in all of them, congratulations.

However, WordPress users, and even developers, often don’t know about surprisingly visible areas of WordPress wonderfulness, and shining a light into those corners is the aim of this article. If one in five readers learns for the first time about one in five of these features, I think that’s great—and I’m pretty sure we can hit those numbers.

Let’s get started!

1. Pretty Permalinks (WordPress Core Feature)

WordPress’s default permalink structure is “ugly” for both humans and search engines.

WordPress’s permalink structure—the way its URLs are generated—are “ugly” by default, looking something like: http://site.com/?p=7379 .

This default structure is ugly for two important reasons. First, a human can’t remember it. Second, Google and other search robots use a page’s URL as a way to understand its contents, and since the default structure gives no information, ugly permalinks sacrifice SEO for no good reason.

WordPress’s permalink structures are extremely easy to change. In the main admin menu (the menu beginning “Dashboard” along the left in the WordPress administration area), navigate to Settings > Permalinks. You’ll see a lot of options for new permalink structures.

Unless you have a specific reason to choose another one, probably the best and easiest permalink structure is the “Post name” option in “Common Settings.”

Once you’ve chosen this structure and saved your changes, your posts and pages will be prettily permalinked—automatically, across the site. For example, a post titled “Appraising Antique Cars” would now appear at http://site.com/appraising-antique-cars .

This is one of WordPress’s easiest wins for both Google and your users. Unless you have a particular reason not to, you should do it by default on every WordPress site you work with.

2. Akismet (Plugin)

Akismet is the best and only programmatic solution you need to prevent WordPress comment spam.

Akismet is one of only two plugins that come bundled with WordPress by default. The second one, Hello Dolly, is stupid, but Akismet is really important.

Akismet is the best and only programmatic solution you need to prevent comment spam on your website. Comment spam looks as follows:

Combined with active comment alerts (“Email me whenever anyone posts a comment” checked in Settings > Discussion), I’ve actually seen WordPress comment spam take down a site owner’s personal email. The solution was to install Akismet—a two-minute fix, but one which neither the site owner nor the original developer knew about.

Akismet slows spam comments to a trickle: you’ll get, at most, a few very sophisticated spam comments a day, rather than a firehose blast of gibberish swamping your site. (For advice on working with comments that do come through, see our article on the subject.)

Activating Akismet is a bit more complicated than activating a regular plugin, because you’ll first need an API key, which Akismet associates with a WordPress.com account. Follow Akismet’s instructions for generating the key, and then write down the key somewhere: you can use the same API key to activate Akismet on multiple sites, so you’ll only have to go through this generation process once. Don’t let this process dissuade you from getting Akismet, which is really the must-have plugin for every WordPress site.

3. All-in-One WP Migration (Plugin)

As it says on the tin, this plugin simplifies painful and difficult WordPress site migrations down to two clicks.

I’ve written about this plugin before, because it’s one of the best plugins I’ve ever seen.

WordPress site migration is painful and difficult. Every WordPress site is made up of a filesystem and a database. Migrating the two are two very different processes: file transfers versus MySQL exports and imports. What’s more, you can migrate everything properly and still have a wrecked site because of old information in the database (for example, hardcoded image links to http://oldsite.com/image.png ), as well as bad .htaccess rules (which relate to the web server’s expectation of where everything is located).

So it’s a mess. Manually migrating a WordPress filesystem and database can feel a bit like migrating the walls and roof of a house separately, while trying to keep the house itself from falling apart.

Enter All-in-One WP Migration, which does exactly what it says on the tin. Through a lot of very complicated internal machinations, this plugin simplifies the entire WordPress site migration process to two clicks: one to export the old site, and one to import it onto the new site. All the failure points of a site migration—from missing files to obsolete database data to bad .htaccess rules—are completely handled by default.

There are other relatively elegant migration solutions, but they tend to be paid, and in my experience they don’t have the “all-in-one” quality that gives this plugin its name. I’ll also mention that I’ve had occasional problems with this plugin, mostly on sites with bad hosting. (The plugin sometimes hits timeout limits and may inspire other problems from irritable servers.) But when it works, which is 90% of the time, it lets you forget all about the complexity of site migration. That’s worth checking out.

4. Enable Media Replace (Plugin)

WordPress has no “overwrite media” feature; this plugin adds it.

Along with Akismet, this is one of the two plugins I install on every WordPress site I work with, because it fills a “small but gaping” hole in WordPress core.

WordPress, by default, has no “overwrite media” feature. To take a simple example, let’s say we upload a PDF called brochure.pdf . Then we find a typo on the cover page, and we want to upload a corrected version. We’re forced to:

Delete the existing brochure, briefly breaking all links to the file across the site. Reupload the revised file, making sure it has the exact same filename (and is being uploaded in the same month) as the file it replaces. Otherwise, all existing links to the file across the site will remain broken, and must be fixed manually.

Enable Media Replace gives you this overwrite power. You can overwrite the site’s version of brochure.pdf with a file on your computer called brochure_typos_fixed.pdf , and the new file will simply adopt the brochure.pdf name and full permalink. You never have to break links across your site, or “delete and reupload” media you mean to simply revise or replace.

The only warning with this plugin has to do with image uploads: if you replace an existing image with a new image of different dimensions, WordPress will automatically generate image sizes based on the new dimensions. This will break links to automatically generated sizes of the old image, if those sizes are “soft-cropped” (resized) rather than hard-cropped (actually cut to fit).

For example, let’s say you have a soft-cropped image size that’s 400px wide. You’ve uploaded image.png , originally 1200px by 900px, and in one of your posts you’re linking to the resized version: image-400x300.png . If you now upload a new version of the image that is square (say, 1200px by 1200px), your link will break—since the correct link is now image-400x400.png .

That minor caveat aside, this plugin saves me minutes per week in WordPress, and that’s pretty nice for something that’s free and dead-simple to use.

5. Regenerate Thumbnails (Plugin)

This plugin helps you push the reset button on image sizes across your site—something WordPress can’t do by default.

Another thing it’s a bit crazy that WordPress can’t do is regenerate its own custom-generated image sizes. (By the way: “Thumbnails” are an obsolete term for these auto-generated sizes.)

In other words, images get auto-sized when they’re uploaded, but then those image sizes just sit there—no matter what image sizes are subsequently registered. To explain what this means, let’s take an example:

You upload a bunch of images, which WordPress automatically processes into its default sizes. (By default, these are: “Thumbnail,” 150px square; “Medium,” 300px along the largest dimension; “Large,” 640px along the largest dimension, and “Full,” the original file you uploaded.) You then install a plugin, TinyGrid, which displays all your images as a grid of very tiny 25px square images. (TinyGrid is made up; let’s pretend you’re trying to create some sort of “mosaic” effect on your site.)

TinyGrid registers a “Tiny” (25px square) image size. Once you install TinyGrid, any future images you upload will get the “Tiny” size. However, your existing images don’t get the “Tiny” size, and in WordPress there’s no way to make them.

So when you try to add an existing, already-uploaded image to your tiny grid, one of a couple of things could happen. First, TinyGrid could use a way-too-large version of the image, hurting your site’s performance. Or TinyGrid could simply break. In either case, the 25px square version of the image simply doesn’t exist.

Regenerate Thumbnails solves this problem. It combs through all the images on your site, and creates versions of those images that reflect the image sizes registered on your site now. So in our example, running Regenerate Thumbnails after installing TinyGrid would automatically generate “Tiny” versions of every image on the site, finally allowing the plugin to work properly. As in this example, “run Regenerate Thumbnails” is the final step in fixing many problems related to image sizing.

There are a lot more (and maybe better) examples of why you’d need to regenerate your image sizes. For example, when we redesigned WPShout around a year ago, we had to change all our featured image sizes to reflect the new design. We were definitely not going to delete and reupload every image on the site. Fortunately, we knew about Regenerate Thumbnails, and converting five years of image content to the new design’s sizes took something like three minutes.

In Conclusion…

These five features have massively improved my experience in WordPress. I hope they do the same for you.

So: What wins did we miss? 🙂

Image credit: greg westfall