Netlifyのデフォルトドメインについて
Netlifyではサイトをデプロイした時、[name-of-your-site].netlify.app
というドメインが自動で割り当てられます。
自分で取得したドメインをカスタムドメインとして設定したいことが多々あると思いますが、カスタムドメインを設定しても、[name-of-your-site].netlify.app
というドメインは存在し続けるので、SEOで重複コンテンツとならないために、主に下記の対応をする必要があります。
-
[name-of-your-site].netlify.app
のHTTPレスポンスヘッダーにX-Robots-Tag: noindex
を付与する。 -
[name-of-your-site].netlify.app
をカスタムドメインに301リダイレクトさせる(恒久的リダイレクト)
Netlifyには、公開ディレクトリのルートに_headers
や_redirects
という設定ファイルを置くことで、
HTTPヘッダーやリダイレクトの設定を行うことができます。
Redirects and rewrites | Netlify Docs
また、同じくルートディレクトリにnetlify.toml
ファイルを設置することで、headersやredirectsをまとめて設定することも出来ます。
コミュニティの回答
上記の[name-of-your-site].netlify.app
のSEO上の解決策は、Netlifyのコミュニティでも議論されています。
Disabling X-ROBOTS-TAG header on hosted site - Support - Netlify Community
GatsbyJSにNetlifyの設定を追加する
プラグイン
GatsbyJSでは、NetlifyのHeadersやRedirectsを設定するためのオフィシャルプラグインが公開されています。
自分は、上記プラグインが上手く使いこなせず苦労しました。
(Gatsby Cloudでビルド→Netlifyにデプロイする構成)
まず、Headersで[name-of-your-site].netlify.app
にX-Robots-Tag: noindex
を付与する方法を試みましたが、設定したカスタムドメインの方にもX-Robots-Tag: noindex
が付与されてしまい、Headersでの設定は諦めました。
次に、Redirectsで301リダイレクトをさせようと思ったのですが、「このプラグインは相対パスしか正常に処理しないのでは?」という疑念が出てきたので、別の方法にシフトしました。
public
フォルダにNetlify設定ファイルを置く
下記記事が救いになりました。
How To Add Netlify Redirects To A Gatsby Site | by Konstantin Münster | Level Up Coding
GatsbyJSのpublic
フォルダは、ビルド処理が走ったファイルが出力されるので、直接ファイルを置いておけません。
上記記事では、static
フォルダに_redirects
ファイルを設置することでビルド処理後のpublic
フォルダに_redirects
ファイルを含めています。
static
フォルダに保存されたファイルは、public
フォルダにそのままコピーされます。
You can create a folder named static at the root of your project. Every file you put into that folder will be copied into the public folder. E.g. if you add a file named sun.jpg to the static folder, it’ll be copied to public/sun.jpg
ドキュメン内にNetlify設定ファイルを置く用途としての記載はありませんが、自分はstatic
フォルダに301リダイレクトの設定を記述したnetlify.toml
を設置することで、デプロイ後の[name-of-your-site].netlify.app
で正常にリダイレクトが行われました。