Skip to content
We now build for Pharma & Life Sciences
ByteFlow Technologies
Case 05 · Travel & Pilgrimage

UjjainTemple.com — A 480-Page Bilingual Guide That Google Saw as One Page

Open UjjainTemple.com
8 → 277,295
Google impressions (28 days)
2,578
Google clicks (28 days)
484 (EN + HI)
Pages in the sitemap
10.0s → 1.0s
Desktop LCP, temple listing
Client

UjjainTemple.com · Own Product

Industry: Travel & Pilgrimage

Year: 2026

Challenge

UjjainTemple.com is a bilingual guide to the temples of Ujjain, in English and Hindi. In June 2026 it had hundreds of pages and only 8 impressions on Google. Every inner page shared the homepage's title and canonical, so Google treated the whole site as one page.

Approach

Rebuild every page as static HTML with its own title, canonical and structured data, in both languages. Then fix speed and snippets page by page, and restore the temple pages that had been removed while they still ranked.

Outcome

From 8 Google impressions in June to 277,295 impressions and 2,578 clicks in 28 days by late September. Desktop LCP on the temple listing fell from 10.0s to 1.0s.

UjjainTemple.com is our own guide to the temples of Ujjain: what each temple is, where it is, when it opens and how to reach it. It runs in English at the root and in Hindi under /hi/.

In June 2026 it had hundreds of pages and 8 impressions on Google in a month. The content was not the problem. The template was.

One template, one page

The site was a single-page React app. Every route rendered from the same index.html, which carried the homepage's title and canonical tag. To a crawler, a page about a small neighbourhood temple declared itself to be the homepage. Google did what it was told and folded everything into one URL.

LayerChoiceWhy
RenderingVite + React with static site generationEvery URL ships as real HTML, readable without JavaScript
Per-page headOwn title, description, canonical and structured dataEach page now says what it is, in its own language
LanguagesEnglish at /, Hindi at /hi/, old /en/ URLs 301 to the rootOne canonical home for each language, no duplicates
SearchPagefind static indexSite search with no server to run
HostingStatic files behind CloudflareFast everywhere, little to break

Then the slow, specific fixes

  • Speed. A 2 MB hero image was preloaded on all 442 pages and never shown. Removing it took desktop LCP on the temple listing from 10.0s to 1.0s.
  • Pages that should never have gone. 166 temple pages had been removed while they still ranked. Together they carried 5,483 impressions a month, 29% of the site's total. We restored them.
  • A Hindi blog without a rebuild. Posts come from our own news engine and go live without redeploying the site.

Result

June 2026Aug 30 – Sep 27, 2026
Google impressions8277,295
Google clicks—2,578

The site now has 484 pages in its sitemap, 243 in English and 241 in Hindi. An Android companion app, "Ujjain Guide: Mandir & Yatra", is live on Google Play.

What carries over to client work

Most "SEO problems" on modern sites are rendering problems. If every page cannot say what it is in plain HTML, no amount of content fixes it. We check that first, on every site we touch.

Ready When You Are

Start Your Transformation

One 45-minute discovery call. We walk you through scope, timeline, and pricing — no boilerplate.