All too often when working with content management and website creation, we become obsessed with moving forward and creating new features and page types as quickly as possible.
Moving forward is, of course, very important and doing so quickly and efficiently is vital to every business.
However, often we forget about something important. We forget about the “mess” we’re leaving behind us. This “mess” comes in many different flavors from technical dept to outdated documentation and content. In this blog post, I’ll concentrate on the later of these.
Why is Outdated Content a Problem?
When we create content, we spend a great deal of time making sure it is high quality, follows the correct tone, is accurate and is interesting for our customers.
This content is then published to one or more channels, both online and offline, and all too often is then forgotten and becomes outdated.
This outdated content then sits out on the internet, still be linked to by third parties, indexed by search engines and potentially broadcasting incorrect or confusing messages to your customers.
How can you tackle this with SDL Web / SDL Tridion?
We have lots of options of how we can tackle the outdated content problem in SDL Web / SDL Tridion including third-party integrations, manual audits and customizations. We can consider tackling it in the back-office or by crawling the public assets for embedded (in page) metadata.
Each of the approaches and techniques listed above could be used to address your specific needs. However, in the following sections,I’ll introduce a ‘light weight’ way to tag content within your CMS and allow this to be surfaced - all without a single line of code!
Content Lifecycle Metadata
First you’ll need to consider what metadata you’ll use for flagging out of date content. For example, that might include a combination of an expiry date, content owner, content type, etc…
These fields can then be added to schema definitions of the appropriate content types. Using an embeddable schema here allows the fields to be managed centrally - allowing them to be updated easily.
Embedded Schema - Content Lifecycle
For my demo, I’ll use two simple fields and a basic SDL Web 8.5 & DXA 1.7 setup. The two meta fields I’ll add are (this approach can also work well for a quick MVP or POC):
- Validity - Fixed values of 3, 6, 12 months
- Content Owner - from a category, which can be managed by chief editors
Enable Content Types
Next, I added the new Content Lifecycle metadata schema to several content types to enable it.
Once the content lifecycle is enabled in the schema, items need to be updated to add the values.
Note: This is a very simplistic example. In a real implementation you’d like want to enable defaults to avoid having to add data for every item.
Searching for Outdated Content
Now everything is setup, you can use the advanced search feature of SDL Web / SDL Tridion to find your outdated content (assuming your search index is in good shape)
Unfortunately you can’t search like below, as ‘Content Lifecycle’ is only an embedded schema, so no Components will be returned with this query.
Instead, you have to search like this (so consider that in your schema design)
I used the following fields:
- Date Modified - between DD/MM/YYYY (the earliest possible date available for selection in the CMS) and to a date six months before today
- Keyword - The content owner I am interested in (could be blank to get all)
- Based on Schema - the type of content to return
- Searching for the value ‘6’ in the ContentLiifecycle metadata field
It is worth noting that date modified does not mean date last published. This might be an enhancement you consider, but would require a little more work. Also, my system is an AWS Spot Instance started within the last hour, so there is no old content -- therefore I had to remove the date modified to get results.
If that is useful and provides you enough functionality for a basic content lifecycle, great! You can improve it a little by saving the searches as virtual folders to they are easy to reuse and share. You can make them general or more specific
There are also lots of enhancements you could make to this, to improve its ease of use and add automation. This was just a simple example, to add basic content lifecycle reports in 30 minutes or less.
I’d consider adding in features like the following:
- Automatic metadata field with last published date vs. last modified date
- Automate a report that could be emailed to content owners and central team weekly
- Highlight items drastically over their expiry date (perhaps with escalation)
I hope this is useful, and lets you try out content lifecycle management without investing a lot of time and developer resources. Once you’ve tried it, you can see what features you’re missing and only build what you need. Otherwise -- as these things go -- you’ll specify a Rolls Royce when you only need a Ford.