Warning: Declaration of FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Tags::wrap($content, $before, $sep, $after) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Category::wrap($content, $sep, $parents) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Thumbnail::wrap($html, $post_id, $post_thumbnail_id, $size) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Meta::wrap($data, $post_id, $key, $ui, $single) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Widget::wrap($params) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/widget.php on line 0

Warning: Declaration of FEE_Field_Comment::wrap($content) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Single_Title::wrap($title) should be compatible with FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Option::wrap($content, $key, $ui) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0
Sabakura Blog

Tiny Tiny RSSをエックスサーバーにインストール(詳細手順付き)

RSSリーダーとして人気のあったGoogle Readerの終了から早くも10ヶ月以上が経ちましたが、とりあえず暫定的に今まではFeedlyを使ってきました。

ただどうにも記事の取りこぼしがあったり、あるいは逆に古い記事を突然最新記事として読み込んだりと、フィードの読み込みが不安定な印象を受けます(最近はだいぶ改善されてきたようにも感じますが)。

またやはり特定サービスに依存してしまうと、サービス終了時に再び困りそうだということで、このたび自前でサーバーにインストールするタイプのRSSリーダーである「Tiny Tiny RSS」を導入しました。ちなみにオープンソースソフトウェアですので、誰でも無料で利用可能です。

必要環境について

Tiny Tiny RSSは、動作に際してPHP(5.3以上)とMySQLデータベースを必要とするため、その両方が使えるサーバーである必要があります。またRSSフィードの更新のためにcronも使えるところを選んでください。

今回はこのサイトを運営しているのと同じエックスサーバー上にインストールしましたので、それに沿って手順を解説していきます。ただし他の共用サーバーを使っている方の参考にもなるように、コマンドは使わずにFTP経由でのインストール作業を行っています。
※エックスサーバーであれば、管理画面からSSH機能を有効にしておけば、SSHクライアント経由でコマンド入力してより手早くインストールすることも可能です。

Tiny Tiny RSSのインストール

ファイルのアップロード

  1. 公式サイトの「Download tarball, v1.12」のリンクをクリックして、ファイルをダウンロードします。
    ※バージョンの数字は記事執筆時のものです。
  2. ダウンロードしたファイルを解凍します。なお.tar.gz形式ですので、対応した解凍ソフト(例:Lhaplusなど)を利用する必要があります。
  3. 解凍したフォルダ内にある「Tiny-Tiny-RSS-1.12」のフォルダを「ttrss」にリネームします。
  4. FTPクライアントを用いて、レンタルサーバーのルートディレクトリ(通常は「/public_html」直下)を開きます。
  5. 「ttrss」フォルダをアップロードします。
  6. ブラウザを開き、「自分のサーバーアドレス/ttrss/install/index.php」にアクセスして、インストール設定画面が表示されるのを確認します。

PHPの設定とMySQLデータベース作成

  1. エックスサーバーの管理画面(サーバーパネル)にログインします。
  2. 「PHP Ver.切替」をクリックし、現在のバージョンが5.3以上になっていることを確認します。もしそれより古いバージョンだった場合、「変更後のバージョン」で5.3以上を選び「バージョンを切り替える」をクリックしてください。
  3. 次に「MySQL5設定」をクリックし、「MySQLの追加」をクリックします。
  4. 「xxxx(ユーザー名)_ttrss」というデータベースを作ります。文字コードは「UTF-8」を選択しておきます。
  5. 「MySQLの一覧」に戻り、作成した「xxxx_ttrss」データベースにユーザーを追加します。なお今までユーザーを新規作成していなかった場合は「MySQLユーザーの追加」から作成してから割り当ててください。

インストールの完了

  1. 「自分のサーバーアドレス/ttrss/install/index.php」にアクセスします。
    ttrss-1-1
  2. 「Database type」に「MySQL」を選択します。
  3. 「Username」にMySQLデータベース作成時に割り当てたユーザー名を入力します。
  4. 「Password」にMySQLデータベース作成時に設定したパスワードを入力します。
  5. 「Database name」に「xxxx(ユーザー名)_ttrss」を入力します。
  6. 「Host name」に、レンタルサーバーで利用しているMySQLサーバー名を入力します。
    ※エックスサーバーの場合はサーバーパネルから「phpmyadmin(MySQL5)」を選んでログインすると、画面上部に「mysqlxx.xserver.jp」という形で表示されています。
  7. 「Port」欄は空白のままでOKです。
  8. 「Tiny Tiny RSS URL」欄に「自分のサーバーアドレス/ttrss/」を入力します。
  9. 「Test Configuration」ボタンをクリックすると、入力した設定でエラーが起こらないかがチェックされます。問題がなければ「Configuration check succeeded.」および「Database check succeeded.」と表示されます。
  10. 「Initiallize database」ボタンをクリックします。

ログインしてみる

  1. 「自分のサーバーアドレス/ttrss/」にアクセスします。
    ttrss-1-2
  2. 「ログイン」に「admin」、「パスワード」に「password」と入力します。
  3. 「ログイン」ボタンをクリックして、ログインできることを確認します。

以上でインストール作業は完了です。ただし、このままではパスワード等が初期設定のままのため変更の必要があります。またそのほかにもRSSフィードの更新や、他のRSSリーダーからのインポートなども必要となりますので、それらについては次の記事で説明します。

利用中のWordPressプラグインをまとめてみた

WordPressを利用してウェブサイトを作成する機会も増えてきましたが、それに伴って利用するプラグインの数もしだに増えてきます。そこで半ば備忘録も兼ねて、自分がよく使っているプラグインをまとめて紹介してみたいと思います。

SEO関連

All In One SEO Pack
タイトルタグの設定や、カテゴリやタグページのnoindex化など面倒な作業を一括で行える高機能SEOプラグインです。知名度・普及度も高く、SEO関連でどれか一つプラグインを入れるならこれで間違いなしと言えます。なお、導入記事も「WordPressのSEO対策プラグイン「All in One SEO Pack」の導入と詳細設定」で書いています。
Google XML Sitemaps
Googleのウェブマスターツール等に登録するためのサイトマップ(.xml)を作成するためのプラグイン。一度設定してしまえば、あとは記事やページの追加・更新のたびに自動で送信してくれます。
Breadcrumb NavXT
パンくずリストを簡単に作成できるプラグイン。このサイトでは導入していませんが、カテゴリ分けが多岐に渡るサイトなどで、ユーザーに現在位置を分かりやすく示すのに有用です。SEO的には直接効果があるかは分かりませんが、Googleのガイドラインでも使用が推奨されていますので、悩んだら導入しておくのが吉です。

サイト運営の効率化

Akismet
WordPressにも標準で同梱されているスパムコメント排除プラグイン。
Broken Link Checker
リンク切れを自動でチェックして教えてくれるプラグインです。WordPressのダッシュボードから確認できるほか、新たなリンク切れを発見したときにはメールで通知してくれる機能も持っています。
Contact Form 7
メールフォームが設置できます。非常に有名なプラグインでもあり、また導入も専用のタグを挿入するだけととても簡単です。
Front-end-Editor
記事の修正をダッシュボードに移動することなく、サイトを表示させたまま直接行えるようになります。いまいち認知度が低いように感じるのですが、こまかな修正を多数行うことが多い自分にとっては手放せないプラグインです。
参考:記事を頻繁に修正する人には、WordPressプラグイン「Front-end Editor」がおすすめ!
WP Hatena Notation
「*(アスタリスク)」を文頭に入れるだけでhタグに変換できるなど、HTMLを含む記事の執筆を手助けしてくれる「はてな記法」がWordPressでも使えるようになります。こちらもFrond-end-Editorと並んで、個人的には必須といえるほど使用率が高いプラグインです。
参考:WordPressではてな記法を使えるプラグイン「WP HatenaNotation」導入とカスタマイズ方法

URLの変更に関するもの

WP No Category Base
WordPressは標準ではカテゴリページのURLに「/category/」という階層が自動で追加されてしまいます。そのためたとえばニュースカテゴリであれば「/category/news」とURLが長くなります。これを「/news/」のみに短縮化してくれるプラグインです。
Custom Permalinks
一記事、一ページごとにURL構造をユーザーが手動で設定できるようになります。私の主な使い方としては、階層化された固定ページ(子ページ)のURLから親ページのディレクトリURLを削除する場合に使用しています。

メンテナンス関連

Maintenance Mode
名前のとおり、一発でWordPressサイトをメンテナンスモードにしてくれます。メンテ終了時間をユーザーに告知できるほか、一時的なメンテであることを検索エンジン等に通知するhttpステータスコード「503」を返すことができます(要設定)。
WordPress Importer
WordPressでエクスポートしたデータを読み込む(インポートする)ためのプラグイン。ローカルでこまかな修正を施したものを書き出し、サーバー側でそれを読み込む、という使い方が個人的には多いです。

その他

WP Multibyte Patch
WordPressの日本語版には標準で同梱されています。日本語文字の取り扱いに関する様々な処理を行ってくれます。ワードプレスインストール後にまず有効にしておくプラグインの一つです。
Search Regex
投稿記事や固定ページに含まれる文章の一括検索・置換が行えるプラグインです。複数の記事に含まれるリンクを一括で書き換えたいといったときに重宝します。

DMCA侵害申し立てとその後の順位変化について(体験談)

記事にするのが遅くなってしまったのですが、今回もSEOに関連する実体験についてです。

順位の安定しないサイト

じつは以前から、管理サイトの中にいまいちGoogleでの検索順位が安定しないものがありました。まだ記事自体が数十ページしかない状態なので、コンテンツ量がやや不足しているのかとは感じていましたが、それでもやや腑に落ちない点がありました。

たとえば記事タイトルの完全一致で検索しても10位以下のページがあったり、検索数が少ない複合キーワードでも100位以下だったりと、これまでの他サイト運営の体験からすると明らかに順位が低いページが散見されていました。

とくに昨年10月頃から、この(ペナルティとまでは呼べないものの)明らかに若干なにかに阻害されている感じが続いていました(なお先日記事にしたペナルティを受けたサイトとは別のサイトです)。

コピーサイトを発見

それが今年に入ってから、そのサイトの記事の幾つかが丸々コピーされているのを発見しました。リライトなどは一切なく、完全に記事全文をそのままコピー、さらに画像まで同じものを流用されていました。

普段であれば無視するところですが、どうやら別のサイトから比較的強い被リンクもついているようで、Googleで記事タイトルで検索するとコピーサイトの方が上に来てしまいます。しかも公開日時が10月になっており、どうやらサイトの順位が不安定になった時期と一致します。

DMCA侵害の申し立て

そこでGoogleに対してDMCA(デジタルミレニアム著作権法)侵害の申し立てを行うことにしました。(直接サイト運営者に連絡をとるという方法も考えたのですが、今回は連絡先の記載が見当たらなかったためGoogleへの申し立てという手段になりました)

なおこの具体的な手順については、下記の記事に分かりやすくまとめられており大変参考になりました。

・著作権違反の全パクリサイトにDMCA侵害申し立てしたら12時間で処理された – パシのSEOブログ

なお上記に書かれている以外にとった作業として、念のためにWeb魚拓にてコピーサイトの各記事を保存しておきました。もしも証拠が必要となったら、と考えてのことです。

処理とその後の経過

前出のパシさんの記事では12時間で処理されたとなっていますが、私の場合は処理が完了したとの通知が来るまで約一週間かかりました。このあたりはサイトや申請タイミングによって若干誤差があるのかもしれません。

申し立てと処理完了、そしてその後のある複合キーワードの順位変化を示したものが以下のグラフです。なおグラフは順位チェックツールGRCのものを用いています。

DMCA侵害申し立て前後の順位推移

一目で分かるとおり、処理が完了して数日のタイミングで大きく順位が回復しています。その後やや小さな変動はあるものの、体感的に納得できるあたりで順位は推移しています。上記は一例ですが、このほかの複合キーワードや単一キーワードも全体的に大きな順位上昇を見せました。

またDMCA侵害の処理が完了すると、検索時には該当ページは「デジタルミレニアム著作権法に基づき~」といったメッセージとともに(表示を希望しないかぎりは)非表示となります。

ただ、じつはこの段階でもコピーサイトのタグやカテゴリのアーカイブが上位に出てしまうことがありました。しかしこれについてはその後自分のサイトの更新を続けていくと、一ヶ月ほどでオリジナルサイトより下にくるようになりました。

まとめ

コピーサイトへの対処は慣れないと手間もかかる作業であり、一般的にはそこまで神経質になる必要はないと思います。

しかし自分のサイトよりも明らかに評価が高くなってしまいっている場合や、Googleのロボットがコピーとコピー元を混同していると見受けられるような場合には、著作権侵害の申し立てをすることで順位を回復できる可能性があります。

検索順位は複合的な要因が絡み合っているため、DMCA侵害の申し立てをしても必ず回復すると保証はできませんが、原因解決のための一手として検討してみてください。

なおそもそもコピーサイトが存在するかどうかをチェックするための手法としては、自分の記事タイトルや本文で検索してみるといった方法のほか、下記のようなツールを利用する方法があります。

・コピペチェックツール影武者