How property data actually flows between a Spanish CRM, your site and the portals — and the three failure points that cost agencies listings.
An estate agency website is not a website with a property page bolted on. It is a front end for somebody else’s database, and everything difficult about it lives in that sentence.
The systems you will actually meet
On the Costa Blanca the CRM is usually Inmovilla — the most widespread in Spain, and owned by Idealista since 2022. Resales Online dominates further south and is common in agencies that share stock across the coasts. Inmobalia and Infocasa appear regularly, and Kyero matters as a portal rather than a CRM, because it is where Northern European buyers search.
Your site normally reads from one of these and writes to none of them. That constraint shapes everything else.
Three places it breaks
The feed arrives, incomplete. XML feeds are pull-based and generous about what they consider optional. A property with no photos, no price or no town is valid XML and a broken page. Every importer needs a validation layer that quarantines bad records rather than publishing them.
The feed does not arrive. Overnight imports fail silently more often than anyone expects — a timeout, a rotated password, a changed endpoint. If nobody is alerted, the site serves yesterday’s stock until someone notices a sold villa still listed. A failed import must page someone, not just write a log line.
Search gets slow. Two thousand properties with filters on price, town, bedrooms and pool is a query problem, not a design problem. Filtering in PHP over a full result set works at 200 properties and collapses at 2,000. This is the single most common reason agency sites feel sluggish on this coast.
What good looks like
Import runs on a schedule, validates, and writes into your own tables rather than querying the CRM live. Images are fetched once, resized server-side, and served in modern formats — property photography is the bulk of the payload on every agency site we have audited.
Search is indexed. Detail pages are static or cached, because they change rarely. And the whole thing is multilingual at the URL level, not through a translation plugin, because your buyers are not searching in Spanish.
The commercial point
Agencies switch web suppliers rarely and switch CRMs almost never. If your site cannot read the CRM the agency already runs, you are not a cheaper option — you are not an option. That cuts both ways: it is why this work is defensible once you can do it.