LoginSignup
620
586

More than 5 years have passed since last update.

javascriptを使ったSEO対策まとめ

Last updated at Posted at 2016-03-28

javascript使SEOGooglebotjavascript

javascript使SEO

 Hisory API使URL (pjax

DOM


htmlDOM

QiitaTOP
qiita.com-.jpg
Googlebotjavascriptclick

 Fetch as Google GoogleGooglebot

display:noneHTML



https://www.suzukikenichi.com/blog/content-in-javascript-wont-be-indexed-by-google-if-it-appears-only-when-clicked/

ajax


ajax使URL



(一)##!

(二)Google#!?escaped_fragment= 

(三)?escaped_fragmentURLHTML

(四)HTMLGoogleURL#!



http://googlewebmastercentral-ja.blogspot.jp/2015/10/deprecating-our-ajax-crawling-scheme.html


 沿HTML5  History API 使Google 


 CSS3IEIE10CSS3Google



(一)HistoryAPI

(二)Fetch as Google


2

javascript
ajax使URL

URLGoogle

ajaxHistoryAPI使URL

GooglebotGoogle

History API使


URL2

pushState
history.pushState(state, title, url)
  • state:javascriptオブジェクト、この後で紹介するpopState側でこの値を受取ることができます。
  • title:ページタイトルを指定するのかと思いきや、ここに値を書いても特に何もおこらず、、、将来的には使う可能性があるっぽい。
  • url:変更するページのURL

replaceState

history.replaceState(state, title, url)

pushState

2
pushStateURLreplaseStateURL


pushState使URLURL

 popstate 
$(window).on('popstate', function(e) { <ブラウザの戻る、進むで処理したい内容> }

というわけでQiitaAPIを使って簡単なサンプル作りました。

demo_qiita.gif

ちょっとわかりずらいですが、次へをクリックするたびにURLが書き換わっているのがわかると思います。

ソースは下記

<html>
  <head>
    <script src="https://code.jquery.com/jquery-2.2.2.min.js" integrity="sha256-36cp2Co+/62rEAAYHLmRCPIych47CvdM+uTBJwSzWjI=" crossorigin="anonymous"></script>
    <script src="./purl.js"></script>
    <script>
      var page = $.url().param('page')
      if(!page) {
        page = 1
      }
      $(document).ready(function() {
        $.ajax({
          type: "GET",
          url: "https://qiita.com/api/v2/items?page="+ page +"&per_page=20",
          dateType: "json",
          success: function(msg) {
            html = ""
            for(var i=0; i<msg.length; i++) {
              html = html + msg[i].title + "<br>"
            }
            $("#qiita").html(html)
          }
        });

        $("#next").on('click', function(e) {
          e.preventDefault
          page = parseInt(page) + 1;
          loadData(page)
         });

         //ブラウザ操作
         $(window).on('popstate', function(e) {
           if (!e.originalEvent.state) return
           //$.url()で今のURLが取れるはずだけど、ブラウザバッグだと
      //うまくとれない
           //location.pathnameだとURLが取れるのでこれを引数で渡す
           var url = $.url(location.pathname)
           var currentPage = url.param('page');
           if (currentPage == page) {
             return;
           }else{
             if(!currentPage) {
               page = 1
             }else{
               page = currentPage
             }
             loadData(page)
           }
         });

       });

       function loadData(page) {
         console.log(page)
         //url書き換え
         history.pushState(page, "Qiita" + page + "ページ目", "?page=" + page);
         $.ajax({
           type: "GET",
           url: "https://qiita.com/api/v2/items?page="+ page +"&per_page=20",
           dateType: "json",
           success: function(msg) {
             html = ""
             for(var i=0; i<msg.length; i++) {
               html = html + msg[i].title + "<br>"
             }
             $("#qiita").html(html)
            }
         });
       }
    </script>
  </head>
  <body>
    <div id="qiita"></div>
    <div><a id="next" href="javascript:;">次へ</a></div>
  </body>
</html>

purl.js


使purl.jsjavascript使URL便

HistoryAPI使



ferret
https://ferret-plus.com/

TOP


URLURLajax

スクリーンショット 2016-03-22 15.48.55.png ajax


twitter


demo.gif
tweetURL
URL

tweet11


URL


title

description

ogp

rel="next/prev"




ajax1

<head></head>




Fetch as Google Google


Search ConsoleWeb使Google



phocaseFetch as Google使
Googlebot

s_スクリーンショット 2016-03-24 19.52.55.png
SEO


http://wind-mill.co.jp/iwashiblog/2015/09/lazy-load-seo/
http://qiita.com/ryo_hisano/items/e8554777793551c105bd



SEObot

botGoogle

Googlebot
620
586
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

620
586