ほとんどの物件情報はAI検索エンジンに認識されていません。このガイドではその理由と解決策を、1件でも1万件でも管理する方を対象に解説します。
JSON-LD スキーママークアップ、構造化データ、位置情報エンリッチメントにより、物件情報を ChatGPT、Perplexity、Google AI Overviews で見つけやすくします。
ジオデータなし
AIが見るもの:照合できる情報がない。近隣・周辺クエリに答えられない。
GeoEnrich 使用時
AIが見るもの:「De Pijpのトラム近く2LDK」「駐車場付き40万以下のマンション」「学校に近い静かな通り」など50以上のクエリタイプに照合可能。
GeoEnrichは住所から右列を自動生成します。APIコール1回で完了。
以下の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"
}
}
これで基本はカバーできます。以下のセクションでは、近隣コンテキスト・近隣POI・交通データなどを追加してさらに多くのクエリタイプに対応する方法を説明します。完全な本番対応ファイルは「スキーマ例」タブをご覧ください。
AIによる不動産検索はポータルサイトの検索と根本的に異なります。ドロップダウンのフィルターではなく、自然言語で条件を伝えます。このインテントパターンを理解することが不動産GEOの基盤です。
最も多い不動産クエリであり、従来の物件情報では最も答えにくいタイプです:
これらのクエリにはすべて、構造化位置データ・座標・近隣POIコンテキストが必要です。これらがなければ物件は見えません。
購入者・賃借人は周辺環境を気にします。AIエンジンが回答するには距離データが必要です:
物件属性と場所を組み合わせたもの:
投資家は異なる質問をします:
これらの検索結果に表示されるには、AIエンジンが解析できる構造化データが必要です:正確な座標・距離付き近隣POI・構造化フィールドとしての物件仕様・近隣コンテキストシグナル。
ほとんどの物件情報はAI検索エンジンに認識されていません。その理由と対策を説明します。
「人気エリアに位置する」はAIに何も伝えません。「Ruysdaelkade 21、アムステルダム De Pijp、Albert Cuyp市場まで200m」はすべてを伝えます。曖昧な説明は掲載失敗の最大の原因です。AIは「素晴らしいエリア」がDe Pijpを意味するとも、「店に近い」が市場まで200mを意味するとも推測できません。
緯度と経度がなければ、AIは距離を計算できません。すべての近接クエリ(「公園の近く」「地下鉄近く」「学校まで徒歩圏」)は物件とPOI両方の座標が必要です。座標は小数点以下4桁以上の精度が必要です。「52.35, 4.90」は100mの範囲を指し、「52.3534, 4.8965」は特定の建物を指します。
住所があっても多くの物件情報がここで失敗します。座標があっても近隣POIデータがなければ、「学校近くのマンション」というクエリに答えられません。AIに照合する学校データがないからです。近くに何があるかを名前と距離で明示する必要があります。
段落テキストに埋もれた物件詳細はAIが抽出しにくいです。「この素敵な85m²のマンションは寝室2つ、浴室1つ、南向きバルコニー付き」は人間が読むもの。しかし floorSize: 85、numberOfBedrooms: 2、amenityFeature: "South-facing balcony" などの構造化スキーマフィールドは機械が読むもの。AIエンジンは構造化データを強く好みます。
datePosted や dateModified フィールドがない6か月前の掲載は放棄されたように見えます。AIエンジンは古く見えるコンテンツの優先度を下げます。必ず日付を入れ、物件情報が変わったら更新してください。
テキスト内の価格(「希望価格:395,000ユーロ」)は price: 395000 と priceCurrency: "EUR" を持つ Offer より解析しにくいです。価格は物件クエリで最も一般的なフィルターのひとつであり、構造化された価格がなければそのクエリを完全に逃します。
Schema.orgの RealEstateListing タイプは物件情報の正しいスキーマです。物件(Residence、Apartment、House)を価格・日付・在庫状況を含む掲載コンテキストでラップします。
RealEstateListingには3つの重要な部分があります:
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に物件の場所しか伝わりません。地理エンリッチメントは周辺に何があるかを伝えます。これが5種類のクエリと50種類のクエリの差です。
アムステルダムのRuysdaelkade 21の物件の場合、地理エンリッチメントで以下が得られます:
物件の 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はあなたの物件について以下のクエリに答えられません:
MapAtlas GeoEnrich API は住所または座標ペアから、これらすべてを生成します。1回のAPIコールで学校・交通・ショッピング・公園・医療・レストランの名前と距離が返ってきて、additionalProperty 値として埋め込めます。
個々のPOIを超えて、購入者・賃借人は近隣そのものを理解したいと思っています。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はアムステルダムでAの人気エリアのひとつで、Albert Cuyp街市場、多彩なレストランシーン、並木道の運河で知られています。3番・12番・24番のトラム路線と新開通のMetro 52(南北線)で公共交通が非常に便利です。Sarphatipark緑地まで400m。」
この1段落だけで数十ものAIクエリにマッチします。具体的で検証可能な事実が含まれており、AIが抽出・引用できるからです。
集計数によってAIは密度と利便性を把握できます:
これらの数値は「アムステルダムでレストランが最も多い地区はどこか?」や「学校のカバレッジが最もよいエリア」などの比較クエリを可能にします。
賃貸と売買の物件情報は同じ 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:家具付き/なし、光熱費込み、駐車場短期バケーションレンタル(Airbnb型)は RealEstateListing を使うべきではありません。夜間料金とチェックイン・アウト時間を持つ LodgingBusiness を使います。詳細は下のバケーションレンタルセクションを参照してください。
商業不動産の検索は住宅とは異なるパターンをたどります。オフィス・小売・工業スペースを探す企業は特定の構造化データを必要とする質問をします。
できるだけ具体的なタイプを使います:
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はこれらすべてのPOIカテゴリを返すため、商業テナントが検索するコンテキストで商業物件を自動エンリッチできます。
バケーションレンタル(Airbnb型短期滞在)には全く異なるスキーマアプローチが必要です。これはホスピタリティビジネスであり、不動産の売却や長期賃貸ではありません。
バケーションレンタルの正しいスキーマタイプは LodgingBusiness(またはサポートされている場合はより具体的な VacationRental)です。これによりAIエンジンは、夜間料金・チェックイン/アウト時間・ホスピタリティ設備を持つ短期ゲストを受け入れる物件だと認識します。
ホリデーレンタルの検索は非常に具体的です:
{
"@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"
}
}
バケーションレンタルのゲストは長期居住者と異なる近隣POIを気にします:
GeoEnrich APIを使えば、バケーションレンタル物件ごとに観光客向けのPOIデータを自動生成できます。
以下のプロセスに従って物件情報ページにスキーママークアップを実装します。
<script type="application/ld+json"> タグを各掲載ページの <head> に配置します。数千件の掲載を持つ不動産ポータルでは、掲載データベースからサーバーサイドでスキーマを生成してください。
各スキーマをこれらのツールでテストします:
デプロイ後、AIエンジンに物件について質問します:
AIが具体的に答えられない場合、スキーマが不完全かクロールされていません。ページがインデックス可能か(noindexタグなし)、JSON-LDがレンダリングされたHTMLにあるか(クライアントサイドJSだけではないか)、サイトマップに掲載ページが含まれているかを確認してください。
このページのチェックリストタブには、完全な物件GEOに必要なすべてのフィールドとシグナルが網羅されています。各セクションを体系的に進めてください。基本スキーマと住所セクションは100%を目指し、その後近隣コンテキストと近隣シグナルを追加して最大のカバレッジを達成します。
すべての掲載に近隣POI・交通データ・近隣コンテキストを手動で追加することは、大規模では現実的ではありません。100件以上の物件を管理する場合は自動化が必要です。
MapAtlas GeoEnrich API は住所または座標ペアを受け取り、構造化された近隣コンテキストを返します:
不動産ポータルの典型的なワークフロー:
additionalProperty 値に変換されるこのプロセスはすべての新規掲載に自動的に実行され、既存在庫のバッチ処理も可能です。
GeoEnrichなしでは、物件情報は住所と基本仕様(寝室数、価格)に関するクエリにのみマッチします。GeoEnrichあり では、同じ物件情報が学校・交通・ウォーカビリティ・近隣レストラン・公園・病院・通勤時間に関するクエリにもマッチします。これが5種類と50種類以上のクエリタイプの差です。
実装の詳細とAPIドキュメントは GeoEnrich APIページ をご覧ください。
大規模に自動化
MapAtlas GeoEnrich API は、各リスティングに座標、近くの POI、交通アクセス、地域コンテキスト、スキーマ対応ジオデータを自動的に追加します。リスティングごとに1回の API 呼び出しで、あらゆる規模に対応します。