Ever wonder what's running under the hood here at CSS-Tricks? Well, it's been a while since we last shared the WordPress plugins used here on the site, and even longer since the time before that. We figure it's high time to pop the hood once again and see what's new here in 2015.
There are 40-plus plugins currently installed on this site. We won't cover all of them since we've written a few of them ourselves, but I've grouped the rest by functionality for the sake of organization:
- Content Delivery
- Search Engine Optimization
- Maintenance & Security
- Design & Editing
- Permissions & Moderation
- Selling Stuff
- The Ones You'd Expect
RSS and email are still an important way many readers receive the content and alerts that are published here. These are the plugins we use to optimize how those feeds and notifications are displayed and delivered.
- FD Feedburner Plugin: Setting the native WordPress RSS feeds to integrate with Feedburner isn't tricky in itself, but more advanced configurations require template changes, redirects and such. This plugin removes the need for all that in one fell swoop. The big idea used to be that forcing everyone to redirect (and thus subscribe) to the FeedBurner feed meant accurate tracking. But now that FeedBurner is essentially dead, that matters less. Still, having all subscribers in one place means, hopefully, moving them will be easier.
- Clean Notifications: This is an oldie-but-goodie we've been using since before the last roundup. Although it hasn't been updated in years, it continues to make default WordPress notifications much easier to read by removing a bunch of the extra clutter those emails typically include, by making real HTML links rather than URL strings.
Search Engine Optimization
Google is a primary source of traffic, and getting all the Google juice we can get out of our posts is helpful for keeping our numbers up. No one on staff can claim to be an SEO expert/guru/ninja/whatever, so we rely on a couple of plugins to help with the heavy lifting.
- Yoast SEO: I'd have a tougher time finding a site that doesn't have this plugin installed than one that does. It takes care of all the SEO best practices we might not otherwise think of, like proper page meta titles, canonical links, and even ways to customize the appearance of our content on search engine results pages.
- Better WordPress Google XML Sitemaps: Search engines care about XML sitemaps because they supposedly help their crawlers scour website pages. While the benefits are a bit intangible, evidence points to them being a good idea, and not having to do any work to keep them up to date is great. Yoast SEO has sitemap building capability too, but it was causing site slowness for us as it was having trouble with the massive amount of URL's the forums generate.
Maintenance & Security
This is a biggie around here. I flinched the first time I saw how big the database for this site is. While there are other ways we protect and back this stuff up besides plugins, these are a couple we use to help.
- SiteLock: This is a WAF (Web Application Firewall) service we use to monitor the IP addresses of incoming connections to the site. In other words, it passes all IP addresses through SiteLock's servers prior to hitting the site so the originating IP address is always known. This is super handy for attempted hacks where the IP address might be obscured by clever redirects.
- VaultPress: This backs up everything up—templates, data and all. Plus, it does it in real time on a separate server to help with redundancy. Set it, forget it, recover it. Oh yeah, and it's made by Automattic (the company behind WordPress) so it comes with a high level of trust.
- Advanced Post Caching: Even though this is rather old, it's created by Matt Mullenweg himself. It was actually recommended and installed by Erick Hitter from Automatic for us when he was helping us with some performance work.
- MinQueue: This plugin minifies and concatenates the site's styles and scripts, and provides a list of which ones are enqueued. This is particularly useful for all the assets that plugins need. Concatenating, minifiying, and caching those into single requests in an upgrade-friendly way is kinda awesome.
- W3 Total Cache: Caches all the things for faster page loads, especially on repeat visits. It also handles our CDN integration, which is a bonus. There are so many settings in here filled with technical jargon that it can be tough to wrap your mind around it all. Thankfully, there are helpful guides like this to help get things off the ground.
Design & Editing
We like to handle this stuff directly in the code as much as possible, but there are instances where a plugin can extend the functionality of WordPress to help make design decisions on the fly and posts much easier to write and edit.
- AddQuicktag: A simple, clean way to add custom tags to the WordPress text editor. We use a lot of code snippets in our posts, and this gives us a little shortcut to wrap those with the proper markup faster than writing it out by hand.
- Advanced Custom Fields: The easiest way to add additional fields to the page and post editor without having to write crazy functions. For example, we have a Custom Post Type of "Shifts" that we use to manage upcoming Office Hours sessions. All the custom data (like date, time, URL's, session topic, etc) are created from ACF.
- Advanced Excerpt: We've had this one around for a while, and it continues to do the trick of allowing markup tags in post excerpts. It also lets us create custom one-off excerpts on the fly using a simple function, rather than having to code a new one for each instance.
- Better Art Direction: This is a fork of the Art Direction that our pal Dave Rupert put together. The underlying concept is still the same as the original: injecting CSS and JS on a per-post and per-page basis. This lets us make one-off tweaks or customizations to a post without having to mess with the site's global CSS and JS files.
- Code Markup: Still the same solution we've been using to escape HTML markup in posts for years now. It searches for text wrapped in
<code>tags and escapes it (e.g turns < into <) for us before output, so we don't have to worry as much about escaping code ourselves.
- Public Post Preview: This lets us share a link to a post draft with anyone, which they can read without logging in. The majority of the time we use it to share a preview of a guest post so that the author can provide feedback or changes.
- WP-Polls: We publish polls on the site every month or so. In fact, there's one in the sidebar of this post, and you should take it! It's a neat way to get a (non-scientific) pulse on what the CSS-Tricks community thinks about certain topics and issues. This plugin is the engine behind that.
Permissions & Moderation
You may have noticed that post comments and forums threads are a big deal on this site. Building a solid, safe, and fun place for everyone to participate in the community is a tough job, but these plugins make it manageable.
- Admin Can Always Comment: Gives us the superhuman strength to comment on posts that are closed to comments.
- Akismet: This has blocked 1,331,013 spam comments on the site since the day it was installed. That's more than 1.1 million comments since the last time we did a roundup like this in 2012. Praise be!
- Anti-spam Pro: Catching spam in comments often requires something like a CAPTCHA. That works, but makes it harder to leave a comment. This plugin provides the same effect without the extra layer of effort for our readers.
- Avatar Manager: Yes, Gravatar is excellent and great and everything nice. At the same time, we like the idea of allowing people who register on the site to manage their avatar images directly on the site. This plugin makes that possible.
- bbPress: This is the thing that powers everything related to our forums. Several of the plugins we use are extensions of it to help moderate the activity of the forums, such as featured replies, reporting abuse, and email notifications.
- Featured Comments: This is another long-time citizen of our plugin community. It allows us to feature good comments and bury ones that we feel are not valuable to the discussion. I wouldn't say we have to use this often, but it does come in handy for keeping a good vibe around here. Chris talked about discovering this plugin in his post Curating Comment Threads.
- oEmbed in Comments: A handy plugin that recognizes media links and converts them to embedded media, a la YouTube videos. WordPress has been doing this in the post editor for a while now, and this extends it to comments. Particularly useful for [embedding Pens](http://blog.codepen.io/documentation/api/oembed/).
- QA Captcha: We use CAPTCHA for logging into the site. This plugin turns it into a question and answer format, rather than one of those scrambled images that are tough to read.
- User Switching: This one allows staff to log in as anyone else with a registered account. It's excellent for trying to replicate reported issues with accounts and for testing new features.
- Username Changer: WordPress does not allow registered users to change a username right out of the box. This plugin makes it possible. It actually came in handy for me when I needed to modify my username after joining the team.
CSS-Tricks is far from being an eCommerce site, but we do sell things, from t-shirts (sometimes) to Lodge memberships (always). We have a couple of plugins to make that happen.
- Restrict Content Pro: This is the magic behind The Lodge; it lets us make certain pages and posts available exclusively to current Lodge members.
- WooCommerce: WooCommerce needs little introduction (it helps you sell stuff on a WordPress powered site). In fact, Automattic acquired the company behind it earlier this year.
The Ones You'd Expect
WordPress comes with a few plugins by default, and promotes a few right out of the box. We have those, too.
- JetPack: This is less of a plugin than it is a series of plugins that bring some of the functionality of WordPress.com into a WordPress.org site. The modules we use are related to the forums or to backing up the site, and we have a couple of other custom extensions beyond that. Mostly we use it for its standardized support of Markdown, it's enhanced malicious login blocking, and offering the ability to subscribe to posts and comment threads.
- WordPress Importer: Imports posts into WordPress via XML. Comes with every WordPress installation.
- Hello Dolly: Just kidding. We took that one out long ago.
Phew, that's quite a list! While we do have a few other plugins installed, they are functionality plugins we wrote because we like to keep functions as plugins as often as possible.
Do you use similar plugins on your WordPress site? Are there any alternatives we should check out? Let us know in the comments.