Free: a homepage mockup for your site in 1-2 days - before any contract or paymentFree: mockup in 1-2 daysGet it ↗
ArticleOctober 19, 2026 · 4 min read · EFIMOV DEV

Yandex sees an AI-builder website as empty: how we got it indexed without a rewrite

More and more sites are built in AI website builders: describe what you need and a few minutes later you have a nice page with animations. A month later the owner opens Yandex Webmaster and sees that almost nothing is in search. Here is a real example, the website of the Vysota children's hockey club: what the crawler sees, three ways to fix it and the pitfalls we hit ourselves.

What we had

The club's site was built fast: three days from the first references to release. Parents see the schedule, coaches, tournaments and news, and can book a trial session. The club updates the schedule and news in the admin.

The interface was made in Lovable. It is a React app: the browser gets an almost empty page, downloads a script, and the script renders the content, pulling data from the database.

A person notices nothing. But a search crawler often sees just an empty <div id="root"></div>. No schedule, no coaches, no text about the club. For the crawler the site is empty.

How to check your site in a minute

  • open the site and press Ctrl+U (view source). If the source lacks the text you see on screen, you have the same problem;
  • in Yandex Webmaster: Tools, then Server response check. See what HTML the crawler gets;
  • in Google Search Console: URL inspection, then View crawled page.

Google can run scripts and often copes on its own, if with a delay. Yandex handles such sites noticeably worse, and for businesses in Russia that is the main problem.

Three ways to fix it

Rewrite with server-side rendering. The proper way: pages are built on the server and the crawler gets ready HTML right away. But it means rebuilding the project, and the club's site was already live with the source in the builder.

Use a prerendering service. Paid services serve crawlers pre-rendered copies of pages. It works, but it is a monthly fee and one more external dependency.

Prerender it yourself. That is what we chose. The setup is simple:

  • once a day the server runs headless Chrome;
  • it opens every page, waits for the script to render the content and saves the finished HTML;
  • the web server serves that HTML to crawlers and people alike. For a person nothing changes: the page comes alive as usual.

We also gave every page its own title, description and canonical address. In the original build they were the same on every page.

Pitfalls we hit

“Loading...” got saved. Chrome sometimes saved a page before the data arrived, especially news. A page with just the word “Loading” could end up in search. Our fix: the script looks for that text in the result and retries, up to five times. If it still fails, the previous good copy stays.

News from the admin must not return 404. The club publishes news, but the prerender runs only at night. For the news section and the admin we kept a fallback: if there is no prerendered copy yet, the regular app is served. All other non-existent addresses return a real 404 page closed from indexing. Otherwise search engines see hundreds of identical “pages” at any made-up address.

The site looked half-empty though the database was full. After moving the database to our own server, pages opened without the schedule and coaches. Everything was in the database. The subdomain the site loads data from had no DNS record: the site loaded, but data requests went nowhere. Now, if content disappears, we check DNS first, not the database.

Rebuilding the front end breaks the prerender. When the club changes something in the builder and ships a new version, old copies point to files that no longer exist. The script notices and rebuilds the template from the fresh version.

The result

Crawlers get full pages with text instead of an empty block. The club's site was not rewritten: same interface, same admin, the club works as before. The prerender refreshes itself every night.

If your site comes from a builder

AI builders are great for testing an idea quickly. But if the site has to bring people from search, check it before investing in content and ads:

  • what the crawler sees (Ctrl+U and Webmaster);
  • whether every page has its own title and description;
  • whether the site returns a real 404 for non-existent addresses;
  • whether pages filled from the database are indexed: news, catalog, schedule.

If any of that is off, it can almost always be fixed without rewriting the site. See how we do technical SEO and redesigns that keep rankings. We start with a free review: we tell you whether search engines see your site and what to do about it.

Frequently asked

Why isn't a site built in Lovable or another AI builder indexed?

Such sites are usually React apps: the server returns an almost empty page and a script renders the text in the browser. Google often handles it, Yandex much worse, so the pages stay empty for search.

Can indexing be fixed without rewriting the site?

Yes. Prerendering: a headless browser on the server opens the pages in advance and saves finished HTML that is served to crawlers and people. The interface and admin stay the same.

How do I quickly check whether search engines see my site?

Press Ctrl+U on a page: if the source lacks the text you see on screen, the crawler does not see it either. Yandex Webmaster's server response check shows it more precisely.

More from the blog

All articles ↗

Got a project? We’ll draw it.

A free homepage mockup in 1-2 days - before any contract or payment. The quote comes after the mockup.

Get a free mockup ↗