構造化データの営業時間の書き方|定休日・昼休み・祝日・臨時休業のパターン別コード【816サイトの調査つき】
公開日: / 更新日: / カテゴリ: 構造化データ / 執筆: エラバレル

「構造化データに営業時間を入れたいが、昼休みがあるときはどう書くのか」「定休日はどこに書けばいいのか」。店や医院のホームページで構造化データを整えようとすると、営業時間でつまずく方が少なくありません。
先に結論をお伝えします。構造化データで営業時間を書くときは、openingHoursSpecification を使い、曜日(dayOfWeek)・開店(opens)・閉店(closes)を1組にして、営業時間が違う曜日ごとに並べます。 定休日は書きません(書かれていない曜日が休み、という扱いになります)。
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "18:00"
}
]
選ばれるAI診断の調査では、店舗系の型を使っている111サイトのうち、営業時間を入れていたのは66件(59%)でした。4割のサイトは、せっかく店舗の構造化データを入れているのに、営業時間を伝えていません。
この記事では、昼休みがある、土曜だけ短い、夜0時をまたぐ、24時間営業、年末年始だけ休み、臨時休業といった、日本の店や医院によくあるパターンの書き方を、コードの見本つきでまとめます。
この記事でわかること
- openingHoursSpecification とは何か、なぜ営業時間を構造化データで伝えるのか
- 816サイトの調査で分かった、営業時間の書かれ方の実態
- 曜日と時刻の書き方の基本
- パターン別の書き方(曜日で違う・昼休み・夜をまたぐ・24時間・年末年始・臨時休業)
- 業種別の書き方の例と、よくある失敗
- 入れたあとの確認方法
openingHoursSpecificationとは? 営業時間を構造化データで伝える理由
openingHoursSpecification は、schema.org(構造化データの共通の辞書)で決められている、営業時間を表すための項目です。店や事務所を表す LocalBusiness(または Dentist・HairSalon などの業種の型)の中に入れて使います。
お客さんがAIに聞く質問には、営業時間に関するものがとても多くあります。
- 「〇〇歯科は土曜日もやっている?」
- 「今から行ける〇〇市の美容室は?」
- 「〇〇整体院の昼休みは何時から?」
- 「年末年始に開いている動物病院は?」
AIや検索エンジンは、ホームページの本文からも営業時間を読み取ろうとします。ただ、表や画像で書かれた営業時間は、読み間違えられることがあります。構造化データで「月〜金は9時〜18時」と決まった書式で書いておけば、機械が間違えずに読み取れる営業時間を用意できます。
「openingHours」と「openingHoursSpecification」の違い
営業時間の書き方には、"openingHours": "Mo-Fr 09:00-18:00" のように1行の文字列で書く古い形と、曜日・開店・閉店を項目に分けて書く openingHoursSpecification の2つがあります。どちらも読まれますが、Googleの説明で案内されているのは openingHoursSpecification です。昼休みや期間限定の時間も書けるので、これから書くならこちらを使います。
816サイトで、営業時間はどう書かれていたか
選ばれるAI診断が2026年9〜10月に、7業種の公式サイト816件のトップページを調べた結果です。
調査の結果(7業種・816サイト)
- 店舗系の型(LocalBusiness、Dentist、HairSalon など)を使っているのは111件
- そのうち、営業時間を入れているのは66件(59%)
- openingHoursSpecification で書いているのは56件、古い書き方(openingHours の文字列)は10件
- openingHoursSpecification で書いていた56件は、すべて曜日・開店・閉店がそろった正しい形だった
| 状態 | 件数 |
|---|---|
| 店舗系の型(LocalBusiness、Dentist、HairSalon など)を使っている | 111件 |
| そのうち、営業時間を入れている | 66件(59%) |
| openingHoursSpecification で書いている | 56件 |
| 古い書き方(openingHours の文字列)で書いている | 10件 |
店舗系の型を使っているサイトの4割は、営業時間を入れていませんでした。お客さんがAIに「今日やってる?」「土曜も開いてる?」と聞く時代に、構造化データで営業時間を伝えていないのはもったいない状態です。
一方で、openingHoursSpecification で書いていた56件は、すべて正しい形でした。書き方そのものは難しくありません。 入れていないサイトの多くは、「入れられることを知らない」「SEOプラグインの設定欄を空けたまま」というだけだと考えられます。
なお、2026年10月2日に見直した採点基準で22業種・2,296サイトを再診断したところ、運営者の情報が構造化データに十分入っていないサイトは97%でした。営業時間は、その運営者の情報を充実させる項目の一つです。
曜日と時刻の書き方の基本
曜日は英語で書きます。先頭は大文字です。
| 日本語 | dayOfWeek |
|---|---|
| 月曜 | Monday |
| 火曜 | Tuesday |
| 水曜 | Wednesday |
| 木曜 | Thursday |
| 金曜 | Friday |
| 土曜 | Saturday |
| 日曜 | Sunday |
時刻は24時間表記で "09:00"、"18:30" のように書きます。午後6時は "18:00"、午前9時は "9:00" ではなく "09:00" と、2けたで書くのが確実です。
1つの組には、次の4つを書きます。
| 項目 | 意味 | 例 |
|---|---|---|
| @type | この組の種類 | "OpeningHoursSpecification"(決まった文字) |
| dayOfWeek | 対象の曜日。複数なら [ ] で囲んで並べる | ["Monday", "Tuesday"] |
| opens | 開店(受付開始)の時刻 | "09:00" |
| closes | 閉店(受付終了)の時刻 | "18:00" |
パターン別の書き方
曜日によって時間が違う(土曜だけ短いなど)
時間が同じ曜日ごとにまとめ、組を分けて並べます。
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Friday"],
"opens": "09:00",
"closes": "19:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "09:00",
"closes": "13:00"
}
]
この例では、木曜・日曜が休みです(書いていない曜日が休み)。
昼休みがある(医院・事務所に多い)
同じ曜日の組を、午前と午後の2つに分けます。
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "12:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "14:30",
"closes": "18:30"
}
]
医院でよくある「水曜と土曜は午前のみ」の場合は、午前の組に水曜・土曜も入れ、午後の組からは外します。
夜0時をまたぐ(飲食店・バーなど)
閉店時刻を翌日の時刻で書きます。Googleは、同じ組の中で "opens": "18:00", "closes": "02:00" のように書く方法を案内しています。
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Friday", "Saturday"],
"opens": "18:00",
"closes": "02:00"
}
この例は「金曜と土曜は、夜6時から翌朝2時まで」という意味です。土曜の夜中2時までではなく、金曜の夜から始まる営業として読まれます。
24時間営業
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
"opens": "00:00",
"closes": "23:59"
}
葬儀社の「24時間受付」のように、電話の受付だけが24時間で、来店できる時間は別という場合は、構造化データには来店できる時間を書き、24時間受付は description(説明文)と本文に書くほうが誤解がありません。
祝日・年末年始・夏季休業(特定の日だけ違う)
validFrom と validThrough で期間を指定し、その日の営業時間を別の組で書きます。休みにする日は、開店と閉店をどちらも "00:00" にします。
{
"@type": "OpeningHoursSpecification",
"opens": "00:00",
"closes": "00:00",
"validFrom": "2026-12-29",
"validThrough": "2027-01-03"
}
祝日を毎回書くのは大変なので、小さな店や事務所なら「祝日休み」はホームページの本文とGoogleビジネスプロフィールに書き、構造化データには通常の営業時間だけを書く、という形でも十分です。
期間限定の組は、終わったら消す
年末年始などの組を書いたら、期間が過ぎたあとに消すのを忘れないでください。古い期間の組が何年も残っていると、コードが読みにくくなり、次に直すときの間違いのもとになります。
臨時休業
臨時休業は、構造化データより、Googleビジネスプロフィールの「特別営業時間」を更新するほうが確実で早く伝わります。GoogleのAIによる概要やGoogleマップは、ビジネスプロフィールの情報を優先して使うためです。構造化データは、通常の営業時間を正しく書いておくのが役目です。Googleビジネスプロフィールの整え方はGoogleビジネスプロフィールとAIによる概要の記事で説明しています。
営業時間を書く3か所の役割
営業時間は、ホームページの本文・Googleビジネスプロフィール・構造化データの3か所に書くことになります。それぞれ役割が違います。
| 書く場所 | 主に読む人・仕組み | 向いている情報 |
|---|---|---|
| ホームページの本文 | お客さん、AIのクローラー | 通常の営業時間、最終受付、予約制、祝日の扱い、注意書き |
| Googleビジネスプロフィール | Googleマップ、GoogleのAIによる概要・AIモード | 通常の営業時間、臨時休業、年末年始などの特別営業時間 |
| 構造化データ | 検索エンジン、AI | 通常の営業時間(曜日・開店・閉店) |
構造化データは、本文に書いた営業時間を「機械向けに書き直したもの」と考えると分かりやすいでしょう。本文に書いていない営業時間を、構造化データだけに書くのは避けてください。Googleは、構造化データの内容がページの本文と合っていることを求めています。
いちばん大事なのは「3か所が同じであること」
どれか1か所だけが古いと、AIは「どれが本当の営業時間か」を判断できません。営業時間を変えたら、本文・Googleビジネスプロフィール・構造化データを同じ日に直す、と決めておくと、食い違いを防げます。AIが店の情報を間違える原因と直し方はChatGPTが自分の店を間違えるときの直し方で説明しています。
業種別の書き方の例
| 業種 | よくある営業時間 | 書き方のポイント |
|---|---|---|
| 歯科医院・クリニック | 午前・午後に分かれ、木曜・日曜休み、土曜は午前のみ | 午前の組と午後の組の2つ。土曜は午前の組だけに入れる |
| 美容室・ネイルサロン | 火曜定休、最終受付あり | 営業の終わりを closes に。最終受付は本文に |
| 税理士・行政書士事務所 | 平日のみ、土曜は予約制 | 平日の組だけを書き、予約制は description に |
| 飲食店・バー | 夜から翌朝まで | closes を翌日の時刻で書く |
| 動物病院 | 夜間は救急のみ | 通常の診療時間を書き、夜間の救急は本文に |
〇〇歯科医院の場合
営業時間:月・火・水・金は9時〜12時30分と14時30分〜18時30分、土曜は9時〜13時。木曜・日曜・祝日は休み。
書き方:①午前の組(月・火・水・金)9:00〜12:30 ②午後の組(月・火・水・金)14:30〜18:30 ③土曜の組 9:00〜13:00 の3つを並べる。木曜・日曜は書かない。祝日休みは本文とGoogleビジネスプロフィールに書く。
書くときの注意とよくある失敗
- ホームページの本文と同じ時間にする。 構造化データにだけ書いて本文に書かない、本文と違う、は避ける
- 営業時間を変えたら、構造化データも直す。 本文・Googleビジネスプロフィール・構造化データの3か所をそろえる
- 古い書き方(openingHours の文字列)より、openingHoursSpecification。
"openingHours": "Mo-Fr 09:00-18:00"の形も読まれるが、Googleは openingHoursSpecification を案内している - 予約制・不定休の場合は、description(説明文)に「完全予約制」「不定休」のように書き添える
| よくある失敗 | 起きること | 直し方 |
|---|---|---|
| 曜日を小文字や日本語で書いた(monday、月曜) | 曜日として読まれない | 先頭を大文字の英語で(Monday) |
| 時刻を "9時" や "9:00 AM" と書いた | 時刻として読まれない | 24時間表記の "09:00" |
| 定休日を opens・closes なしで書いた | 書式のエラーになる | 定休日は書かない |
| 本文は「19時まで」、構造化データは「18時まで」 | AIがどちらを信じるか迷う | 本文に合わせて直す |
| 営業時間の変更後、構造化データを直し忘れた | 古い営業時間が伝わり続ける | 変更した日に3か所を直す |
営業時間を書く前のチェックリスト
- 今の営業時間・定休日を、曜日ごとに書き出した
- 昼休みや「土曜は午前のみ」などの例外を確かめた
- ホームページの本文の営業時間と、Googleビジネスプロフィールの営業時間が同じ
- 年末年始などの期間限定の時間を書く場合、消す日を決めた
- 予約制・不定休・最終受付など、構造化データで表せないことは本文に書いた
営業時間は、運営者の情報をまとめたコード(LocalBusiness など)の中に入れます。全体のコードはLocalBusinessの構造化データの書き方の記事を、業種ごとの型はLocalBusinessの業種別の型の記事を参考にしてください。曜日と時間を選ぶだけでコードを作りたい方はこちらのツールを使ってください。
構造化データ作成ツールを使う(無料)入れたあとの確認
Googleの「リッチリザルト テスト」でトップページを調べ、「ローカル ビジネス」の中の openingHoursSpecification を開いて、曜日と時間が正しいかを確認します。エラーが出る場合は、曜日のつづり(先頭が大文字)と、時刻の書き方("09:00")を見直してください。
WordPressのSEOプラグインで営業時間を設定している場合は、プラグインの設定画面の入力がそのまま出力されます。Rank Mathの場合はRank MathのローカルSEO設定の記事をご覧ください。プラグインを使わずに入れる方法はWordPressに構造化データをプラグインなしで入れる方法で説明しています。確認の詳しい手順は構造化データの確認方法の記事にまとめています。
選ばれるAI診断では、構造化データがあるか、運営者の情報がどこまで入っているかを、ほかのAI検索対策の項目と一緒に確認できます。URLを入れるだけで、22項目の判定と理由を無料で確認できます。
よくある質問
定休日はどう書けばいいですか?
書きません。営業する曜日だけを書けば、書いていない曜日は休みと読み取られます。
「〜19時(最終受付18時)」はどう書きますか?
構造化データには営業の終わり(19:00)を書き、最終受付は本文や説明文に書きます。
営業時間を入れると、Googleマップの表示も変わりますか?
Googleマップの営業時間は、主にGoogleビジネスプロフィールの登録内容が表示されます。構造化データはホームページ側の情報です。両方を同じ内容にそろえておくことが大事です。
不定休の場合は、どう書けばいいですか?
決まった曜日が書けない場合は、通常営業する時間だけを書き、description(説明文)と本文に「不定休。営業日はカレンダーでお知らせしています」のように書き添えます。営業日のカレンダーは、画像だけでなく文章でも載せておくと、AIに伝わりやすくなります。
古い書き方(openingHours)で書いたものは、直したほうがいいですか?
今のままでも読まれますが、昼休みや期間限定の時間を書きたくなったときは、openingHoursSpecification に書き直すほうが分かりやすくなります。同じ営業時間を両方の書き方で入れると内容がずれやすいので、どちらか一方にしてください。
予約制の店は、営業時間を書かなくてもいいですか?
予約を受け付ける時間や、施術できる時間帯が決まっていれば、それを書いておくほうが親切です。そのうえで description に「完全予約制」と書き添えます。
まとめ
構造化データの営業時間の書き方をまとめます。
この記事のまとめ
- 営業時間は openingHoursSpecification で、曜日・開店・閉店を1組にして、時間が違う曜日ごとに並べる
- 定休日は書かない。昼休みは午前・午後の2組、夜0時をまたぐなら閉店を翌日の時刻で
- 年末年始などは validFrom・validThrough で期間を指定。臨時休業はGoogleビジネスプロフィールの特別営業時間で
- 816の公式サイトで、店舗系の型を使う111件のうち、営業時間を入れていたのは66件(59%)
- 本文・Googleビジネスプロフィール・構造化データの3か所の営業時間をそろえる
- 入れたら、リッチリザルト テストで曜日と時間を確かめる
まずは、自分のサイトの構造化データに何が入っているかを確かめてください。選ばれるAI診断なら、URLを入れるだけで、22項目の判定と、それぞれの理由を無料で確認できます。
自分のサイトを、無料で診断する参考にした資料
調査の方法:2026年9〜10月、選ばれるAI診断で診断した7業種の公式サイト816件のトップページを取得し、運営者の構造化データの営業時間の書き方を集計しました。運営者の構造化データが不足していた割合は、2026年10月2日に見直した採点基準で再診断した結果(22業種2,296件、重複を除く)です。個別のサイト名は公開していません。