実店舗のホームページを運営する場合、構造化データはできるだけ設定しておいた方がよいです。この記事ではその理由と設定内容をまとめ、WordPressで使えるソースも用意しました。
レストランなど一部の業種ではメニューや予約など細かい設定が可能ですが、そういうものがない業種(整体院やパーソナルトレーニング、教室など)の場合を説明しています。
構造化データを設定するメリットとは?
まず最初に知っておいて欲しいことは、構造化データにはSEO的な効果はないということです。
それを踏まえて、構造化データのメリットは何かというと、Google検索結果ページに表示される情報が多くなるということです。構造化データやGoogleマイビジネスにお店の情報を設定しておくと、下図のようにナレッジパネルに詳しい情報が表示されるようになります。
店舗の場合、Googleマイビジネスに情報を登録しておくだけでナレッジパネルは表示されます。ですが、Googleに自分のお店のことをできるだけ正確に知ってもらうためにも構造化データを設定しておいた方がよいです。また、その内容がGoogleマイビジネスと矛盾しないようにしておくことも大切です。
構造化データのソース例
構造化データの設定方法は何種類かありますが、余程の理由がない限りはJSON-LD形式一択です。
ローカルビジネスの場合、下記のようなソースをページ内に設置します。設置場所はどこでもよいですが<head>
タグ内に挿入することが一般的です。
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "LocalBusiness", // お店のタイプ
"image": [
"https://example.com/photos/1x1/photo.jpg", // 画像URL
"https://example.com/photos/4x3/photo.jpg", // 画像URL
"https://example.com/photos/16x9/photo.jpg" // 画像URL
],
"@id": "http://davessteakhouse.example.com", // 固有のURL
"name": "Dave's Steak House", // 屋号・店名
"address": {
"@type": "PostalAddress",
"streetAddress": "148 W 51st St", // 番地以降
"addressLocality": "New York", // 市区町村
"addressRegion": "NY", // 都道府県
"postalCode": "10019", // 郵便番号(ハイフン無し)
"addressCountry": "US" // 国名(JPやUS)
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 40.761293, // お店の座標(緯度)
"longitude": -73.982294 // お店の座標(経度)
},
"url": "http://www.example.com/restaurant-locations/manhattan", // 実在するURL
"telephone": "+12122459600",//国番号がから始まる電話番
"priceRange":"5000", //平均的な予算
"openingHoursSpecification": [ //営業時間
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [ //営業している曜日
"Monday",
"Tuesday"
"Wednesday",
"Thursday",
"Friday",
"Saturday",
],
"opens": "10:00", //開店時間
"closes": "14:00" //閉店時間
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [ //営業している曜日
"Monday",
"Tuesday"
"Wednesday",
"Thursday",
"Friday"
],
"opens": "16:30", //開店時間
"closes": "21:00" //閉店時間
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "16:00",
"closes": "19:00"
},
],
}
</script>
ちなみに下記のページで簡単に構造化データのソースを作ることができます。
構造化データに設定する属性値
属性値一覧
属性値 | 必須 | 説明 |
---|---|---|
@Type | 必須 | お店のビジネスの種類。 scheme.orgにたくさん登録されている。該当するものがない場合は LocalBusiness と設定。 |
@id | 必須 | ローカルビジネス毎に固有のID。URL形式で設定。他と被らなければ実在するURLでなくてもOK。複数店舗ある場合は全て異なるURLにする。 |
image | 必須 | レストランでカルーセルを表示する場合は必須。複数枚設定する。他では推奨のはずだが、無いと構造化データチェックツールでエラーが出る。 |
name | 必須 | お店の屋号 |
streetAddress | 必須 | 番地以降の住所 |
addressLocality | 必須 | 市区町村 |
addressRegion | 必須 | 都道府県 |
postalCode | 必須 | 郵便番号。ハイフン無し |
addressCountry | 必須 | 国(JPやUSで指定) |
latitude | 推奨 | 緯度(小数点以下5桁以上) |
longitude | 推奨 | 経度(小数点以下5桁以上) |
URL | 推奨 | お店のページのURL。実在するULRにする必要がある。 |
telephone | 推奨 | 電話番号。必ず国番号から始める必要がある |
priceRange | 推奨 | 価格の範囲 |
openingHoursSpecification | 推奨 | 営業時間を設定。複数の時間帯や休日、季節オープンなども設定できる。詳細は別途。 |
priceRangeはGoogleのサイトには掲載されていませんが、構造化データチェックツールでは推奨として警告が出ます。
@Typeの種類
Schema.org に掲載されているタイプの一覧は下記のようになります。
- AnimalShelter (動物保護施設)
- AutoBodyShop (自動車板金店)
- AutoDealer (自動車販売店)
- AutoPartsStore (自動車部品販売店)
- AutoRental (レンタカー店)
- AutoRepair (自動車修理店)
- AutoWash (自動車洗車場)
- GasStation (ガソリンスタンド)
- MotorcycleDealer (バイク販売店)
- MotorcycleRepair (バイク修理店)
- AutomotiveBusiness (その他の自動車関連)
- ChildCare (託児所)
- DryCleaningOrLaundry (クリーニング店)
- FireStation (消防署)
- Hospital (病院)
- PoliceStation (警察署)
- EmergencyService (その他の緊急サービス)
- EmploymentAgency (人材派遣)
- AdultEntertainment (アダルト系店舗)
- AmusementPark (遊園地)
- ArtGallery (画廊)
- Casino (カジノ)
- ComedyClub (お笑い劇場)
- MovieTheater (映画館)
- NightClub (クラブ)
- EntertainmentBusiness (その他のエンタメ)
- AccountingService (会計サービス)
- AutomatedTeller (ATM)
- BankOrCreditUnion (銀行・信組)
- InsuranceAgency (保険代理店)
- FinancialService (その他の金融機関)
- Bakery (パン屋)
- BarOrPub (バー)
- Brewery (醸造所)
- CafeOrCoffeeShop (カフェ)
- Distillery(蒸溜所)
- FastFoodRestaurant (ファーストフード)
- IceCreamShop (アイスクリーム店)
- Restaurant (レストラン)
- Winery (ワイナリー)
- FoodEstablishment (その他の飲食店)
- PostOffice (郵便局)
- GovernmentOffice (その他の政府機関)
- BeautySalon (美容院)
- DaySpa (エステ)
- HairSalon (理容店)
- HealthClub (ジム)
- NailSalon (ネイルサロン)
- TattooParlor (タトゥー店)
- HealthAndBeautyBusiness (その他の理美容)
- Electrician (電気設備)
- GeneralContractor (ゼネコン)
- HVACBusiness (空調設備)
- HousePainter (ペンキ)
- Locksmith (鍵屋)
- MovingCompany (引っ越し業)
- Plumber (配管業)
- RoofingContractor (屋根施工業)
- HomeAndConstructionBusiness (その他の建設業)
- InternetCafe (インターネットカフェ)
- Attorney (弁護士)
- Notary (公証人)
- LegalService (その他の法律関連)
- Library (図書館)
- BedAndBreakfast (B&B)
- Campground(キャンプ場)
- Hostel (ホステル)
- Hotel (ホテル)
- Motel (モーテル)
- Resort(リゾートホテル)
- LodgingBusiness (その他の宿泊業)
- CommunityHealth(公衆衛生)
- Dentist (歯医者)
- Dermatology(皮膚科)
- DietNutrition(食品栄養)
- Emergency(緊急)
- Geriatric(高齢者)
- Gynecologic(婦人科)
- MedicalClinic (病院)
- Midwifery(助産)
- Nursing(看護)
- Obstetric(産科)
- Oncologic(腫瘍内科)
- Optician (眼科)
- Optometric(検眼)
- Otolaryngologic(耳鼻咽喉科)
- Pediatric(小児科)
- Pharmacy (薬局)
- Physician (内科医)
- Physiotherapy(理学療法)
- PlasticSurgery(形成外科)
- Podiatric(小児科)
- PrimaryCare(診療所)
- Psychiatric(精神科)
- PublicHealth (保健所)
- MedicalOrganization (その他の医療機関)
- ProfessionalService (専門職)
- RadioStation (ラジオ局)
- RealEstateAgent (不動産屋)
- RecyclingCenter (リサイクルセンター)
- SelfStorage (貸倉庫)
- ShoppingCenter (ショッピングセンター)
- BowlingAlley (ボーリング場)
- ExerciseGym (体育館)
- GolfCourse (ゴルフ場)
- HealthClub (ジム)
- PublicSwimmingPool (プール)
- SkiResort (スキー場)
- SportsClub (スポーツクラブ)
- StadiumOrArena (スタジアム)
- TennisComplex (テニスコート)
- SportsActivityLocation (その他の運動場)
- AutoPartsStore (自動車部品販売店)
- BikeStore (自転車店)
- BookStore (本屋)
- ClothingStore (服屋)
- ComputerStore (コンピューター販売店)
- ConvenienceStore (コンビニ)
- DepartmentStore (デパート)
- ElectronicsStore (電器屋)
- Florist (花屋)
- FurnitureStore (家具屋)
- GardenStore (園芸用品販売店)
- GroceryStore (スーパー)
- HardwareStore (金物屋)
- HobbyShop (ホビーショップ)
- HomeGoodsStore (家庭用品店)
- JewelryStore (宝石店)
- LiquorStore (酒屋)
- MensClothingStore (紳士服店)
- MobilePhoneStore (携帯電話ショップ)
- MovieRentalStore (レンタルビデオ店)
- MusicStore (レコードショップ)
- OfficeEquipmentStore (オフィス用品店)
- OutletStore (アウトレット)
- PawnShop (質屋)
- PetStore (ペットショップ)
- ShoeStore (靴屋)
- SportingGoodsStore (スポーツ用品店)
- TireShop (タイヤ店)
- ToyStore (おもちゃ屋)
- WholesaleStore (卸売店)
- Store (その他の小売店)
- TelevisionStation (テレビ局)
- TouristInformationCenter (観光協会)
- TravelAgency (旅行代理店)
- LocalBusiness (その他の店舗)
営業時間の属性値
openingHoursSpecification
内で使う属性値の一覧です。
属性値 | 必須 | 説明 |
---|---|---|
@type | 推奨 | openingHoursSpecification を設定 |
.dayOfWeek | 推奨 | 営業曜日(英語で設定) ・Monday ・Tuesday ・Wednesday ・Thursday ・Friday ・Saturday ・Sunday |
.closes | 推奨 | 営業終了時刻 hh:mm:ss |
.opens | 推奨 | 営業開始時刻 hh:mm:ss |
.validFrom | 推奨 | 休業期間の開始日 yyyy-mm-dd |
.validThrough | 推奨 | 休業期間の終了日 yyyy-mm-dd |
営業時間の設定例
営業時間は柔軟に設定できますが、その分複雑にもなっています。ここでは設定例をいくつかご紹介します。
例えば、営業時間が月〜土:10時〜21時の場合は下記のようになります。
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday"
"Wednesday",
"Thursday",
"Friday",
"Saturday",
],
"opens": "10:00",
"closes": "21:00"
}
]
例えば、「昼の14時〜16時までは準備中」のように1日の中で営業時間が分かれる場合は次のように設定します。
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday"
"Wednesday",
"Thursday",
"Friday",
"Saturday",
],
"opens": "10:00",
"closes": "14:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday"
"Wednesday",
"Thursday",
"Friday",
"Saturday",
],
"opens": "16:00",
"closes": "21:00"
}
]
さらに、土曜日の午後だけは早く(19:00)に終わる場合は次のようになります。
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday"
"Wednesday",
"Thursday",
"Friday",
"Saturday",
],
"opens": "10:00",
"closes": "14:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday"
"Wednesday",
"Thursday",
"Friday",
],
"opens": "16:00",
"closes": "21:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Saturday",
],
"opens": "16:00",
"closes": "19:00"
}
]
24時間営業の場合、opens
を00:00に、closes
を23:59に設定します。
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "00:00",
"closes": "23:59"
}
]
定休日はopens
とcloses
をどちらも00:00にします。
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "00:00",
"closes": "00:00"
}
]
お盆や年末年始など長期間休む場合はvalidFrom
(閉店期間の開始日)とvalidThrough
(閉店期間の終了日)を指定します。次の例では2019年12月28日〜2020年1月4日まで休む場合を示しています。
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"opens": "00:00",
"closes": "00:00",
"validFrom": "2019-12-28",
"validThrough": "2020-01-04"
}
]
構造化データを設置する場所
自分のお店の概要を示すマークアップなので全ページに設定したくなりますが、基本は店舗のメインページに設置します。つまり、
- 1つしか店舗がない場合→トップページにのみ設置
- 複数店舗ある場合→各店舗の紹介ページに設置
となります。一つのページに複数店舗掲載していて、各店舗毎に個別ページがないサイト構成では対応は難しいと言えます。そういうページ構成はSEO的にもユーザービリティ的にもあまり良くないのでサイト構成から変えることをオススメします。
設置場所はHTML内のどこでもかまいませんが<head>
内に設置するのが一般的です。
WordPressで構造化データを設置するコード
WordPressではfunctions.phpに下記のコードを貼り付けることで対応できます。
トップページにだけ表示する場合
1店舗しか無い場合はトップページにのみ表示させればよいのでis_front_page()
で分岐させます。
<?php
function my_localbusiness_data() {
if ( is_front_page() ) {
?>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "LocalBusiness",
// ...ここにローカルビジネスのマークアップを記入する
}
</script>
<?php
}
}
add_action( 'wp_head', 'my_localbusiness_data' );
?>
任意のページに表示させる場合
各店舗の初回ページ毎に表示させたい場合、各ページのIDを用意しておく必要があります。例えば2店舗ある場合は次のようになります。
<?php
function my_localbusiness_data() {
global $post
$shop_id_1 = 123 // 1店舗目のページID
$shop_id_2 = 456 // 2店舗目のページID
if ( $post->id == $shop_id_1 ) {
?>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "LocalBusiness",
// ...ここに1店舗目のローカルビジネスのマークアップを記入する
}
</script>
<?php
} elseif ( $post->id == $shop_id_2 ) {
?>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "LocalBusiness",
// ...ここに2店舗目のローカルビジネスのマークアップを記入する
}
</script>
<?php
}
}
add_action( 'wp_head', 'my_localbusiness_data' );
?>
いかがでしたか?どう設定するかわかったでしょうか?上記のソースコードをコピーして
コメント
この記事へのコメントはありません。