How To Do A Blog Content Audit (Without Nasty Spreadsheets). My Custom System For Managing Content In Wordpress.

Doing a content audit on your blog archives is useful for optimizing your marketing, SEO and traffic. But, how we can we do one without getting head deep into spreadsheets?

Have you been blogging for a little while now? Got a lot of posts back there in the archives? Then, listen up…

It is probably time to do a content audit.

The motivation for this post started right here at the Blog Marketing Academy. I had been thinking of doing a content audit for awhile, but just never did. Then, I was doing an Office Hours call for my LAB members in November 2018 and one of the members asked me how many blog posts I had in my archives.

The answer was 1,448.

At the time, I had 1,448 blog posts in my archives. Posts going all the way back to 2006. After all, what is today known as the Blog Marketing Academy actually got started quite some time ago. It started as WebbyOnline, then later transitioned to, then eventually rebranded to Blog Marketing Academy. The entire time, the Wordpress database stayed intact which meant all those posts were still there.

And even though today I practice The Redwood Strategy and do go back to update certain posts periodically, the truth is that it had been so long that I needed to do the same thing to everything. What’s the point of doing the Redwood Strategy on 30-50 posts if I still have over 1,400 posts sitting there doing nothing?

So, I set out to do a content audit. Really, the first real one I’d ever done.

As of this writing, my blog archives is down to 770 posts. More than likely, I’ll be removing even more as my content audit is ongoing. But, as it is (in January 2019), I’ve deleted 47% of my blog posts.

I’ve developed a simple way to do it. The way I do it is better for long term usage – and it doesn’t involve the use of a bunch of CSV exports and fancy spreadsheets like a lot of others use. In this post, I’m going to share it with you.

[highlight]At the end of this post, you’ll be able to get a full walk-through behind the scenes on how this system is built, along with a file you can import to automatically duplicate my field setup on your own blog. But, read the post first so it’ll make sense.[/highlight]

What is A Content Audit?

A content audit is when you revisit your entire blog archives and bring the entire thing up to your present standards. You’re deleting the crap, doing a bunch of updates, and optimizing for conversions.

[click_to_tweet tweet=”A content audit is when you revisit your entire blog archives and bring the entire thing up to your present standards. You’re deleting the crap, doing a bunch of updates, and optimizing for conversions.” quote=”A content audit is when you revisit your entire blog archives and bring the entire thing up to your present standards. You’re deleting the crap, doing a bunch of updates, and optimizing for conversions.”]

The basic actions you will be doing during a content audit are:

  1. Deleting outdated blog content that gets little to no traffic.
  2. Updating content that is still relevant or worth keeping.
  3. Centralizing content so that you avoid too much overlap. This could mean combining posts or simply cross-linking them.
  4. Optimizing past content for effective conversion (i.e. content upgrades, lead magnets, etc.)

You’re also going to learn some very useful data about your site and your audience in the process. For instance…

  • Which pages are responsible for most of your traffic?
  • What are the “hot topics” for your market and which topics do they most connect with?
  • Which posts are just sitting there taking up space?
  • What are the gaps in your existing content that you should probably fill with new content?

Depending on the size of your archives, this can be a big project. It won’t be something you just sit down and do in a day or two.

As you can imagine, starting with 1,448 blog posts and having never done a full content audit before, this is a massive ongoing project for me. It starts out pretty easy because most of those earlier posts are utter garbage and you can just delete them. But, soon you start getting into optimization and updating and that is far more time consuming.

Ideally, you would have some tracking system for going back and updating/reviewing blog posts on a routine basis. You’d likely do a content audit once per year. If you do that, an audit won’t take long.

Why Even Do A Content Audit?

In an ideal situation, your blog would be fully optimized and updated so that every blog post in the archives serves a purpose. Every post would be:

  • Up to date and provide value to people who arrive via search
  • Fully integrated and cross-linked within your own blog (helps with SEO)
  • Optimized for SEO in all the factors that matter today for SEO
  • Optimized to fulfill a marketing function so that it can be used as a marketing asset long term.

In other words, you don’t have crap back in the archives that are just sitting there not pulling any weight.

The benefits of this from a marketing perspective should be obvious. If every blog post in your archives is designed to attract new leads, move people into effective calls to action, or serve some other purpose in your marketing funnel, then that’s just going to help your business in every way.

But, what about traffic?

Many sites have reported nice traffic increases after doing a content audit and deleting blog content. Siege Media saw a 50% traffic increase after deleting 15% of their posts. Todd Tresidder talked on the SPI podcast about how he tripled his traffic after deleting a third of his content. There are other examples out there.

Why would deleting traffic help get more traffic?

It presents a cleaner footprint to Google and gives Google what it wants. Many bloggers think that the more you post, the more Google likes you. But, that’s not necessarily true. What Google wants is useful, updated content that is high-value. What Google doesn’t want is low-value content that isn’t updated.

[click_to_tweet tweet=”What Google wants is useful, updated content that is high-value. What Google doesn’t want is low-value content that isn’t updated.” quote=”What Google wants is useful, updated content that is high-value. What Google doesn’t want is low-value content that isn’t updated.”]

As your archives get larger, it increases the size of your footprint. All those posts are going into your XML sitemap. While the XML Sitemap is mistakenly thought by many to be the main avenue for telling Google what to index, it is still important in defining the pages that you think Google should index. This can use up your crawl budget on useless garbage. As ContentKing explains it

Crawl budget is a term invented by the SEO industry to indicate a number of related concepts and systems that search engines use when deciding how many pages, and which pages, to crawl. It’s basically the attention that search engines will give your website.

In short, the search spiders only have so much attention they can give you. If that attention is being spent on crap, then it will affect your search rankings negatively. On the flip side, if you clear out the weeds by deleting the old, under-performing content while simultaneously updating the content that you leave in place, then your crawl budget is better spent on content that you WANT Google to see.

[click_to_tweet tweet=”If you clear out the weeds by deleting the old, under-performing content while simultaneously updating the content that you leave in place, then your crawl budget is better spent on content that you WANT Google to see.” quote=”If you clear out the weeds by deleting the old, under-performing content while simultaneously updating the content that you leave in place, then your crawl budget is better spent on content that you WANT Google to see.”]

There is more to getting more traffic than deleting content, of course. But, clearly a content audit (and doing it regularly) is a fundamental component of a solid SEO strategy.

Doing A Content Audit = Getting Buried in CSV Files And Spreadsheets?

There are a lot of sites out there that discuss how they do content audits.  There’s some really good data out there. For instance, Single Grain has a really stellar tutorial on how they do a content audit.

However, as you will see with their tutorial and many others on the subject, you will find some common themes:

  • They get really spreadsheet happy. Tons of CSV exports and imports, combining data, etc.
  • They usually rely on fairly expensive SEO tools.

Simply put, they make it complicated. Some of these tutorials were written by people who do SEO for a living, so they love spreadsheets. 🙂 But, if you’re not a spreadsheet lover, it would be easy to get overwhelmed. Plus, the action of keeping that spreadsheet useful over the long haul is going to prove tedious.

Case in point, when I first began my content audit, I started going that same route. I pulled traffic reports out of Google Analytics, exported the data to a spreadsheet. I then found a plug-in to export my blog posts out of Wordpress along with word counts. Before I had even gotten into things like social sharing data, backlinks and the like, I already had a few spreadsheets that I wasted a few hours trying to figure out how to merge together.

Instead of actually working on my content, I was instead spinning my wheels trying to compile a friggin’ spreadsheet before I could even start my content audit!

[click_to_tweet tweet=”Doing a content audit on your blog doesn’t have to involve a big, complicated spreadsheet that takes hour to build.” quote=”Doing a content audit on your blog doesn’t have to involve a big, complicated spreadsheet that takes hour to build.”]

The ironic thing is that much of that information that I was trying to compile into a spreadsheet was already right there inside of Wordpress. So, why waste time moving the data and spinning my wheels like that?

The good news is…

I found a better way.

Now, that doesn’t mean there’s no benefit to having such a spreadsheet. Doing a content audit is a project that can be done in a number of different ways. What I am going to present below is how I do it. It works for me. I find it simpler than an army of CSV files and spreadsheets.

The Smarter Way (At Least In My Opinion)

The way I see it…

[click_to_tweet tweet=”If Wordpress is where all our content sits, we should be able to do our content audit inside of Wordpress.” quote=”If Wordpress is where all our content sits, we should be able to do our content audit inside of Wordpress.”]

One way to go is dedicated plug-ins such as the Content Audit plug-in. This plug-in can be a handy tool, but it is not what I ended up using.

What I ended up building uses a combination of different plug-ins. Each of these plug-ins have capabilities that make them useful way beyond performing a content audit. Each of them have their own unique powers, however when brought together they make it much easier to do a content audit internally inside of Wordpress.

The plug-ins I rely on are:

Advanced Custom Fields is an incredible plug-in that allows you to use Wordpress’s in-built custom fields, but do so in a way where you can build them into your interface, have different fields types, and more.

I make heavy use of ACF internally for a number of different things. For the purposes of our content audit, however, I have certain tracking fields added to my blog posts for the purposes of the audit. I’ll share those fields below.

Admin Columns is an awesome plug-in that allows you to control the listings of content inside your Wordpress admin. You can fully customize how your content is shown inside of Wordpress. With the PRO version, you can have different column sets, inline editing and more. Most importantly, though, is that the PRO version has integration with Advanced Custom Fields. You’ll see below how that comes in handy.

Monster Insights integrates your site with Google Analytics. I use the PRO version myself and one of the handy features useful for a content audit is Page Insights that is integrated into the posts table in Wordpress. With one click from inside Wordpress, I can view the traffic stats on any post for the last 30 days. This proves to be a time-saver when doing a content audit.

Social Warfare is, of course, the plug-in I use for social media buttons on this site. For the purposes of our content audit, though, it is handy to be able to show the number of social shares on any post right on the list of posts.

Lastly, the Worth The Read plug-in is designed to calculate read time as well as show a progress bar as a reader scrolls down a blog post. Useful for a content audit is the fact that Worth The Read stores the word count as a custom field in the database. By pulling and showing the word count on the list of posts, that’s yet another data point that I’m bringing forward without having to do any CSV exports.

Now, one thing I will say here is…

Yes, these plug-ins will cost you a little money. The version of Admin Columns you’d need will cost $99. Advanced Custom Fields is free and you could probably get along just fine with the free version for most purposes – including our content audit. Both Monster Insights and Social Warfare have free versions as well. You could probably use the free version of Social Warfare, however if you want the Page Insights that are handy for our content audit, you’ll need the Pro version of Monster Insights.

One thing to keep in mind, however, is that almost any REAL way of doing a content audit is going to involve paid tools. You could do it without spending anything at all if you were so inclined. You’re more than welcome to do it that way. 🙂

Here’s The System I Built Inside Wordpress

To give the bird’s eye view, here’s a screenshot of a list of posts inside Wordpress admin:

Notice how I’ve got several custom columns in this list:

  • Done (shown by the little check mark). This field is a simple yes/no field so I can mark the post completed in terms of my content audit.
  • Status. The status of the post within my content audit. New, In Progress and Done are the statuses.
  • Title. Obviously.
  • Modified. The date the post was last edited.
  • Last Review. This is the date that I last evaluated the post to see if updates are needed.
  • Shares. The # of social shares, powered by Social Warfare.
  • Insights. Clicking that icon pops up the Page Insights from Monster Insights so I can see traffic within the last 30 days without leaving the admin panel.
  • Words. The word count of the post, allowing me on quick glance to see if this is a more developed post or a short, low-value post.
  • Audit Action. For me to track my intention with the post. Options are Keep, Update, Consolidate, Optimize and Remove.
  • Next Review. The date I decide I’m going to circle back and look at this post again. I can then filter/sort by that column later in order to concentrate on the posts I need to at any given time.

When I am editing any post, I have a section in there to control all these fields:

These fields are in the sidebar of the post editing interface. All of these fields were set up using Advanced Custom Fields. It has a great interface for controlling the field types (like dropdowns), interface elements like popup calendars for controlling dates, and even where you’d like to show the fields.

I use Admin Columns to pull the fields I want into the post list, as you see in the photo above. But, how do I do this without screwing up the main post list? Obviously, the content audit fields aren’t the only fields I want to see. Well, the Admin Columns PRO takes care of this with column sets.

On the post screen, I have a dropdown where I can pull up different versions of the same listing to display whatever data I want:

When I choose the “Content Audit” screen, I see the fields above. “Original” is the standard list of posts like you’re used to in Wordpress. Then, I have another one for “CTA Mapping” that just shows me the categories and tags assigned to posts (which I use to automatically assign calls to action).

Another feature of Admin Columns Pro that I use during a content audit is the Inline Editing. You can set certain fields where you can change the value without having to enter the post editing screen. For instance, if I wanted to set a post to “Remove” because I can quickly determine it is a crap post that I intend to delete, I can set that field without pulling up the full editing interface.

Now, the beauty of using Advanced Custom Fields and Admin Columns together is that you can design any system or set of screens that you need for your own purposes. You’re not stuck with whatever some plug-in creator designed to include for you.

If you need or want additional fields that you need for your own tracking, you can create them. Ideas I’ve had include:

  • A dropdown of team members so you can assign who is currently working on a post (different than the post author) if you have a multi-person content team.
  • Using an ACF Repeater Field to have an internal changelog on any post, so you can track every change you did and what you did.
  • Use the Checkbox field with ACF to build in your own process checklists for every post and track them right there in the interface.
  • An internal scoring system where you can score your own content on how good you think it is.
  • Use a Repeater field for tweets so I can pre-write a bunch of different potential ways to tweet the post out, thereby giving my VA material to tweet the post into the future and pre-schedule it.

You’ve got a lot of possibilities. You can customize the whole thing and build your Wordpress interface to suit your own internal processes. And in terms of doing a content audit, you’re not exporting a single CSV file! 😉

How I Perform My Content Audit

So, with these fields built into my system, I am starting at the beginning of the archives and moving forward. I simply go to my list of posts, go to Page 1, and I start working my way up. In my case, I did a LOT of deleting in the beginning because my first posts were total garbage and over 13 years old!

Here’s the basic process I follow…

In my “Content Audit” screen,  I view the data for the post in order to quickly give me a sense of the post.

  • If the last updated date is a long time ago, I know this is an old post.
  • Date of Last Review tells me when I last looked at the post. Now, since this is my first go at it, this date is missing for almost every post right now. As I proceed, I am updating this field to tell me when I last looked at it.
  • Shares. If the post is getting decent social shares, that’s a sign that I might want to keep this post. If it is zero or single digits, then I know it didn’t perform very well.
  • Insights. I’ll click this button to see traffic for the last 30 days.
  • Words. Low word counts tell me this is a short, low-value post. Higher word counts mean, usually, a higher value, more developed post.
  • Audit Action. I can use this to track my intentions with the post.
  • Next Review. The date I intend to circle back and evaluate this post again.

By combining the “big picture” of the date, word counts, shares, and traffic, I can make a good educated guess on what will need to be done with this post.

MonsterInsights gives the bird’s eye view on traffic right within Wordpress with Page Insights.

I wish you could display more than 30 days of history. For audit purposes, I’d prefer to look at a 90 day period. Perhaps they will build this into a future update of the plug-in. Keep in mind, however, that this is all coming from Google Analytics. You can always pull up Analytics in a separate browser tab to evaluate the traffic on this post for any timeframe you like.

I ALWAYS visit the actual post, too. Even if my numbers are showing that this is a post I’ll likely want to delete, I will always check the content by viewing the post. Perhaps that content can be re-used somewhere else. For instance:

  • Could it be worked into another better developed post?
  • Could it be used as an issue of The Edge newsletter?

If I think I have a use for the material somewhere else, but it just isn’t performing on the blog, then I will usually save it before flagging the post for removal. In my case, I’ll clip the content into Evernote before removal from the blog.

In addition, I will sometimes check for backlinks to the post before flagging for removal. There are a number of paid tools that can do this, but another way to do it (for free) is to use Google Search Console. This will show you how your site is looking and performing in the eyes of Google. There’s quite a lot of information you can learn from Search Console, but one of them is backlinks that have been indexed to be linking to your blog post.

To get to this screen…

  1. In the menu, click on “Links” under the “Manual Actions” section.
  2. Under “External Links”, click on “More”.

Now, this screen will be a raw list of URLs from your site. To see data for one particular page, you’ll need to filter the list.

Click that icon and select “Target Page” as your filter option. Then, enter the full URL to the page you want to view link data for. If you then click on the entry itself, you can view the actual sites which have links pointing to this post on your site.

Now, what do you do with all this data? Again, it is just another data point by which to evaluate what to do with your post. If your post has barely any links to it or the links are pretty low quality, then that’s an indicator (in context with the others) on whether you can delete the post. If your post has some decent backlinks, then you’d want to keep the post and update it.

Making Judgement Calls On What To Do With Your Posts

You’ve got a lot of data at your disposal here that gives you a sense on whether your post is a performer or not. Obviously, posts which are performing OK or very well, you will definitely keep. The lower performers (or the ones sitting there doing nothing) could be deleted, however you may elect to update it instead because the material is good.

So, it always comes down to making judgement calls as you go. Here’s the general decision tree that I use:

As I am going through these posts and making judgement calls on them, I am also keeping my eye on the big picture. For instance:

  • I look for gaps on the content on my blog, or topics I don’t cover very well.
  • I look for opportunities to combine posts together into a new Redwood post.
  • I make note of the posts which are performing well in search, traffic, or socially and these may get extra attention from me in terms of optimization for calls to action.

And as I go, I am adding more post ideas to my to-do list and extending out my content calendar. Obviously, when I flag a post to be updated, it doesn’t mean I have the time to update it right away. When I get to it, I will update the post then change it’s status to “Keep” and mark it DONE.

By doing this and using my “Content Audit” screen, I can easily maintain my workflow and not duplicate my efforts. I only have to decide once what to do with a post then I won’t waste my time doing it again because I forgot what my thoughts were.

What To Do With Each Post You Update

If I flag a post as “Consolidate” or “Update”, that’s when the real work begins. It is time to actually do something with that post and that takes longer than deciding what need to be done.

Rather than repeat myself, I’ll simply direct you to 2 important blog posts all about the best ways to prepare and optimize a blog post:

  1. The Ultimate Guide To Search Engine Optimization For Bloggers (2018 SEO Guide)
  2. Anatomy Of The Perfect Blog Post: A Complete Guide To Ideal Blog Post Structure And Formatting

So, as I update a post, I am keeping everything in those posts in mind.

As I make changes, I’m also obviously ensuring the material is up-to-date. I had some posts which were still walking about Myspace like it was still a thing! While obviously entertaining as a blast from the past, the post obviously needed to be updated (or deleted).

Some posts have been consolidated. For instance, I used to do blog income reports back in the day so I had probably 8-10 different income reports in the system. I stopped doing them because I didn’t believe in them anymore. Yet, these income reports still managed to pull a little bit of traffic. Not a lot, but some when combined. So, I went ahead and wrote one new post: The Danger Of Reading Blogger Income Reports. I then re-directed all of my old income reports into this new blog post. I use Yoast SEO to manage all my re-directs.

There will be some posts that you will find still get traffic routinely, yet the topic is either not really relevant to your business or is just out-dated by it’s very nature. As an example, this is the case with my post on having gotten accreditation from the Better Business Bureau. Not only was the post outdated, it was totally irrelevant to my business and serves no marketing function at all. In other words, it is pretty useless. Yet, look at the stats:

Over 300 people visited this post in the last month. Well… crap. What am I going to do? Delete a blog post getting 300 visitors per month, even though it is pretty useless to me as a marketing asset?

So, I didn’t delete it. Instead, I wrote out a short little intro at the beginning and put it in italics. At the bottom, I linked it to a more relevant piece about getting social proof, since most people get BBB accredited only as a way to get social proof. And I just kept that one in the archives.

Some posts I will simply update and leave it as is. I might mention the fact that I updated it to my email subscribers, but otherwise I will leave it back there in the archives.

If the topic of that post would serve well as a brand new post, then I will re-publish by changing the Publish date to the present and saving. This will surface the post again to the top as if it were brand new, therefore giving the post a new life. If I cannot re-publish right now (because of the content calendar), then I will just save it, but I will set my date of next review to the date that I DO wish to re-publish it. On that date, I will change the Publish date and re-publish the post.

When I re-publish a post, I will go through all the same processes I would do with any other new post I publish.

One final thing… blog comments.

When you update an old post, you may have old blog comments attached to it. If you make a note at the top of your post about the fact that you are updating it, then those older comment dates won’t matter. I also use the opportunity to audit the blog comments. Any low-quality comments, I will delete them. I only keep the ones that have some value. And in many cases, I will disable comments so that the post will no longer get any new comments. Again, that’s a judgement call.

Moving Forward From Here

As of this writing, my own content audit is still in progress. I am spending a few hours per week on it. I fully expect that this project will take several more months and will be a huge part of my overall content strategy for a large chunk of 2019.

It is taking awhile because I went so long without doing one, so the weeds had grown up to a point of ridiculousness. I’m in the process of unburying. 🙂

The beauty, though, of the system I have built with this combination of plug-ins is that I can use it to keep up with things moving forward.

By using the Next Review date and then sorting by it, I can much more easily assign and then act upon scheduled times for me to re-evaluate content again. As I am doing this audit, I am often setting “Next Review” dates for 6 months to a year out so that I will look again and see if anything needs to be done.

As I said, the beauty of using these tools is that you can customize your content systems to your own specific needs.

From a content marketing perspective, this is also important in order to gain maximum leverage from all of your blog content.

A well-run blog is a living, breathing thing. It isn’t uni-directional. It isn’t only about publishing new, new and more new. You’ve got to have a holistic strategy… and that means not forgetting about the stuff you already hit the publish button on.

Want To See The Walk-Through on How This Was Built?

In this post, I’ve pretty much shared the entire system with you. However, it you want to take it up a notch, I’ve prepared a little something extra for you.

  1. The PDF Download the Content Audit Flowchart. Same as above, but you can print it off or whatever.
  2. A walk-through video behind the scenes on exactly how those content audit fields were set up, and how I set up Admin Columns to display it the way I mentioned.
  3. Downloadable Files which you can import right into Advanced Custom Fields and automatically set up the exact fields I use.

Now, you’re going to need Advanced Custom Fields and Admin Columns to fully use this. I’ll leave that up to you. 🙂 But, if you want those 3 things above for free, here’s what you need to do:

#1 – Share this post with your connections on social media.

Now, to be honest, this is sort of on the honor system. 🙂 I have no way to enforce it. But, if you found this post helpful, then I’d appreciate your help in spreading the word.

#2 – Enjoy.

First, click this link to grab the PDF version of the Content Audit Flowchart.

Click this link to download the JSON file for the fields. You can import this file into Advanced Custom Fields and it will auto-create the same exact fields I use. You can then modify them as you wish or add some of your own. If your browser simply shows you the code rather than triggering the download, just copy/paste it into a blank file and save that file with a “JSON” file extension. Then, import that file into ACF.

And with that, I hope you found this post useful.


  1. Hey, David:

    In answer to your Edge Tech Stack question…I’d appreciate it if you’d continue with it.

    I am a member of the Blog Marketing Academy and I do appreciate that the whole thing would probably be better handled on that, but the Edge thing is like an “ook” — look at this now, Netta!

    I am really liking it.

    I am working through the BMA road map thing so I can get my head all grounded in the flow of building the biz, but the Edge thing is kind of like a look at “upcoming adventures” for me. Whoo-hoo!

    Either way is fine with me.


I’ll send my exclusive weekly newsletter, THE EDGE. You’ll also be able to access exclusive content only found behind the login.
It’s all free. No obligations whatsoever.

Create Your FREE Account!

Join and participate in the community, access exclusive resources in the Document Vault, and get a free subscription to THE EDGE.

Your membership is free for life.