こんにちは、ジモティーエンジニアチームの山口です。
主にフロントエンド面を担当しております。
現在はジモティーWeb版のフロントをNext.jsに移行する開発を日々進めています。
今回は、フロントエンドとは直接関係ない話ですが、SEO対策の一環として行なっていた作業の中で遭遇した問題についてご紹介します。
問題の概要
ジモティーではGoogle Search Consoleから、Railsで生成したsitemap.xmlファイルとそのindexファイルをいくつか登録しています。
sitemap_index.xml ├── sitemap_1.xml ├── sitemap_2.xml └── sitemap_3.xml
しかし、ある時から下記画像のように、読み込みには正常に成功するものの検出URL件数が0件となってしまうファイルが発生するようになりました。
Search Consoleから再読み込みをかけても変わらず0件のままであり続けたため、新規ページを作成してもサイトマップからインデックスさせられず、施策が行いにくい状況となってしまいました。
問題解消のために試してダメだったこと
このサイトマップが0件になる問題自体はネット上でも同様の症状が報告されており、その回避方法の情報が散見されました。
情報を元に試してみて改善に至らなかったことを4つ紹介します。
path名を短くしてみる
一定文字数以上(20文字以上?)のファイルやpathになると、この現象が発生する可能性があるらしいとのことで、試してみました。
弊社のsitemap.xmlは種類が多いため、50~100文字程度のpath名が設定されているものがほとんどでした。
これらをシンプルなよくあるsitemap.xmlなどの命名に短縮し、20文字以下ぐらいのpath名に収まるようにしました。
path名に特定の文字を使わない
Search Consoleに登録しているsitemap.xmlのpath内に"-"(ハイフン)を使うと、この問題が発生することがあるとの記事を見かけたため、シンプルにアルファベット以外の文字列が一切入らないpath名にしてみました。
生成していたxmlの形式が適切であるかを確認
sitemap.xmlのファイルの形式が間違っている可能性も考え、sitemap.xmlの形式をチェックできるツールにも通してみました。
残念ながらこれも問題なしという結果でした。
生成したxml内の不要な改行を削除
タグとタグの間など一部に改行が入っている場合にもこのバグを引き起こす可能性があるとの記事をみて試してみました。
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> ...
を
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> ...
などにしてなるべく改行が入らないようにしてみましたがこれも効果がありませんでした。
問題解消に至った方法
ネットの情報で改善に至らず困っていたのですが、同じjmty.jpドメインで登録しているsitemap.xmlのうち、RailsからではなくWordpressから登録していたものだけは正常に読み込みできていることに気づき、そのファイルとの違いを比較することで原因に当たりをつけることができました。
弊社のsitemap.xmlはAWSのS3にアップロードして運用を行なっていたため、Google Search Consoleへの登録自体はhttps://jmty.jp/sitemap.xml
や
https://jmty.jp/sitemap_index.xml
のURLでしていたものの、このURLにアクセスした際にはCloudFrontドメインのURL
https://〇〇.cloudfront.net/sitemap.xml
やhttps://〇〇.cloudfront.net/sitemap_index.xml
などのURLへリダイレクトされるように設定されていました。
この設定自体はこれまで正常に機能していたため問題を引き起こす原因とは考えていませんでしたが、試しにこのリダイレクト設定を外して直接S3上のファイルを
Google Search Consoleへ登録していたURLhttps://jmty.jp/sitemap.xml
やhttps://jmty.jp/sitemap_index.xml
のURLでアクセスできるように設定したところ、検出URL件数が正常にカウントされるようになりました。
まとめ
今回は、SEO対策の一環として行なっていた作業の中で遭遇した問題とその解決策についてご紹介しました。
この問題は以前sitemapxmlの調整を担当していた前任者の方の時から発生しており半年ほど解決できずに匙を投げかけていた問題でしたが今回ようやく改善に至れて一安心しました。
ファイル自体に問題があるかのように見えて、実際は環境起因の問題だったということで原因が分からずに手詰まりになったときは、視野を広げる意識が大事だと理解させられる一件となりました。
この記事が同じ問題を抱えている方の手助けになれば幸いです。
弊社では一緒にプロダクトを改善していただける仲間を探しています!
こちらでお気軽にお声がけください!