Site search / サイト内検索

必要な情報を探す

ページ内の言葉を探す検索と、意味が近い内容を探す検索を使い分けられます。

「検索する」を実行すると、入力した検索語をCloudflare Workers AIで数値表現に変換し、その数値表現をCloudflare Vectorizeで当サイトの公開情報と照合します。あわせて、Acecore共通検索API(acecore.net)へ送信し、 Acecore関連サイトの公開情報を下部に表示することがあります。個人情報や機密情報は入力しないでください。個人情報の取り扱い

Insights / 技術解説

Astroサイトに構造化データとOGPを実装するSEO改善ガイド

Astro + Cloudflare Pages 構成のサイトに JSON-LD 構造化データ・OGP・サイトマップ・RSSを正しく実装した手順をまとめました。Google のリッチリザルト対応からRSSフィードの最適化まで、実践的な SEO 改善を紹介します。

  • 技術
  • Astro
  • SEO
Astroサイトに構造化データとOGPを実装するSEO改善ガイド

実装した構造化データ

  • Organization

    会社名・URL・ロゴ・連絡先を検索結果に表示。

  • BlogPosting

    著者・公開日・更新日・画像で記事のリッチリザルト対応。

  • BreadcrumbList

    全ページの階層構造をパンくずリストとして出力。

  • FAQPage

    FAQの内容を機械可読にする。GoogleのFAQリッチリザルトは一般サイトでは通常表示されない。

  • WebPage / ContactPage

    トップページとお問い合わせページに専用の型を付与。

  • SearchAction

    Googleのサイト内検索ボックスは2024年に終了。サイト内検索の導線はサイト内で提供する。

この記事の目次
  1. はじめに
  2. OGP・メタタグの設定
  3. 基本のメタタグ
  4. ブログ記事向けのメタタグ
  5. 実装のポイント
  6. 構造化データ(JSON-LD)の実装
  7. Organization
  8. BlogPosting
  9. BreadcrumbList
  10. Product / Offer
  11. FAQPage
  12. WebSite + SearchAction
  13. サイトマップの最適化
  14. ページ種別ごとの設定
  15. lastmod の設定
  16. RSSフィードの拡充
  17. 追加すべき情報
  18. SEO改善のチェックリスト
  19. この記事が含まれるシリーズ

AstroのSEO実装は、代表記事の生成HTMLでtitle・description・canonicalと、画面に見える内容に一致するJSON-LDを確認するところから始めます。Google: Structured Dataに沿って必要項目を検証し、公開後はSearch Consoleで確認してください。構文が正しくても、リッチリザルト表示や検索順位は保証されません。

2026年9月追記: Googleは2024年11月に検索結果のサイト内検索ボックスを終了しました。FAQリッチリザルトは主に権威ある政府・医療サイトに限定されています。また、Googleはサイトマップの changefreq と priority を使いません。以下の2026年3月の実装記録は、この検索ボックス変更、FAQ変更、サイトマップの説明を踏まえて読んでください。

はじめに

SEO対策というと「キーワードを詰め込む」イメージがあるかもしれませんが、現代のSEOは 検索エンジンにサイトの構造と内容を正確に伝える ことが本質です。

この記事では、Astroサイトに実装すべきSEOの施策を4つのカテゴリに分けて解説します。いずれも一度設定すれば継続的に効果を発揮するものばかりです。

表示速度やアクセシビリティまで含めた改善の全体像は、Astroサイトの品質改善ガイドを参照してください。


OGP・メタタグの設定

SNSでシェアされたときの見た目と、検索エンジンへの情報伝達を担うのがOGPとメタタグです。

基本のメタタグ

Astro のレイアウトコンポーネントで、ページごとに以下を出力します。

  • og:title / og:description / og:image ― SNSシェア時のタイトル・説明・画像
  • twitter:card = summary_large_image ― X(Twitter)で大きな画像カードを表示
  • rel="canonical" ― 重複ページの正規URLを指定
  • rel="prev" / rel="next" ― ページネーションの前後関係を明示

ブログ記事向けのメタタグ

記事ページには追加で以下を設定します。

  • article:published_time / article:modified_time ― 公開日と更新日
  • article:tag ― 記事のタグ情報
  • article:section ― コンテンツカテゴリ

実装のポイント

レイアウトコンポーネントにpropsとして title / description / image を受け取り、各ページから渡す構成にすると、全ページで一貫したメタタグを出力できます。ホームページの og:title は「ホーム」ではなく、サイト名とキャッチコピーを含む具体的なタイトルにしましょう。


構造化データ(JSON-LD)の実装

構造化データは、ページの内容を検索エンジンが機械的に理解するための仕組みです。正しく実装すると、検索結果にリッチリザルト(FAQ、パンくず、著者情報など)が表示される可能性があります。

Organization

会社情報をGoogleに伝えます。ナレッジパネルに表示される可能性があります。

{
  "@type": "Organization",
  "name": "Acecore",
  "url": "https://acecore.net",
  "logo": "https://acecore.net/logo.png",
  "contactPoint": { "@type": "ContactPoint", "telephone": "..." }
}

会社概要ページには knowsAbout フィールドを追加し、事業領域を明示することもできます。

BlogPosting

ブログ記事には BlogPosting を設定します。著者・公開日・更新日・アイキャッチ画像を含めることで、Google Discover や検索結果で著者情報付きの表示が得られます。

パンくずリストの構造化データは全ページに設定します。実装時の注意点として、中間パス(/blog/tags/ のような一覧ページ)が実際に存在するかどうかを確認し、存在しないパスには item プロパティを出力しないようにしましょう。

Product / Offer

商品ページを追加する場合は、商品そのものの Product と販売条件の Offer を分けて設計します。商品名・画像・説明は公開ページに一致させ、販売する商品は価格・通貨・購入先・在庫状態を実際の条件に揃えます。無料配布など販売価格を定義していないページに、推測した価格や Offer を付けません。検索表示のために架空の評価や在庫を作ることも避けます。

この補足は商品ページの追加設計に関するもので、2026年3月の全ページへの実装実績を意味しません。生成HTMLを検査し、Googleの商品構造化データの要件に沿って検証します。マークアップを追加しても、検索結果への表示や順位向上が保証されるわけではありません。

FAQPage

FAQをページに掲載する場合、内容と一致する FAQPage データを出力できます。ただしGoogleのFAQリッチリザルトは、主に権威ある政府・医療サイトが対象です。一般サイトでの表示を期待する施策として扱わないでください。

WebSite + SearchAction

Googleは2024年11月に検索結果のサイト内検索ボックスを終了しました。既存の SearchAction マークアップが残っていても、それ自体は検索エラーになりません。Pagefindなどのサイト内検索は、サイト内の導線として使えます。


サイトマップの最適化

Astro の @astrojs/sitemap プラグインを使えばサイトマップは自動生成されますが、デフォルト設定のままでは不十分です。

ページ種別ごとの設定

当時の serialize() 設定ではURL種別ごとに changefreq と priority を出力していました。以下の表はその実装記録です。Googleは両値を使わないため、順位向上を目的に設定する必要はありません。

ページ種別 changefreq priority
トップページ daily 1.0
ブログ記事 weekly 0.8
その他 monthly 0.6

lastmod の設定

lastmod はページの実際の重要な更新日を表すときに使います。全ページへビルド日時を一律に入れて更新したように見せるのは避け、記事なら公開日や lastUpdated と整合させます。


RSSフィードの拡充

RSSは「設定して終わり」にしがちですが、フィードの品質を上げることでRSSリーダーでの表示が改善し、購読者の体験が向上します。

追加すべき情報

  • author:記事ごとの著者名を含める
  • categories:タグ情報をカテゴリとして追加し、RSSリーダーでの分類を改善
items: posts.map((post) => ({
  title: post.data.title,
  description: post.data.description,
  link: `/blog/${post.id}/`,
  pubDate: post.data.date,
  author: post.data.author,
  categories: post.data.tags,
}));

SEO改善のチェックリスト

最後に、AstroサイトのSEO改善で確認すべきポイントをまとめます。

  1. 全ページに canonical URL を設定しているか
  2. OGP画像は各ページに固有のものを用意しているか
  3. 構造化データのバリデーション:Google リッチリザルトテストで確認
  4. パンくずリストの中間パスが実在するURLか
  5. サイトマップに不要なページ(404など)が含まれていないか
  6. RSSフィードに著者・カテゴリが含まれているか
  7. robots.txt で検索インデックス(/pagefind/など)をクロール除外しているか

これらは公開情報を検索エンジンへ正しく渡すための基盤です。検索順位は内容の質や更新頻度だけでは決まらず、設定完了も流入増加の証拠にはなりません。公開後の検索語、表示回数、クリック率を見て、読者の課題に答える内容を改善します。


この記事が含まれるシリーズ

この記事は「Astroサイトの品質改善ガイド」シリーズの一部です。パフォーマンス・アクセシビリティ・UXの改善についても個別の記事で紹介しています。

SEO改善の流れ

  1. メタタグ整備

    title・description・canonical・OGPを全ページに設定。

  2. 構造化データ

    JSON-LDでページの意味をGoogleに伝える。

  3. サイトマップ

    サイトマップに正規URLを含め、実際の重要な更新日を確認する。

  4. RSS

    著者・カテゴリ情報を含む高品質なフィードを配信。

よくある質問

構造化データを追加するとすぐに検索結果が変わりますか?

いいえ。Googleがクロール・再インデックスするまでに数日〜数週間かかります。Google Search Consoleの「リッチリザルト」レポートで反映状況を確認できます。

OGPの画像サイズはどのくらいが適切ですか?

1200×630px が推奨です。X(Twitter)は summary_large_image で表示する場合、この比率が最適です。

サイトマップの priority は SEO に影響しますか?

Googleは `priority` と `changefreq` を使いません。根拠のない値をSEO上の効果として設定する必要はありません。