$value ) if( $value['eid'] == $eid ) return $value; return null; } function RecommendedEntry_updateIndexFile( $eid_updated, $eid, $direction ) { $filename = '/var/www/VirtualDomain/kenji00.com/blog/recommend_data'; is_dir( $filename ) || mkdir( $filename ); $filename .= '/'. substr( $eid_updated, -1 ); is_dir( $filename ) || mkdir( $filename ); $filename .= sprintf( '/%d.txt', $eid_updated); file_exists( $filename ) || touch( $filename ); $fp = @fopen( $filename, 'r+' ); if( $fp ) { if( flock( $fp, LOCK_EX | LOCK_NB )) { $ret = ''; $not_found = 1; while( !feof( $fp ) && ( $buf = fgets( $fp ))) { list( $_eid, $_n0, $_n1 ) = split( "[\t\r\n]", $buf ); if( $eid == $_eid ) { $not_found = 0; $direction ? $_n1++ : $_n0++; } $ret .= sprintf( "%d\t%d\t%d\n", $_eid, $_n0, $_n1 ); } if( $not_found ) $ret .= sprintf( "%d\t%d\t%d\n", $eid, 1 - $direction, $direction); rewind( $fp ); fwrite( $fp, $ret, strlen( $ret )); } fclose( $fp ); } } function RecommendedEntry_incoming() { $eid_prev = $_COOKIE['mtrcmnd_eid']; if( isset( $eid_prev )) { if( $eid_prev != 59 && RecommendedEntry_getEntryData( $eid_prev )) { RecommendedEntry_updateIndexFile( 59, $eid_prev, 0 /*incoming_from*/ ); RecommendedEntry_updateIndexFile( $eid_prev, 59, 1 /*outgoing_to*/ ); } } else { RecommendedEntry_updateIndexFile( 59, 59, 0 /*incoming_from*/ ); } } RecommendedEntry_incoming(); function RecommendedEntry_outgoing() { setcookie( 'mtrcmnd_eid', 59, time() + 2592000, '/' ); } RecommendedEntry_outgoing(); function RecommendedEntry_initialize( $mode = 0 ) { global $RecommendedEntry_table; $RecommendedEntry_table = array(); $filename = '/var/www/VirtualDomain/kenji00.com/blog/recommend_data/'. substr( '59', -1 ). '/59.txt'; $fp = @fopen( $filename, 'r' ); if( $fp ) { if( flock( $fp, LOCK_SH | LOCK_NB )) { while( !feof( $fp ) && ( $buf = fgets( $fp ))) { list( $_eid, $_n0, $_n1 ) = split( "[\t\r\n]", $buf ); if( 59 == $_eid ) continue; else if( $mode == 1 ) $RecommendedEntry_table{$_eid} = $_n0; else if( $mode == 2 ) $RecommendedEntry_table{$_eid} = $_n1; else $RecommendedEntry_table{$_eid} = $_n0 + $_n1; } arsort( $RecommendedEntry_table, SORT_NUMERIC ); } fclose( $fp ); } } function RecommendedEntry_GetEntry( $_index ) { global $RecommendedEntry_table; foreach( $RecommendedEntry_table as $eid => $count ) { if( --$_index ) continue; $entry = RecommendedEntry_getEntryData( $eid ); if( $entry ) $entry['count'] = $count; return $entry; } } ?> Sitemapsを作ろう - 寝不足にて候(仮)
Jan
29
2007

Sitemapsを作ろう

久しぶりにSEO界を眺め直している今日この頃。
知識としては勿論知っていましたが実際には使ったことの無かったsitemapsの設置など行ってみました。
ちなみに、このblogのsitemapはコレ。
こちらはMovableTypeのPluginで以前から自動生成されてます。

で、今回はkenji00.comドメインとは別に実益(猫の食費とも言う)を追うドメインを取得しているので、主にソチラの方で実験。Googleだけでなく、Yahoo!/MSNも対応するということで、必須ではないかと。
まぁ、今後を考えるとSitemaps 0.90フォーマットにすべきなのでしょうが、本日のところは"生成することに意義がある"ので0.84で。

3rd Partyのツールはググったり本家のページを見たりすると色々あるのだが、性的静的なファイルを対象としたものが殆ど。
できれば、HTTPを喋ってコンテンツを拾ってくれるツール希望だったのですが、適当なのを見つけることが出来ませんでした。Webベースで提供しているサイトはありますが、それだと遊べないしね。

で、今回のチョイスはGoogle謹製のサイトマップ生成ツール

pythonで書かれたスクリプトで、アクセスログを元にサイトマップを生成することが出来ます。
設定ファイルであるていど出力もカスタマイズできるので便利。
そのうち、0.90にも対応するんではないでしょうか。

で、面倒なのでツールのインストールだの使い方だのは割愛。
こういうの、キッチリ画面キャプチャなどつけて解説記事をアップすると世の中に貢献できるのでしょうが、三十路も半ばを超えるとそこまでの気力が御座いません。orz

手元のサイトは、UserAgentによる振り分けこそ未実装ですが、同一のコンテンツを .php/.wml/.chtml/.xhtmlの4拡張子で表示できるようhogeってあるので、1サイトあたり(各々の拡張子のmapのみを記載した)4種類のsitemapを生成して、Googleウェブマスター ツールYahoo! SiteExplorerに登録完了。
特に、Googleウェブマスター ツールは登録時にモバイル向けのサイトマップであることと記述しているマークアップ言語を指定して登録するUIになっており、携帯からのトラフィック獲得に期待が持てそう。

MSNはMETAタグにsitemapファイルの位置など記述することで拾ってくれるらしいのですが、accesslogを見る限りでは、ロクなトラフィックを導いてくれていないので、今度でいいや。

効果があっても無くても2ヶ月後に当blogにてご報告ということで。

このエントリを読んだ人はこんなんも読んでいます

トラックバック(1)

トラックバックURL: http://blog.kenji00.com/MT/mt-tb.cgi/58

寝不足にて候(仮) - Sitemapsを作ろう2 (March 25, 2009 12:13 AM)

1月29日のエントリに書いたSitemapsの件。 Yahoo! JAPANへの... 続きを読む

コメントする

過去のエントリ(一覧)

Powered by Movable Type 4.261
Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。