房地产 GEO 指南
绝大多数房源对 AI 搜索引擎而言是隐形的。本指南将告诉您原因,以及如何解决,无论您只有 1 套房产还是管理 10,000 套。
JSON-LD schema 标记、结构化数据与地理位置丰富化,助力房源在 ChatGPT、Perplexity 和 Google AI Overviews 中获得曝光。
无地理数据
AI 所见:无可匹配内容。零邻里或邻近查询得到回答。
使用 GeoEnrich
AI 所见:可匹配 50 多种查询类型,包括「De Pijp 附近有电车的两居室」、「停车位且售价低于 40 万的公寓」、「靠近学校的安静街道」。
GeoEnrich 可根据地址自动生成右列数据。仅需一次 API 调用。
快速开始
将以下 JSON-LD 添加到您的房源页面,AI 搜索引擎即可立即解析并推荐它:
{
"@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"
}
}
以上涵盖了基础内容。后续章节将介绍如何添加社区背景、附近兴趣点、交通数据等,以使您的房源匹配更多查询类型。完整的生产就绪文件请参见「Schema 示例」选项卡。
用户如何通过 AI 搜索房产
通过 AI 进行的房产搜索与门户网站搜索有本质区别。用户不再通过下拉筛选,而是用自然语言描述需求。理解这些搜索意图模式是房地产 GEO 的基础。
社区与位置查询
这是最常见的房产查询类型,也是传统房源最难以回答的:
- 「阿姆斯特丹 De Pijp 40 万以下两居室公寓」
- 「巴塞罗那国际学校附近的家庭住宅」
- 「伦敦 Zone 2 交通便利的安静街道」
- 「里斯本步行可达海滩的公寓」
- 「阿姆斯特丹南区医院附近的住宅」
每一个查询都需要结构化位置数据、坐标和附近兴趣点背景。缺少这些数据,您的房源将无从被发现。
邻近查询
买家和租客关心附近有什么。AI 引擎需要距离数据才能回答:
- 「靠近 Vondelpark 且 5 分钟步行有超市的公寓」
- 「阿姆斯特丹 500 米内有地铁站的住宅」
- 「Jordaan 附近餐厅和夜生活丰富的房产」
特征与规格查询
将房产属性与位置相结合:
- 「阿姆斯特丹 50 万以下带阳台和车位的三居室」
- 「海牙带花园的底层公寓」
- 「巴塞罗那 Eixample 带屋顶露台的顶层公寓」
- 「鹿特丹配备太阳能电池板的节能住宅」
投资查询
投资者会提出不同问题:
- 「阿姆斯特丹租金回报率最高的社区」
- 「里斯本适合投资的新兴区域」
- 「柏林 Mitte 与 Kreuzberg 每平方米均价对比」
要出现在这些结果中,您的房源需要 AI 引擎可解析的结构化数据:精确坐标、附近兴趣点及距离、结构化字段中的房产规格,以及社区背景信号。
房源为何在 AI 搜索中失利
绝大多数房源对 AI 搜索引擎而言是隐形的。以下是原因及解决方法。
1. 位置描述模糊
「位于优质社区」对 AI 毫无意义。「Ruysdaelkade 21,阿姆斯特丹 De Pijp,距 Albert Cuyp 市场 200 米」才能让 AI 获取所有信息。模糊描述是房源失败的最大原因。AI 无法推断「好地段」指的是 De Pijp,也无法推断「靠近商店」意味着距市场 200 米。
2. 缺少坐标
没有经纬度,AI 就无法计算距离。每个邻近查询(「靠近公园」、「地铁附近」、「步行到学校」)都需要房源和兴趣点的坐标。坐标精度需达到 4 位以上小数。「52.35, 4.90」指向 100 米半径;「52.3534, 4.8965」则精确指向某栋建筑。
3. 缺乏附近背景
即使有地址,大多数房源也在这里失败。有坐标但没有附近兴趣点数据的房源无法回答「学校附近的公寓」,因为 AI 没有学校数据可供匹配。您需要明确列出附近有什么,包括名称和距离。
4. 无结构化数据
埋藏在段落文本中的房产细节很难被 AI 提取。「这套精美的 85 平米公寓有 2 间卧室、1 间浴室和朝南阳台」是人类可读的。而 floorSize: 85、numberOfBedrooms: 2 和 amenityFeature: "South-facing balcony" 等结构化 schema 字段是机器可读的。AI 引擎强烈偏好结构化数据。
5. 房源过时
6 个月前发布且没有 datePosted 或 dateModified 字段的房源看起来已被废弃。AI 引擎会降低看似过时内容的优先级。始终包含日期,并在房源变更时更新。
6. 价格未放入结构化字段
埋藏在文本中的价格(「要价:39.5 万欧元」)比带有 price: 395000 和 priceCurrency: "EUR" 的 Offer 更难解析。价格是房产查询中最常见的筛选条件之一,缺少结构化定价意味着完全错失这些查询。
RealEstateListing Schema 标记
Schema.org 的 RealEstateListing 类型是房源的正确 schema。它将房产(Residence、Apartment、House)包裹在包含价格、日期和可用状态的房源上下文中。
核心结构
RealEstateListing 包含三个关键部分:
- 房源本身:名称、描述、datePosted、URL
- 房产(通过
about):地址、地理坐标、面积、房间数、配套设施 - 报价:价格、货币、可用状态
房产类型
在 about 中为房产使用最具体的 @type:
Apartment适用于公寓、共管公寓、单间公寓House或SingleFamilyResidence适用于独立/半独立住宅Residence作为通用后备类型
必填字段
以下字段是 AI 可发现性的最低要求:
{
"@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"
}
}
附加房产字段
以下字段可增加您的房源匹配的查询数量:
yearBuilt:建造年份(对翻新查询很重要)petsAllowed:true/false(过滤宠物友好搜索)amenityFeature:配套设施数组,如「阳台」、「停车位」、「花园」、「电梯」、「储藏室」numberOfFullBathrooms/numberOfPartialBathrooms:比总数更具体floorLevel:房产所在楼层permittedUsage:「住宅」、「混合用途」、「商业」
房源地理丰富化
坐标只能告诉 AI 房产在哪里。地理丰富化能告诉 AI 周围有什么。这是匹配 5 种查询类型与匹配 50 种的区别。
地理丰富化提供的内容
对于阿姆斯特丹 Ruysdaelkade 21 的房产,地理丰富化提供:
- 学校:De Pijp 小学(350m)、Montessori School Zuid(600m)、国际学校(1.2km)
- 交通:3 路电车站(80m)、12 路电车站(120m)、De Pijp 地铁站(500m)、阿姆斯特丹中央站(3.5km)
- 购物:Albert Cuyp 市场(200m)、Albert Heijn 超市(150m)、Ferdinand Bolstraat 购物街(300m)
- 公园:Sarphatipark(400m)、Vondelpark(1.2km)
- 医疗:OLVG 医院(800m)、药店(250m)、全科诊所(300m)
- 餐厅:500 米内有 23 家餐厅
如何构建附近兴趣点
使用房产的 additionalProperty 字段添加附近背景:
{
"@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"
}
]
}
为何这很重要
缺少这些数据,AI 将无法回答关于您房源的任何以下查询:
- 「De Pijp 学校附近的公寓」(需要学校兴趣点数据)
- 「阿姆斯特丹南区公共交通便利的房产」(需要交通数据)
- 「靠近超市和公园的住宅」(需要两者的兴趣点数据)
- 「医院附近的公寓」(需要医疗机构兴趣点数据)
MapAtlas GeoEnrich API 只需一个地址或坐标对即可生成所有这些数据。一次 API 调用返回学校、交通、购物、公园、医疗和餐厅的名称及距离,可直接嵌入为 additionalProperty 值。
社区背景信号
除了单个兴趣点,买家和租客还想了解社区本身。AI 引擎会寻找描述区域特征和宜居性的信号。
步行与交通评分
社区层面的评分帮助 AI 回答生活方式查询:
{
"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"
}
]
}
这些评分可直接回答「阿姆斯特丹适合无车生活的步行友好社区」或「阿姆斯特丹最适合骑行通勤的区域」等查询。
通勤时间数据
通勤时间是房产买家最重要的决策因素之一。将其纳入结构化数据:
{
"@type": "PropertyValue",
"name": "Commute to Amsterdam Centraal",
"value": "12 minutes by tram, 18 minutes by bike"
}
社区描述
您的房源描述应包含社区背景。不要写「优质社区」,而应写:
「De Pijp 是阿姆斯特丹最受欢迎的社区之一,以 Albert Cuyp 街市、多元餐饮场景和林荫运河而闻名。该区域公共交通极为便利,有 3、12 和 24 路电车,以及新开通的 Metro 52(南北线)。Sarphatipark 绿地距离仅 400 米。」
这一段落本身就能匹配数十个 AI 查询,因为它包含 AI 可提取并引用的具体可验证事实。
本地设施数量
汇总数量让 AI 感知密度和便利性:
- 「300 米内 14 家餐厅」
- 「500 米内 3 家超市」
- 「1 公里内 5 所学校」
- 「600 米内 2 个公园」
这些数量支持比较查询:「阿姆斯特丹哪个社区附近餐厅最多?」或「学校覆盖最好的区域」。
租赁与出售房源
租赁和出售房源使用相同的 RealEstateListing 包装器,但报价结构和部分字段有所不同。
出售房源报价
{
"offers": {
"@type": "Offer",
"price": 395000,
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"validFrom": "2026-03-15"
}
}
租赁房源报价
对于租赁,价格代表月租金。使用 priceSpecification 说明计费周期:
{
"offers": {
"@type": "Offer",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": 1850,
"priceCurrency": "EUR",
"unitText": "MONTH"
},
"availability": "https://schema.org/InStock"
}
}
租赁专用字段
租赁房源可受益于出售房源不需要的额外字段:
leaseLength:最短租期(如 12 个月)petsAllowed:对租赁搜索至关重要(「阿姆斯特丹宠物友好租赁」)amenityFeature:带家具/不带家具、含水电、停车位- 在描述或 additionalProperty 中说明押金金额
- 可入住日期(在 Offer 上使用
validFrom)
度假租赁不同
短期度假租赁(Airbnb 模式)不应使用 RealEstateListing。它们使用 LodgingBusiness,含夜间定价和入住/退房时间。详见下方度假租赁章节。
商业地产
商业地产搜索遵循与住宅不同的模式。寻找办公室、零售或工业空间的企业会提出需要特定结构化数据的问题。
常见商业查询
- 「阿姆斯特丹 Zuidas 每平方米 50 欧元以下的办公空间」
- 「巴塞罗那高客流量区域附近的零售空间」
- 「鹿特丹港区带装卸台的仓库」
- 「Centraal 站附近可共享办公的办公室」
- 「Jordaan 带露台许可的餐饮租赁空间」
商业房产 Schema
尽量使用具体类型:
OfficeBuilding用于办公空间ShoppingCenter或Store用于零售Warehouse用于工业/物流LocalBusiness作为通用后备,配合additionalType
商业房源需要住宅房源不需要的字段:
{
"@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"
}
}
}
商业专属丰富化
商业租户关心的附近背景与住宅居民不同:
- 交通枢纽:火车站、高速公路入口、机场距离
- 商业生态系统:附近企业、商业园区、会议中心
- 员工设施:餐厅、健身房、托儿所、停车位
- 客流量数据:零售空间的关键指标
GeoEnrich API 返回所有这些兴趣点类别,助您自动为商业房源丰富商业租户所需的背景信息。
度假与短租 AEO
度假租赁(Airbnb 式短租)需要完全不同的 schema 方法。这些是酒店业务,而非房产销售或长租。
使用 LodgingBusiness,而非 RealEstateListing
度假租赁的正确 schema 类型是 LodgingBusiness(或更具体的 VacationRental,如果支持)。这告诉 AI 引擎该房产接受含夜间定价、入退房时间和酒店式设施的短期客人。
与住宅房源的主要区别
- 定价:夜间费率,而非总售价或月租
- 可用性:入住和退房时间、最短入住天数
- 设施:WiFi、厨房、洗衣机、毛巾、床上用品
- 容纳人数:最大入住人数、床位数、卧室数
- 评价:来自房客评价的 aggregateRating
- 附近景点:游客关心的兴趣点与居民不同
度假租赁查询模式
度假租赁搜索高度具体:
- 「巴塞罗那哥特区每晚 150 以下可住 4 人的公寓」
- 「里斯本海景附近的度假租赁」
- 「阿姆斯特丹带花园和停车位的家庭度假屋」
- 「加尔达湖附近宠物友好的度假小屋」
- 「阿姆斯特丹适合情侣的浪漫运河房租赁」
度假租赁必填字段
{
"@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"
}
}
面向游客的地理丰富化
度假租赁房客关心的附近兴趣点与长租居民不同:
- 旅游景点:博物馆、地标、历史遗址及距离
- 餐厅和酒吧:步行范围内的密度和多样性
- 机场和车站交通:距主要交通枢纽的时间
- 海滩或滨水区:海滨房产的距离
- 超市:自助式客人最近的食品杂货店
使用 GeoEnrich API 为每个度假租赁房源自动生成面向游客的兴趣点数据。
实施与测试
按照以下流程在您的房源页面上实施 schema 标记。
第 1 步:将 JSON-LD 添加到房源页面
将 <script type="application/ld+json"> 标签放置在每个房源页面的 <head> 中。对于拥有数千个房源的房产门户,请从您的房源数据库服务端生成 schema。
第 2 步:验证
使用以下工具测试每个 schema:
- JSON Linter:在 jsonlint.com 验证语法
- Google Rich Results Test:search.google.com/test/rich-results
- AEO Checker:/ai-seo-checker,用于 AI 专项验证,包括坐标精度、附近兴趣点覆盖率和 schema 完整性
第 3 步:用 AI 引擎测试
部署后,向 AI 引擎询问您的房源:
- 「告诉我阿姆斯特丹 Ruysdaelkade 上出售的公寓」
- 「[您的房产地址] 附近有什么?」
- 「对比阿姆斯特丹 De Pijp 的房产」
如果 AI 无法给出具体回答,说明您的 schema 不完整或未被抓取。检查页面是否可索引(无 noindex 标签),JSON-LD 是否在渲染的 HTML 中(不仅仅是客户端 JS),以及您的 sitemap 是否包含房源页面。
第 4 步:使用清单
本页面的清单选项卡涵盖完整房产 GEO 所需的每个字段和信号。系统地逐节完成。力求基础 schema 和地址部分达到 100%,然后添加附近背景和社区信号以最大化覆盖范围。
通过 GeoEnrich API 扩展规模
为每个房源手动添加附近兴趣点、交通数据和社区背景在规模化场景下不可行。如果您管理 100 套以上房产,则需要自动化。
GeoEnrich 的工作原理
MapAtlas GeoEnrich API 接收地址或坐标对,返回结构化的附近背景信息:
- 学校(名称、类型、距离)
- 公共交通(站点、线路、距离)
- 购物(超市、市场、零售)
- 公园和绿地
- 医疗(医院、药店、全科诊所)
- 餐厅和咖啡馆
- 旅游景点(用于度假租赁)
- 步行性、交通和骑行评分
集成模式
房产门户的典型工作流:
- 创建含地址的房源
- 将地址地理编码为坐标(MapAtlas Geocoding API 或您现有的提供商)
- 将坐标发送至 GeoEnrich API
- 将响应解析为
additionalProperty值 - 生成含完整丰富化的 JSON-LD schema
- 将 schema 嵌入房源页面
此流程对每个新房源自动运行,也可对现有库存批量处理。
前后对比
没有 GeoEnrich,房源仅能匹配关于其地址和基本规格(卧室数、价格)的查询。有了 GeoEnrich,同一房源可匹配关于学校、交通、步行性、附近餐厅、公园、医院和通勤时间的查询。这是匹配 5 种与 50 多种查询类型的区别。
有关实施细节和 API 文档,请参见 GeoEnrich API 页面。
大规模自动化
手动编写模式对一条房源有效,但面对数千条时该怎么办?
MapAtlas GeoEnrich API 自动为每条房源添加坐标、附近兴趣点、交通接入、社区背景和模式就绪的地理数据,每条房源仅需一次 API 调用,可在任意规模下使用。