La mayoría de los anuncios inmobiliarios son invisibles para los motores de búsqueda IA. Esta guía explica por qué y cómo solucionarlo, ya gestiones 1 propiedad o 10.000.
Marcado JSON-LD, datos estructurados y enriquecimiento de ubicación para que los anuncios inmobiliarios sean visibles en ChatGPT, Perplexity y Google AI Overviews.
Sin datos geo
Lo que ve la IA: nada aprovechable. Cero consultas de vecindario o proximidad respondidas.
Con GeoEnrich
Lo que ve la IA: aprovechable para más de 50 tipos de consulta, incluidos "apartamento de 2 dormitorios cerca del tranvía en De Pijp", "apartamento con parking por menos de 400k", "calle tranquila cerca de colegios".
GeoEnrich genera automáticamente la columna derecha a partir de una dirección. Una sola llamada API.
Añade este JSON-LD a tu página de anuncio inmobiliario para que los motores de búsqueda IA puedan procesarla y recomendarla de inmediato:
{
"@context": "https://schema.org",
"@type": "RealEstateListing",
"name": "2-Bedroom Apartment in Amsterdam De Pijp",
"url": "https://www.example-agency.com/listings/ruysdaelkade-21",
"description": "Bright 2-bedroom apartment on the Ruysdaelkade in De Pijp, Amsterdam. 85 square meters, south-facing balcony, open-plan kitchen, renovated bathroom. 200 meters from Albert Cuyp market, 1-minute walk to tram lines 3 and 12.",
"datePosted": "2026-03-15",
"about": {
"@type": "Residence",
"address": {
"@type": "PostalAddress",
"streetAddress": "Ruysdaelkade 21",
"addressLocality": "Amsterdam",
"addressRegion": "North Holland",
"postalCode": "1072 AK",
"addressCountry": "NL"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.3534,
"longitude": 4.8965
},
"floorSize": {
"@type": "QuantitativeValue",
"value": 85,
"unitCode": "MTK"
},
"numberOfRooms": 3,
"numberOfBedrooms": 2,
"numberOfBathroomsTotal": 1,
"petsAllowed": false,
"yearBuilt": "1925"
},
"offers": {
"@type": "Offer",
"price": 395000,
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
}
}
Esto cubre lo básico. Las secciones siguientes explican cómo añadir contexto de vecindario, POI cercanos, datos de transporte y más para que tu anuncio coincida con decenas de tipos de consulta adicionales. Consulta la pestaña de ejemplos de esquema para archivos completos listos para producción.
Las búsquedas inmobiliarias a través de IA son fundamentalmente diferentes de las búsquedas en portales. En lugar de menús desplegables, las personas describen lo que quieren en lenguaje natural. Entender estos patrones de intención es la base del GEO inmobiliario.
Son las consultas inmobiliarias más comunes y las más difíciles de responder para los anuncios tradicionales:
Cada una de estas consultas requiere datos de ubicación estructurados, coordenadas y contexto de POI cercanos. Sin ellos, tu anuncio es invisible.
A compradores e inquilinos les importa lo que hay cerca. Los motores IA necesitan datos de distancia para responder:
Estas combinan atributos de la propiedad con la ubicación:
Los inversores hacen preguntas diferentes:
Para aparecer en estos resultados, tu anuncio necesita datos estructurados que los motores IA puedan procesar: coordenadas exactas, POI cercanos con distancias, especificaciones de la propiedad como campos estructurados y señales de contexto de vecindario.
La gran mayoría de los anuncios inmobiliarios son invisibles para los motores de búsqueda IA. Este es el motivo y lo que hay que corregir.
"Ubicado en un barrio exclusivo" no le dice nada a la IA. "Ruysdaelkade 21, Amsterdam De Pijp, 200 metros del mercado Albert Cuyp" le dice todo. Las descripciones vagas son la principal razón por la que los anuncios fracasan. La IA no puede deducir que "gran zona" significa De Pijp, o que "cerca de tiendas" significa 200 metros de un mercado.
Sin latitud y longitud, la IA no puede calcular distancias. Cada consulta de proximidad ("cerca del parque", "junto al metro", "a distancia andando de los colegios") requiere coordenadas tanto del anuncio como del POI. Las coordenadas deben ser precisas a 4+ decimales. "52,35, 4,90" apunta a un radio de 100 metros; "52,3534, 4,8965" apunta a un edificio específico.
Aquí es donde la mayoría de los anuncios falla incluso si tienen dirección. Un anuncio con coordenadas pero sin datos de POI cercanos no puede responder "apartamentos cerca de colegios" porque la IA no tiene datos de colegios con los que hacer la correspondencia. Debes indicar explícitamente qué hay cerca, con nombres y distancias.
Los detalles de la propiedad enterrados en texto de párrafo son difíciles de extraer para la IA. "Este precioso apartamento de 85m² tiene 2 dormitorios, 1 baño y un balcón orientado al sur" es legible para humanos. Pero los campos de esquema estructurado como floorSize: 85, numberOfBedrooms: 2 y amenityFeature: "South-facing balcony" son legibles por máquinas. Los motores IA prefieren claramente los datos estructurados.
Un anuncio publicado hace 6 meses sin campo datePosted o dateModified parece abandonado. Los motores IA dan menor prioridad al contenido que parece obsoleto. Incluye siempre fechas y actualízalas cuando cambie el anuncio.
Un precio enterrado en el texto ("precio de venta: EUR 395.000") es más difícil de procesar que un Offer con price: 395000 y priceCurrency: "EUR". El precio es uno de los filtros más comunes en las consultas inmobiliarias, así que la ausencia de precios estructurados significa perder esas consultas por completo.
El tipo RealEstateListing de Schema.org es el esquema correcto para los anuncios inmobiliarios. Envuelve una propiedad (Residence, Apartment, House) en un contexto de anuncio con precio, fecha y disponibilidad.
Un RealEstateListing tiene tres partes clave:
about): dirección, geo, superficie, habitaciones, comodidadesUsa el @type más específico para la propiedad dentro de about:
Apartment para pisos, condominios, estudiosHouse o SingleFamilyResidence para casas unifamiliares o adosadasResidence como alternativa generalEstos campos son el mínimo para la visibilidad en IA:
{
"@context": "https://schema.org",
"@type": "RealEstateListing",
"name": "Descriptive title with key features and location",
"description": "150-300 word description with specific details",
"datePosted": "2026-03-15",
"about": {
"@type": "Apartment",
"address": {
"@type": "PostalAddress",
"streetAddress": "Herengracht 100",
"addressLocality": "Amsterdam",
"addressRegion": "North Holland",
"postalCode": "1015 BS",
"addressCountry": "NL"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.3728,
"longitude": 4.8882
},
"floorSize": {
"@type": "QuantitativeValue",
"value": 120,
"unitCode": "MTK"
},
"numberOfRooms": 5,
"numberOfBedrooms": 3,
"numberOfBathroomsTotal": 2
},
"offers": {
"@type": "Offer",
"price": 650000,
"priceCurrency": "EUR"
}
}
Estos campos aumentan el número de consultas con las que puede coincidir tu anuncio:
yearBuilt: año de construcción (importante para consultas de reforma)petsAllowed: true/false (filtra búsquedas de admisión de mascotas)amenityFeature: array de características como "Balcón", "Parking", "Jardín", "Ascensor", "Trastero"numberOfFullBathrooms / numberOfPartialBathrooms: más específico que el totalfloorLevel: planta en la que se encuentra la propiedadpermittedUsage: "Residencial", "Uso mixto", "Comercial"Las coordenadas solas le dicen a la IA dónde está una propiedad. El enriquecimiento geo le dice a la IA qué hay alrededor. Esta es la diferencia entre coincidir con 5 tipos de consulta y coincidir con 50.
Para una propiedad en Ruysdaelkade 21 en Ámsterdam, el enriquecimiento geo proporciona:
Usa el campo additionalProperty en la propiedad para añadir contexto cercano:
{
"@type": "Apartment",
"address": {
"@type": "PostalAddress",
"streetAddress": "Ruysdaelkade 21",
"addressLocality": "Amsterdam",
"postalCode": "1072 AK",
"addressCountry": "NL"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.3534,
"longitude": 4.8965
},
"additionalProperty": [
{
"@type": "PropertyValue",
"name": "Nearest School",
"value": "De Pijp Primary School, 350m"
},
{
"@type": "PropertyValue",
"name": "Nearest Supermarket",
"value": "Albert Heijn, 150m"
},
{
"@type": "PropertyValue",
"name": "Nearest Tram Stop",
"value": "Tram 3 (Ruysdaelkade), 80m"
},
{
"@type": "PropertyValue",
"name": "Nearest Park",
"value": "Sarphatipark, 400m"
},
{
"@type": "PropertyValue",
"name": "Nearest Hospital",
"value": "OLVG Hospital, 800m"
},
{
"@type": "PropertyValue",
"name": "Restaurants within 500m",
"value": "23"
}
]
}
Sin estos datos, la IA no puede responder ninguna de estas consultas sobre tu anuncio:
La API GeoEnrich de MapAtlas genera todo esto a partir de una sola dirección o par de coordenadas. Una llamada API devuelve colegios, transporte, compras, parques, salud y restaurantes con nombres y distancias, listos para insertar como valores additionalProperty.
Más allá de los POI individuales, compradores e inquilinos quieren entender el propio vecindario. Los motores IA buscan señales que describan el carácter y la habitabilidad de una zona.
Las puntuaciones a nivel de barrio ayudan a la IA a responder consultas de estilo de vida:
{
"additionalProperty": [
{
"@type": "PropertyValue",
"name": "Walk Score",
"value": "92/100"
},
{
"@type": "PropertyValue",
"name": "Transit Score",
"value": "88/100"
},
{
"@type": "PropertyValue",
"name": "Bike Score",
"value": "95/100"
}
]
}
Estas puntuaciones responden directamente consultas como "barrios transitables en Ámsterdam para vivir sin coche" o "mejores zonas para ciclistas que hacen trayectos al trabajo en Ámsterdam".
El tiempo de desplazamiento es uno de los principales factores de decisión para los compradores de vivienda. Inclúyelo como datos estructurados:
{
"@type": "PropertyValue",
"name": "Commute to Amsterdam Centraal",
"value": "12 minutes by tram, 18 minutes by bike"
}
Tu descripción del anuncio debe incluir contexto del barrio. En lugar de "gran vecindario", escribe:
"De Pijp es uno de los barrios más codiciados de Ámsterdam, conocido por el mercado callejero Albert Cuyp, una escena de restaurantes diversa y canales flanqueados por árboles. La zona tiene excelente transporte público con líneas de tranvía 3, 12 y 24, más la recientemente inaugurada Metro 52 (línea Norte-Sur). El Sarphatipark ofrece zonas verdes a 400 metros."
Este párrafo por sí solo coincide con docenas de consultas IA porque contiene hechos específicos y verificables que la IA puede extraer y citar.
Los totales agregados dan a la IA una idea de la densidad y la comodidad:
Estos recuentos permiten consultas comparativas: "¿Qué barrio de Ámsterdam tiene más restaurantes cerca?" o "Zonas con mejor cobertura escolar".
Los anuncios de alquiler y venta usan el mismo wrapper RealEstateListing, pero la estructura de la oferta y algunos campos difieren.
{
"offers": {
"@type": "Offer",
"price": 395000,
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"validFrom": "2026-03-15"
}
}
Para alquileres, el precio representa la renta mensual. Usa priceSpecification para aclarar el período de facturación:
{
"offers": {
"@type": "Offer",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": 1850,
"priceCurrency": "EUR",
"unitText": "MONTH"
},
"availability": "https://schema.org/InStock"
}
}
Los anuncios de alquiler se benefician de campos adicionales que los de venta no necesitan:
leaseLength: duración mínima del arrendamiento (p. ej., 12 meses)petsAllowed: crucial para búsquedas de alquiler ("alquileres que admiten mascotas en Ámsterdam")amenityFeature: amueblado/sin amueblar, suministros incluidos, parkingvalidFrom en la Oferta)Los alquileres vacacionales a corto plazo (estilo Airbnb) no deben usar RealEstateListing. Usan LodgingBusiness con precios por noche y horarios de entrada/salida. Consulta la sección de alquiler vacacional a continuación para más detalles.
Las búsquedas de inmobiliaria comercial siguen patrones diferentes a los del residencial. Las empresas que buscan oficinas, locales comerciales o espacios industriales hacen preguntas que requieren datos estructurados específicos.
Usa tipos específicos siempre que sea posible:
OfficeBuilding para oficinasShoppingCenter o Store para comercio minoristaWarehouse para industria/logísticaLocalBusiness como alternativa general con additionalTypeLos anuncios comerciales necesitan campos que los residenciales no tienen:
{
"@context": "https://schema.org",
"@type": "RealEstateListing",
"name": "350m2 Office Space in Amsterdam Zuidas",
"about": {
"@type": "OfficeBuilding",
"address": {
"@type": "PostalAddress",
"streetAddress": "Barbara Strozzilaan 201",
"addressLocality": "Amsterdam",
"postalCode": "1083 HN",
"addressCountry": "NL"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.3361,
"longitude": 4.8756
},
"floorSize": {
"@type": "QuantitativeValue",
"value": 350,
"unitCode": "MTK"
},
"amenityFeature": [
{"@type": "LocationFeatureSpecification", "name": "Fiber Internet"},
{"@type": "LocationFeatureSpecification", "name": "24/7 Access"},
{"@type": "LocationFeatureSpecification", "name": "Meeting Rooms"},
{"@type": "LocationFeatureSpecification", "name": "Parking Garage"},
{"@type": "LocationFeatureSpecification", "name": "Reception Desk"}
],
"additionalProperty": [
{"@type": "PropertyValue", "name": "Floor Level", "value": "8th floor"},
{"@type": "PropertyValue", "name": "Nearest Metro", "value": "Amsterdam Zuid, 200m"},
{"@type": "PropertyValue", "name": "Parking Spaces", "value": "12 included"}
]
},
"offers": {
"@type": "Offer",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": 45,
"priceCurrency": "EUR",
"unitText": "SQM/YEAR"
}
}
}
Los arrendatarios comerciales se preocupan por un contexto cercano diferente al de los residentes:
La API GeoEnrich devuelve todas estas categorías de POI, permitiéndote enriquecer automáticamente los anuncios comerciales con el contexto que buscan los arrendatarios empresariales.
Los alquileres vacacionales (estancias cortas estilo Airbnb) necesitan un enfoque de esquema completamente diferente. Son negocios de hospitalidad, no ventas inmobiliarias ni alquileres a largo plazo.
El tipo de esquema correcto para los alquileres vacacionales es LodgingBusiness (o el más específico VacationRental si se admite). Esto indica a los motores IA que la propiedad acepta huéspedes a corto plazo con precios por noche, horarios de entrada/salida y servicios de hospitalidad.
Las búsquedas de alquiler vacacional son muy específicas:
{
"@context": "https://schema.org",
"@type": "LodgingBusiness",
"name": "Canal View Apartment in Amsterdam Jordaan",
"description": "Charming 1-bedroom canal house apartment in the heart of Jordaan. Sleeps 2 guests. Original wooden beams, modern kitchen, rain shower. 5-minute walk to Anne Frank House and Westerkerk. Free WiFi, Smart TV, Nespresso machine.",
"address": {
"@type": "PostalAddress",
"streetAddress": "Prinsengracht 263",
"addressLocality": "Amsterdam",
"postalCode": "1016 GV",
"addressCountry": "NL"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.3752,
"longitude": 4.8839
},
"checkinTime": "15:00",
"checkoutTime": "11:00",
"numberOfRooms": 1,
"petsAllowed": false,
"amenityFeature": [
{"@type": "LocationFeatureSpecification", "name": "Free WiFi"},
{"@type": "LocationFeatureSpecification", "name": "Kitchen"},
{"@type": "LocationFeatureSpecification", "name": "Washing Machine"},
{"@type": "LocationFeatureSpecification", "name": "Smart TV"},
{"@type": "LocationFeatureSpecification", "name": "Air Conditioning"},
{"@type": "LocationFeatureSpecification", "name": "Canal View"}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.8,
"reviewCount": 127,
"bestRating": 5
},
"offers": {
"@type": "Offer",
"price": 135,
"priceCurrency": "EUR",
"unitText": "NIGHT"
}
}
Los huéspedes vacacionales se preocupan por POI cercanos diferentes a los residentes a largo plazo:
Usa la API GeoEnrich para generar automáticamente datos POI relevantes para turistas en cada alquiler vacacional.
Sigue este proceso para implementar el marcado de esquema en tus anuncios inmobiliarios.
Coloca la etiqueta <script type="application/ld+json"> en el <head> de cada página de anuncio. Para portales inmobiliarios con miles de anuncios, genera el esquema en el servidor desde tu base de datos de anuncios.
Prueba cada esquema con estas herramientas:
Después del despliegue, pregunta a los motores IA sobre tus anuncios:
Si la IA no puede responder con detalles específicos, tu esquema está incompleto o no se está rastreando. Comprueba que tu página es indexable (sin etiqueta noindex), que el JSON-LD está en el HTML renderizado (no solo en JS del lado del cliente) y que tu sitemap incluye las páginas de anuncio.
La pestaña de checklist en esta página cubre cada campo y señal necesarios para un GEO inmobiliario completo. Trabaja cada sección sistemáticamente. Apunta al 100% en el esquema básico y las secciones de dirección, luego añade contexto cercano y señales de vecindario para máxima cobertura.
Añadir manualmente POI cercanos, datos de transporte y contexto de vecindario a cada anuncio no es viable a escala. Si gestionas 100+ propiedades, necesitas automatización.
La API GeoEnrich de MapAtlas toma una dirección o par de coordenadas y devuelve contexto cercano estructurado:
El flujo de trabajo típico para portales inmobiliarios:
additionalPropertyEste proceso se ejecuta automáticamente para cada nuevo anuncio y puede procesarse en lote para el inventario existente.
Sin GeoEnrich, un anuncio coincide con consultas sobre su dirección y especificaciones básicas (dormitorios, precio). Con GeoEnrich, el mismo anuncio coincide con consultas sobre colegios, transporte, transitabilidad, restaurantes cercanos, parques, hospitales y tiempos de desplazamiento. Esa es la diferencia entre coincidir con 5 y con más de 50 tipos de consulta.
Para detalles de implementación y documentación de la API, consulta la página de la API GeoEnrich.
Automatizar a escala
La API GeoEnrich de MapAtlas agrega automáticamente coordenadas, POIs cercanos, acceso a transporte, contexto de barrio y datos geo listos para esquemas a cada anuncio, una llamada API por anuncio, a cualquier escala.