This is the second post in our series on personalization on WordPress. In case you missed it, here is the first one, Personalization on the Web.

This post reviews the various WordPress plugins available to personalize the content of a page using either Gutenberg or the Elementor page builder.

Personalising pages on WordPress

Personalization of a page consists of dynamically changing the content within it depending on whether the visitor meets certain conditions. These conditions are based on data parameters associated with the visitor.

Imagine you visit the website of your favourite restaurant. As a regular visitor, the website may remember your previous visits with the help of a cookie saved in your browser and the content of the home page is personalized based on the context of your visit. If you are visiting from a desktop, it may show you the menu alongside other content. However, if you visit from mobile phone, it may prominently display a form to book a table. The device with which you are accessing the page is a data parameter that is unique to your visit and can be used to set a condition for the content that’s rendered on the page.

Similarly, there are several such conditional data parameters available with each visit to a page. These are known as first-party data, unlike second- or third-party data that comes from other sources on the Internet.

Personalization plugins on WordPress can exploit these parameters in order to provide conditional logic functionality as described above. There are, however, some important differences in the implementation of some of these functionalities from one plugin to the next. This post explores these differences.

First-Party Data Conditions

Personalization plugins offer a range of session-based first-party data for conditional content display, which are exposed with every server request. These include the browser user agent details, the browser’s locale, the date and time, the referral source, URL query string parameters and the IP of the client. 

A number of plugins extend these to include cookie-based tracking parameters such as user page view history, recurring visits, conditional content view limits and a variety of other data points which are listed in the comparative table at the end of this post.

Multi-Parameter Conditions

The conditions exposed by personalization plugins allow for any single data parameter to be compared to a value or a range. For example, a content’s visibility is conditioned by the request being made between a given date range, or a query string parameter in the URL may be compared to a value; or a specific device used to make the requests such as a mobile phone.  However, there are many more such parameters that can be leveraged for conditions.

Some plugins limit the combination of conditions to a single type, for example comparing the date and a query string, but are unable to build conditions on multiple parameters of a given type. Comparing multiple data ranges or multiple query string parameters can only be achieved with nested conditional blocks which can quickly become horrendous to maintain.

A plugin such as LogicHop solves this issue by enabling conditional rule sets that resolve as a single condition for a dynamic content block.

Goals & Lead-Scoring

A number of plugins have the ability to define content conditional goals and assign a score to users based on their behaviour. A goal is met when a user either sees a piece of content, clicks on a button or a link. When a goal is achieved, a user can be assigned a score associated with that goal. A user may accumulate a score on the various goals achieved, and this can be used to further differentiate between users as they return to the site.

In-Text Conditional Variables

In-text conditional variables allow for personalized text such as the current time/date, or even the name of the user if they are identified. Although this is something that is easily achieved with some custom code, it is a nice feature to have out-of-the-box.

Conditional CSS Styling

A notable additional and useful feature are conditional CSS classes that can be added to a content in order to dynamically style the content when certain conditions are met.

Segmenting Users Into Personas

Segmentation is a powerful marketing tool used to understand users that visit a site. Segmentation, or profiling as it is sometimes referred to, is the process of grouping users based on a number of rules and/or lead-scores. These groups are also referred to as personas. A user can be part of multiple personas, and will evolve from one persona to another in their recurring visits to the site.

Personas can be used as conditions for content visibility. Personas can be viewed as a way to persist the conditional behaviour of a user over multiple sessions, while first-party data will invariably change from one session to the next.

Tracking Personalization in Google Analytics

A number of the plugins have the ability to sync conditional events back into Google Analytics using custom tags which can provide useful insights into a page’s personalization and the impact it has on visitors behaviour.

Comparative Table of Plugin Features

Following is a summary table comparing the different personalization plugins available for WordPress. For the complete table, see this Google sheet.

Comparing WordPress personsalisation plugins
Source: rtCamp internal research.


We presented the various types of first-party data readily accessible in a session request, on which to set conditional requirements for displaying personalized content on a page.

Complex conditional requirements should refrain from using nested content blocks and instead leverage the conditional rule sets offered by plugins such as LogicHop or Block Visibility, or leveraging personas.

Defining goals based on user behaviour or content visibility and lead scoring strategies can be leveraged to segment users into personas, which can then used as conditions for further personalization.

First-party data will change from one session to the next, so if personalized content is to be persisted in a coherent journey for visitors, segmenting user behaviour into personas is the best way to achieve this. Therefore, a conditional content block should initially test if a user is part of persona, then fallback on first-party data conditions and finally on a default content.

In the next post, Conversion Rate Optimization with Personalization, we look at personalization with user tracking and analysis in a Customer Data Platform (CDP).

Let’s start a conversation

Are you exploring personalization for your business? We’d love to help you navigate the options.