The website is an output channel, not a second data store
The difference from other sectors lies in the direction of the data flow. The inventory is not recorded for the website, it is recorded for the business: type of marketing, price, floor area, number of rooms, features, energy data, contact person, status. All of that is already complete in the agency software, because it is needed there for the brochure, the portal advert and the assignment of prospects. The website does not need any of it a second time, it needs access. Which product runs in the office — onOffice, FlowFact, Propstack or one of the smaller solutions — matters less for the connection, as long as it exports OpenImmo. Practically every agency software does, because the same export also feeds the portals.
Mechanically, OpenImmo is unspectacular, and that is exactly why it is dependable: a package consisting of one XML file and the matching images, usually placed as a ZIP file in an agreed directory over FTP or SFTP. The import reads it, maps the listings onto the listing structure of the website and publishes them together with images, key figures and mandatory details. Two modes of operation have to be kept apart, and the delivery itself states which one is meant: the full synchronisation, in which it describes the complete inventory and everything not delivered goes offline, and the partial delivery, which only brings changes and deletions, where each listing carries its own action type. Anyone who confuses the two either deletes half of the inventory or keeps sold listings for ever. Every run writes a log: what was new, what changed, what was removed, what had to be held back.
For the editorial team, this shifts the content of the work. What is maintained by hand are the things without a listing reference: locations, team, sales process, valuation path, guide content, references. Nobody works on the listings themselves any more, with one exception that has to be defined in advance. Some agencies want to enrich individual listings editorially, for example with their own description of the location or with a highlight on the home page. In that case a clear separation applies: fields from the export are overwritten with every run, and editorial fields survive it. Without this separation, the first import that throws away a week of manual work is also the last one that anybody trusts.
OpenImmo is a standard. The mapping is still the project.
A shared format does not mean that two exports look the same. Many fields are optional, several details can be expressed in different ways, and part of what interests the prospective buyer sits in free text. Typical points where exports diverge: price on request instead of a number, living area against usable area against total area, sale and rent and lease in the same list, property type and type of use in combinations that your own categorisation did not allow for, commission stated as a percentage or as a sentence, the assignment of a listing to a branch office for which the format has no field of its own. We therefore define the mapping against a real export from the real system, and not against the schema. The first run is a test run against reality, and it usually finds cases that nobody would have mentioned beforehand.
Images deserve a separate look, because in this sector they are the showroom. They arrive from the export in varying sizes, portrait and landscape mixed, with a title image marker, often with a watermark, plus floor plans and occasionally attachments as PDF. The order in which they are delivered is a professional statement by the agent and has to be preserved. The required resolutions are derived during the import and not on every page view; delivery is graded and deferred. People who look at listings on a mobile phone often do so while they are out, and a gallery that loads two images and then stalls costs attention at exactly the point where it is needed.
The third point is fault tolerance, and it decides what daily operation looks like. An import that stops when one mandatory field is missing is unusable: a single unclean listing then holds up all the rest. The correct behaviour is to hold the affected listing back, name it in the log and let the rest through. Two special cases have to be secured explicitly. An empty or incomplete delivery — transfer aborted, directory empty, file damaged — must never be interpreted as a full synchronisation and remove the inventory. And a listing whose export is missing a detail required by law must not appear silently without that detail; it has to be noticed while there is still time to correct something.
Three concerns, separate paths
Prospective buyers are looking for listings. Owners are looking for an assessment and a process. Investors are looking for numbers. These paths are so different that the navigation has to separate them instead of sending everyone through the same entry point. In our projects this has produced two paths: one for buyers with search, listing pages and a saved search, and a second one for owners with valuation, sales process and a list of documents. A separate third path for investors is only worth it once the inventory supports it; as long as that is not the case, a segment filter in the search and one solid content page are enough. The enquiry on the listing carries the listing reference with it — number, description, responsible contact person — because the pre-qualification then begins before the first phone call and not after it.
The valuation path is the point where most goes wrong in this market. It makes sense as a multi-step form and asks only for as much as a first assessment needs; anyone who wants the land register details in the first step will not receive enquiries. We advise against instant valuation calculators that claim a figure from five fields: they produce leads and, at the same time, an expectation that somebody has to correct in the first conversation. The boundary to the contract matters just as much. Under section 656a of the German Civil Code (BGB), an agency agreement on the introduction or brokerage of a purchase contract for a flat or a single-family house requires text form, and for exactly these properties the commission cannot be shifted onto the buyer alone if the buyer is a consumer (sections 656c and 656d BGB). We do not give legal advice here — whether and how a contract should be concluded online is for the agent to decide with their lawyer. But the form path must not blur the boundary: with us, a valuation form produces a lead, not a signed contract.
What is needed around this is inconspicuous and often forgotten. A saved search that informs prospects about new listings needs documented consent, an unsubscribe route in every message and a trigger that can be traced. Maps are only loaded after consent, and for many listings only an approximate area is wanted anyway, not an address. We draw one line as a matter of principle: identity documents and papers for identification under money laundering law do not go through a web form. That is not a technical problem, it is a question of where such data should be held — and that is not the web server.
Listings come to an end, addresses do not
The life cycle of a listing is short and has fixed stages: new, being marketed, reserved, sold or let, off the market. The status comes from the leading system and has to take effect in all views at the same time: overview, detail page, search, sitemap, saved search. For the address of a completed listing there are three defensible answers, and the decision belongs in the concept and not in day-to-day operation. First: the page stays as a reference, without a price and without an enquiry form, with a note that the sale is complete and a route into the matching category. Second: a permanent redirect to the location and segment, if there is no reference value. Third: a clear statement that the listing no longer exists. The fourth option, a growing set of error pages with links from portals, newsletters and search engines pointing at them, is one that nobody chooses deliberately, and it is still the most common.
This leads to a consequence for visibility that we state before the quotation. The searches in this market that are close to a transaction are usually served by the large portals; competing against that with listing pages that disappear after eight weeks is not a strategy. The lasting substance of an estate agency website is elsewhere: in pages about location and segment that still apply next year, in the valuation path, in the sales process, in the people, in solid content about documents, costs and deadlines. Listing pages are the moving stock, not the foundation. Anyone who plans it the other way round builds reach on content that they delete again themselves.
Technically, this includes a decision about the search. Filter states should appear in the address, so that a result list can be linked and used for campaigns — we follow the same principle in our vehicle portals, where make, model and location are read from the address. At the same time, every additional filter dimension multiplies the number of possible addresses. Only a deliberately defined set of combinations for which there is real demand is therefore indexable; everything else stays reachable, but stays out of the index. In its spam policies, Google describes the case of doorway pages: pages created to rank for specific, similar search queries, which lead users to intermediate pages that are not as useful as the final destination. Filter combinations generated in bulk without content of their own fall into this pattern. The policy does not ask how the pages came about, but what they are for — and it names no percentages, no minimum shares and no thresholds, even if SEO blogs circulate such numbers regularly.
Mandatory details, commission, accessibility
If an energy performance certificate exists and the property is advertised in commercial media, section 87 of the German Building Energy Act requires details from that certificate, in essence: the type of certificate, the final energy demand or final energy consumption, the main energy sources of the heating system, and for residential buildings the year of construction and the energy efficiency class. The section has been amended several times, so the list of fields should be checked against the version of the law currently in force and not against the field list of a plugin — and advice on this has to come from a lawyer, not from the agency. For the build, three things follow from this: the values come from the source and are not typed in again, they have fixed places in the data record, and they must not be lost on the way. If a detail is missing in the export, the listing does not appear silently without it; it appears in the log.
The same principle applies to the commission, with one additional reason. The statement on the listing is not decoration, it is a statement with consequences, and it has to match the brochure and the portal advert. A field that is fed from the same source as the brochure keeps this match by itself. A sentence in the description text keeps it until the first change. The same applies to the listing number, the type of marketing and the contact person: everything that someone will rely on later is a field and not a paragraph.
Accessibility is not a formal exercise in this sector, because the decisive elements are exactly the critical ones. An image gallery has to be operable with the keyboard, and when the user moves on it has to say where they are. Floor plans need a text alternative that contains more than the words floor plan. Energy values belong in the output as text and not as an image, because otherwise they are missing for screen readers and for search engines alike. A map needs an alternative in text form, for example a description of the location and the surrounding area. This is at the same time the part that benefits findability: what is output in machine-readable form can also be marked up. There are structured data types for property listings, but there is no Google search result feature built on them — we add the markup and do not promise a presentation that does not exist.