Websites · Indexing · Our own site

We had the problem we now fix for others.

Scan your site free

Every article said "Loading…" to search engines. Now the full text is in the HTML.

The problem

Our blog looked fine in a browser. Articles loaded, headings showed, links worked. But the HTML our server sent to Google for every article said "Loading…" and nothing else. Zero H1. Zero H2. No body text. To a search engine, every post was the same blank page.

Why it happened

The page had the article data ready on the server, then ignored it and fetched it again in the browser after load. A common pattern in React apps, and an easy one to miss, because it looks perfect to anyone checking with their own eyes.

What we did

  • Rendered each article from the data the server already had, so the HTML ships with the full content
  • Removed a duplicate H1 the content pipeline was adding
  • Added 18 resource pages that were linked but missing from the sitemap (22 URLs became 40)
  • Made canonical URLs absolute and consistent across the site

What you can verify

Open any article on our blog. View source. The full text and headings are there. Paste one into our free scanner. It'll pass the indexable HTML check.

Before: the HTML our server sent ✕
<body>
  <div id="root">
    Loading...
  </div>
  <script src="/assets/index.js">
</body>

h1: 0   h2: 0   words of article: 0
After: the same URL, server-rendered ✓
<h1>Full article title</h1>
<p>Opening paragraph, in the HTML.</p>
<h2>First section heading</h2>
<p>Body text Google can read.</p>
<h2>Second section heading</h2>
<p>More body text.</p>
<h2>Third section heading</h2>
<p>...and so on, to the last link.</p>

h1: 1   h2: 6   full text: yes

If it can happen to people who do this for a living, it can happen to your Lovable site.

Scan your site free

Before you go

Is your tracking actually working?

Paste your URL. We check whether GTM, GA4, Meta Pixel and Consent Mode are on the page, and whether Google can read it without JavaScript. The results come by email.

Free. We only read what any visitor's browser can see.