Skip to content

How we do it

At Cloudflare, we track the following information about each page:

ValueDescriptionExamples
ProductThe top-level subfolder of the page.dns, bots
Product GroupThe primary area that each product falls into.Application Performance, Developer Platform
Content typeThe primary purpose of the page, which corresponds to our listed content types.how-to, faq
Last modifiedHow many days ago was this page last updated?63
Last reviewedHow many days ago was this page last reviewed?100
Word countHow many words does the page contain (rounded to the nearest hundred)?100

Of all of these values, there is a bit of nuance to our Last reviewed metadata. Last reviewed differs from Last modified because a review is more thorough than an update. A review implies that all contents of the page have been vetted for accuracy.

Because of this extra effort, we only track Last reviewed for content types that are particularly important to the user journey and require an additional level of maintenance. At the moment, those content types are tutorials and specific types of configurations.


Implementation

There are two aspects to our metadata implementation: how we set these values and how we make them available.

Setting values

In setting values, we automate what we can and manually set the rest:

ValueMethod
ProductSet automatically by using the subfolder.
Product GroupDefined at the product level and then automatically applied to each page in the subfolder.
Content typeManually set for each page.
Last modifiedAutomatically pulled from the Git history.
Last reviewedManually set for some pages.
Word countAutomatically generated during build time.

Making values available

We choose to render all of these values as specific meta properties for each page.

This decision - combined with the multiple web scrapers that crawl our pages - means that our metadata is available for reporting and search improvements (ranking and faceting).

It also means that our GitHub repo is always the source of truth and we do not have to keep a spreadsheet or mapping updated elsewhere.