Kirill Semernin

Home / Case studies / Technical SEO audit of a 352,000-page UGC platform: finding where the crawl budget went

Technical SEO audit of a 352,000-page UGC platform: finding where the crawl budget went

At a glance

  • Site: a large user-generated content platform with category pages, user posts and reviews. 352,000 pages indexed.
  • My role: technical SEO audit, from data analysis to a prioritized fix roadmap and dev specs.
  • The ask: the client wanted organic traffic to grow and needed to know what was actually holding it back.

The challenge

352,000 indexed pages should bring strong organic visibility. It didn't. Before investing more in content, the client needed to know why.

What I did

I pulled data from Ahrefs, Semrush and Google Search Console across the whole site, not just the pages the client was worried about.

My first read was that the problem sat in category pages. Each one splits into five tabs, such as user posts, products, gallery and reviews. I suspected these tabs spread thin content across too many URLs and competed with the main category page. I checked it against Search Console traffic by tab. The tabs bring in about 10% of all category-related traffic, almost all of it through two of the five. Not the bottleneck.

The real volume problem was in pages nobody was watching: pagination and user profiles. Pagination URLs accepted any page number, including ones with no content behind them, and returned 200 instead of 404. Profiles compounded it. A large share of users have posted nothing, and the platform still builds a separate page for every profile tab (following, followers, activity), whether there's content on it or not. Multiply that across hundreds of thousands of users, and you get a very large number of indexable pages with nothing on them.

The scale showed up everywhere I looked. In the sitemap group alone: 72,517 pages Google discovered but never indexed, 27,588 it crawled but skipped anyway, 38,095 marked noindex, 2,457 returning server errors, and 9,143 with a canonical pointing somewhere else. Add 4,143 sitemap URLs whose own canonical tag disagreed with their sitemap entry, 1,343 indexable pages with zero internal links pointing to them, and 8,443 internal links leading to broken pages, most of them server errors. One root cause ran through all of it: sitemap, canonical tags, noindex rules and actual status codes were each telling Google something different about the same page.

I ranked the fixes by what blocks Google's crawling and indexing decisions first, not by what's easiest to build. Sitemap filtering and server errors came first, because they decide whether a page gets crawled at all. Canonical logic and internal linking came next. Core Web Vitals and content came last. The client's own developers were already working on Core Web Vitals, and content only pays off once the index signal underneath it is clean.

Results

The audit turned into a ranked fix list with concrete numbers and page examples at every level, from the sitemap filter down to the exact template generating the empty profile pages. The client's team is working through it now, in the order I set.

What I learned

The biggest crawl-budget problems are rarely in the content pages people worry about. On a large site, they're more often in the pages nobody thinks of as pages: pagination, profiles, utility tabs.

Working on a similar problem? Tell me about your site.

Get in touch

Tell me about your site and what you want to change. Prefer a call? Book a free 20-minute intro call.

A few lines are enough: the site, the market and the problem. I reply within 2 business days.