• 締切済み

ajaxコンテンツページのハッシュフラグメント

最近になってやっと、ajaxコンテンツページにハッシュフラグメントを付与する仕組みを知りました。 サイトによって下記のようにハッシュフラグメントの付け方が違うようなのですが、どういった意味があるのでしょうか? /#!/page_name /#/page_name #!page_name 「#!」がついているとクローラーに読み取ってもらえるのでSEOに有利ということだけ分かったのですが スラッシュで区切ったり区切らなかったりするのには意味があるのでしょうか。 「!」をつけていないページは、SEOは気にしてないけど通常のページのように振舞わせたいということなのでしょうか。

みんなの回答

回答No.1

単純に#を#!に変換しとけばクローリングされるというわけではありません。 いいだしっぺはGoogleなのですが、 クローラーが #!page_name を見つけると ?_escaped_fragment_=page_name に変換してサーバにリクエストするので、 サーバーが_escaped_fragment_の扱いに対応してなければ変更する意味がないです。 スラッシュがあるとIDとしては使えません。 クエリとしてサーバーへ送信されたりもしないので、 URLとして見た時よりそれっぽいくらいの違いしかないですね。 JavaScriptで #/foo/bar/hoge をバラしたい時に split('/') すれば ['#', 'foo', 'bar', 'hoge']となるので、スラッシュがある方が若干便利だったりします。

参考URL:
https://developers.google.com/webmasters/ajax-crawling/
nekome002
質問者

お礼

ご回答ありがとうございます。 「#!」をつけておくだけでクロール対応できるわけではないのですね。 サーバサイドでの処理が必要なんですね。間違った解釈をしていました。なるほど! 「/」がある場合はない場合と比べて違ったメリットがあるわけではなくて、 見た目がそれっぽいからという理由なんですね。 splitでバラせるのが若干便利ということですが、どういった場合に便利なのか想像がつきません(×u×;) ぐぐってみてもコレといった答えがみつからず… もしよろしければどういった状況だと便利なのかお教えいただけませんでしょうか。 追加質問で申し訳ないのですが、よろしければお願いします。

関連するQ&A

  • ページタイトルコンテンツとは何ですか?

    ホームページのMETA情報のところに、 通常のページのtitleとは別に、 <meta name="pagetitle" content="*******という記述があるホームページを見かけたのですが、 このタグにはどのような意味があるのでしょうか? また、通常のtitleとは別に、記述をした方がSEO対策上効果的なのでしょうか? ちなみに上の****の部分には、 キーワードのような単語が並んでいました。 是非、宜しくお願い致します。

  • AJAXとSEO。同期通信とPHP送信の違い

    「AJAX」「SEO」「同期通信」「PHPでPOST送信」について、幾つか分からないことがあるので教えてください ■質問1 ・AJAX通信すると、SEO的に不利なのでしょうか? 例えば、AJAXでCSVファイルを読み込む場合はどうなるでしょうか? もしかして、実装方法による? 下記例で、何か違いはあるでしょうか? ・例1 … 非同期。ページ読込後にCSV読込(そもそもこの実装は可能?) ・例2 … 非同期。ページ読込前にCSV読込 ・例3 … 同期。ページ読込後にCSV読込 ・例4 … 同期。ページ読込前にCSV読込 ■質問2 ・AJAX通信で検索ボタンを押したページ結果は、クローラーされることはあるのでしょうか? サーバからデータを取得しているから反映される? 非同期だったら、反映されない? 同期だったらされる? ■質問3 ・AJAX通信の同期処理の意味が分かりません(jQueryのasyncをfalseなど)。非同期通信がAJAXだと思うのですが、AJAX通信の同期処理というのは、何なのでしょうか? 例えば、「PHPでPOST送信」するのと、原理的には全く同じということになるのでしょうか?(PHPで実装するか、js実装するかの違いだけ?) 最終的に、SEOを重視する場合は(非同期の操作性を捨て)同期処理で実装した方が良い、ということになるのでしょうか?

    • ベストアンサー
    • AJAX
  • FlashコンテンツのSEOについて

    ホームページの作成に関して教えていただきたいことがあります。 AdobeのFlashを使ってホームページ作成を行っているのですが、現在は通常のHTML主体の枠組みの中に、一部Flashのコンテンツを組み込むかたちをとっています。 しかし、今後フルフラッシュで構成したコンテンツのWEBページも作っていこうと考えているのですが、ひとつ不安があります。 GoogleやYahoo!等のWEBクローラーは、Flashファイルの中に含まれている文字列も拾ってくれるのでしょうか? もし拾ってくれないとすれば、フルフラッシュのコンテンツを検索エンジンで上位にヒットさせる(素人に毛が生えた程度の知識しかない私でもできる)SEOはありますか? よろしくお願い致します。

  • ajaxを使ったページがSEOで不利にならない方法

    検索エンジンは、ajaxが使われたコンテンツを動的に取得できないためSEOで不利になってしまいます。その対策についてアドバイスをいただきたいです。 http://support.google.com/webmasters/bin/answer.py?hl=ja&answer=174992 では、ajaxが使われたページ限定でそのURLに#!を入れるか、<head>内に<meta name="fragment" content="!">を入れるだけで解決します、と書いてあります。 mein.htmlがあって、メインのコンテンツはcontents.phpにまとまっています。 contents.phpを検索エンジンによくみてもらいたいです。 urlに#!という文字を入れたくないので、後者の方を使おうと思っていますが、 mein.htmlの<head>に<meta name="fragment" content="!">を入れて、 contents.phpには入れない。↓のような感じでいいということですか? <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta name="fragment" content="!" />←「 /をつける」 <title></title> </head> <body> <p onclick="send()">コンテンツの取得</p> <div id="ajaxcontents"></div> <script type="text/javascript"> function send(){ xmlhttpreq = ~~~; xmlhttpreq.onreadystatechange = function (){ if (change.readyState == 4 && change.status == 200) { var con = xmlhttpreq.responseText; document.getElementById("ajaxcontents").innerHTML = con; } }; xmlhttpreq.open("GET", "contents.php?get=", true); xmlhttpreq.send(null); } </script> </body> </html>

    • ベストアンサー
    • AJAX
  • 重複コンテンツで困っています。

    広告や、他のぺージ紹介など、重複コンテンツと思われる部分をクローラーに見せないようにするためにスクロール時にinnerHTMLで挿入したいので下記の中に広告や、重複する説明の文言、 SNSのお願いの文言などを入れて、人にだけ見れるようにしようかと思っているのですが、これはクローキングに当たるのでしょうか? document.addEventListener('scroll', function() { }); あくまで、同じ説明になる部分だけをクローラーが見えないようにするだけなんですが、これでもポリシー違反でペナルティーを受けますか? 現在重複コンテンツで、ほとんど表記されないページがあって困っています、 なんとか重複コンテンツから抜け出す方法はないのでしょうか?

    • 締切済み
    • SEO
  • jqueryMobileがAjax?

    Ajaxという単語の意味がわからなくなりました… jqueryMobileの様々な解説をみているとページ切り替え時とかにAjaxによってとかいう表現が出てきますが、jqueryMobileは既にサーバーから取得したHTMLをjavascriptで表示切り替えしてるだけで、各ページの情報を適宜サーバーから取得しているというわけじゃないと思います。 Ajaxの定義はjavascriptを用いてページ遷移をすることなくサーバーと通信すること、と思っていたので、このjqueryMobileのAjaxという単語の使い方に違和感を覚えます。 jqueryMobileの解説でのAjaxって単語の使われ方は正しいんでしょうか? それともjqueryMobileは実際はクライアントサイドでの表示切り替えだけでなくサーバーとの通信を行ってるんでしょうか? 参考 http://dev.screw-axis.com/doc/jquery_mobile/components/pages_dialogs/page_links/

  • こんなAjax探しています

    どなたか もしご存知なら このようなAjaxのサンプルライブラリーをご教授ください。 下記同じ様に、Flashをリロードせず、1枚のHTML内に項目を入れておきたく、クリック時に表示されると言うものです。 (SEO的にもクリック時のインクルードは、避けたいと考えています。) 尚且つ、このように 気持ちよくスライドしてくれて、各ページサイズの(縦サイズ)が変更可能であれば言う事ないのですが(^^; 各機能の単品動きのAjaxサンプルは拝見しましたが、このように混合すると初心者には厳しい状況です もし、ご存知であれば教えていただけますと幸いです。よろしくお願いいたします ■参考サイト http://mb.softbank.jp/mb/product/3G/830sh/

  • 【PHP】ページの切り替えについて

    HTML で frameset を使用し、例えば、各frame で name="page1" name="page2" name="page3"などと名前をつけて page2 の名前のページを abc.php のページにリンクで変更する場合、page2 のページ内のソースで <a href="abc.php" target="page2">ページ4</a> とし、イメージ的には下記の(1)図の様な感じで、target で指定した frame のページの所だけ abc.php のページに切り替えることができますが (1)図 ┌─────┐    ┌─────┐ │  page1   │    │  page1  │ ├─────┤    ├─────┤ │  page2   │ →  │ abc.php  │ ├─────┤    ├─────┤ │  page3   │    │  page3  │ └─────┘    └─────┘ この仕組みを PHP で、例えば、xyz.php のページで <?php require("page1.php");?> <hr> <?php require("page2.php");?> <hr> <?php require("page3.php");?> require を使用し各ページを読み込み(1)図の様な感じのフレーム式にした場合、page2.php のページからリンクで、page2.php のページだけを abc.php のページに切り替える場合どうしたら良いのでしょうか? イメージ的には下記の(2)図の様な感じです。 (2)図 ┌─────┐    ┌─────┐ │ page1.php │    │ page1.php │ ├─────┤    ├─────┤ │ page2.php │ →  │ abc.php │ ├─────┤    ├─────┤ │ page3.php │    │ page3.php │ └─────┘    └─────┘ ※ 図の線の歪みは気にしないで下さい。すみません。

    • 締切済み
    • PHP
  • 『ハッシュ値のみ送信』…?

    VirusBusterCloudの解説が提供されている某ページ(http://ascii.jp/elem/000/000/552/552139/index-2.html)を閲覧しますと、次の記述が見付かります。 >それら機能でもウイルスかどうかの判定ができないファイルを見つけた場合は、クラウド上にあるデータベースを参照します。クラウドにクエリをかける際にはハッシュ値のみ送信し、ネットワークトラフィックを圧迫しない工夫もしています。また、多く出回っているウイルスのシグネチャはパソコン側に保存する仕組みも、クラウド側へのクリエを減らすことに役立っています。 でも、此の文章の中で『ハッシュ値のみ送信』という旨の箇所の意味が分からないものですから、仕組みを教えて頂けませんでしょうか? 非常に御恥ずかしいことなのですが、宜しく御願い申し上げます。

  • ajaxを使用したページ移動における検索エンジン対策

    『 2ページ目に移動 → 』 等のリンクをajaxで処理してしまうと、検索エンジンはjascriptを解析しないので、検索エンジンに2ページ目が反映されませんよね。 回避策の基本的な概念としては、以下のソースでよろしいのでしょうか。 <script type="text/javascript"><!-- document.write("<a href='javascript:ajax_link(2);return false'>2ページ目に移動 →</a>"); --></script> <noscript> <a href="http://sample.php?page=2">2ページ目に移動 →</a> </noscript> ※1 検索エンジンに2ページ目が反映されることを目的としています。 ※2 ajaxリンク・通常リンク共に、移動後のページ表示処理は完成しているものとします。 ※3 ajax_linkのjavascriptは完成しているものとします。 大丈夫だとは思うのですが、心配なので質問させていただきました。 また、他の解決策を知っている方は教えてほしいです。 よろしくお願いします。

専門家に質問してみよう