レンタルサーバー選びの迷いを解決!全力サポートします

Google or AdMax Promotion (srv)

【サイトマップ作成編】WordPressの独自URLすべてをサイトマップに出力

そもそも、WordPressを利用していて独自のサイトマップを生成する必要があるのか?
そう思われる方もおられることでしょう。プラグイン使えばいいと。
でもWordPressが管理しないURLの場合には自分で作成する必要があります。
そんな独自URLをWordPress内部で持たせた場合のサイトマップ作成例をご紹介します。

WordPressはCMSですので固定ページでホームページを作成したり、
投稿でブログを時系列で追加していく用途がほとんどです。

それでも内部はPHPですので仕組みを理解していれば、
独自のプログラムを組み込むことは容易です。
アイディア次第でブログの一部をアプリケーションにすることもできます。

今回は上記でご紹介したプログラムが生成する独自URLに対しての
サイトマップを生成する手順をご紹介します。

もちろん実装の方法も人それぞれで答えなどもありません。一例です。

簡単なプログラムを例にURLとサイトマップの関係を考える

 

独自URLってどういうの?と思われるかもしれませんので、
以下のページで実際の動作とサンプル例をご確認いただければと思います。

 

上の例では「https://rensrv.com/weekday/2018/01/01/」にアクセスすると
URLのパスで指定されている日付部分から、
プログラムで曜日を求めて返すという動作をしています。

URLにアクセスすると、その日の曜日が表示されるのが確認できます。

 

という事は、 PHPのdatetimeクラスで扱える日付の範囲の数だけの
種類分URLが存在している事になります。

その間の日数を数えてみると3,615,901 日あるとされます。
という事は「weekday/」の下に「3,615,901」種類のURLが存在している事になります。

実体の存在しない膨大な数のURLが存在する環境をサイトマップで知らせる

今回のサイトマップ作成はこれが目的です。

実在しないプログラマブルなURLをサイトマップとして作成して、
検索エンジンに登録のお願いをしよう!という趣旨です。

 

プロモーション

Google or AdMax Promotion (srvpos)

WordPressの独自URLすべてをサイトマップに出力

さて、今回のサイトマップ作成対象は、
「weekday/YYYY/MM/DD/」というURLの種類を
すべてサイトマップとして生成することでサンプル例示します。

日付から曜日を求めるだけのこんなページを
実際にはサイトマップ登録しません。あくまでもサンプルです。

そもそも既にGoogle検索結果のみで得られる情報になってしまい何ら価値はありません。

サイトマップ生成プログラムを考える

サイトマップには制限があります。※Googleの場合

1ファイル5万件又は50MBを超えないこと。

となっています。

今回のURL総数は「3,615,901」種類であることから、
3,287,176 / 50,000 = 72.31802ですので、最低でも72分割する必要がある事になります。

中途半端に分けても仕方がないので、
100年単位でサイトマップファイルを分割するような形になるでしょうか。
※作りやすく管理しやすい方法でいいと思う。

サイトマップを分割する場合、
通常のサイトマップではなく「サイトマップインデックス」を作成し、

実体の「サイトマップ」へのURLのリストを定義します。

サイトマップインデックスの仕様と生成

サイトマップインデックスを「/sm_demo/」ディレクトリの
「sm_demo/sitmap_index.xml」とするようにURLを決定します。(一例)

ただこのまま「sitmap_index.xml」というファイルに
100年ごとの「sitmap.xml」URLを出力する形式になります。

sitmap_100.xml (→ファイルには100/1/1~199/12/31までのURLが記載されているリスト)
sitmap_200.xml (→ファイルには200/1/1~299/12/31までのURLが記載されているリスト)
sitmap_300.xml (以下同)
sitmap_400.xml
sitmap_500.xml
sitmap_600.xml
sitmap_700.xml
sitmap_800.xml
sitmap_900.xml
sitmap_1000.xml



sitmap_9900.xml

どういう風に出力するかについては以下でご紹介しています。
100から100ステップで9900までループする・・・それだけですけども。

実際に生成しているサイトマップインデックスは以下のようになっています。

 

これでサイトマップインデックス(各サイトマップへのリスト)が作成できました。

「sitmap_100.xml」~「sitmap_9900.xml」まで100刻みのURLが、
それぞれの各サイトマップを配置するURLになります。

 

サイトマップの仕様と生成

上記のサイトマップインデックスで定義しているURLは、
サイトマップファイルへの個々のURLになっています。

1つのサイトマップは100年分の日数を示すURLのリストになっています。

単純に数えても、365日 x 100年 = 36,500日(URL総数)
サイトマップ1つの上限、50,000 URLに収まっています。

 

さて、西暦100年に始まって、西暦9900年までの100年単位で99個のファイル。

個々の「sitmap_YYYY.xml」ファイルへのURL3万件超のURL間違いなく作る作業。。。

どう?やりたいです??

 

普通やりたくないですよね。
実際はプログラムでザーっと書いて出力するだけです。

アクセス頻度の高いものであれば、
別に100個くらいはファイルで作った方がプログラムよりは早いでしょう。

でも最初に「50MBの上限」という制限があるという事は、
50MBまでのファイル転送時間は待ってくれるとも読み取れます。(勝手に)

だったら都度生成してもいいだろう。という事で、
phpを呼び出して、要求のXMLファイル名から西暦を受け取って動的に生成します。

 

逆にファイルにしたい場合は、
生成したxmlをファイルとしてアウトプットすれば完了ですので修正は僅かです。

私の場合、必要だったサイトマップの数が膨大で、
5MB程度のファイルサイズでしたが、1万ファイルを超えてくる状態でした。
それでも5GBのサイズですので、
レンタルサーバーに置くにはちょっと厳しいものになるわけです。

処理上時間がかかっても、実体ファイルは置けない事情があったわけです。

 

サイトマップの作成の詳細については以下になります。

実際には以下のようになります。
※環境によりますが、表示まで5秒前後はかかります。

 

サイトマップXMLの実態は単なるXMLファイル

サイトマップもサイトマップインデックスも、
実際に表示すると、表形式で表示されていることと思います。

しかしこの表形式の表示は、ブラウザがXMLからHTMLを生成して表示しているに過ぎません。

その指定が「スタイルシート(xsl)」の定義です。

仮にスタイルシートの定義をしていないXMLは以下のようになります。
※以下は実体ファイルです。

(これでもブラウザは改行を適宜入れてくれてまだ見やすいはず)

 

またHTML表示されているXMLを右クリックして「ソースの表示」を選択しても、
生のXMLファイルの状態を確認する事ができます。

生ファイルだと何がなんだかわからないですよね??

 

ですので、スタイルシートを指定しておいてHTML表示ができるようにします。
それが「スタイルシート(xsl)」の定義です。

CSSスタイルシートのように思えるかもしれませんが、
見栄えの調整だけでなく「XMLの値をどこのタグに出力するか?」など、
HTML文書の表示を組み立てることができるのでとても強力です。

XMLスタイルシート(xsl)でHTML雛形の指定(任意)

サイトマップ、サイトマップインデックスの出力の段階で、
既にスタイルシートの読み込み部分については出力してしまっていますが、
それに合わせたそれぞれのスタイルシートを作成します。

尚、検索エンジンに登録するという目的だけれあれば、
スタイル指定は必要ありません。

XMLとして正しく生成されていればインデックス要求は可能です。

ただ、自分が見た時、理解に苦しんだり、
URLをクリックして確認したりできないという不便だけです。

 

実際に指定しているスタイルシートはそれぞれ以下で確認できます。

 

このようにサイトマップを作成し、
個別にスタイルの割り当ても行えば、自分がプログラムで生成した独自のコンテンツを、
WordPress内部に共存させつつ、画面はWordPressに任せて運用する事ができます。

当然、別途固定ページなどでマニュアルを紹介するのもいいかもしれませんし、
ブログとして新機能紹介を入れてもいいかもしれません。

CMS内にアプリケーションを組み込むと、
サイトの表示と統一されたデザインの中でアプリケーションを公開でき便利です。

 


AdMax Promotion

公開日:

コンテンツナビ
すべて展開 | すべて省略

AdMax Promotion

カテゴリ
すべて展開 | すべて省略

QRコードからもこのURLを開けます。