# Cross-Site Recommendations on Homepage

> Source: https://docs.recombee.com/recipes/news/homepage/cross-site-recommendations

> For the complete documentation index, see [llms.txt](/llms.txt).

**Table of contents**

* [Introduction](#introduction)
* [Scenario Setup](#scenario-setup)
* [Logic](#logic)
* [Filters](#filters)
* [Constraints](#constraints)
* [Requesting Recommendations](#requesting-recommendations)  
   * [Multiple Recommendation Boxes on the Homepage](#multiple-recommendation-boxes-on-the-homepage)

# Cross-Site Recommendations on Homepage

![](/img/recipes/news/cross-site-recommendations-on-homepage.png) 

## Introduction

**Cross-Site Recommendations** allow news platforms that operate multiple sites to suggest personalized content from across their network — directly on the homepage. This helps users discover high-quality articles from sister sites while keeping the recommendations aligned with their interests.

## Scenario Setup

In the Recombee Admin UI, navigate to the **[Scenarios](/scenarios)** section and choose **Create Scenario**.

1. Enter a **Scenario ID**, such as _"cross-site-homepage"_.
2. Choose **Recommendation type** \- _[Items to User](/api#recommend-items-to-user)_.

![Admin UI - Scenario Setup](/img/recipes/news/cross-site-homepage-create-scenario.png)

## Logic

The [Logic](/recommendation_logics) defines the behavior of the recommendation engine.

* Select the **[news:personal](/recommendation_logics#news-personal)** logic type from the **News** models to deliver personalized recommendations based on each user's behavior and preferences.

![Admin UI - Logic](/img/recipes/news/cross-site-homepage-logic.png)

## Filters

Excluding Articles from the Current Site

Since all articles from all sites are stored in a single Recombee database, use the item property that indicates the source site (e.g., `siteId`) to exclude content from the current site.

To allow deploying this Scenario accross various webistes, this filter should be sent dynamically in the [filter parameter](/api#recommend-items-to-user-param-filter) of the recommendation [API request](/api#recommend-items-to-user), using the current site’s identifier.

**Example Filter**

ReQL

```
'siteId' != "<current site id>"
```

## Constraints

Ensure Diversity Across Sites

To showcase the breadth of your network and avoid over-representing any single site, you can apply a [Constraint](/scenarios#constraints) to **limit the number of recommended articles per site**. To set this up:

1. Navigate to the [Constraints](/scenarios#constraints) tab and click **Add Constraint**.
2. Select or create an [Segmentation](/segmentations) that groups articles by site (e.g., using a `siteId` property).
3. Define the **Limit Type**:  
   * **Absolute** to allow a maximum number of articles from a single site (e.g., up to 2).  
   * **Percentage** to ensure no more than a defined share of items come from one site (e.g., max 50%).

This setup ensures that the recommendations include content from a variety of sources, reinforcing the value of your full portfolio.

![Admin UI - Constraint](/img/recipes/news/cross-site-constraints.png)

## Requesting Recommendations

There are three ways to integrate Cross-Site Recommendations.

1. **[No-Code Widget](/no-code-widgets)** – create a No-Code Widget using the **visual editor in the Admin UI** to embed the cross-site recommendations box without coding.
2. **[Widget SDKs](/widget-sdks)** – use the SDK for a [Carousel](/widget-sdks#carousel), [Grid](/widget-sdks#grid), or [Feed](/widget-sdks#feed) to display the recommendations in the design of your choice. Use the [Recommend Items to User](/api#recommend-items-to-user) when initializing the widget.
3. **[API SDK](/api_clients)** – call the [Recommend Items to User](/api#recommend-items-to-user) endpoint directly using the SDK of your choice to fetch personalized cross-site recommendations.

### Multiple Recommendation Boxes on the Homepage

If your homepage includes multiple recommendation sections — such as [personalized category-based sections](/recipes/news/homepage/personalized-sections-with-reordering) or [top stories](/recipes/news/homepage/top-stories) — you typically want to avoid duplication of content among the boxes. To achieve this:

* Use a single [Batch request](/api#batch) to send all recommendation requests at once.
* Enable the [distinctRecomms parameter](/api#batch-example-using-distinctrecomms-parameter-to-deduplicate-results-in-multiple-boxes) in the batch request to prevent overlapping articles between sections.

The [Widget SDKs](/widget-sdks) handle this functionality automatically.