Screaming Frog SEO Spiderをタスクスケジューラで定期的に動かす

Screaming Frog SEO Spiderがタスクスケジューラに対応しましたので、早速試してみました。

■Windows

Windows 8の場合、「コントロールパネル」>「管理ツール」>「タスク スケジューラ」を開きます。


同画面右側の「基本タスクの作成」を押します。


タスク作成画面が出てきますので、まずは「全般」タブから


次に「トリガー」タブで「新規」を押します。


例えば毎週日曜日、0時に起動するタスクであればこんな感じで設定すれば良いでしょう。


問題がなければ「OK」を押します。
次に「操作」タブで「新規」を押します。


「プログラム / スクリプト」欄の「参照」ボタンからScreaming Frog SEOのexeファイルを指定します。32bit版OSであれば通常「C:\Program Files\Screaming Frog SEO Spider」にあります。
※以下の画像は64bitOS版です。


そして、「引数の追加」のところに

--crawl http://www.example.com/

のように、「--crawl」と指定したいURLを入れれば完成です。


ちゃんとスケジュールが出来たかどうかは、左メニュー「タスク スケジューラ ライブラリ」でチェックしてみてください。


■Windowsでデスクトップにショートカットを置く

引数を持ったタスクスケジューラが登録できるということは・・・デスクトップに直接ショートカットを置くことも可能だということです。
ショートカットを置けば、わざわざアプリケーションを起動してから特定のURLを入力したりする必要がなくなります。

では早速作成してみましょう。

デスクトップなどを右クリックして「ショートカット」を作成します。


まずはスケジュールを作る時と同様に「参照」ボタンを押して、Screaming Frog SEOのexeファイルを指定します。


その後に引数を指定します。


これで完成ですね。

■Mac OS X

Macのスケジュールの組み方は、Windowsユーザなので詳しくないのですが、オフィシャルの案内に寄ると

ファイル作成 : uk.co.screamingfrog.seo.spider.scheduler.plist in ~/Library/LaunchAgents/

コンテンツの内容はこのようなソースとなるようです。

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>uk.co.screamingfrog.seo.spider.scheduler</string>
<key>ProgramArguments</key>
<array>
<string>open</string>
<string>/Applications/Screaming Frog SEO Spider.app</string> <string>--args</string>
<string>--crawl</string>
<string>http://www.example.com/</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>2</integer>
</dict>
</dict>
</plist>


<ご参考>

【Google Analytics】公式Addonの元となった「Magic Script」のソースコードは持っておいて損はない

Google Spreadsheetで、Googleが公式に出しているAddon「Google Analytics」のパフォーマンスの良さやビジュアルの良さなんか、もう「最高」の一言に尽きるのですが、よく言われる唯一の欠点は時刻をトリガーにして定期的に自動で動かせないという部分ですよね。

Addon自体の評価を下げている要因がそこなのですが。



そこで、このAddonの元となったScript、「Google Analytics Report Automation (Magic Script)」というものがありまして、公式AddonはUpdateを繰り返して、かなり使い勝手がよくなっているのですが、以前のバージョンの「Google Analytics Report Automation (Magic Script)」でも、癖を把握しておけば使えないことはありません。

で、このScriptさえあればTime Drivenで発火出来るようになるという訳です。


ソースコードはこちら (閲覧できない場合はご指摘ください)


実際の使い方は「Google Analytics Report Automation (Magic Script)」を見て頂きたいのですが、ぱっと見、公式Addonの簡易版といった感じですよね。



デフォルトだとデータ取得をする度に、新規でシートが作成されたり設定項目の書き方も融通がきかないので、省略等は一切なく書いていく必要があります。

公式Addonを利用している方であれば、IFもレポートの感じも一緒なので迷うことは無いと思います。

この頃から「sheet-name」の項目も持っていますし、ホント優れていると思います。

【GTM】onclickとGTMのリンククリックリスナーの干渉(リンククリックリスナーが正常に動かない場合)

GTMのリンククリックリスナーはとても便利ですが、onclickが最初から仕込まれていて且つそのソースをいじることが出来ない場合だったり、似たようなリスナーが他に存在していたりすることでGTMのリンククリックリスナーが正常に動かない場合があります。

aタグにonClickが記述されている場合、aタグに書かれているonclickが先に発火しますが、その後GTM側のリンククリックリスナーが発動しないという状態になります。

一番簡単な解決方法は先に走るonClickのjavascriptに

return false;

または

event.preventDefault();

を記述することです。
この2つは意味合いが異なりますので、必要に応じて使ってください。こちらのブログによると、「return false;」の動きは
jQueryのイベント:
  デフォルト動作を抑止。
  イベントバブリングを中止する。

通常のDOMのイベント: 
  デフォルト動作を抑止。(但しブラウザのバージョンに依存)
  イベントバブリングの中止はしない。
となるようです。

また、リンククリックリスナーの「Check Validation」はOFFにしておく必要があります。



もう少し検証が必要かな?と個人的に感じていますが、現状はこのやり方で正常にonClickとGTMのlinkClick Listenerの両方が動いているようなので、様子を見ます。

【GAS】古いGmailを定期的にゴミ箱へ移動

以前からずっと動かしていたのですが、GASで定期的に古いメール、特に「update」カテゴリや「Promotions」カテゴリに入るメールをゴミ箱へ移すScriptを見直しました。

まだ無駄が多い感じがしますが、現在はこんな感じで30日以上前に受信した「update」カテゴリに入っているメールをどんどんゴミ箱へ移動させています。

var maxDate = new Date();
  maxDate = maxDate.setTime(maxDate.getTime() - (30 * 24 * 60 * 60 * 1000));
  var maxDateFormat = new Date(maxDate);
  var mDate = maxDateFormat.getMonth() + 1;
  if(mDate < 10){mDate = "0" + mDate};
  var dDate = maxDateFormat.getDate();
  if(dDate < 10){dDate = "0" + dDate};
  var maxDateText = maxDateFormat.getFullYear() + '/' + mDate + '/' + dDate;
  var threads = GmailApp.search('category:updates before:' + maxDateText);
  for (var i = 0; i < threads.length; i++) {
      threads[i].moveToTrash();
      Utilities.sleep(1000);
}

あとは定期的にScriptが動いてくれればOK。
sleepは入れなくても構わないと思いますが、以前頻繁に削除を走らせていた時に、「やり過ぎ」的なエラーメッセージが飛んできたからだったと思います(笑


まぁGmailなので削除する必要性も無いといえば無いのですが、気になる方は定期的に削除をしても良いと思います。

「GmailApp.search」の中にメール検索条件を入れているわけですが、例えば「label:read」を入れて既読メールだけを削除したり「has:attachment」を指定して、添付ファイルの付いているメールだけを削除しても良いですね。

インハウスでSEOを担当するからこそ利用したい「Screaming Frog SEO Spider」のすすめ

海外ではよく利用されていますが、国内ではツール名くらいしか紹介されない有料ツール「Screaming Frog SEO Spider」ですが、非常に有力なツールで個人的には愛用していますので、実際にどんな使い方をしているの?という点を中心に説明をしたいと思います。
※無料でも使えますが取得可能URL等に制限が入ります。

Screaming Frog SEO Spiderって何?

一言でいうと自分のPC内(ローカル環境)で動かす「クローラー」です。

Screaming Frog SEO Spider」で何が確認できるの?

主だった機能だけのご紹介になりますが、クローラーですので指定したURLからリンクを辿って、URLリストを取得していきます。



取得したURLリストから、HTTPステータス500系とか400系のリストなどが取得できます。



タイトル重複やタイトルの文字数が多い/少ないなどのリストが取得できたりします。



簡単なレポーティング機能もあります。


実際にどう活用しているの?

上で軽く触れた事で、大体予想が付くとは思いますが・・・

【活用事例1】canonical先/3xxリダイレクト先URLが間違っていないかチェック!

canonicalタグの設定をミスると、Indexから落ちる可能性があります。
canonicalの設定もザックリとツールでチェックしましょう。



3xx系のリダイレクトも一緒です。ちゃんとリストでチェックしましょう。


【活用事例2】タイトル重複・短いタイトル・短いdescriptionチェック

タイトル重複。ウェブマスターツールから引っ張るのも重要ですが、新規ページ群のリリース前のチェックなどでも利用したいところ。



ページのタイトルが短いとクリックされませんよね。重要なページのタイトルが短くなっていないか注意して見ましょう。



ディスクリプションも一緒ですよね。クリックされない一言の説明文が書かれてはいませんか?


【活用事例3】競合分析

今まで紹介してきたものは普通に競合分析としても使えるわけですが、一番よく使うのが「レポート」の「crawl overview」です。
どんな項目を比較しても良いのですが、例えばURIを比較してみたり、重複タイトルの比率を比較してみたり。


【活用事例4】リンク切れチェック

4xx系や5xx系のURLリストを出力してみて、リンク切れやおかしいリンクが無いかどうかをチェックしましょう。


【活用事例5】パラメータ付きのURLをチェック

たくさんパラメータが付くようなURLが重要なページになってはいませんか?
Indexされたいページなら正規化するなど、ちゃんと対策をしないとダメだと思いますが、ざっくりとでもチェックしてみましょう。


【活用事例6】クロールバジェットを意識したクローリング設定

サーチのDepth設定など、クロールバジェットを意識した設定でクローリングさせ、重要なURLのリストが取得できるかどうかなど、クローラーの設定を変更させながら検証してみましょう。




こんな感じで代わりのツールも色々ありますが、「Screaming Frog SEO Spider」も一つの選択肢として入れてみてはいかがでしょうか?

注意点

・JAVAを利用するアプリなので、メモリを本当に食います。そして食いすぎて停止します。
Screaming Frog SEO Spider」自身が利用するメモリを設定で拡張できます。ただ、それでも10万URL級は相当メモリを積んだマシンでも厳しいものがあります。
Spider自身の設定でリミットを掛けるべきだと思います。
※ちなみに10万URLだと6Gくらいは食います。



・アクセスは常識の範囲内でしましょう。攻撃とみなされるくらいアクセスをしたりしないように!

<ご参考>
Screaming Frog SEO Spiderとその使い方・活用法に関する記事はこちら

Google Analyticsのカスタムディメンションのスコープレベルに「商品」が追加

今週はGTMだけでなく、Analytics側もだいぶリリースが走っているようですので、注意が必要です。


まだヘルプは更新されておりませんが、カスタムディメンションのスコープに「商品」が追加されております。

拡張コマース機能の一貫のように噂されていますが、商品スコープがどのようなレベルで、どのように扱っていけばいいかはヘルプの更新待ちですね。

また、「アドバンスセグメント」にもコマース系のセグメントが沢山追加されています。
API側もかなり拡大していますので、利用する前に一度チェックしてみてください。

【GTM】発火するタグの優先度を設定できるようになりました

デバッグ画面が変わったのと同時にタグの「詳細設定」画面で「タグ配信の優先度」を設定できるようになりました。


一つのページで複数のタグを指定していた場合、データのロスが大きくなる可能性がありました。callbackなんかを使ってデータを取るというのも良いのですが、優先度設定は一つの解決手段ですね。

画像にある通りで
・優先度は正または負の整数で指定
・数字が大きいほど優先度が大きい
というものです。
負の指定も出来るのは、今後拡大させていくためには必要なのかもしれません。

【GTM】デバッグ画面でのタグの発火状況、発火タイミングと各取得データが細かく見れるようになりました

Google Tag Managerのデバッグ画面が新しくなり、
・どのタグが、そのページで発火しているか
・どのタグが、どのタイミングで発火しているか
・どのタイミングで、どのマクロに何の値が入ってきているか
・どのタイミングで、Data Layerに何の値が入ってきているか
などが一目で見れるようになりました。


Googleの「カード」デザインを意識しているのかは分かりませんが、各カードをクリックすると中身が詳細に見えます。


Google Tag Managerのスクリプトが読み込まれる前に、事前にウェブサイトのソースに「dataLayer」を仕込んでいた場合は、「Message」の欄にデータが表示されます。
※後から「dataLayer.push」でデータを送信する場合は、5番以降の番号に入ってくるようです。


その他、例えばイベント「gtm.js」のタイミング、つまりタグマネージャのjsが読み込まれたタイミングで、どのMacroに何の値が入ってきているかというのもひと目で見れます。


これはかなり嬉しい。
よりブラウザの読み込まれるタイミングと、そのデータを見ながらデバッグが出来ますね!