Metrics

This Extension requires a Pro license

Current version: 1.0.6

Download available with active license

An effective on-site search implementation provides unique insight into your visitors. By observing what visitors are searching for you can make educated decisions about areas of improvement when it comes to your content.

SearchWP’s Metrics extension collects comprehensive data for on-site search, and provides you with actionable advice about refinements you can make to your content as time goes on.

Screenshot of SearchWP Metrics main interface

SearchWP Metrics main interface

Watch Video

Documentation – Table of Contents

Installation & Setup

Metrics was built to be a turnkey Extension for SearchWP. Metrics is a standalone WordPress plugin that should be installed and activated alongside SearchWP itself. Once installed and activated Metrics will immediately begin tracking searches and clicks. Metrics will begin displaying data as soon as enough has been collected.

Metrics was designed to supersede SearchWP’s core statistics feature. As a result, both the SearchWP Statistics page and Dashboard Widget will no longer display, and counterparts from Metrics will take their place.

Click Tracking

By default, Metrics will automatically track clicks for the Default engine, assuming that your search results template uses The Loop. Any link within The Loop that is generated using get_permalink() (or variant thereof) will automatically be set up for click tracking. If you’re using a standard search results template you should be all set without needing to make any edits.

To integrate click tracking in your supplemental engine(s) you need to add two Hooks to your results template, one before your own loop of results, and one afterward.

Begin Metrics link tracking:

<?php
// Initiate Metrics link tracking
do_action( 'searchwp_metrics_click_tracking_start' );
view raw functions.php hosted with ❤ by GitHub

Stop tracking links:

<?php
// Stop Metrics link tracking
do_action( 'searchwp_metrics_click_tracking_stop' );
view raw functions.php hosted with ❤ by GitHub

All links generated with get_permalink() (or variant thereof) within those two actions will be processed by the click tracking within Metrics.

Dashboard Widget

Metrics ships with its own Dashboard Widget that allows you to take a quick look at basic data when you log in to your site.

Screenshot of SearchWP Metrics Dashboard Widget

SearchWP Metrics Dashboard Widget

The Widget updates in real time as you visit your Dashboard, and you can customize the number of popular searches and number of popular posts shown.

Customizing Data

Metrics allows you to easily customize the data being displayed. You can control the date range, the search queries, and the engines to display:

Screenshot of the controls for Metrics

Customize what Metrics displays

Date Range: Customize the date range shown in the main chart and engine details.

Search Query Controls: Limit the data displayed to a set of search queries. You can also control what queries have been ignored.

Engines to Display: Control which engine(s) are displayed in the charts

Reviewing Data

The line chart at the top of the page shows the searches over the chosen time frame for each selected engine. Below are details for each engine that provide specific metrics for further examination:

Screenshot of engine details from Metrics

Details for one of the chosen engines

A details area is shown for each selected engine.

Engine Statistics

On the left are Engine Statistics:

Total Searches
The total number of searches for the chosen time frame
No Results Searches
The total number of searches that generated zero results (click the icon for more details)
Total Results Viewed
The total number of conversions (clicks) for the chosen time frame
Searches Per User
The average number of searches per user (based on only users who have searched)
Clicks Per Search
The average number of clicks per search
Average Click Rank
The average rank of a clicked search result

When clicking the icon next to the No Results Searches you’re able to review a list of all of the search queries that yielded zero results, and how many searches there were. This list can be reviewed for accuracy as time goes on.

Screenshot of failed searches within Metrics

A list of no results searches within Metrics

Clicking the × icon next to a failed search query will add it to the list of ignored searches.

The Popular Searches area lists the most popular searches on your site. Clicking either a listed popular search or the View More button brings up even more detail to check out:

Screenshot of Popular Searches details in Metrics

Details view for Popular Searches in Metrics

For each listed popular search you can expand additional details including which entries were clicked as a result of that search query and how many times. Using the controls at the top you can control how many popular searches are returned, and also export the data to CSV.

Insights

Metrics not only collects this data for you but it also implements some analysis to let you know where your content can potentially be improved. By analyzing conversion rates, popular searches, frequency of searches, and results rank positions, Metrics can let you know when:

  • Content is ranking low but getting a lot of clicks: can this content be optimized to rank higher?
  • Content is getting a high conversion rate: should this content be more prominently linked because so many visitors are searching for it?
  • Searches are converting on a variety of posts: should new content be created for these search queries?

Insights can call out some areas of improvement based on actual visitor searches:

Screenshot of Insights within Metrics

Insights give actionable advice based on collected data

Exporting Data

Within each engine details pane you can export any of the data being displayed:

Screenshot of the various export options in Metrics

The export features in Metrics

Exports are formatted as CSV files, which can then be used in any way you’d like.

Settings

Metrics integrates some shortcuts and settings that can help you customize things a bit.

Screenshot of the settings in Metrics

Settings menu in Metrics

You can use Clear Metrics Data to remove the data logged by Metrics, and Remove All Ignored Queries will reset your ignored queries leaving nothing ignored. These operations cannot be undone so make sure you have a backup if necessary!

Modify Logging Rules

Metrics comes with some basic controls to make excluding certain searches a bit easier:

Screenshot of logging rules in Metrics

Easily blacklist User IDs/Roles or IPs to prevent searches from being logged

Here you can add any combination of WordPress User IDs or Roles that should have their searches ignored. You can also maintain a list of IPs to blacklist as well. This makes excluding internal searches (so as to avoid polluting data) a bit easier.

General Settings

There are a couple of general items to consider when using Metrics:

Screenshot of general settings for Metrics

General settings for Metrics

Metrics is able to use its tracking data to provide a buoy of sorts for search results. If you’d like results with more clicks to rank higher over time than those with fewer clicks, you can tick the checkbox to Influence search results using click data. This feature requires SearchWP version 2.9.14 or higher.

Metrics can also clean up after itself. With the Remove all Metrics data on uninstallation checkbox ticked, Metrics will remove its custom database tables, all click tracking data, and any stored options upon deletion.

Filters

There are a couple of filters to note when using Metrics:

searchwp_metrics_click_param
Customize the URL parameter used for click tracking. Default is swpmtx, to customize:

<?php
// Customize the search parameter used by click tracking in Metrics
add_filter( 'searchwp_metrics_click_param', function( $param ) {
return 'myparam';
});
view raw functions.php hosted with ❤ by GitHub

searchwp_metrics_redirect_tracking
Control whether Metrics redirects away from the tracking URL once a click has been tracked. Default is true, to customize:

<?php
// Prevent Metrics from redirecting away from click tracking URL
add_filter( 'searchwp_metrics_redirect_tracking', '__return_false' );
view raw functions.php hosted with ❤ by GitHub

searchwp_metrics_normalize_logged_searches
Control whether Metrics normalizes search queries before logging them. Default is true, to customize:

<?php
// Prevent Metrics from normalizing queries before logging
add_filter( 'searchwp_metrics_normalize_logged_searches', '__return_false' );
view raw functions.php hosted with ❤ by GitHub

searchwp_metrics_capability
Customize the capability required to view Metrics data. Default is publish_posts, to customize:

<?php
// Limit Metrics data to those who can manage_options
add_filter( 'searchwp_metrics_capability', function( $capability ) {
return 'manage_options';
});
view raw functions.php hosted with ❤ by GitHub

searchwp_metrics_override_stats
Control whether Metrics overrides SearchWP’s core statistics. Default is true, to customize:

<?php
add_filter( 'searchwp_metrics_override_stats', '__return_false' );
view raw functions.php hosted with ❤ by GitHub

searchwp_metrics_click_buoy
Control whether Metrics applies its data to the search algorithm. This can also be controlled in the settings. Default is false, to customize:

<?php
// Tell Metrics to influence search results by giving weight to posts with a higher conversion rate
add_filter( 'searchwp_metrics_click_buoy', '__return_true' );
view raw functions.php hosted with ❤ by GitHub

searchwp_metrics_skip_uid
Metrics uses anonymous IDs to track clicks. Use this hook to prevent the generation of these IDs. Default is false, to customize:

<?php
// Prevent UID generation in Metrics
add_filter( 'searchwp_metrics_skip_uid', '__return_true' );
view raw functions.php hosted with ❤ by GitHub

searchwp_metrics_uid_expiration
Control the duration of the cookie (i.e. define the click tracking session length). Default is time() * WEEK_IN_SECONDS, to customize:

<?php
// Tell Metrics to consider a session length to be one day
add_filter( 'searchwp_metrics_uid_expiration', function( $length ) {
return time() + DAY_IN_SECONDS
});
view raw functions.php hosted with ❤ by GitHub

searchwp_admin_bar
Control whether Metrics displays its Admin Bar entry. Default is true, to customize:

<?php
// Prevent Metrics Admin Bar entry
add_filter( 'searchwp_admin_bar', '__return_false' );
view raw functions.php hosted with ❤ by GitHub

searchwp_metrics_prevent_core_stats_log
Control whether SearchWP’s core statistics feature logs this search. Default is false, to customize:

<?php
// Prevent logging in core SearchWP's core statistics when Metrics is running
add_filter( 'searchwp_metrics_prevent_core_stats_log', '__return_true' );
view raw functions.php hosted with ❤ by GitHub

searchwp_metrics_default_start_date
Control the default start date (as a strtotime()-compatible string) when viewing Metrics. Default is '30 days ago', to customize:

<?php
// Have the default start date for Metrics be one week ago
add_filter( 'searchwp_metrics_default_start_date', function( $start ) {
return '7 days ago';
});
view raw functions.php hosted with ❤ by GitHub

searchwp_metrics_default_end_date
Control the default end date (as a strtotime()-compatible string) when viewing Metrics. Default is 'now', to customize:

<?php
// Have the default end date for Metrics be one week ago
add_filter( 'searchwp_metrics_default_end_date', function( $start ) {
return '7 days ago';
});
view raw functions.php hosted with ❤ by GitHub

searchwp_metrics_first_day_of_week
Control the first day of the week when viewing the date picker in Metrics. Default is 0, to customize:

<?php
// Customize the date picker in Metrics to have weeks start on Monday (zero-based index)
add_filter( 'searchwp_metrics_first_day_of_week', function( $start ) {
return 1;
});
view raw functions.php hosted with ❤ by GitHub

Changelog

1.0.6

  • [New] New filter searchwp_metrics_redirect_status to modify the Status of click tracking redirects
  • [New] Chosen engines are now persisted and the defaults for the next viewing of Metrics
  • [Fix] Automatically recreate database tables should they be lost (e.g. after moving a site)
  • [Fix] Fixed an issue where some options were not removed during uninstallation (if that option is enabled)
  • [Fix] Fixed an issue preventing click tracking with customized query parameters

1.0.4

  • [Fix] Fixes an issue that prevented the uninstallation routine from running when enabled

1.0.3

  • [Improvement] Improves performance when generating Insights
  • [New] Settings button now has its own capability
  • [New] New filter searchwp_metrics_capability_settings to modify the Settings button capability

1.0.2

  • [Fix] Fixes PHP Notice for division by zero in certain circumstances

1.0.1

  • [Fix] Fixes PHP Notice in Dashboard Widget when no data has been recorded
  • [Fix] Fixes Fatal Error when SearchWP is not activated but Metrics is activated
  • [Fix] Fixes Fatal Error due to case sensitivity of Events directory

1.0

  • Initial release
Fix Search on Your Site. No Coding Required!

Now you can utilize all of the content that's gone unrecognized by native WordPress search instantly with SearchWP

Get SearchWP