これまでWebサイト作成についていろいろとまとめてきました。Next.jsでWebサイト作成のための環境構築をして、アクセス解析のためにGA4設定をして、Vercelにデプロイして、サブドメイン設定して。。。ただ、Google検索しても出てこないんです!!!これは大ごとです。せっかく作っても流入経路がTwitterしかないなんてふざけ倒しています。。。まあ、これはGoogleにインデックス登録されていないからなんですがね。 ということで、Google検索結果に出てくることを目指して、そして自然検索からの流入爆増を目指して対処しました。
そもそもここから学ぶべきなのです。Googleにおけるインデックスとは、「Googleが持つ検索エンジンの大規模なデータベース」です。(参考:Google の検索エンジンの仕組み、検索結果と掲載順位について)このインデックスに登録されないと、誰かがGoogle検索を実施した際、検索結果に表示されません。つまり誰にも見られないのです。ではどのような仕組みでインデックスに登録されるのでしょうか?
Google の検索エンジンの仕組み、検索結果と掲載順位についてによると、Googleが持つウェブクローラーというソフトウェアが定期的にWebを探索することで、基本的には自動で見つけたページをインデックス登録されているとのことです。このウェブクローラーをGooglebotと言います。私のWebサイトは見つかっていないのですね。。。では、このGooglebotとやらにはなぜ見つけてもらえていないのでしょうか?
いくつかあるのですが、多くの原因は下の通りです。
noindex
を指定してしまうと、インデックス登録がされなくなってしまいます。上記の通り原因をいくつか並べましたが、開発側で技術的に対処が可能な3と4の原因に対してそれぞれ対処していきましょう。
文字通りですが、noindexを指定しなければ良いのです。
タグを利用している場合は、その中に以下の記述がないか確認してみてください。<meta>
という記述があれば、これを消すだけで大丈夫です。
robots.txtにおいて、以下の通りDisallow
の記述をしている場合、Disallow
の中身が空の場合は問題ありませんが、下のようにディレクトリ(もしくはディレクトリ+ページ)が記述されている場合、そのディレクトリ(今回の場合はpages以下のコンテンツ)が表示されなくなります。表示させたくないコンテンツがない場合には、Disallow
の中身は空に保っておきましょう。
Disallow:/pages/
ここまでインデックス登録されない原因についてまとめてきましたが、全部対応したからといってすぐにインデックス登録されるわけではありません。だからと言って、ほな指咥えて待っとき!という話でもなく、インデックス登録されやすくするための工夫はできるんです。
インデックスへの登録のためにGoogleはGooglebotを利用してクロールしている、しかし新しいドメインの場合はインデックス登録に時間がかかるというのは前述の通りです。というわけで、GooglebotにWebサイトの内容・構造を理解してもらうために(=クロールしてもらいやすくするために)、サイトマップを作ってあげましょう。
Next.jsのWebサイト・アプリでサイトマップを作成するためには、next-sitemap
というパッケージを利用します。対象のGitHubリポジトリはこちらです。それではまず下の通りインストールします。
npm i --save next-sitemap
インストールできたら、プロジェクト直下にnext-sitemap.config.js
ファイルを新規作成します。ファイルの中身には以下の通り記述します。
robots.txt
ファイルを生成します。デフォルトではfalse
なので、true
の場合のみ記載しましょう。sitemapSize
を指定します。ここでは7,000
という値を指定していますが、サイト内のURLが7,000を超過すると自動的にサイトマップが分割され、index(e.g. sitemap.xml)ファイルと詳細サイトマップファイル(e.g. sitemap-0.xml, sitemap-1.xml)ができるという設定です。exclude
を指定して、サイトマップから除外したいページ・サブディレクトリを配列形式で指定します。続いて、package.json
ファイルに必要事項を追記して、ビルド時にpublic
ディレクトリの下にsitemap.xml
ファイルを作成するようにします。
build
の記述をします。こちらはすでに記述があるかもしれません。postbuild
を追加し、next-sitemap.config.js
を実行するよう記述をします。npm run build
を実行します。すると、ビルドする度に、postbuild
で記述したようにビルド後にnext-sitemap.config.js
が実行されます。
またpostbuild
完了後には、public
ディレクトリの下に、sitemap.xml
ファイルとrobots.txt
ファイルが新しく生成されていると思います。
sitemap.xml
ファイルは以下の通りになっていると思います。
about
というページをWebサイト内に作成したため、このような表記になっているはずです。また、この下にも同Webサイト・アプリ内に存在する全てのURLが書き出されていると思います。robots.txt
ファイルは以下の通りになっていると思います。
Allow
となっていると思います。これは、今回Disallowを設定していないためです。通常通りVercelへデプロイします。これで"https://~(Webサイト・アプリのURL(ベース))/sitemap.xml"にアクセスできるようになります。
最後に、Google Search Console(サーチコンソール)にサイトマップを登録していきましょう。
何も登録されていない場合、サーチコンソールを開くと下のような画面が表示されます。「URLプレフィックス」の方に、"https://~(Webサイト・アプリのURL(ベース))/"を入力しましょう。
すると、下のような「所有権の確認」というモーダルが表示されます。「おすすめの確認方法」という表示とともに「HTMLファイル」のダウンロードが可能となっていますがこちらは利用せず、今回は「その他の確認方法」から「HTMLタグ」を選択しましょう。ここでは指示通り
<head>
タグ内に表示されているメタタグを追加します。※メタタグ追加後反映に時間がかかる可能性があります。
少し時間を空けてから上の画面で「確認」を押すと所有権の確認が完了し、下のような管理画面に移動できます。
管理画面に移動したら、画面左側のナビゲーションから「サイトマップ」をクリックすると「新しいサイトマップの追加」というセクションが表示されるので、ここで
sitemap.xml
と入力し、「送信」ボタンを押してください。「サイトマップを送信しました」というダイアログが表示されたらサイトマップ送信の作業完了です。ダイアログで隠れて見えませんが、「送信されたサイトマップ」のセクションが表示され、ステータスが「成功しました」となっていることが確認できます。
なお、作業完了後すぐにインデックス登録されているわけではないため、この時点でGoogle検索をしても検索結果には表示されないかもしれませんが、気長に待ちましょう。
よろしければこちらの記事も参考にしてみてください。
Loading...