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:

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:

This article covers:
- How to create Result Groups
- Result Groups vs. Filters — which to use
- Showing and hiding Result Groups
- Different Result Groups for multiple search boxes
- 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:

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

Configuration options
-
Name of the Result Group — the title displayed in the search UI. Keep it short for easier navigation.
-
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:

See the Data Points article and the price Data Points guide for more detail.
-
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/inhttps://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":
See the XPath article for guidance on extracting and using XPath expressions.
-
-
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:

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.

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:

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:
-
Navigation settings — controls how Result Groups behave in the search UI:

- 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.
-
Per-group toggles — at the bottom of the tab, individual toggles let you show or hide each Result Group independently:

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.

Different groups per search box
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}