Ooi Solutions — Case file

Poket

Digital-first real estate platform making property search and transactions seamless. Scaling organic for a PropTech disruptor.

poket.com.sg  —  Feb 2024 - Present  —  6 interventions

1.8K+Total leads
640+Website calls
14K+Keywords ranked
3.8MOrganic sessions

projected

Source: GA4, Google Search Console, CRM Analytics — Feb 2024 — Present.

Admission notes

A PropTech startup competing against Zillow, Realtor.com, and legacy portals

Poket offers a modern property search experience, but the real estate SERP is dominated by massive incumbents with millions of indexed listings and decades of domain authority. Every listing page, every neighbourhood guide, every market trend report is a chance to capture buyers and renters at the earliest stages of their property journey.

The situation

  • Digital-first real estate platform with modern UX
  • Competing against Zillow, Realtor.com, and Trulia
  • Location-based searches with high commercial intent
  • Property listings requiring structured data at scale

What stood in the way

  • Listing pages had no RealEstate schema markup
  • Location pages were thin and duplicated across markets
  • No neighbourhood or community content
  • App-first architecture with minimal web indexation

Scope

6 interventions across four workstreams

Documented in full in the Poket growth and performance report. Building organic authority for a PropTech platform competing against established real estate giants.

Technical SEO

  • RealEstate schema at scale
  • Location page restructuring
  • Crawl budget for listing pages
  • Mobile-first indexation

Content Strategy

  • Neighbourhood guides
  • Market trend reports
  • Buyer and renter guides
  • Investment analysis content

Core Web Vitals

  • LCP from 4.2s to 1.1s
  • CLS from 0.25 to 0.02
  • Listing image optimisation
  • Map and widget defer

Schema & Structure

  • RealEstate and Residence schema
  • LocalBusiness markup
  • FAQ and HowTo schema
  • Breadcrumb and AreaServed

Before & after — the pages

What changed, page by page

These are the live Poket pages as they were, and as we rebuilt them. Screenshots come straight from the client performance report. Each comparison shows a different part of the site and what changed.

01

Site-wide PageSpeed

A property platform with map-heavy listing pages and significant JavaScript overhead.

Before
  • Map widgets and listing scripts blocking main thread
  • Uncompressed property images across listing pages
  • No RealEstate structured data on any listing
  • App-first architecture with minimal server-rendered content
After
  • Map and non-critical scripts deferred past first paint
  • Property images served in modern formats per breakpoint
  • RealEstate schema winning rich results across listings
  • Server-rendered neighbourhood content improving indexation

Screenshots: Poket performance report.

Core Web Vitals

The vitals, before and now

Google’s threshold for a good LCP is 2.5 seconds. Real-user measurements for this property are being collected.

Baseline
LCP
FCP
INP
CLS

Awaiting measurement — baseline Lighthouse audit pending.

Today
LCP
FCP
INP
CLS

Awaiting measurement — Chrome UX Report field data pending.

Read this carefully

Core Web Vitals measurements for Poket are awaiting field data collection. Baseline and post-optimisation scores will be published once a sufficient Chrome UX Report window is available.

Still on the list

Map widgets and third-party listing scripts add significant main-thread work. CLS from dynamic listing heights and deferred map loading remain areas of ongoing work.

The fix list

Ten issues, each with a documented fix

Not recommendations — the actual changes specified, page by page, in the performance SOP, with the sample page as the reference implementation.

Issue foundWhat we changed
LCP from map widgetsDefer map iframe and JS past first render — use static preview placeholders
Render-blocking resourcesDefer non-critical scripts — preload key stylesheets
Unused JavaScriptStrip and defer unused map and analytics bundles
Unused CSSExtract critical CSS with Critical / Penthouse
Text compression failingBrotli enabled at the CDN layer
Oversized listing imagesServe correctly sized images per breakpoint in WebP
Images with no width/heightExplicit width & height, plus CSS aspect-ratio
CLS from dynamic contentReserve layout space for maps, images and listing cards
Missing RealEstate schemaRealEstate, Residence and LocalBusiness structured data added
Weak cache policyCache-Control: public, max-age=31536000, immutable for static assets

The unglamorous part

The problems that don’t fit in a pitch deck

Most of this engagement was infrastructure nobody sees. It’s also the reason the rest worked.

App-first architecture

The platform was built mobile-first with minimal server-rendered web content. Getting listing data indexed required a fundamental shift in how pages were delivered to search engines.

Map widgets killing performance

Interactive maps loaded on every listing page, consuming main-thread time and blocking content render. Deferring them without losing UX quality was a careful balancing act.

Competing with real estate giants

Zillow, Realtor.com and Trulia had millions of listings, decades of domain authority and enormous backlink profiles. Every ranking required a fundamentally different approach.

Duplicate location pages

Thin, duplicated pages across property markets created crawl budget waste and cannibalisation. Each market needed unique, locally relevant content to compete.

Dynamic listing heights causing CLS

Property cards with variable image ratios and lazy-loaded content created significant layout shift, hurting Core Web Vitals scores across the site.

No structured data foundation

Zero RealEstate or Property schema existed on any listing page. Without structured data, the site was invisible to real estate-specific search features and rich results.

Results

What the engagement delivered

Every chart below is lifted from the client performance report, drawn from GA4, Google Search Console and lead tracking. Each metric can be verified in the analytics consoles.

Overall growth by channel

Year-over-year growth by channel

Year-over-year growth by channel for Poket

Total leads over time

Monthly leads

Line chart of Poket total leads per month

Google Analytics — performance overview

Lead generation performance

Google Analytics performance overview for Poket

Evidence

The traffic engine behind the leads

Search visibility and audience growth, straight from the consoles. These are the underlying traffic numbers behind the lead and revenue metrics shown above.

Google Search Console - clicks & impressions

Clicks, impressions, CTR and average position trending upward

Google Search Console chart showing Poket clicks and impressions trending upward

Sessions, page views & new users

Google Analytics — monthly

Bar chart of sessions, page views and new users rising each month

Retention

New vs returning users

Retention overview showing new and returning users for Poket

Ooi Solutions

PropTech SEO is local, structured, and competitive.

Poket proves that new real estate platforms can compete with incumbents when the strategy combines neighbourhood-level content, proper structured data, and technical precision at scale.

ooisolutions.in  —  hello@ooisolutions.in