Skip to main content

Result Groups

Result Groups categorize search results into distinct sections, making it easier for users to find what they need without scrolling through unrelated content.

Here is an example from Primark, a fashion retailer. Their homepage organizes products into categories by audience:

Product categories on a homepage

Result Grouping applies the same principle to search results. When a user searches for "jeans", results are split into groups such as womenswear, menswear, and kidswear — so shoppers find what they need without paging through irrelevant products:

Categories in search results

This article covers:

  1. How to create Result Groups
  2. Result Groups vs. Filters — which to use
  3. Showing and hiding Result Groups
  4. Different Result Groups for multiple search boxes
  5. Working with Result Groups via API

Set up Result Groups

All Result Group settings are in the Result Grouping section under Data Structuring in your Control Panel:

The Result Grouping section of the Control Panel

Click + Add Result Group to open the configuration pop-up:

Result Group pop-up creation menu

Configuration options

  1. Name of the Result Group — the title displayed in the search UI. Keep it short for easier navigation.

  2. Data Points to Show in Result Snippets (optional) — select previously configured Data Points to display beneath each result's title. For example, a price Data Point appears like this in the snippet:

    Price Data Point snippet

    See the Data Points article and the price Data Points guide for more detail.

  3. Result Group Condition — defines which pages belong to this group. Two methods are available:

    • URL Pattern (regular expression): matches a segment of the page URL. For example, /womenswear/ in https://www.primark.com/en-us/all-products/womenswear/... identifies womenswear pages. To include multiple patterns in one group, separate them with a pipe: /womenswear/|/menswear/.

    • XPath: targets a specific HTML element present on the pages you want to group. For example, the breadcrumb element //a[contains(@class,"breadcrumb__link")]//span[contains(text(),'all women')] groups all pages where that element appears under "Women":

      Choosing the correct XPath

      See the XPath article for guidance on extracting and using XPath expressions.

  4. Override Global Extraction Settings (optional) — four buttons that let you fine-tune extraction rules for this specific Result Group, including which titles, images, and content are extracted. These settings take precedence over the global rules configured in the Content Extraction tab. See the XPath article for more detail.

After saving

Once you have configured the group, click Add, save your changes, and re-index your project for the Result Group to appear in search results.

From version 13 of the search script onward, Result Groups are displayed as tabs by default, with an All Results tab preceding the rest. Adjust this under Plugin Configuration in Design & Publish using the layout.navigation config:

var ss360Config = {
layout: {
navigation: {
position: 'top', // can also be 'left'
type: 'tabs', // can also be 'scroll'
showAllResultsTab: true,
allResultsTabName: 'All Results',
allResultsTabTitle: 'Found #COUNT# results for \'#QUERY#\'' // e.g. 'Found 43 results for "curry"'
}
}
}

To preview your Result Groups before going live, enter a sample query in the Search Preview tab, or enter your website URL under Design & Publish and click Fullscreen preview.

Here is the final Result Group setup for Primark:

Demo search on Primark's website

Ordering Result Groups

Two ordering modes are available:

  • Manual order (drag & drop): drag Result Groups in the list to set the exact order you want.
  • Automatic order: enable Automatically Order Result Groups to have Site Search 360 sort groups by result count and relevance to the search query.

How to reorder Result Groups

When Automatically Order Result Groups is enabled, it overrides your manual ordering.


Result Groups vs. Filters

Result Groups are mutually exclusive — a page assigned to one group cannot appear in another, even if multiple extraction patterns match it. The only exception is All Results, which shows all indexed URLs regardless of group assignment.

Use this as a guide when deciding between Result Groups and Filters:

  • Use Result Groups when you need high-level categories that clearly separate distinct content types — for example, a catalog with no overlap between product audiences.
  • Use Filters when pages can legitimately belong to multiple categories — for example, a catalog with a large unisex range.
  • Use Filters when you need more than 5–7 categories. That many Result Groups can make the search results page feel cluttered.

You can also combine the two. For example, adding a Price filter within a Result Group:

Price filter in a Result Group

See the Filters article for setup instructions.


Show or Hide Result Groups

Using the Search Designer (v14+)

The latest search script includes a Search Designer that lets you configure Result Group visibility without writing code.

Go to Design & Publish and open the Configure your search result behavior section:

  1. Navigation settings — controls how Result Groups behave in the search UI:

    Result Group setting in Design & Publish

    • Group results — show or hide Result Groups in search results.
    • Show "All results" tab — show or hide the tab that aggregates all indexed URLs.
    • Show uncategorized results — show or hide pages that do not match any Result Group condition (displayed under "Other").
    • Uncategorized tab name — rename the "Other" group.
  2. Per-group toggles — at the bottom of the tab, individual toggles let you show or hide each Result Group independently:

    Show/Hide toggles for Result Groups

See the Search Designer article for a full overview of v14 features.

Using HTML attributes or config (older script versions)

If you are on an older script version, consider upgrading to access the Search Designer. If you need to stay on the older version, use the include and exclude parameters to control Result Group visibility.

To limit search results to specific groups (for example, "Products" and "Reviews"), use one of the following approaches:

Option 1 — HTML attribute on the search input:

<input type="search" data-ss360-include="['Products','Reviews']">

If you are using the WordPress search plugin and cannot access the search input markup directly, use shortcodes instead:

[ss360-form][ss360-searchbox include="'Products','Reviews'"][ss360-searchbutton][/ss360-searchbutton][/ss360-form]

Option 2 — ss360Config object:

var ss360Config = {
contentGroups: {
include: ['Products','Reviews']
}
}

Result Groups with Multiple Search Boxes

Each search box can display a different set of Result Groups. See this demo for an example where one search box shows all groups and a second is limited to "Menu items".

Same groups across all search boxes

If all search boxes should show or hide the same groups, configure this in Design & Publish. Connect Site Search 360 to all your search boxes by specifying their CSS selectors under General, then toggle the desired Result Groups under Results.

Connecting search to multiple search boxes

To assign different Result Groups to individual search boxes, edit the HTML of your site using one of these approaches:

Option 1 — HTML attributes per input:

<input type="search" data-ss360-include="['Group 1','Group 2']">

Option 2 — ss360Config per search box:

Implement the full ss360Config object (available under Plugin Configuration in Design & Publish) and use contentGroups.include or contentGroups.exclude for each search box:

// First search box
contentGroups: {
include: ['Group 1','Group 2']
}
// Second search box
contentGroups: {
include: ['Group 3']
}

// or equivalently:
contentGroups: {
exclude: ['Group 1','Group 2']
}

Search suggestions

The data-ss360-include and data-ss360-exclude attributes also affect search suggestions. To control which groups appear in the suggestion dropdown, use data-ss360-include-suggestion and data-ss360-exclude-suggestion on the relevant search inputs. To include all results and suggestions, leave the attribute value as an empty array: data-ss360-include="[]".

When including or excluding multiple groups, format the value as a JSON array: ['Group 1', 'Group 2', 'Group 3']. Group names must match exactly what is configured in the Result Grouping section, or the search will not return the expected results.


Result Groups and API

Pages are typically indexed via Root URLs or Sitemaps, but you can also use the SS360 HTTP REST API to add content to the index and assign each page to a Result Group directly in the JSON payload. The contentType field defines the group:

{
"url": "https://test.com",
"title": "My page title",
"content": "This is a simple test page",
"contentType": "Services",
"imageUrl": "https://test.com/image.jpg",
"structuredData": [
{ "key": "value" },
{ "Price": "$5" }
],
"filters": [
{ "key": "value" },
{ "votes": 12 },
{ "tags": ["abc", "def"] }
],
"language": "english"
}

To control which Result Groups are returned in API responses, add includeContentGroups or excludeContentGroups to your request:

https://global.sitesearch360.com/sites?query={QUERY}&site={SITE_ID}&filterOptions={FILTER_OPTIONS}&filters={FILTERS}&sort={SORT}&sortOrder={ORDER}&offset={OFFSET}&limit={LIMIT}&includeContent={INCLUDE}&highlightQueryTerms={HIGHLIGHT}&includeContentGroups=['Group 1','Group 2']&log={LOG}