W.D.Sphere

ウェブ開発の技術を楽しむ空間

Gatsby.js スタティックサイトのチュートリアル Part 11 Final

Gatsby.js で MDX を使用したブログサイトを作成するチュートリアルの Part11(最終回)です。SEO コンポーネントの使い方を確認してこのチュートリアルを終わりにしたいと思います。

メタデータを追加する

まず、gatsby-config.js の siteMetadata に情報を追加しておきます。

gatsby-config.js

module.exports = {
  siteMetadata: {
    title: `Gatsby Static Site Tutorial`,
    description: `This is a sample site for learning Gatsby.js.`,
    image: `/gatsby-icon.png`,
    siteUrl: `https://www.xxxxxxxxxxx.com`,
  },
  plugins: [
    `gatsby-plugin-image`,
    `gatsby-plugin-sharp`,
    {
      resolve: `gatsby-source-filesystem`,
      options: {
        name: `blog`,
        path: `${__dirname}/blog`,
      }
    },
    `gatsby-plugin-mdx`,
    `gatsby-transformer-sharp`,
  ],
};

上記のように画像を image に指定する場合、ルートに static というフォルダを作成しその中に画像を保存すれば良いようです。

gatsby-static-site-tutorial11-01

siteUrl に使用するドメインを指定します。

次に src フォルダ内に hooks というフォルダを作成し、その中に useSiteMetadata フックを作成します。

use-site-metadata.js

import { graphql, useStaticQuery } from "gatsby"

export const useSiteMetadata = () => {
  const data = useStaticQuery(graphql`
    query {
      site {
        siteMetadata {
          title
          description
          image
          siteUrl
        }
      }
    }
  `)

  return data.site.siteMetadata
}

このフックを使用すれば siteMetadata が動的に取得できるので seo.js を下記のように変更します。

src/components/seo.js

import React from "react"
import { useSiteMetadata } from "../hooks/use-site-metadata"

const Seo = ({ title, description, pathname, children }) => {
  const { title: defaultTitle, description: defaultDescription, image, siteUrl } = useSiteMetadata()

  const seo = {
    title: title || defaultTitle,
    description: description || defaultDescription,
    image: `${siteUrl}${image}`,
    url: `${siteUrl}${pathname || ``}`,
  }

  return (
    <>
      <title>{seo.title}</title>
      <meta name="description" content={seo.description} />
      <meta name="image" content={seo.image} />
      {children}
    </>
  )
}

export default Seo

これで SEO コンポーネントを使用して各ページにメタデータを追加できました。

Gatsby.js スタティックサイトのチュートリアルは以上です。

Gatsby.js に興味がある方の参考になれば幸いです。

今回は以上です。


< Previous Article
Back to Articles
©2025 W.D.Sphere All Rights Reserved.