At times, you may have to check the search crawl logs if search results don’t return results from specific content. Search crawl logs can be obtained from the search service application in the SharePoint on-premises environment.
However, to inspect the search crawl log in SharePoint Online, you must use Get-PnPSearchCrawlLog cmdlet. Make sure you have access to the Crawl Log before you execute any of these PowerShell scripts!
- Login to SharePoint Online Admin Center https://tenant-admin.sharepoint.com
- Click on “More Features” from the left navigation >> Click on the “Open” button under the Search.
- On the Search Service Application page, click on the “Crawl Log Permissions” link at the bottom >> Enter the user names whom you want to grant search crawl log permissions and click on “OK” to save your changes.
Register an App in Entra ID (Azure AD)
Step 1: Register an App in Entra ID (Azure AD)
-
Go to: https://entra.microsoft.com
Navigate to: Home > Azure Active Directory > App registrations
-
Click "New registration".
-
Provide:
-
Name:
PnP-PowerShell-App
-
Supported account types: Leave as Single tenant
On the left, select "Authentication" > "Add a platform" > "Mobile and desktop applications"
-
Redirect URI: Leave empty (or set to
http://localhost
if needed) Scroll to the bottom, find "Allow public client flows" and Enable this option
-
-
Click Register.
-
Copy the Application (client) ID – you’ll need it.
PowerShell to Get Search Crawl Log in SharePoint Online
Once you are granted access to crawl logs, use this PnP PowerShell script to get search crawl logs:
#Config Variables
$TenantURL = "https://rbeerla.sharepoint.com/sites/LearningSite/"
#Azure App Registration Client ID
$ClientId = "e0d998f9-266f-4967-9316-33532b0e475b"
#Connect to PnP Online
Connect-PnPOnline -Url $TenantURL -ClientId $ClientId -Interactive
#Get Search crawl log
Get-PnPSearchCrawlLog
This script gets you the last 100 entries from the search crawl logs.
We use parameters such as Log Level, Row Limit, Content Source, Filter, Start Date, End Date, etc., to refine crawl log entries. For example, let’s get the last 10 user profiles crawled in the past 30 days.
Get-PnPSearchCrawlLog -RowLimit 10 -EndDate (Get-Date).AddDays(-30) -ContentSource UserProfiles
We can also filter search crawl log for a specific site (or document library) as:
Get-PnPSearchCrawlLog -RowLimit 100 -Filter "https://rbeerla.sharepoint.com/sites/LearningSite/"
Get-PnPSearchCrawlLog -RowLimit 100 -Filter "https://rbeerla.sharepoint.com/sites/LearningSite/Lists/Email_Id_Request"
Conclusion
Checking the crawl log in SharePoint Online helps identify and fix search issues. Follow this guide to access the log, review crawled item statuses and errors, and confirm indexing, ensuring users can find the needed content.
Comments
Post a Comment