S3 のリダイレクト設定を見直した
きっかけ
このサイトに Google カスタムサーチを設定して数ヶ月、うまく動作していなかったので、原因を探ることにした。 たまたま AWS から S3 関連の通知がきていて、そういえば……と思い出したので重い腰を上げてみた。
調べた経路
Google カスタムサーチの設定がうまくいっていないのか?と思い、色々見直していると、Google SearchConsole を見ろと表示されたので観に行った。
Google SearchConsole のカバレッジをみると、どうやら大半が除外されているみたい。 詳細を見に行くと、Googlebot さんがクロールできていないことがわかった。つまり、検索インデックスが作成できていないようだった。
そのクロールできていない原因なのであるが、個別のページにアクセスするとルートにリダイレクトされてしまっているようで、そのため個別ページのインデックスが作成できていないらしい。
ローカルで動かしている分にはリダイレクトされない。そうなると、S3 か CloudFront のどちらかになる。CloudFront は個別のリダイレクト設定はないはずと思い、S3 の設定をみるとリダイレクト設定があったので、設定をまるごと消した。なくてもよさそうな設定であった。
どうやらクロールされ始めたっぽいので、これが根本の原因だったらしい。
本当の原因
gatsby-node.js にある createRedirect
の設定がどうやら gatsby-plugin-s3 によって S3 の設定に作用するみたいで、コードを削除して deploy したら、設定が S3 に反映されなくなった。個別ページの URL を直に叩いてもルートにリダイレクトされないようになった。
クロールが終わって完全にサイト内検索ができるようになるのはいつになるのかわからないけれども、これでまともに動くようになればいいな。