MSK Latam is an educational platform with hundreds of medical training courses across Latin America. It had excellent content… but less than 30% of its site was indexed. Here is how we unlocked its visibility.

Key takeaways

  • Problem: Google could not render or index the content because of JavaScript errors in a React/Next.js architecture.
  • Diagnosis: Googlebot received empty pages or pages with client-side errors (Soft 404). Client-side rendering failed when using window, localStorage and loading animations.
  • Solution: Prerender.io with Cloudflare Workers to serve static HTML to bots, plus a refactor of the Next.js components.
  • Results: +5.55× crawled pages, +112,000 prerendered pages in one month, delivery time from 24.3 s → 4.3 s, and +50% of Google visits served with a Cache Hit.

The problem: great content, no visibility

In early 2025, MSK Latam had a robust website and carefully produced content. However, less than 30% of its site was indexed and organic traffic was not taking off. In Search Console the signals were clear:

  • A drop in the discovery of new URLs.
  • A decline in clicks and impressions.
  • Thousands of pages reported as “Soft 404”.
  • Failed renders on multiple key pages.

Google cannot index what it cannot understand. And if the content depends on JavaScript that fails or lags, it simply does not see it.

Technical diagnosis

The technical audit took us to the heart of the problem: the site was built in Next.js with hybrid rendering and heavy use of JavaScript. What worked perfectly for the user failed for Googlebot.

1. JavaScript rendering failures

Google encountered errors such as ChunkLoadError (it could not access key JS files) and Minified React error #423 (internal React errors that interrupted rendering).

2. Googlebot was not reaching the rendered content

Although the content was in the HTML after running JavaScript, Google did not always get to see it: its rendering process was interrupted or took longer than allowed.

3. Infrastructure restrictions

The .htaccess file was blocking User-Agents such as Googlebot-Image, and Cloudflare’s “Bot Fight Mode” could filter out legitimate bots, preventing them from reaching the prerender.

The solution: prerendering + environment optimization

1. Code refactor in Next.js

We replaced poorly configured dynamic imports (adding { ssr: true }), added user-agent detection in components such as PasswordGate and ClearLocalStorage so client-side logic would not run during the prerender, and added Error Boundaries in React.

2. Prerender.io integration

We set up Cloudflare Workers that detect whether a request comes from a bot and redirect it to Prerender.io, which serves HTML versions of the site without needing to run JS. We tuned headers and timeouts to make sure images and scripts loaded before sending the version to Google.

3. Infrastructure adjustments

We removed the blocking rules in .htaccess, disabled Cloudflare’s Bot Fight Mode, and adjusted the caching logic to correctly distinguish between Cache Hit and Cache Miss.

The results: more indexed pages, more traffic

10× indexing: previously Google had indexed around 2,000 pages; after the fix the site surpassed 4,700 with an upward trend.

Performance and crawling: delivery time dropped from 24.37 s to 4.39 s, with a +455% increase in crawl budget.

Organic traffic on the rise: clicks +15% (from 7,960 to 9,200) and impressions +59% (from 77K to 123K).

Conclusion

This case shows that indexing problems are not always about content, links or keywords. On modern sites, rendering and infrastructure play a critical role in how Google interprets (or fails to interpret) the content. We unlocked indexing for a complex site, improved speed for Googlebot, and doubled the indexed URLs.

Does your site have many pages but few of them indexed?

If your content is good but does not show up on Google, we can help you unlock its full SEO potential with a technical audit.

Book a meeting