ラベル SEO の投稿を表示しています。 すべての投稿を表示
ラベル SEO の投稿を表示しています。 すべての投稿を表示

2016年1月27日水曜日

GoogleのAMP(Accelerated Mobile Pages)ってすごいの?

AMP(Accelerated Mobile Pages)とは・・・


Z-MENです。
どうも。

昨年夏頃?からモバイルやSEO界隈でAMPの話題がすごく盛り上がっていて、
モバイル担当としてもやはり気になるところなので一度情報を整理してみたいと思います。

自分の勉強がてらではありますが、どなたかの参考になれば幸いです。
AMPとは、からAMPの実装・確認までまとめてみます。

AMP(Accelerated Mobile Pages)とは?

AMPはAccelerated Mobile Pagesの略称です。
GoogleとTwitterが共同で立ち上げたAMPプロジェクトのオープンソースらしいです。
簡単に言うとAMPに対応した記事コンテンツをGoogle側が勝手に読み取り、キャッシュして、
超高速に優先表示してくれます。モバイルの場合のみ出てくるようですが、カルーセル形式でずらっと並べてくれます。

去年末くらいからモバイルで検索した際に、一部記事がカルーセルで表示されるようになりましたが、あんな感じのイメージで、表示が超高速になる、という感じです。

【g.co/ampdemo】でAMPをデモ体験

Googleさん、ちゃんとデモも用意してくれていて、Googleの検索窓に『gco/ampdemo』といれると
AMPのデモ表示モードに切り替わります。ほんと爆速です。


 AMPの実装について

AMPの実装方法を見てみましょう。
GitHubにもあるんですが、全部英語でオエッとなるかたは参考になれば。

AMPは専用のjsライブラリとbilerplate(いけてるテンプレみたいの)で動くとのこと。
超シンプルに書くとこんな感じになりますと。

  
    Hello, AMPs
    
    
    
    
    
  
  
    

Welcome to the mobile web

 

マークアップ上の注意点としては、

    • <html>タグを<html amp>と書く?
    • <head> 内に<style>body {opacity: 0}</style><noscript><style>body {opacity: 1}</style></noscript>をいれる
    • <head>閉じ直前にを<script async src="https://cdn.ampproject.org/v0.js"></script>をいれる
    • 画像を入れるときはこんな感じ<amp-img src="welcome.jpg" alt="Welcome" height="400" width="800"></amp-img>
    とかとか、基本はこんな感じなのですが、普通にHTMLでページ作ればOKというわけでもなさそうです。
    公式のGetStartにいくつか注意事項があるので貼っておきます。
    AMPプロジェクト公式
    AMP GitHub

    日本語版の導入ガイドも発表されたようです。
    AMP日本語版導入ガイド

     AMPの条件・制約 

    AMPには、爆速を得られる代わりにいくつか制約があります。
    この制約がやや影響が大きく、導入できない方も多いかもしれません。

    1. AMPのランタイムはAMPのCDNから固定のURLで配信
    2. Javascriptが使えない(JSON-LDのみ)
    3. 画像・動画は大きさの固定指定が必要
    4. 広告はiframe経由で表示
    5. フォーマットを遵守
    6.  link要素はrel:canonical以外禁止
    7. ほかimgとかformとかinputタグも使えないかも
    とのこと。これ特に②がでかい、トラッキングができない・・・。
    『AMP実装したから効果が楽しみだぜー!』と思っても効果の程がわからない・・・
    そしてどうもレスポンシブにもうまく対応してない模様。。。厳密にはレスポンシブの実装方法による、ということででしょうか。ちゃんとCSSとかでdevicewidthで判別してればいいんでしょうが、jsでUserAgentみて~とかやってるとアウトなんでしょうね。
    レスポンシブを推奨しておきながらレスポンシブでは使えないかもってどうなのよ。
    そしてとどめの⑥⑦・・・まじか。
    とにかく新しいものやっとけ!と飛びつかずにGoogleが修正やら本腰入れた公表をするまでは
    いったんステイが間違いないかも、が現時点でのわたしの見解です。


    2016.02.03追記
     広告とGAについては対応されることが発表されたようですね。
     まずは最低限の機能は揃えてくれた、というかんじでしょうか。他のアクセス解析が
     使えないのは相変わらず痛いんですが・・・。
    AMPが広告とGoogleアナリティクスをサポート開始

     AMPの確認方法

    先日SearchConsoleでAMPが確認できるようになりました、とアナウンスがありました。
    とりあえず実装してみた!というかたはいてみましょう。
    公開しなきゃわからんよ、ってことね・・・。
    Googleウェブマスターブログ:Search Console における AMP エラー レポートのプレビュー 

     終わりに

    GoogleのAMPの説明を直接聞いたり様々な記事に目を通したりしてきましたが、所感として、モバイルフレンドリーの基準として表示スピードがいよいよ本格導入されるか?な話もあり、AMPを通してモバイルでの表示スピードに対するGoogleの本気度みたいなものは感じました。





    2015年12月28日月曜日

    ページネーションに、並び替えや絞り込みがあった場合を調べてみた②

    こんにちは山田です。
    年末ですね。今年も一年の締めになりました。

    年神様を迎えられるように、身辺を整理しましょう。
    (山田家では、そもそも鏡餅は幾年も飾っていませんが気持ちだけ)

    さて毎度のことながら、グーグルのリファレンスを読んでおり
    解読が増えた項目がありました。
     ↓↓↓
    コンテンツを指定する
     https://support.google.com/webmasters/answer/1663744?hl=ja 

    ①canonicalとページネーションは併用できる、そしてページのコンテンツを変更しないパラメータ(たとえばセッション ID)が含まれている場合、ページネーションに記述する

    >>rel="next"rel="prev"  は、rel="canonical" と直接関係する概念です。
    >>両方を一緒に宣言することができます。
    >>たとえば、http://www.example.com /article?story=abc&page=2&sessionid=123 というページには、以下を含めることができます

    (例)
    <link rel="canonical" href="http://www.example.com/article?story=abc&page=2"/>
    <link rel="prev" href="http://www.example.com/article?story=abc&page=1&sessionid=123" /> <link rel="next" href="http://www.example.com/article?story=abc&page=3&sessionid=123" />


     ②コンテンツが変わる場合は?
    絞り込みや並び替えの場合ですが、こちらはやはり記述が見当たりません。

    SEOのベストプラクシス
    https://blog.core-j.co.jp/seo-for-pagination
    >>prev/nextで各ページの関連性を指定する際、そのURLを正規化する事はできません。
    >>たとえGoogleBotがアクセスしたページ送りのURL にPHPSESSIONなど不要なパラメーターが付与さていても、prev/nextではそのパラメーターを引き継ぐ必要があります。
    >>この際、重複イン デックス登録を排除する為に、各ページの正規化されたURLをCanonicalで指定します。

    ここの記事を参考にさせてもらうと、
    ・カノニカルで、URLを正規化することができる
    ・ページネーションでは、ランディングしたページのパラメータを引き継ぐ必要がある
    ということでしょうか?

    公式リファレンスのこの記述の部分をまた探してみようと思います。

    2015年11月19日木曜日

    404エラーページのSEO効果

    404エラーページのSEO効果

    こんにちは山田です。

    404ってネットサーフィンしたことがある人ならだれでもしっている
    メジャーなエラーですよね。

    このエラーの発生要因とすれば
    • 人為的なURLの入力ミス
    • ページの削除・移動
    が考えられますね。

    ということで、SEOの観点からすると404エラーはどうなんだろうと思い調べてみました。

    リンクをWebページにペタペタ張っていくと
    リンク先がないファイルに行き当たることがあります。
    クローラーはよくやっていそうですね。

    もし、404エラーページ到着した場合
    何もリンクがなかった場合
     :そこで終わり
    有益なコンテンツへのリンクがあった場合
     :クローラーはそのリンクを辿ってその後も多くのページを回遊しようとしてくれます。
      

    404エラーページにおけるSEO効果としては上記のような対策になりえます。

    有益な 404 ページを作成する


    SEO効果を最大化させる404エラーの対処法

     有益な404ページのデザイン設計と実例まとめ 
      ↑404ページがゲームになっている実例もあって面白いです。

    2015年11月18日水曜日

    301リダイレクトとは

    301リダイレクトとは


    こんにちは山田です。


    写真は明るければきれいに見えるなと思う今日この頃です。
    うまく話をつなげられないので悔しい限りですが本題に入ります。

    ■そもそもリダイレクトとは
    指定したWebページから、自動的にほかのWebページに転送される機能です。
    おもにURLが変わったときに、新しいURLへ誘導するときに使われます。

    ■種類としては
    301リダイレクト Webサーバーが別のサイトへ転送処理を行う 
    302リダイレクト クライアントPCが転送処理を行う
    があります。
    サーバでやるのかクライアントでやるのかの違いです。

    ■SEO的には?
    Geogleからすると301リダイレクトを推奨しているようです。
    https://support.google.com/webmasters/answer/93633?hl=ja

    設定方法についてはまた今度

    2015年11月17日火曜日

    カノニカルタグによくある間違い

    こんにちは山田です。

    カノニカルタグによくある間違いです。

    ×分割したページは1ページ目にカノニカルを向ける
                ↓
    ○view allページまたはrel=“next”とrel=“prev”を使う


    実は1ページ目にカノニカルを集めるのは推奨されておりません。
    そういった場合はページネーション(ページ送り)をつけてあげましょう。
    例)3ページある場合

    <link rel="canonical" href="http://www.example.com/article?page=1" />
    <link rel="next" href="http://www.example.com/article?/page=2" />

    <link rel="prev" href="http://www.example.com/article/?page=1" />
    <link rel="canonical" href="http://www.example.com/article?page=2" />
    <link rel="next" href="http://www.example.com/article?/page=3" />

    <link rel="prev" href="http://www.example.com/article/?page=2" />
    <link rel="canonical" href="http://www.example.com/article?page=3" />

    最初はprevは不要で、最後はnextが不要になる点がご注意ください。

    2015年11月4日水曜日

    canonicalとは?

    こんにちわ山田です。

    一段と肌寒くなってきましたね。
    衣替えをして、冬に備えたいと思います。

    さて、本日ですが、
    canonicalタグについて調べてみました。

    ■canonicalとは?
    一言でまとめると。異なるURLを一つのものとして認識させるタグ。URLの正規化の設定です。

    もし、この設定を入れていないと
    たとえば
    wwwあり、wwwなしでアクセスのあったページ
    index.htmlあり、なしのページ

    がそれぞれ別のwebページとしてと認識され
    重複コンテンツとして判断されてしまいます。

    ■canonicalタグはどうやっていれるの?
    <link rel="canonical" href="http://○○.com/"/>

    実は入れる方法は簡単で、上のURLを該当のページにすべて入れるだけなのです。
    もし、wwwありのindexなしに統一したい場合は
    <link rel="canonical" href="http://www.example.com/"/>
    とすればOKです。

    サイトTOPは簡単そうですが、各ディレクトリも同様の設定を入れなくてはいけないので、
    動的ページの場合は少し大変そうですね。

    2015年10月27日火曜日

    robots.txtの書き方



    こんにちは山田です。
    肌寒くなってまいりましたね。10月も、もう終わりです。
    秋の味覚の栗を探したい気持ちを抑えつつ、SEO対策の話です。

    今回は、クロール最適化の方法の一つとして、robots.txtについてお話しします。
    まず、検索エンジンのロボットが、サイトの中で最初にアクセスするファイルがrobots.txtになります。

    もし、テストページなどをアップロードしてクローラーにインデックスされたくない場合は
    robots.txtで拒否して、インデックスしてお欲しいページに誘導してあげましょう。

    さて、以下に書き方についてまとめてみました。ご参考になればと思います。


    robots.txtの書き方

    ■ファイル名
    robots.txt

    ■ファイルの置き場所
    ドメインのルートドメイン

    ■サイト内すべてのロボットを拒否したい場合
    User-agent:* 
    Disallow:/

    ■特定のロボット+特定のディレクトリやページ
    User-agent: Googlebot ←グーグル
    Disallow: /test/    ←拒否したい場合
    Allow: /test/act    ←testディレクトリは拒否するが、actページは受け入れる場合
    Allow: /test/act.html ←testディレクトリは拒否するが、actページは受け入れる場合

    ser-agent: bingbot  ←Being(複数ロボットの場合は改行を入れて。拒否ページを記述する)
    Disallow: /test/    

    ■ついでにsitemap.xml
    ここに記述しておくとSitemapを読むようになってくれるので記載しておいたほうが良いです。
    書き方は↓

    Sitemap: http://www.test.com/sitmap.xml
      

    2015年10月16日金曜日

    jquery.lazyload.jsを使ってみた(画像の遅延読み込み)

    こんにちは開発者のKです。

    スマートフォンでWebページを閲覧する機会が増えた昨今、比較的貧弱な3G回線でもスムーズに閲覧できるように
    サーバへのリクエスト数やダウンロードするリソースの容量はなるべく抑えたいですよね。

    通常ページ容量の大半を占めるのは画像だと思いますので、その一つの解決策として画像の遅延読み込みを実装したjqueryのプラグイン「jquery.lazyload.js」を使ってみましたので所感を述べたいと思います。

    遅延読み込みについて

    通常ブラウザはHTMLを1行目から順に解析していき、imgタグやcssのbackgroudで指定された画像を発見した際、即時画像のダウンロードを開始します。
    画像の遅延読み込みとは、この読み込みタイミングを遅延させ、ページを一度表示し終わった後に非同期でダウンロードしようというものです。
    ブラウザの表示領域は限られていますから、表示領域の外にある画像は、あとから読み込んでも影響は少ないよね、という考え方です。
    これにより、最初にページ読み込みが完了までのページ容量を削減し、表示速度の高速化が期待できます。


    使い方

    簡単な使い方は以下の通りです。
    1. jquery本体とlazyloadを読み込みます。
    2. 遅延読み込みさせたいimgタグにlazyクラスを付与します。このクラス名は任意に変更可能です。srcには仮で表示させる画像を指定しておき、data-originalに本来表示させる画像のURLを指定します。
    3. step2で付与したlazyクラスを持つ要素に対して、lazyloadを実行します。その際、様々なオプションを渡すことができます。
    
    
    
    
    
    
    
    
    
    

    lazyloadのオプション

    ソースを見ると、lazyloadには様々なオプションがありますが、公式ドキュメントなどでもあまり触れられていないので、紹介したいと思います。

    threshold

    thresholdで指定したピクセル数より下にある画像を読み込み対象とすることができます。
    デフォルト値は0なので、描画領域に入った際に読み込み開始しますが、例えばスマートフォンで縦にスクロールしていくリストページを考えた時、640としておけば次の1スクロール分も事前に読み込んでおくことができます。

    failure_limit

    一度読み込み対象となったが、何らかの理由により読み込み完了していない画像を、何回まで再読み込みを試みるかを指定します。
    コードを読んだだけで実際に試していないので、間違っていたらすみません。

    event

    読み込み対象を検知するイベントを指定します。デフォルトはscrollなので、ページスクロールの度に読み込み対象を再走査します。
    ここにはカスタムイベントを指定することも可能で、例えばスワイプによるカルーセルUIを実装したプラグインと組み合わせて、スワイプの度に再走査をかけることも可能です。
    ※jqueryカスタムイベントの発火はtrigger('event_name')で行えます。

    effect

    遅延読み込み後に画像を表示する際の効果を指定します。デフォルトのshowはただ表示するだけですが、
    fadeInとすると、アニメーションでリッチに表示することができます。

    container

    遅延読み込みを行う範囲を指定します。デフォルトはwindowオブジェクトなので、ページ全体となります。
    特定のdivタグ内に限定したい場合などに使えると思います。

    data-attribute

    imgタグのdata属性の名前を変更できます。デフォルトはサンプルの通りdata-originalですが、他ライブラリとの名前の衝突などで変更したい場合に役立ちます。

    skip_invisible

    trueを指定すると、対象の画像が可視状態でない場合(display: noneなど)は読み込みがスキップされます。

    appear

    対象の画像が描画領域に入った際に(threshold含む)実行されるコールバックメソッドを登録できます。
    第一引数には遅延読み込み前の要素数、第二引数にはオプション(lazyloadで渡したものとデフォルト値がマージされたもの)が渡されます。
    一覧ページにおいて、画像以外にもtwitter, Facebookボタンの様な通信を要するウィジェットが実装されているケースがあるかと思います。
    そんな時にページ表示時にまとめて初期化するのではなく、個別に初期化処理を走らせれば、より初回表示時のコストを削減できますね。
    イメージ:
    $('img.lazy').lazyload({
        appear: function (left, settings) {
            // ツイートボタンも遅延読み込み
            (typeof twttr !== 'undefined') && twttr.widgets.load();
        }
    });
    

    load

    appearと似ており、対象の画像が読み込み完了した際に実行されるコールバックメソッドを登録できます。

    placeholder

    画像が遅延読み込みされるまでに表示する仮画像を指定します。
    デフォルトではグレーの画像となっていますが、任意の画像に差し替えることができます。
    元のimgタグのsrcに指定しても同じ挙動となります。


    遅延読み込みはSEO的に良くない?

    こんな記事がありました。
    最近ではGoogleのクローラもJavascriptを実行できるようですが、遅延読み込みのトリガーの実装方法によっては、クローラに画像が認識してもらえないケースがあるとのことです。
    ユーザの入力を起点(スクロール等)とする場合、クローラは再現できないようですね。

    実際にFetch as Googleしてみて何かわかったらまた記事にしたいと思います。


    2015年9月9日水曜日

    クローラビリティとショッピングモール

    岡田です。初めての投稿です。 
    さぼってましたが、個人的にSEO関連でメモっておきたいな~と思ったものをまとめていきたいと思います。

     ■クローラー 
    今回のタイトルにもしている「クローラー」。検索エンジンがWEB上にあるファイルを集めるためのプログラムです。 

    クローラーさんがサイトに訪問することによって、そのサイトの内容や画像が検索エンジンに蓄積されて、検索結果に表示されるということですね。

     大きなショッピングモールを歩きながらウィンドウショッピングをしているようなイメージです。
    「2階の西側はティーン向けの洋服屋さんがあるな」とか「3階には映画館があるな」「フードコートは地下か」とか、そんなことを考えながらクローラーさんはウロウロしているのでしょう。

     ■クローラビリティ

     ただ、クローラーさんもウロウロしながらすべてのお店をくまなく見ることはさすがにできないようで、すこしでも気づいてもらえるようにする工夫が、最近はやっている「SEO対策」というわけですね。

     クローラーの巡回しやすさを「クローラビリティ」といい、たくさんの情報があるサイトほど、クローラビリティは重要な要素になるようです。 

    先ほどのショッピングモールの例えで言えば、、「2階東側に新店舗OPEN!」という看板を関連する店舗に立てるとか、そんな感じでしょうか、、あんまりうまくないな。


     そういえば、先日初めて亀有にある某ショッピングモールに行ったのですが、ながーい通路にはたくさんベンチやソファがあって、たくさんの家族連れが休憩できるようになっていました。 
    さらに驚いたのは、そのベンチの一部がマッサージチェアになっていて、「5分100円」で足と背中をマッサージしてもらえるんです。 
    荷物持ちと子供の世話でくたくたなお父さん方にもウケそうですし、外出が億劫になりがちな高齢者の方にもお買い物を楽しんでもらえるきっかけになりそうだなと思いました。


     そんなわけで次回から、検索ロボットのクローラビリティに関するお話とちょっと日常で気になったこととかをまとめていきます。