Background
After migrating one of our farms from SharePoint 2013 to SharePoint 2019, everything appeared to be running smoothly.
A few months later, after installing a Cumulative Update, we started to notice a strange behavior in the Popularity Trends report.
The user’s mail
One of our clients reached out to report that their usage reports were completely empty without any visits a long time ago. No error messages, no warnings, just CSV files with zero hits and zero unique users.
The odd part? The sites were actively used every single day by hundred of users.
First checks
We verified the usual suspects:
- Usage and Health Data Collection was enabled in the farm
- Usage application proxy was in Started status.
- The WSS_Logging database was online and receiving data.
Everything was in order, yet the reports were still empty.
Different case in SharePoint SE
We also tested on a SharePoint Subscription Edition environment.
There, it simply said:
“A web analytics report is not available for this site. Usage processing may be disabled on this server or the usage data for this site has not been processed yet”
…even though the service was enabled and working.
Two environments, two different symptoms, same probable cause: the UI is no longer correctly reading the data.
The workaround: query SQL directly
When we checked the logging database, we found the data was very much there.
To retrieve page views and unique users, we ran the following SQL query on the usage database:
SELECT
SiteUrl,
COUNT(RowId) AS Hits,
COUNT(DISTINCT UserLogin) AS UniqueUsers
FROM dbo.RequestUsage
WHERE LogTime >= DATEADD(day, -7, GETUTCDATE())
GROUP BY SiteUrl
ORDER BYHitsDESC
This query returned all visits and unique users, the exact data missing from the usage built-in report.
Recap
Since this CU update, we have observed:
- In SP 2019, the usage report exports an empty CSV.
- In SP SE, the site web analytics report says “Usage processing may be disabled on this server or the usage data for this site has not been processed yet” even when it is enabled.
Takeaway
If your usage reports are empty or display incorrect messages, chances are the data still exists in the logging database.
Querying it directly not only recovers the missing data but also gives you greater flexibility to customize reports according to your needs.
Advice
Schedule a monthly PowerShell script that:
- Uploads it to a document library so users can consult it anytime
- Collects all usage report data from SQL
- Stores it as a CSV
- Upload it to a document library so it’s easily accessible to the relevant users.

