Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
スポンサーリンク
目次
StaticPressでsitemapが転送されない
あれ、sitemapが無い・・・?
先日、WordPressサイトにおけるsitemapファイルの自動生成プラグインの導入方法について紹介しました。
基本的にはこのプラグインを利用していれば問題は無いのですが、StaticPress等を利用してS3バケットでサイト運用をする際は、そのままだとsitemapファイルやrobots.txtファイルが転送されません。
sitemapがないと、検索エンジンが正しくサイトコンテンツを解析してくれないので、PVが伸びにくくなってしまいます。
アドセンスやアフェリエイトをやっている方だとPVの伸び悩みは深刻な問題ですよねorz
現状の確認
試しに、sitemap.xmlが生成されている状態で、管理画面から再構築ボタンをクリックし、出力ディレクトリを確認したところ、確かにsitemap関連のxmlとrobots.txtが対象ディレクトリに出力されていませんでした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
ls -la 合計 164 drwxr-xr-x 14 apache apache 4096 5月 12 06:06 . drwxr-xr-x 7 apache apache 4096 4月 25 17:24 .. drwxr-xr-x 4 apache apache 4096 5月 12 06:06 2018 -rw-r--r-- 1 apache apache 49707 5月 12 06:06 404.html drwxr-xr-x 3 apache apache 4096 5月 12 06:06 author drwxr-xr-x 4 apache apache 4096 5月 12 06:06 category drwxr-xr-x 3 apache apache 4096 5月 12 06:06 comments drwxr-xr-x 2 apache apache 4096 5月 12 06:06 feed -rw-r--r-- 1 apache apache 53292 5月 12 06:04 index.html drwxr-xr-x 5 apache apache 4096 5月 12 06:05 wp-admin drwxr-xr-x 4 apache apache 4096 5月 12 06:06 wp-content drwxr-xr-x 7 apache apache 4096 5月 12 06:06 wp-includes drwxr-xr-x 2 apache apache 4096 5月 12 06:06 wp-json drwxr-xr-x 3 apache apache 4096 5月 12 06:06 未分類 |
確かに出力されていませんね。
このままだと、StaticPressS3を使ってS3バケットに転送されないので、SEO対策が足りていない状態となります。
また、GoogleSearchConsoleへの登録も出来ません。
原因は既存バグ?
原因を特定するために、pluginのソースを読んで見たところ、class-static_press.phpに原因がありました。
まずは、658行目辺りをみると、sitemap.xmlやrobots.txtをクローリングするための関数は定義されています。
ここではSEO関連ファイルをseo_filesというグループで定義しています。
1 2 3 4 5 |
//658行目辺り // Check correct sitemap url by robots.txt private function seo_url($url_type = 'seo_files'){ ・・・ } |
では、次に実際にファイル出力をしているところを確認してみました。
373行目辺りを見ていると、クローリング対象のファイルを出力している部分があるのですが、ここで先ほどの関数で定義したseo_filesが出力対象として指定されていませんでした。
1 2 3 4 5 6 7 8 |
switch ($file_type) { case 'front_page': case 'single': case 'term_archive': case 'author_archive': case 'other_page': // get remote file ・・・ |
手順
スポンサーリンク
一行追加するだけ
では、原因は特定出来たので、問題を解決するために以下の一行をcase句に追加してみましょう。
1 2 3 4 |
//375行目辺り case 'author_archive': case 'seo_files'://追加 case 'other_page': |
確認
修正が終わったら、もう一度再構築ボタンをクリックしてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
ls -la 合計 236 drwxr-xr-x 14 apache apache 4096 5月 13 06:00 . drwxr-xr-x 7 apache apache 4096 4月 25 17:24 .. drwxr-xr-x 4 apache apache 4096 5月 13 06:00 2018 -rw-r--r-- 1 apache apache 49707 5月 13 06:00 404.html drwxr-xr-x 3 apache apache 4096 5月 13 06:00 author drwxr-xr-x 4 apache apache 4096 5月 13 06:00 category drwxr-xr-x 3 apache apache 4096 5月 13 06:00 comments drwxr-xr-x 2 apache apache 4096 5月 13 06:00 feed -rw-r--r-- 1 apache apache 53292 5月 13 05:58 index.html -rw-r--r-- 1 apache apache 49707 5月 13 06:00 robots.txt -rw-r--r-- 1 apache apache 998 5月 13 06:00 sitemap-misc.xml -rw-r--r-- 1 apache apache 849 5月 13 06:00 sitemap-pt-page-2018-04.xml -rw-r--r-- 1 apache apache 867 5月 13 06:00 sitemap-pt-post-2018-04.xml -rw-r--r-- 1 apache apache 890 5月 13 06:00 sitemap-pt-post-2018-05.xml -rw-r--r-- 1 apache apache 1199 5月 13 06:00 sitemap.xml drwxr-xr-x 5 apache apache 4096 5月 13 05:59 wp-admin drwxr-xr-x 4 apache apache 4096 5月 13 06:00 wp-content drwxr-xr-x 7 apache apache 4096 5月 13 06:00 wp-includes drwxr-xr-x 2 apache apache 4096 5月 13 06:00 wp-json drwxr-xr-x 3 apache apache 4096 5月 13 06:00 未分類 |
正常に出力されるようになりましたね♪
もちろんS3バケットにも転送がされています。
終わりに
以上のように、プラグインのソースコードを修正しないと直らない問題でした。
原因さえ分かれば1行の修正で直るので、もし同じようにハマって困っている方がいましたらこの記事を参考にしてみてください。