pedrojimenez.dev
// for real estate

Nobody buys a house from a page that does not rank

In real estate, organic search is the whole game — and it is brutally unforgiving of exactly what a multilingual property site gets wrong. Most agency sites are technically broken in ways that never show up in the browser and show up permanently in Google. This is the build that fixes that layer.

// what is quietly costing you listings
×Your CMS returns the English URL as the canonical for every language, which tells Google to ignore the Spanish, French and German versions of every listing.
×Deleted properties return a 200 with a "Not Found" title instead of a real 410 — the soft-404 pattern Google explicitly penalises, burning crawl budget on dead inventory.
×Listing pages load slowly enough that visitors leave before the gallery renders.
×Retargeting fires on the wrong identifier, so ad audiences never match real inventory.
// what gets built

One routing map, every locale

Every translated slug defined once, with canonicals, hreflang, x-default, sitemaps and navigation all derived from it. No duplicated route trees to drift apart — the class of bug that produced 6,284 hreflang errors on the last site I took over.

Canonicals computed, not trusted

Read from your own routing rather than whatever the CMS plugin reports. Getting this wrong deindexes every non-English version of the site.

Correct status codes

Deleted listings return a real HTTP 410 and drop out of the sitemap, so crawl budget goes to inventory you can actually sell.

Static speed, current prices

Property pages render statically with hourly revalidation — edge-fast, never more than an hour stale on price, with instant revalidation for urgent corrections.

Tracking that matches inventory

Meta Pixel and the Conversions API keyed to the catalog listing ID rather than the CMS post ID, so retargeting audiences resolve against real properties.

Verified, not assumed

A 55-check validator runs against live URLs for canonical, hreflang, html lang and redirect correctness before every deploy. SEO enforced by scripts, not by hoping.

// the proof

Live for a Century 21 franchise: roughly 1,400 listings across English, Spanish, French and German, on top of a legacy WordPress catalog that was never designed for headless use.

C21 Perdomo — Web app
Web app · 2026

C21 Perdomo

Headless Next.js storefront over an existing WordPress catalog, serving ~1,400 property listings in English, Spanish, French, and German — a build where routing and technical SEO are the architecture, not an afterthought.

Read the case study

Send me the URL and I will tell you what is broken.

Most property sites have three or four of the problems above right now. Point me at yours and you will get specifics, not a pitch.

Start a projectAll work

Services