サイトマップの半自動作成ツール

sitemap.xmlの優先度、更新間隔などを個別に指定する

自動的にサイトマップ(sitemap.xml)を作るツールはいくつかありますが、更新間隔や優先度が一括に自動で決められてしまうようです。
そこで、エクセルマクロを利用し、サイトマップの優先度などを個別に指定し、指定条件を保存できるツールを作りました。

ローカルのPCに保存してあるwebページの情報からサイトマップを作成します。
優先度や更新間隔はデフォルトのままでもよいですが、一度指定すれば次から修正しなくてよいです。
一応、閲覧者用のサイトマップ(sitemap.html)も作成できます。

sitemapmake110.zipのダウンロード(52KB,Ver1.10)

上記ファイルをダウンロードして、zipファイルを解凍してから使用してみてください。

マクロのパスワードは設定していませんので、適当に改変して使ってください。もちろん、何があっても責任はとれません。
また、再配布とかはしないでおいてください。おかしな点や改良した場合は教えて頂けると助かります。
ファイル名(URL)にASCII(英字・数字・記号など)以外の文字(日本語など)が含まれる場合は対応していません。
URLに & と ' と " と > と < が含まれる場合は対応したつもりですが、私はそのような名前を使ってないので対応できているか不明です。

Ver1.10でサイトマップのhtmlファイルをxhtml1.0の形式で出力するようにしました。

Ver1.20でmetaタグのdescriptionの内容を運がよければ読み込むようにしました。また、html出力時に更新日時は出力しないようにしました。
sitemapmake120.zipのダウンロード(56KB,Ver1.20)
htmlファイルの出力は、そのままでは他の人には使えない機能の気がします。
タイトルを変えるとか、ヘッダーやフッダーをつける位なら、さほどVBAの知識がなくても改変できるかと思います。
100ページ以上ある人はsitemap.htmlを分けた方がいいそうです。

sitemapmake.xlsの使用方法

sitemap.xmlを作る

sitemap.xmlの作成

(↓一番最初の一回やること)

  1. C2セルにホームページの一番上の階層のアドレスを入力します。
  2. C3セルにPC上のwebページがあるフォルダを指定します。
    B3セルにある[フォルダ設定]ボタンを押して指定してもよいです。
  3. C6セルにサイトマップを作成するファイル名をフルパスで記入する。
    デフォルトでは、C3セルで指定したフォルダに書き出します。

(↓webページを更新した時にやること)

  1. C4セルにある[サイト情報取得]ボタンを押します。
    11行目以降にwebページの一覧が書き出されます。既存のロケーションについては最終更新のみ変更され、更新間隔等はそのままです。
  2. 更新間隔(D列)・優先度(E列)・記載有無(F列)を必要に応じて書き換えます。
  3. D6セルにある[サイトマップ作成]ボタンを押します。
    既存ファイルは上書きされ、新しいsitemap.xmlが書き出されます。

sitemap.htmlの作成

  1. 上記の「C4セルにある[サイト情報取得]ボタンを押します。」までを行っておきます。
  2. C7セルにサイトマップを作成するファイル名をフルパスで記入します。
    デフォルトでは、C3セルで指定したフォルダに書き出します。
  3. 必要に応じてタイトル(H列)を書き換えます。
  4. そのページの内容をI列に記入します。
  5. D7セルにある[htmlファイル作成]ボタンを押します。
    既存ファイルは上書きされ、新しいsitemap.htmlが書き出されます。
 
ValueCommerceのアフィリエイト宣伝です。Yahoo!ショッピングが出来るのに魅かれて登録しました。    
1,000円から入金され、入金手数料は0円です。

このマクロの作成には、 「Excelでお仕事!」というサイトで紹介されていたフォルダ一覧の取得モジュールを利用しています。
大変、参考になり感謝しております。なお、転載は許可して頂きましたが、ご迷惑にならないように、ここで紹介したマクロの質問をこのサイトの管理者様にはしないでください。

sitemap.xmlの登録方法

作成したsitemap.xmlは、ホームページの一番上の階層にアップロードして、検索サイトに登録しましょう。

sitemap.xmlを登録してみて、googleに対しては効果があるように感じます。
ほとんどリンクがないようなページでもインデックスされるようになりました。
ただ、最近はサイトマップに登録しなくても、googleではインデックスされるようです。

msnは、webmaster centerに登録していないのにかかわらず、頻繁にインデックスが更新されているようです。sitemap.xmlの効果があるのかな。

changefreqでyearlyとかneverに指定しても、あまり意味ないようです。
何回かチェックして本当にneverだと更新に来なくなるのかも知れません。
priorityも考慮されているかよく分かりません。

  1. robots.txtを作成

    サイトの一番上の階層に、サイトマップの場所を下のように記述したrobots.txtファイルを置く

    Sitemap: http://www.est.hi-ho.ne.jp/atamadekkati/sitemap.xml

    robots.txtは、http://www.est.hi-ho.ne.jp/robots.txt のように一番上の階層に置かないと意味がないそうです。
    私の場合は、一番上の階層にファイルをアップロードする権限がないので、この方法は使えません。

  2. 代表的なページのヘッダーにサイトマップの所在を記載

    サイトマップを保存した階層と同じページにあるhtmlファイルのヘッダー部に次の一文を加える。

    <link rel="alternate" type="application/rss+xml" title="ROR" href="sitemap.xml">

    HTML4.01の書き方は上で、XHTML1.0の書き方は最後に/を入れた下になるそうです。

    <link rel="alternate" type="application/rss+xml" title="ROR" href="sitemap.xml" />

    あまりこの方法を紹介しているページもないので、こんなのでよいのか不明です。
    ただ、今までほとんどインデックスされていなかったはずのMSNに、私のサイトがインデックスされるようになったので偶然かも知れませんが、効果があるのかもしれません。

  3. googleのウェブマスターツールで登録する。

    https://www.google.com/webmasters/tools/docs/ja/about.html

    ↑のアドレスからGoogle ウェブマスターツールを利用して、サイトマップを送信します。
    googleへの無料登録が必要ですが、いろいろなことが分かっておもしろいです。
    リンクが切れているファイルを教えてもらいました。どういった検索キーワードで自分のページが表示されたかという情報は参考になります。
    スパムサイトと認定されてインデックスを削除されたり、検索順位が著しく落ちた場合にサイトの再評価を申請できます。

    googleウェブマスターツールでダウンロードしたCSVファイルの読み込みも参考にしてみてください。

  4. yahooのサイトエクスプローラーで登録する。

    yahooサイトエクスプローラーは、平成22年11月頃に終了しました。
    yahooの検索結果がgoogleになったのでしょうがないですが、ウェブマスターツールより便利なところもあったのに残念です。

  5. MSNのbing Webmaster Tools に登録する。

    http://www.bing.com/toolbox/webmaster/

    ↑のアドレスから登録してgoogleのようにサイトマップを送信します。
    日本語化したそうですが、HTML5採用とのことなので、私の古いPCでは見られませんでした。
    パソコンを買い換えたら日本語になっていたので、登録しました。

html出力の例