Budget: 27000 UAH Deadline: 40 days
Good day, Pavel!
The stack Nuxt + Cloudflare Pages and 23k pages clearly shows where the problem usually lies. Briefly on your points:
1. Where I would start the diagnosis.
GSC → report "Page Indexing": break down "Discovered, not indexed" vs "Crawled, not indexed" — these are different diagnoses. Next, "Crawl Statistics": whether Googlebot is hitting the crawl budget, what response codes, server response time. I would check if the content is rendered without JS (for Nuxt this is key — SSR/prerender vs CSR).
2. The most common reasons on a large site of 23k.
— Content is delivered via client-side JS, the bot sees emptiness (a common issue with Nuxt without proper SSR/SSG).
— Thin/almost-duplicate pages — Google consciously does not index them because it sees no value.
— Crawl budget is dispersed: faceted URLs, parameters, weak internal linking → deep pages are not reached by the bot.
— Sitemap without correct lastmod, causing the bot not to understand priorities.
3. Steps with the greatest effect.
— Ensure that all pages are served already rendered (SSR/prerender on Cloudflare).
— Bring "deep" pages closer to the main page through internal linking and hub pages.
— Break the sitemap into logical parts with accurate lastmod, remove non-indexed URLs from it.
— Remove/merge thin content, leaving only valuable pages for the bot — to avoid wasting crawl budget unnecessarily.
4. Tools.
GSC (Index + Crawl Stats + URL Inspection), Screaming Frog / Sitebulb for crawling 23k, server log analysis, Ahrefs for internal linking and profile.