JoomSEO で自動的にMETAタグを作成する
公開日| 2009年06月30日 | コメントはまだありません。
カテゴリー:エクステンション |
概要 : Joomla! では、記事の編集画面に、METAタグ(キーワード、概要)を設定するための記入欄があります。 本来、METAタグ(キーワード、概要)を設定しておけば、GoogleやYahooなどの検索サイトで、より良い検索結果を得られます。 うまく設定していれば、検索結果の上位でヒットすることもあります。
このMETAタグの設定は、SEO対策としてと一般的に用いられている対策の一つでもあります。
ただ、筆者のように、記事を書くので精一杯な怠け者にとっては、META情報をなかなか設定しません。
(筆者のような方には、今回ご紹介するJoomSEO エクステンションは、手助けになるかもしれません。)
今回、そのMETAタグを自動的に設定してくれるエクステンション JoomSEOについて簡単に紹介したいと思います。
早速、使ってみましょう
先のダウンロードサイトから、ZIPファイルをダウンロードし、インストールを行います。
(メニューの [エクステンション] - [インストール/アンインストール] から行ってください。)インストールの後、プラグイン管理から"System - JoomSEO"を編集しましょう。
(メニューの [エクステンション] - [プラグイン管理] から"System - JoomSEO"を探してください。)
System - JoomSEO 固有のパラメータについて記述します。
| パラメータ名 | 説明 |
| Title Options | |
| Maximum Title Length | タイトルの最大文字数を指定します。(デフォルト127文字) |
| Prepend Title | タイトルの前に常に加えたい文字列を指定します。(デフォルトなし) |
| Title Order |
タイトルの文字列の順番を指定します。(デフォルトなし)
Site Name:サイト名(基本設定で指定しているサイト名) Keywords:キーワード (デフォルト Heading-Paragraph | Site Name | Keywords) |
| Append Title | タイトルの後に常に加えたい文字列を指定します。(デフォルトなし) |
| Title Site Name | 有効 ●はい いいえ |
| Title Content Heading | 有効 ●はい いいえ |
| Title First Paragraph | 有効 はい ●いいえ |
| Minimum Paragraph Length | 導入概要の文字列の最小文字列数(デフォルト20文字) |
| Maximum Paragraph Length | 導入概要の文字列の最大文字列数(デフォルト50文字) |
| Title Keywords | 有効 はい ●いいえ |
| Minimum Keyword Characters | キーワードの最小文字列数(デフォルト3文字) |
| # Title Keywords | タイトルへ挿入する場合のキーワードの個数(デフォルト5個) |
| Meta Tags | |
| Keywords Count | METAタグへ出力するキーワードの個数(デフォルト25個) |
| Minimum Description Length | METAタグへ出力する概要の最小文字列数(デフォルト80個) |
| Maximum Description Length | METAタグへ出力する概要の最大文字列数(デフォルト150個) |
| Generator | METAタグを作成するかどうかを指定します。 ●はい いいえ |
| Keyword Filter | |
| Sticky Words | メモ文字列を指定します。 ここで指定した文字列は、全ての記事で、1回出現した時と同じ動作をします。 つまり、記事に何もキーワードがなければ、ここで指定した文字列がキーワードとして使用されます。 |
| Bad Words | キーワードから削除する文字列を指定します。 ここで指定した文字列を含んでいる単語を、全ての記事で、キーワードから削除します。 |
| Bad Characters | キーワードから削除する文字列を指定します。 ここで指定した文字列は、全ての記事で、キーワードから削除されます。 |
| Front Page | |
| Enabled? | フロントページで有効にするか否かを指定します。 ●はい いいえ |
| Frontpage Specific Activation | |
| Disable Frontpage Title | フロントページのタイトルを無効にするか否かを指定します。 はい ●いいえ |
| Disable Frontpage Keywords | フロントページのキーワードを無効にするか否かを指定します。 はい ●いいえ |
| Disable Frontpage Description | フロントページの概要を無効にするか否かを指定します。 はい ●いいえ |
| Frontpage Overrides | |
| タイトル | 上書きするフロントページのタイトルを指定します。
(デフォルトなし) |
| Meta Keywords | 上書きするフロントページのMETAタグ(キーワード)を指定します。
(デフォルトなし) |
| Meta Description | 上書きするフロントページのMETAタグ(概要)を指定します。
(デフォルトなし) |
| SEO / Accessability | |
| Heading Tags | SEO対策に<H1> - <H6>のタグで情報を括るかを指定します。 (デフォルトなし) ※実際には、何も動作しないようです?? |
デフォルトのままで、有効にするだけでも、META情報の概要は、ほどほどに設定されます。
ほどほどというのも、単純に先頭からの文字数分を取り出しているにすぎませんので、ほどほどという表現を使っています。
また、キーワードは、英単語は、きれいに拾ってくれます。その英単語の中で、出現数が多い単語をキーワードとして設定します。
単純、明快で、筆者の期待どおりの動作です。ただ、やはり日本語の問題は残ります。
日本語の記事は、日本語のキーワードを拾ってほしいのですが、日本語の単語は、まず、拾ってくれません。
日本語への対応はできてませんから、やるとすれば、 JoomSEO.phpの410行目あたりに、以下のような置換処理を加えれば、とりあえず、日本語の単語も少しは取り出しができます。
ただ、以下の処理は、サンプルであり、正しく単語を取り出せませんのでご了承ください。
キーワードの選定は、そのページに表示される各単語の出現回数の上位から順に決定されます。
[plugins/system/JoomSEO.php]
403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 | $wordCount = array(); // add our stickywords $stickyWords = explode(' ',$stickyWords); foreach ($stickyWords as $stickyWord) { $wordCount[$stickyWord]=1; } // start add for japanease words $text = preg_replace('/やります/', ' ', $text); $text = preg_replace('/します/', ' ', $text); $text = preg_replace('/できます/', ' ', $text); $text = preg_replace('/やりません/', ' ', $text); $text = preg_replace('/できません/', ' ', $text); $text = preg_replace('/しません/', ' ', $text); $text = preg_replace('/しかし、/', ' ', $text); $text = preg_replace('/でも、/', ' ', $text); $text = preg_replace('/また、/', ' ', $text); $text = preg_replace('/は、/', ' ', $text); $text = preg_replace('/が、/', ' ', $text); $text = preg_replace('/に、/', ' ', $text); $text = preg_replace('/を、/', ' ', $text); $text = preg_replace('/、/', ' ', $text); $text = preg_replace('/,/', ' ', $text); $text = preg_replace('/ /', ' ', $text); $text = preg_replace('/。/', ' ', $text); $text = preg_replace('/:/', ' ', $text); $text = preg_replace('/「/', ' ', $text); $text = preg_replace('/」/', ' ', $text); // end add for japanease words // loop through all our words and count instances $words = explode(' ',$text); foreach ($words as $word) { |
これで、以下の記事を実行したMETAタグの結果を以降に記載します。
Qt(9)QtScriptで画面を作成する
1 2 3 | <meta name="keywords" content="以下のよう, Mainwindow, 入力して, ここ, Cpp, Qscriptvalue, java, 追?, 作成する, ctrl+g, 続けて, 画面の下部, 出力されたと思います, Qtscript, タイプ, スクリプト, Void, Mainwindowexcutescript, けです, qtアプリケーションの画面, 作成してみましょう, Printfunc, 画面の上部, つまり, ?合" /> <meta name="description" content="Qt(9)QtScriptで画面を作成する 記事索引 Qt(9)QtScriptで画面を作成する --- 1." /> <title>Qt(9)QtScriptで画面を作成する | off-soft.net</title> |
追記:2009.7.3
上記の処理位置では、日本語の場合、既にUTF-8の文字列に異常が検出されることがあります。
そのため、文字化けなどが発生します。また、上記の記述には、UTF-8での正規表現である小文字のuが全てに抜けています。
例えば、以下のように記述すべきです。
上記のような処理を行うには、以下のcurrent処理の後であれば、取り出したばかりなので、UTF-8の文字列は、正常です。
いろんなやり方があると思います。上記は、あくまで、例ですので、ご了解ください。
上記の処理位置では、日本語の場合、既にUTF-8の文字列に異常が検出されることがあります。
そのため、文字化けなどが発生します。また、上記の記述には、UTF-8での正規表現である小文字のuが全てに抜けています。
例えば、以下のように記述すべきです。
$text = preg_replace('/やります/u', ' ', $text);
上記のような処理を行うには、以下のcurrent処理の後であれば、取り出したばかりなので、UTF-8の文字列は、正常です。
149 150 151 152 153 154 | function doGenerator() { // get our site name $this-->seoDoc['siteName'] = $this-->getSiteName(); // get our buffer text $this-->buffer = current($this-->document-->_buffer['component']); |
上記のような単純な記述でも、意外と、取り出せるものですね。
本格的に、考えれば、もう少し良い結果も得られると思います。
概要だけでも自動で設定してくれれば、筆者にとっては、重宝します。
皆さんも、色々と試されると良いと思います。
もし、より良い手法等々お気づきの点がありましたら、コメントいただけますと幸いです。
概要だけでも自動で設定してくれれば、筆者にとっては、重宝します。
皆さんも、色々と試されると良いと思います。
もし、より良い手法等々お気づきの点がありましたら、コメントいただけますと幸いです。
もっと、Joomla!やPHP、Apacheについて詳しく知りたい方は、以下の本なども良いと思います。本から学ぶことは多いと思います。ネットだけでは判らない様々な事に気づかされます。
Joomla!Pro Book オープンソースCMS導入&カスタマイズガイド |
初めてのPHP & MySQL 第2版 |
Apacheハンドブック |

