SharePoint authoritative sites in Copilot Search

Authoritative sites help administrators identify official, organization-managed SharePoint sources. When you mark a site as authoritative, Copilot Search experiences recognize its content as trusted.

For users, this recognition improves confidence in search results. Visual signals, such as the From your organization label, make trusted items easier to identify.

Important

In the current release, configure authoritative sites through PowerShell and CSOM APIs. The configuration supports site-level designation but doesn't support personal sites.

Prerequisites

See Prerequisites for SharePoint Advanced Management.

Why use authoritative sites

Use authoritative sites to:

  • Improve trust in Copilot Search by promoting verified organizational sources.
  • Help users quickly identify official content.
  • Reduce time spent validating whether content is reliable.
  • Maintain centralized admin control over authoritative source designation.

Configure authoritative sites with SharePoint Online Management Shell

Use SharePoint Online Management Shell when you want a straightforward admin workflow.

  1. Install and import the module.
  2. Connect to your SharePoint admin center.
  3. Mark the site as authoritative.
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force
Import-Module -Name Microsoft.Online.SharePoint.PowerShell

Connect-SPOService -Url "https://<tenant>-admin.sharepoint.com"
Set-SPOSite -Identity "https://<tenant>.sharepoint.com/sites/<siteName>" -IsAuthoritative $true

Configure authoritative sites with CSOM (advanced)

Use CSOM when you need automation or bulk operations.

Note

CSOM version 16.1.26914.12004 or later is required.

Step 1: Install PnP PowerShell

Install-Module PnP.PowerShell -Scope CurrentUser -Force

Step 2: Register a Microsoft Entra ID app

Register an app for interactive authentication and copy the client ID from the output.

$tenant = "<TenantName>.onmicrosoft.com"
Register-PnPEntraIDAppForInteractiveLogin -ApplicationName "PnP Interactive (SPO Admin)" -Tenant $tenant -SharePointDelegatePermissions "AllSites.FullControl" -SharePointApplicationPermissions "Sites.FullControl.All" -GraphDelegatePermissions "Sites.FullControl.All" -GraphApplicationPermissions "Sites.FullControl.All" -Interactive
$clientId = "<FROM ABOVE OUTPUT>"

Step 3: Install SharePoint Online CSOM

Install-Package Microsoft.SharePointOnline.CSOM -Source nuget.org -Scope CurrentUser

Step 4: Load CSOM assemblies

$dllPath = "C:\Users\<USER_NAME>\AppData\Local\PackageManagement\NuGet\Packages\Microsoft.SharePointOnline.CSOM.<VERSION>\lib\netstandard2.0"
Add-Type -Path "$dllPath\Microsoft.SharePoint.Client.dll"
Add-Type -Path "$dllPath\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "$dllPath\Microsoft.Online.SharePoint.Client.Tenant.dll"

Step 5: Connect to SharePoint Online

$tenantDomain = "<TenantName>.onmicrosoft.com"
Connect-PnPOnline -Url "https://<TenantName>-admin.sharepoint.com" -ClientId $clientId -Tenant $tenantDomain -Interactive

Step 6: Initialize tenant object and verify API availability

$ctx = Get-PnPContext
$tenant = New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($ctx)
$ctx.ExecuteQuery()

$tenant.GetType().GetMethod("GetAuthoritativeResources")

CSOM operations

Get authoritative sites

$authResources = $tenant.GetAuthoritativeResources()
$ctx.ExecuteQuery()

Mark a site as authoritative

$siteId = [Guid]"<SiteId>"
$result = $tenant.SetResourceAsAuthoritative($siteId)
$ctx.ExecuteQuery()
$result.Value

Remove a site from authoritative sites

$siteId = [Guid]"<SiteId>"
$result = $tenant.RemoveResourceAsAuthoritative($siteId)
$ctx.ExecuteQuery()

If the site is removed successfully, the response is empty. If the operation fails, PowerShell returns an exception.

Bulk mark sites as authoritative

[System.Guid[]]$siteIds = @([Guid]"<SiteId1>", [Guid]"<SiteId2>", [Guid]"<SiteId3>")
$results = $tenant.BulkSetResourceAsAuthoritative($siteIds)
$ctx.ExecuteQuery()
$results

Bulk remove authoritative sites

[System.Guid[]]$siteIds = @([Guid]"<SiteId1>", [Guid]"<SiteId2>", [Guid]"<SiteId3>")
$results = $tenant.BulkRemoveResourceAsAuthoritative($siteIds)
$ctx.Load($results)
$ctx.ExecuteQuery()
$results

Lifecycle and maintenance

Maintain authoritative sites as a living set of trusted sources:

  • Review the list regularly and remove outdated or no-longer-official sites.
  • Validate behavior after site deletion or restore events.
  • Plan for propagation time after updates.

Limitations

  • You can mark up to 100 sites as authoritative.
  • Changes can take up to 72 hours to appear in supported experiences.
  • Designation is currently site-level only.
  • Multi-geo tenants manage authoritative site data per geo.
  • Personal sites can't be marked as authoritative.

Troubleshooting

If changes don't appear as expected, check the following items:

  • Licensing: A Microsoft 365 Copilot license is required. (See Prerequisites for SharePoint Advanced Management.)
  • Feature availability: Make sure the feature is enabled in your tenant.
  • Site eligibility: Make sure the URL is valid and references a supported SharePoint site.
  • Timing: Allow enough time for propagation (up to 72 hours).