Updating Content: Process and Results for CXL

The traditional blog format—regular, sequential publishing of diary-style entries—no longer makes sense for most businesses. To be honest, it never did.

A B2B website that educates potential buyers isn’t a personal “weblog.” It doesn’t toss out unsubstantiated opinions. It doesn’t age the same way. The earliest articles may cover the most valuable topics, but our throwaway content culture lets older posts rot.

If the philosophical argument doesn’t motivate you, search engines will. The CXL blog started in 2011 and, currently, includes about 700 articles. In October 2018, older posts began to decline in rankings.

This post details our process to start the transition from a “traditional” blog into a modern resource center for marketers. It also happens to be the most efficient way to get more value from existing content, a timely benefit.

Why up-to-date content is the new standard

Jimmy Daly deserves credit for framing the issue:

Your readers are likely not part of a growing audience, but rather a continuous stream of people with a problem to solve. At the moment they need an answer, they search Google and find you.

Your editorial calendar is invisible to most readers. If I need to find an article on creating a custom dimension in Google Analytics, I don’t care if you published it five years ago. I need it to be up to date today. And I will judge your content, site, and brand by whether or not it is.

Satisfying users requires you to do more than the minimal amount to get Google to recognize an updated publish date (which, according to Ross Hudgens, is about 5–10%).

You could, of course, remove publish dates altogether (not gonna name names), but that doesn’t benefit users.

Ultimately, updating content is an iterative process to improve and improve and improve. Where do you start? From my time revising encyclopedias, I think in terms of “M” Mistakes and “m” mistakes.

  • “M” Mistakes are those that, in the reference publishing world, would get you a bad review, and bad reviews tank sales.
  • “m” mistakes are the tiny copy-editing mishaps that, as long as they’re few and far between, are tolerable.

In the content marketing context, there’s a parallel: “M” Mistakes are those for which someone might leave a painfully critical comment, or where you may get called out on social media; “m” mistakes are dated images or broken links.

But those are just starting points. Committing to real updates is a shift in mindset, from taking accountability for what you publish today to taking accountability for everything that’s live on your site.

Up-to-date content can be a differentiator

Anything, in the early days of the Internet, was good enough. Then, the goal was “long form” content. Brian Dean introduced the “Skyscraper Technique” in 2013 to out-long-form the long-formers. And that, ever since, has continued ad nauseum.

For search engines, length is a useful if imperfect proxy for quality, which is why Googling something like “how to create a content strategy” returns a bunch of long, detailed guides:

example of serp that elevates long-form articles.

If the keywords you care about don’t yet return a list of multi-thousand-word articles, they soon will. Length is an increasingly unhelpful differentiator. (Search engines seem to be getting a bit smarter—elevating short, efficient articles—but long articles still dominate.)

For your content, you need to answer the question, “If everything on Page 1 is a well-researched, 4,000-word guide, how can I make my article stand out?”

Up-to-date content is one overlooked strategy. If I’ve come to expect that content on your site is up to date, that’s a powerful reason to click your link over another, even if you rank third or fifth.

There’s a further opportunity: creating and maintaining non-evergreen content.

When high-maintenance content is a good idea

We’re often told to make Twinkie content—stuff with a near-infinite shelf life. No expiration means no maintenance. But it also means that fewer people are publishing high-maintenance content (e.g., an article comparing prices and features of SaaS products).

Selected carefully, non-evergreen content is an opportunity to stand out. You invest time and energy to keep a handful of high-maintenance posts up to date—those for which you want to be the authority or those that bring in the most bottom-of-funnel visitors.

It’s something to keep in mind when you start updating your old content.

How to find out if updating content is the highest value activity

Beginning in October 2018, organic traffic to the CXL blog began to decline:

organic traffic decline in google analytics.

At a glance, the reasons were difficult to suss out. The drop wasn’t dramatic, and when you have hundreds of posts targeting thousands of keywords, it’s rare to see movement in unison. I woke up each day to reports that showed small movements—positive and negative—for most keywords.

I ran a full technical SEO audit (based on Annie Cushing’s wonderful template) to ensure there wasn’t an underlying issue. The strongest evidence that old posts were responsible for the drop came from a correlation between post age and a decline in organic traffic.

Stuff that was published prior to 2016 really took a hit:

chart showing the relative decline in organic traffic for older blog posts.

Some tools, like Animalz’s Revive, can help identify posts that recently lost organic traffic, but they can’t tell you when updating content is the content priority for your site.

There are also some limits to what traffic in general can tell you. Changes to SERP features can affect traffic even as positions stay constant.

For example, Google’s choice to move a People Also Ask (PAA) box above or below our link for a high-volume keyword regularly shifted traffic by double digits.

example of a people also ask box thats above the top-ranked links.

The PAA box sometimes moves above or below the top links, like those from PCMag and TrustRadius in this example. That choice can affect traffic—even as rankings stay constant.

Like some medical diagnoses, the belief that old content was our biggest problem came mainly from ruling out other technical, on-page, and off-page issues.

The site was sound. The posts were well-targeted. We had the links. But rankings and traffic were still trending in the wrong direction.

Knowing that, we needed a process to continually identify the posts that:

  1. Most needed an update (i.e. riddled with “M” Mistakes).
  2. Could bring the most high-quality traffic to the site.

Our triage process for updating content

A good triage process is why you have to wait at the ER for hours to get a few stitches in your hand—but not if you’re having a heart attack.

So which posts demand immediate attention? That’s an easy decision if you have 50 articles; it’s much harder if you have 5,000. We’re somewhere in the middle. With roughly 700 posts, there are too many for a manual review, but we don’t have to automate every last metric.

The beta version of our triage sheet, which we still use today, includes seven metrics spread across four categories:

  1. Age;
  2. Historical value;
  3. Organic potential;
  4. Outdated risk.

1. Age

This is the simplest one. How long has it been since the post was (1) published or (2) received a substantial-enough update to justify a new publishing date?

spreadsheet showing original and updated publish dates.

This metric is static unless a post is updated enough to change the publish date in WordPress. When that happens, we update the date in the “Listed publish date” column of the sheet, too.

2. Historical value

  • How many organic users did the post bring in during the last 90 days?
  • How do those 90-day values compare to the previous year?

Both of these metrics are pulled into Google Sheets using the Google Analytics Add-on:

google analytics add-on report configuration.

All four date values are all relative, with the report scheduled to run each morning:

google analytics add-on report configuration with relative dates.

3. Organic potential

  • How many impressions has the post generated in the past year, according to Google Search Console? We want a sense of how many users the post could bring to the site, regardless of how many it brings now.
  • How many referring domains does the post have? Anything that’s going to rank highly—and drive lots of traffic—will almost certainly require a decent number of links.
  • What’s the URL rating? This number, pulled from Ahrefs, is a hedge against the potentially misleading number of referring domains (i.e. one link from The New York Times beats 20 from scraper sites).

example of urls with similar ratings but a vastly different number of links.

Not all links are created equal. Two posts with similar URL ratings have a vastly different number of links.

I don’t expect these three metrics to change dramatically every month. You could pull this data quarterly, twice a year, or annually (as we do now). It just depends on how neurotic you are or how volatile those metrics might be for your site.

4. Outdated risk

This is a heuristic assessment of how quickly a post will seem out of date. In our context, an example of a high-risk post is our Google Analytics implementation guide. Every time a menu item or UI design element changes in Google Analytics, we have to update the post.

google analytics ui example.

Any changes that Google Analytics makes to these menu items requires another round of updates.

A low-risk post might be one on crafting a value proposition. Some examples and screenshots might start to look dated after a few years, but the core advice and process is the same.

The risk assessment, while potentially time consuming, should be a one-and-done effort. If you can make a call (on a scale from 1 to 4) in 5 seconds, that means you can tag 720 posts in an hour. Still, the process wouldn’t scale easily to tens of thousands of posts.

In those instances, you could use the blog category or tags as a rough guide (e.g., all “Analytics” posts get scored a “4”; “Copywriting” posts are scored a “2”). You’re not going to have a perfect system; get the best data you can and move on.

Turning metrics into a weighted score

For almost all metrics, I bucket raw numbers into quartiles. Quartiles give you a general sense of importance (e.g., “This post drives more traffic than 75% of posts,” or “Half of all posts have a higher URL rating than this one”), without obsessing over the extra 30 impressions per month that Google Search Console tells me a certain URL gets.

So, in the example below, all I really need to know is that the posts most in need of an update are at least 4.5 years (1,631 days) old, and those suffering the worst declines in organic traffic have lost at least 53% of organic users compared to the same 90-day period last year.

The quartile function (=QUARTILE) is native to Excel and Google Sheets, but be careful when a lower quartile is a worse outcome. So, for example, with the “Percentage decline” figures, Quartile 1 is scored as a “4.”

quartile calculations for metrics to prioritize updating posts.

Built into a dashboard, I get quartile ratings for every post.

quartile figures for metrics for content updates.

You could simply total the numbers across each row to generate a score. But all metrics aren’t created equal. We settled on a weighting system that emphasizes post age, traffic declines, and a high risk of outdatedness:

weights for metrics for content updates.

The sheet calculates a total score for each post by multiplying the scores (1–4) by the weights, summing the total for each row, and converting the result to a 100-point scale.

Scores update automatically as new data comes in from Google Analytics, or if there’s a manual update to the publish date. Every morning, we come in and re-sort the sheet to highlight the posts most in need of updates.

dashboard with scores for content updates.

Is it perfect? Of course not. But it’s a pretty efficient way to sift through hundreds or thousands of posts and target those that:

  1. Really need an update.
  2. Will deliver the most ROI.

Once you’ve tackled the “M” Mistakes in those posts, you can start thinking about more targeted updates, like formatting changes to win featured snippets.

You may even want to run the analysis below before starting on your core updates—many of these changes are simple to implement while you’re in the document making other updates.

Bonus: How to spot the low-hanging fruit for featured snippets

Your site earns (or doesn’t earn) featured snippets for a variety of reasons. One of those potential reasons is the format of your content.

Say the featured snippet on a SERP grabs a definition for the keyword. But, in your post, that definition is buried halfway down and lacks any structural cues (e.g., a header that asks “What is XYZ?”). Google may fail to surface your snippet, which another site will get.

Historically, you could check if Google pulled a snippet for your site with an explicit site search plus the keyword that pulls the featured snippet (e.g., “site:cxl.com social proof”).

If Google returned a snippet, you knew that formatting was unlikely to be the problem. If it didn’t, you had something to work on.

An explicit site search no longer generates featured snippets, but an implicit one does (e.g., “social proof cxl”). So you can still check whether you earn a snippet—manually.

example of featured snippet with implicit site search. Wikipedia owns this snippet, but we know that formatting isn’t the issue.

An implicit site search highlights a better way to scale that work. While all keyword tracking tools (to my knowledge) don’t work with search operators, they do, of course, work with brand names appended to the keyword phrase.

Here’s how to scale this process in a tool like Ahrefs.

1. Identify keywords for which you would like to own an existing featured snippet.

You could simply:

  1. Go into Site Explorer for your site.
  2. Navigate to the “Organic keywords” tab.
  3. Filter for “SERP features” to include “Featured snippet.”
  4. Filter “Positions” for 2–100 to exclude snippets you already own.
  5. Export the list.

featured snippets owned by other sites in ahrefs.

The exported list includes all keywords that return a featured snippet for a site other than your site. If this list includes thousands (or tens of thousands) of keywords, you can:

  • Sort by your site’s position;
  • Filter by page type (e.g., blog post);
  • Export only those keywords for which you rank among the top 10.

spreadsheet with opportunities to earn featured snippets for your site.

2. Append your brand name to those keywords and track them.

Append your brand name to the list of keywords using the =CONCATENATE function:

creating an implicit site search in a spreadsheet based on existing keywords.

Then, upload the list back into your keyword tracking tool. If the SERP contains a featured snippet for an implicit site search, then formatting is unlikely to be the issue. But if any keyword doesn’t return a featured snippet, formatting may be what’s keeping you from earning it.

tracking serp features for implicit site searches. If you own the snippet for your implicit site search, formatting probably isn’t the issue.

3. Test formatting changes and monitor results.

For implicit site searches that don’t surface snippets, investigate formatting issues and test changes. As we’ve found, a simple rewriting of an H2 or bolding of a definition can be the bit of added info that Google needs.

These updates can take seconds to execute while driving hundreds or thousands more visitors to your site. It’s a low-cost way to earn traffic and accommodate mobile users, who want quick answers.

Does any of this actually work?

Hell yeah:

example 1 of more organic traffic from content updates.

example 2 of more organic traffic from content updates.

example 3 of more organic traffic from content updates.

example 4 of more organic traffic from content updates.

We’ve updated about 100 posts. Not every post has a dramatic rise, but most do. Still, it’s difficult (or, at least, time consuming) to measure the impact of post updates for two reasons.

1. For each post you update, you need to pull the before-and-after period.

Early in our process, we set up relative formulas with the Google Analytics Add-on that, with each passing day, included another day on each side of the update day.

So, for example, if five days had passed since the date of update, the report compared the five days before and after. The next day, it pulled six.

But if you’re updating hundreds of posts over hundreds of days, you’re going to waste a lot of time in the Report Configuration tab.

2. It doesn’t take long before you run into seasonality.

We often lacked near-term visibility into the impact of updates because of how weekends fell. Or, for example, updates made in early January showed exaggerated improvements since the comparison period stretched back into the holiday season.

You can get some validation by checking if Google shows the updated publish date. If it keeps the old one or doesn’t show any date, you didn’t do enough. You could also focus on rankings instead of traffic, as they’re less vulnerable to seasonal shifts.

For the first 19 post updates, I compared time spent and traffic earned for new post creation versus post updates. The results? I could update a post in about one-quarter of the time it took to create a new one and, in the near term, generate 85.2% more traffic than I could with a new post.

aggregate results from early post updates.

The collective impact on traffic from the first 19 post updates. On average, an updated post brought in an additional 1,506 users in the weeks following an update.

There are caveats. Obviously, new posts take a while to rank, so the traffic benefits from a new post take longer to materialize (though the ceiling may be higher). Also, we started by updating the highest value posts—the traffic bump is less for posts that don’t have as much organic potential.

These are reasons why it’s difficult to calculate a caveat-free ROI from this work, but the before-and-after screencaps from Google Analytics are persuasive anecdotal evidence. Plus, it’s what you should be doing anyway—for search traffic, your users, and your brand.

Conclusion

Updating posts gives you more value from stuff you’ve already created. It’s necessary, in part, because potential buyers are more likely to discover your brand from a post you wrote years ago than the one you published last week.

A solid triage process can help you max out the ROI for your efforts, even if it’s difficult to measure the impact precisely.

Once you’ve cleared out the “M” Mistakes, look for opportunities to provide more value—better images, supporting videos, etc.— or reformat content to earn traffic boosters like featured snippets.