warning: Creating default object from empty value in /var/www/drupal-5.23/modules/taxonomy/taxonomy.module on line 1418.

Amazon アソシエイトで、ウェブサービス (A2S / 旧AWS) を REST で利用する方法 (A2S: Amazon Associates Web Services)

REST とは、REpresentational State Transfer の略で、クライアントが HTTP の GET または POST でリクエストした内容を、サーバ通常の HTML ページの代わりに XML ドキュメントで返すもののことである。つまりは SOAP を使わなくてもサーバからクライアントがデータを受信するようなもので、従来の HTTP の Request - Response のスキームは何ひとつ変わらない。なので決して難しいことはない。 アマゾン・アソシエイトで、商品の画像だけ表示する方法は述べた通りだが、現在の価格を表示したり、「24時間以内に発送可能」 などの在庫状況を表示したりするにはどうしたらいいのだろう?たとえば、以下のように表示したい場合である。
  • 以下は、TOEIC スターターキットで紹介している本の一部(ちなみに、以下の本に紹介されている試験勉強方法はどんな試験にも役に立つ。内容はほとんど精神論であるが、私はこの本があったから TOEIC 920 に達することができたと言っても過言ではない)。 試験に受かる超効率勉強法 試験に受かる超効率勉強法井藤 公量 日本実業出版社 2002-01Amazonで詳しく見る
必要な情報・手順としては以下の通りである。
  1. アマゾン・アソシエイトの ID を取得する。
  2. Amazon Web サービスの Access Key ID を取得する。
  3. XSLT を用意する。
  4. 商品リンクの URL を作成する。
  5. リンクを自分のサイトに貼り付ける。
まず、XSLT を作成し、自分のサイトのどこか(たとえば、https://perltips.twinkle.cc/amazon_price.xsl)に保存しておく。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="https://www.w3.org/1999/XSL/Transform" xmlns:aws="https://webservices.amazon.com/AWSECommerceService/2006-03-08" exclude-result-prefixes="aws" version="1.0">
  <xsl:output method="html" encoding="utf-8"/>
<xsl:template match="/">
<xsl:apply-templates select="aws:ItemLookupResponse/aws:Items/aws:Item/aws:Offers/aws:Offer/aws:OfferListing"/>
</xsl:template>

<xsl:template match="aws:OfferListing">

<xsl:variable name="ourprice" select="aws:Price/aws:FormattedPrice"/>
<xsl:variable name="availavility" select="aws:Availability"/>
<html lang="ja">
<head>
</head>
<body bgcolor="#FFFFFF">
<font size="-1" color="#990000">
<b><xsl:value-of select="$ourprice"/></b><br/>
</font>
<font size="-1" color="#333333">
<xsl:value-of select="$availavility"/>
</font>
<br/>
</body>
</html>
</xsl:template>

</xsl:stylesheet>
あとは、以下の URL からアクセスするだけである。
<table  border="0" cellpadding="5"><tr><td valign="top">
<a
href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank">
<img src="https://images.amazon.com/images/P/<font color="blue">4534033427</font>.09._SCMZZZZZZZ_.jpg"
border="0"
alt="4534033427" /></a></td>
<td valign="top"><font size="-1">
<a
href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank"><font color="blue">試験に受かる超効率勉強法</font></a><br />
<font color="blue">井藤 公量</font><br /><br />
<font color="blue">日本実業出版社 2002-01</font><br />
<iframe scrolling="no"
frameborder="0"
width="200" height="40"
hspace="0"
vspace="0"
marginheight="0"
marginwidth="0"
src="https://xml-jp.amznxslt.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=<font color="blue"> 152ZP71KPB47XM09CS02</font>&AssociateTag=<font color="blue">twinklexxx-22</font>&Operation=ItemLookup&IdType=ASIN&ContentType=text/html&Version=2006-03-08&Page=1&ResponseGroup=Offers&ItemId=<font color="blue">4534033427</font>&Style=<font color="blue">https://perltips.twinkle.cc/amazon_price.xsl</font>"></iframe><br /><a href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank">Amazonで詳しく見る</a>
</font><font size="-2"></font>
</td></tr></table>
この中で、REST として AWS (Amazon Web Services) に渡す重要なパラメータは以下の通り。青字は、自分の環境に合わせて変更する部分である。
  • Operation=ItemLookup
  • IdType=ASIN
  • ContentType=text/html
  • Version=2006-03-08
  • Page=1
  • ResponseGroup=Offers
  • AWSAccessKeyId=152ZP71KPB47XM09CS02
  • AssociateTag=twinklexxx-22
  • Style=https://perltips.twinkle.cc/amazon_price.xsl
  • ItemId=4534033427
REST とは、REpresentational State Transfer の略で、クライアントが HTTP の GET または POST でリクエストした内容を、サーバ通常の HTML ページの代わりに XML ドキュメントで返すもののことである。つまりは SOAP を使わなくてもサーバからクライアントがデータを受信するようなもので、従来の HTTP の Request - Response のスキームは何ひとつ変わらない。なので決して難しいことはない。 アマゾン・アソシエイトで、商品の画像だけ表示する方法は述べた通りだが、現在の価格を表示したり、「24時間以内に発送可能」 などの在庫状況を表示したりするにはどうしたらいいのだろう?たとえば、以下のように表示したい場合である。
  • 以下は、TOEIC スターターキットで紹介している本の一部(ちなみに、以下の本に紹介されている試験勉強方法はどんな試験にも役に立つ。内容はほとんど精神論であるが、私はこの本があったから TOEIC 920 に達することができたと言っても過言ではない)。 試験に受かる超効率勉強法 試験に受かる超効率勉強法井藤 公量 日本実業出版社 2002-01Amazonで詳しく見る
必要な情報・手順としては以下の通りである。
  1. アマゾン・アソシエイトの ID を取得する。
  2. Amazon Web サービスの Access Key ID を取得する。
  3. XSLT を用意する。
  4. 商品リンクの URL を作成する。
  5. リンクを自分のサイトに貼り付ける。
まず、XSLT を作成し、自分のサイトのどこか(たとえば、https://perltips.twinkle.cc/amazon_price.xsl)に保存しておく。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="https://www.w3.org/1999/XSL/Transform" xmlns:aws="https://webservices.amazon.com/AWSECommerceService/2006-03-08" exclude-result-prefixes="aws" version="1.0">
  <xsl:output method="html" encoding="utf-8"/>
<xsl:template match="/">
<xsl:apply-templates select="aws:ItemLookupResponse/aws:Items/aws:Item/aws:Offers/aws:Offer/aws:OfferListing"/>
</xsl:template>

<xsl:template match="aws:OfferListing">

<xsl:variable name="ourprice" select="aws:Price/aws:FormattedPrice"/>
<xsl:variable name="availavility" select="aws:Availability"/>
<html lang="ja">
<head>
</head>
<body bgcolor="#FFFFFF">
<font size="-1" color="#990000">
<b><xsl:value-of select="$ourprice"/></b><br/>
</font>
<font size="-1" color="#333333">
<xsl:value-of select="$availavility"/>
</font>
<br/>
</body>
</html>
</xsl:template>

</xsl:stylesheet>
あとは、以下の URL からアクセスするだけである。
<table  border="0" cellpadding="5"><tr><td valign="top">
<a
href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank">
<img src="https://images.amazon.com/images/P/<font color="blue">4534033427</font>.09._SCMZZZZZZZ_.jpg"
border="0"
alt="4534033427" /></a></td>
<td valign="top"><font size="-1">
<a
href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank"><font color="blue">試験に受かる超効率勉強法</font></a><br />
<font color="blue">井藤 公量</font><br /><br />
<font color="blue">日本実業出版社 2002-01</font><br />
<iframe scrolling="no"
frameborder="0"
width="200" height="40"
hspace="0"
vspace="0"
marginheight="0"
marginwidth="0"
src="https://xml-jp.amznxslt.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=<font color="blue"> 152ZP71KPB47XM09CS02</font>&AssociateTag=<font color="blue">twinklexxx-22</font>&Operation=ItemLookup&IdType=ASIN&ContentType=text/html&Version=2006-03-08&Page=1&ResponseGroup=Offers&ItemId=<font color="blue">4534033427</font>&Style=<font color="blue">https://perltips.twinkle.cc/amazon_price.xsl</font>"></iframe><br /><a href="https://www.amazon.co.jp/exec/obidos/ASIN/<font color="blue">4534033427</font>/<font color="blue">twinklexxx-22</font>/ref=nosim/"
target="_blank">Amazonで詳しく見る</a>
</font><font size="-2"></font>
</td></tr></table>
この中で、REST として AWS (Amazon Web Services) に渡す重要なパラメータは以下の通り。青字は、自分の環境に合わせて変更する部分である。
  • Operation=ItemLookup
  • IdType=ASIN
  • ContentType=text/html
  • Version=2006-03-08
  • Page=1
  • ResponseGroup=Offers
  • AWSAccessKeyId=152ZP71KPB47XM09CS02
  • AssociateTag=twinklexxx-22
  • Style=https://perltips.twinkle.cc/amazon_price.xsl
  • ItemId=4534033427

RSS で Favicon を表示させる方法

RSS 1.0 (index.rdf など) の場合は、以下の行を RSS のテンプレートに追加すればよい。
<image:favicon rdf:about="Favicon までのパス/favicon.ico" image:size="small">
<dc:title>HP のタイトル</dc:title>
</image:favicon>
または、Movable Type 3.2 以上であれば、Atom (atom.xml) や RSS 2.0 (index.xml) のテンプレートの最初の方に、
<link rel="icon" href="<$MTBlogHost$><$MTBlogRelativeURL$>favicon.ico"
type="image/x-icon" />
<link rel="shortcut icon" href="<$MTBlogHost$><$MTBlogRelativeURL$>favicon.ico"
type="image/x-icon" />
の 2つのタグを追加してもよい。
RSS 1.0 (index.rdf など) の場合は、以下の行を RSS のテンプレートに追加すればよい。
<image:favicon rdf:about="Favicon までのパス/favicon.ico" image:size="small">
<dc:title>HP のタイトル</dc:title>
</image:favicon>
または、Movable Type 3.2 以上であれば、Atom (atom.xml) や RSS 2.0 (index.xml) のテンプレートの最初の方に、
<link rel="icon" href="<$MTBlogHost$><$MTBlogRelativeURL$>favicon.ico"
type="image/x-icon" />
<link rel="shortcut icon" href="<$MTBlogHost$><$MTBlogRelativeURL$>favicon.ico"
type="image/x-icon" />
の 2つのタグを追加してもよい。

Movable Type で、Google の SEO 対策をする。

このサイトはほとんどは Google の検索結果をたどって来る方が多い。ここでは、このサイトで実際に施している SEO 対策を紹介しよう。最初に断っておくが、SEO といっても、対象となる検索エンジンは Google オンリーである。
  1. 3日おきに定期的に更新を目標。 本来なら 「1日ごとに更新」 とした方が格好がいいに決まっているが、どんなに技術に詳しい人でもそんなにたくさん Tips が次から次に書けるわけでもないのは最初から目に見えている。毎日更新するためには Tips を 1年で 365個用意しなければならないことを考えてみて欲しい。それを職業にするなら別の話だが、私の場合は自分の無理のない範囲で最大限の目標値とした。この目標は今のところ守っている。それが守れているのは、その日に公開するエントリーをその日に書いて公開するような自転車操業的なものではなく、ある程度エントリーを書き溜めておいて、Movable Type の 「投稿日」 - 「指定日」 として公開されるようにスケジューリングしているからだと思う。この方法は SEO 対策というよりは、モチベーションを維持する上で自分にとってはうまくいっている。 Google が一番好むのは良質なサイトから多数のリンクが貼られている(自サイトから貼っているではない)サイトだ。これはブログのエントリーの内容の質を高めることでリンクの数の増やすことができるだろうが、多数の一般サイトからリンクが貼られていればいいというわけでもなく、おそらく Yahoo! から 1つリンクが貼られるだけでそのサイトの価値が高まるだろう。自分の希望通りに価値の高いサイトにリンクが貼ってもらえるとは限らず、こればかりは粛々と良質なエントリーを書いて自サイトの価値を高めるしかない。本当に価値のあるサイトなら向こうからリンクを貼らせて欲しいと依頼やトラックバックが来るだろう。 では自分にできることは他にはないのだろうか?それは、コツコツ更新することであろう。このサイトはある時点から、エントリーが 100 になるまでは 3日 1回更新することに決めた。今はこのペースを守っている。実際には Google がそれを評価してくれているのかはわからないが、Google の出している特許を読む限りは、放置されているサイトよりは頻繁に更新するサイトの方が評価されるのは確かだろう。
  2. コンテンツを増やす。 上の 「100 エントリーまでは 3日置きに更新」 と関係するのだが、このサイトは Tips のサイトであるし、もともとウェブサイトはコンテンツが豊富な方が優良なサイトである。Google のサイトにもそう書いてある。従って 100 の Tips 以上にすることを目指した。
  3. サブドメインでアクセスできるようにした。 当初、このサイトの URL は https://twinkle.cc/perltips/ であったが、https://perltips.twinkle.cc/ に変えた。Google は、ディレクトリが 1 階層深くなるごとにそのページを重要でないとみなしていくからである。また、ドメイン名(この場合はサブドメイン名)が perltips... で始まり、サブドメイン名に perl という重要なキーワードが含まれているため、これも検索キーワードとして重要なポジションになっていると思う。
  4. ディレクト名にキーワードを含めた。 [続きを読む]
  5. デフォルトのエントリー・ファイル名は使わない。 個々のエントリーのパーマリンク (Permalink) の名前は必ず自分で考えてつける。Google は URL に含まれる文字列(英単語)もキーワードとして考える。Movable Type は、タイトルに含まれる英数字を拾って自動的にエントリー・ファイル名をつけるが、タイトルがすべて日本語だったりすると 「post」 「post_2」 などという、そっけないファイル名をつけてしまう。このサイトは技術的内容を扱うので、例えタイトルが日本語オンリーであっても、できれば検索されやすい英単語を含めたエントリー・ファイル名をつけるようにしている。 このエントリーの URL は 「https://perltips.twinkle.cc/movable_type/seo.php」 であるはずだ。URL の中に perl ・tips・movable_type・seo というキーワードが含まれていることに注目して欲しい(徹底的に気合を入れるなら、まずはドメイン名を考えるべきだ)。実際 Google で検索してこれらのキーワードがヒットした部分は、Google によって太字にされているはずだ。
  6. Google Sitemap に対応させる。 [続きを読む]
  7. 無駄なディレクトリ(archives)は省いた。 Movable Type では、デフォルトの 「アーカイブ」 の場所は archives というディレクトリになっている。しかし Google は長い URL を好まない。archives なるディレクトリを作る目的は、強いていえばサイト運営者がバックアップを取るときに管理しやすいとか、その程度のものであろう。一方、サイトに訪れる人たちは archives というディレクトリがあったとしてもそれは何の意味も成し得ない。このような理由から、archives というディレクトリは省略して、相対パスのルートにアーカイブファイルも置いてしまおう。どうせカテゴリ別にディレクトリが作成されるのだから、archives のディレクトリがある積極的な理由はみつからない。
  8. 個々のエントリーのタイトルは タグにした。 Google は、見出しダグの 、 、 …で囲まれている文字列を、重要なキーワードとして重み付けする。その法則に従って、このブログの見出しもテンプレートの中ですべて にした。Movable Type のデフォルトのテンプレートの見出しは < h3> タグである。見出しの重み付けなど、あくまでもページ内の相対的なものでしかないような気がするので、この方法が有効なのかは実はよくわからない。
  9. タイトルは 「×××で、」 という形で(例えばこのエントリーなら「Movable Type で、Google の SEO 対策をする。」)、重要なキーワードを含めるようにした。 エントリーのタイトルが h1 タグならば、ここには重要なキーワードが当然入らないと意味がないわけで、そのためにタイトルにはカテゴリを表すキーワードを入れた。たとえばこのエントリーであれば、「Movable Type で、…」 といった書き出しである(特にこのエントリーの内容の場合は Movable Type でなくてもいいのだが、そういうことである)。
  10. できるだけ指示語を使わないでエントリーを書く。 Google はエントリー中のキーワードを拾う。エントリー中にはそのテーマに関連するキーワードが多ければ多いほど Google はそのエントリーの言いたいことを解釈するという。このことからつまり Google は指示語が苦手なのではという推測が成り立つ。文章をスムーズにするために 「こそあど言葉」 があるのだが、これだとせっかくの キーワードを指示語で置き換えてしまうことになってしまう。従って指示語はなるべく使わず、多少エントリーの文章がしつこくなっても指示語が指す言葉をあえて使うようにしている。
  11. AdSense だけでなくアマゾンのアフィリエイトも貼った。 Google はそのサイトが表示している広告の質も判断しているらしい。良質なスポンサーと見なすのだろう。そうすると当然 AdSense は貼るべきだが、それは何も考えずに別の実験としてすでにこのサイトには貼ってあった。しかし「広告の質も判断する」 と聞いてアマゾンのアフィリエイトも貼った次第である。ちなみに、このサイトで紹介している Perl の参考書で、実際にクリックして買った方がいたのには驚いた(いやはや、まったく期待していなかったものですから)。アマゾン恐るべし。
  12. ルートディレクトリに robots.txt を置いた。 Google Sitemap を使っていると、「robots.txt にアクセスできなかった」 といちいちエラーを返す。 仕方がないので以下の内容で robots.txt をルートディレクトリに置いた。 User-Agent: * Disallow: /images/
  13. サイト内のリンクを増やした。 Google の SEO で肝となるのは優良サイトからのリンクだ。これは外部からのリンクだが、内部でのリンクもポイントになるという。このサイトでも(というか Movable Type のデフォルトのテンプレートだが)ページの最初のタイトル 「Perl Tips」 をクリックすればどのページからでもトップページに戻れるようになっているが、これは Google にとってはトップページが重要となることを意味する。従って一見マスターベーションのような気もするが、内部のリンクも増やした方がよいだろう。 内部のリンクとはすなわち、エントリーを書いたら関連しそうな過去のエントリーに対してトラックバックを送るということに他ならない。もちろん、外部のサイトで関連しそうな内容のブログのエントリーがあったらトラックバックを送ると、自動的にそのサイトに自分のサイトへのリンクが貼られるわけだから、これも積極的に行った方がよいだろう。しかしこの方法は時間と手間がかかるので、まずは内部のリンクを増やすことから始めてはどうだろうか、ということだ。
このサイトはほとんどは Google の検索結果をたどって来る方が多い。ここでは、このサイトで実際に施している SEO 対策を紹介しよう。最初に断っておくが、SEO といっても、対象となる検索エンジンは Google オンリーである。
  1. 3日おきに定期的に更新を目標。 本来なら 「1日ごとに更新」 とした方が格好がいいに決まっているが、どんなに技術に詳しい人でもそんなにたくさん Tips が次から次に書けるわけでもないのは最初から目に見えている。毎日更新するためには Tips を 1年で 365個用意しなければならないことを考えてみて欲しい。それを職業にするなら別の話だが、私の場合は自分の無理のない範囲で最大限の目標値とした。この目標は今のところ守っている。それが守れているのは、その日に公開するエントリーをその日に書いて公開するような自転車操業的なものではなく、ある程度エントリーを書き溜めておいて、Movable Type の 「投稿日」 - 「指定日」 として公開されるようにスケジューリングしているからだと思う。この方法は SEO 対策というよりは、モチベーションを維持する上で自分にとってはうまくいっている。 Google が一番好むのは良質なサイトから多数のリンクが貼られている(自サイトから貼っているではない)サイトだ。これはブログのエントリーの内容の質を高めることでリンクの数の増やすことができるだろうが、多数の一般サイトからリンクが貼られていればいいというわけでもなく、おそらく Yahoo! から 1つリンクが貼られるだけでそのサイトの価値が高まるだろう。自分の希望通りに価値の高いサイトにリンクが貼ってもらえるとは限らず、こればかりは粛々と良質なエントリーを書いて自サイトの価値を高めるしかない。本当に価値のあるサイトなら向こうからリンクを貼らせて欲しいと依頼やトラックバックが来るだろう。 では自分にできることは他にはないのだろうか?それは、コツコツ更新することであろう。このサイトはある時点から、エントリーが 100 になるまでは 3日 1回更新することに決めた。今はこのペースを守っている。実際には Google がそれを評価してくれているのかはわからないが、Google の出している特許を読む限りは、放置されているサイトよりは頻繁に更新するサイトの方が評価されるのは確かだろう。
  2. コンテンツを増やす。 上の 「100 エントリーまでは 3日置きに更新」 と関係するのだが、このサイトは Tips のサイトであるし、もともとウェブサイトはコンテンツが豊富な方が優良なサイトである。Google のサイトにもそう書いてある。従って 100 の Tips 以上にすることを目指した。
  3. サブドメインでアクセスできるようにした。 当初、このサイトの URL は https://twinkle.cc/perltips/ であったが、https://perltips.twinkle.cc/ に変えた。Google は、ディレクトリが 1 階層深くなるごとにそのページを重要でないとみなしていくからである。また、ドメイン名(この場合はサブドメイン名)が perltips... で始まり、サブドメイン名に perl という重要なキーワードが含まれているため、これも検索キーワードとして重要なポジションになっていると思う。
  4. ディレクト名にキーワードを含めた。 [続きを読む]
  5. デフォルトのエントリー・ファイル名は使わない。 個々のエントリーのパーマリンク (Permalink) の名前は必ず自分で考えてつける。Google は URL に含まれる文字列(英単語)もキーワードとして考える。Movable Type は、タイトルに含まれる英数字を拾って自動的にエントリー・ファイル名をつけるが、タイトルがすべて日本語だったりすると 「post」 「post_2」 などという、そっけないファイル名をつけてしまう。このサイトは技術的内容を扱うので、例えタイトルが日本語オンリーであっても、できれば検索されやすい英単語を含めたエントリー・ファイル名をつけるようにしている。 このエントリーの URL は 「https://perltips.twinkle.cc/movable_type/seo.php」 であるはずだ。URL の中に perl ・tips・movable_type・seo というキーワードが含まれていることに注目して欲しい(徹底的に気合を入れるなら、まずはドメイン名を考えるべきだ)。実際 Google で検索してこれらのキーワードがヒットした部分は、Google によって太字にされているはずだ。
  6. Google Sitemap に対応させる。 [続きを読む]
  7. 無駄なディレクトリ(archives)は省いた。 Movable Type では、デフォルトの 「アーカイブ」 の場所は archives というディレクトリになっている。しかし Google は長い URL を好まない。archives なるディレクトリを作る目的は、強いていえばサイト運営者がバックアップを取るときに管理しやすいとか、その程度のものであろう。一方、サイトに訪れる人たちは archives というディレクトリがあったとしてもそれは何の意味も成し得ない。このような理由から、archives というディレクトリは省略して、相対パスのルートにアーカイブファイルも置いてしまおう。どうせカテゴリ別にディレクトリが作成されるのだから、archives のディレクトリがある積極的な理由はみつからない。
  8. 個々のエントリーのタイトルは タグにした。 Google は、見出しダグの 、 、 …で囲まれている文字列を、重要なキーワードとして重み付けする。その法則に従って、このブログの見出しもテンプレートの中ですべて にした。Movable Type のデフォルトのテンプレートの見出しは < h3> タグである。見出しの重み付けなど、あくまでもページ内の相対的なものでしかないような気がするので、この方法が有効なのかは実はよくわからない。
  9. タイトルは 「×××で、」 という形で(例えばこのエントリーなら「Movable Type で、Google の SEO 対策をする。」)、重要なキーワードを含めるようにした。 エントリーのタイトルが h1 タグならば、ここには重要なキーワードが当然入らないと意味がないわけで、そのためにタイトルにはカテゴリを表すキーワードを入れた。たとえばこのエントリーであれば、「Movable Type で、…」 といった書き出しである(特にこのエントリーの内容の場合は Movable Type でなくてもいいのだが、そういうことである)。
  10. できるだけ指示語を使わないでエントリーを書く。 Google はエントリー中のキーワードを拾う。エントリー中にはそのテーマに関連するキーワードが多ければ多いほど Google はそのエントリーの言いたいことを解釈するという。このことからつまり Google は指示語が苦手なのではという推測が成り立つ。文章をスムーズにするために 「こそあど言葉」 があるのだが、これだとせっかくの キーワードを指示語で置き換えてしまうことになってしまう。従って指示語はなるべく使わず、多少エントリーの文章がしつこくなっても指示語が指す言葉をあえて使うようにしている。
  11. AdSense だけでなくアマゾンのアフィリエイトも貼った。 Google はそのサイトが表示している広告の質も判断しているらしい。良質なスポンサーと見なすのだろう。そうすると当然 AdSense は貼るべきだが、それは何も考えずに別の実験としてすでにこのサイトには貼ってあった。しかし「広告の質も判断する」 と聞いてアマゾンのアフィリエイトも貼った次第である。ちなみに、このサイトで紹介している Perl の参考書で、実際にクリックして買った方がいたのには驚いた(いやはや、まったく期待していなかったものですから)。アマゾン恐るべし。
  12. ルートディレクトリに robots.txt を置いた。 Google Sitemap を使っていると、「robots.txt にアクセスできなかった」 といちいちエラーを返す。 仕方がないので以下の内容で robots.txt をルートディレクトリに置いた。 User-Agent: * Disallow: /images/
  13. サイト内のリンクを増やした。 Google の SEO で肝となるのは優良サイトからのリンクだ。これは外部からのリンクだが、内部でのリンクもポイントになるという。このサイトでも(というか Movable Type のデフォルトのテンプレートだが)ページの最初のタイトル 「Perl Tips」 をクリックすればどのページからでもトップページに戻れるようになっているが、これは Google にとってはトップページが重要となることを意味する。従って一見マスターベーションのような気もするが、内部のリンクも増やした方がよいだろう。 内部のリンクとはすなわち、エントリーを書いたら関連しそうな過去のエントリーに対してトラックバックを送るということに他ならない。もちろん、外部のサイトで関連しそうな内容のブログのエントリーがあったらトラックバックを送ると、自動的にそのサイトに自分のサイトへのリンクが貼られるわけだから、これも積極的に行った方がよいだろう。しかしこの方法は時間と手間がかかるので、まずは内部のリンクを増やすことから始めてはどうだろうか、ということだ。

Movable Type で、アーカイブのページにインデックス (目次) を作る

Movable Type というか、ブログは、実は当サイトのような技術解説のような内容のサイトにははっきり言って向かない。なぜなら技術文書では、時系列に日々のコンテンツを並べるという日記やニュース的なブログのスタイルよりも、後から参照されることを前提としたリファレンスとしての利用のされ方をするからである。技術は積み重ねでもあるので、簡単なものから難しいものへ、すなわちアーカイブでは最新順ではなく古い順から並んでいってもらった方が良い場合がある。そしてさらに技術文書のインデックス (目次) を作っておくと便利だろう。当サイトのアーカイブページのように、このような場合は Movable Type ではアーカイブ用のテンプレートを少し改造する。以下、青で示している部分が追加・変更点である。参考にして欲しい。
...

<div class="content">

<font color="blue"><a name="index"><h3>「<$MTArchiveTitle$>」のインデックス</h3></a>
<ol>
<MTEntries sort_order="ascend">
<li><a href="#<$MTEntryID pad="1"$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ol>
</font>
<MTEntries <font color="blue">sort_order="ascend"></font>
<$MTEntryTrackbackData$>

<font color="blue"><a name="<$MTEntryID pad="1"$>"><h3 id="a<$MTEntryID pad="1"$>">
<$MTEntryTitle$>
</h3></a></font>

<$MTEntryBody$>

...

<font color="blue">| <a href="#index">Top ↑</a></font>
</p>

...
Movable Type というか、ブログは、実は当サイトのような技術解説のような内容のサイトにははっきり言って向かない。なぜなら技術文書では、時系列に日々のコンテンツを並べるという日記やニュース的なブログのスタイルよりも、後から参照されることを前提としたリファレンスとしての利用のされ方をするからである。技術は積み重ねでもあるので、簡単なものから難しいものへ、すなわちアーカイブでは最新順ではなく古い順から並んでいってもらった方が良い場合がある。そしてさらに技術文書のインデックス (目次) を作っておくと便利だろう。当サイトのアーカイブページのように、このような場合は Movable Type ではアーカイブ用のテンプレートを少し改造する。以下、青で示している部分が追加・変更点である。参考にして欲しい。
...

<div class="content">

<font color="blue"><a name="index"><h3>「<$MTArchiveTitle$>」のインデックス</h3></a>
<ol>
<MTEntries sort_order="ascend">
<li><a href="#<$MTEntryID pad="1"$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ol>
</font>
<MTEntries <font color="blue">sort_order="ascend"></font>
<$MTEntryTrackbackData$>

<font color="blue"><a name="<$MTEntryID pad="1"$>"><h3 id="a<$MTEntryID pad="1"$>">
<$MTEntryTitle$>
</h3></a></font>

<$MTEntryBody$>

...

<font color="blue">| <a href="#index">Top ↑</a></font>
</p>

...