SharePoint Authoritative Sites in Copilot Search

Authoritative sites help administrators identify official, organization-managed SharePoint sources. When a site is marked as authoritative, its content is recognized as trusted in Copilot Search experiences.

For users, this improves confidence in search results. Trusted items are easier to identify by visual signals such as the From your organization label.

Important

In the current release, authoritative sites are configured through PowerShell and CSOM APIs. Site-level designation is supported; personal sites aren't supported.

Prerequisites

  • You must be assigned the SharePoint Administrator or Global Administrator role.
  • Your admin account must have a Microsoft 365 Copilot license to mark a site as authoritative.
  • You need access to SharePoint Online Management Shell.

Why use Authoritative Sites

  • 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 an 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:

  • Licensing: the admin account has a Microsoft 365 Copilot license.
  • Feature availability: the feature is enabled in your tenant.
  • Site eligibility: the URL is valid and references a supported SharePoint site.
  • Timing: enough propagation time (up to 72 hours) has elapsed.