2

だから...これはあなたのサイトで内部リンクを使用する安全な方法ですか..これを行うことで、インデックスページで通常のphpコンテンツセクションを生成し、それをdiv要素に渡します。

主な質問:グーグルはまだこの方法を使用してページにインデックスを付けますか?常識はそうだと私に言います。しかし、もしそうなら、これを基本的な例としてここに再確認して残してください。のように。

例のみの人


サーバー側

if (isset($_REQUEST['page'])) {$pageID=$_REQUEST['page'];} else {$pageID="home";}
if (isset($_REQUEST['pageMode']) && $_REQUEST['pageMode']=="js") {
  require "content/".$pageID.".php";
  exit;
} // ELSE - REST OF WEBSITE WILL BE GENERATED USING THE page VARIABLE

リンク

<a class='btnMenu' href='?page=home'>Home Page</a>
<a class='btnMenu' href='?page=about'>About</a>
<a class='btnMenu' href='?page=Services'>Services</a>
<a class='btnMenu' href='?page=contact'>Contact</a>

Javascript

$(function() {
    $(".btnMenu").click(function(){return doNav(this);});
});

function doNav(objCaller) {
  var sPage = $(objCaller).attr("href").substring(6,255);
  $.get("index.php", { page: sPage, pageMode: 'js'}, function(data) {
    ("#siteContent").html(data).scrollTop(0);
  });
  return false;
}

スクリプトからコピーして貼り付けただけで、プロジェクトのプロトタイピング/ホワイトボードとして単純化するために大量のジャンクを削除したため、エラーが発生した場合はご容赦ください。そのため、現時点では少し厄介に見えます。

理由:主な理由は帯域幅と速度です。これにより、他のスクリプトを実行してサイト/アプリケーションを少し適切に制御できるようになり、コーディングによってロックダウンする必要があります。 -

さらなる例-PHPを一番上に挿入

<?php 
  // PHP CODE HERE
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="scripts.js"></script>
</head>
<body>
  <div class='siteBody'>
    <div class='siteHeader'>
        <?php
          foreach ($pageList as $key => $value) {
            if ($pageID == $key) {$btnClass="btnMenuSel";} else {$btnClass="btnMenu";}
              echo "<a class='$btnClass' href='?page=".$key."'>".$pageList[$key]."</a>";
          }
        ?>
      </div><div id="siteContent"  style='margin-top:10px;'>
        <?php require "content/".$pageID.".php"; ?>
      </div><div class='siteFooter'>
    </div>
  </div>
</body>
</html>
4

3 に答える 3

3

いいえ、これは検索エンジンに適していません。JavaScriptを使用してサーバーからコンテンツを取得し、ページに表示しています。検索エンジンはJavaScriptで生成されたコンテンツの処理で改善されていますが、それでもこれを処理することはできません(Googleのクロール可能なAjax標準に準拠しているが、サイトが先月、特にTwitterから離れている場合を除きます)。

したがって、これはSEOにとって悪いことです。さらに、思ったほど多くの帯域幅を節約できません。節約は最小限であり、帯域幅が非常に安いため、これは完全に不要です。実際、通常のアクション(ページの読み込み)を実行してサイトにアクセスできなくするために多くのお金を費やし、JavaScriptを使用してサイトを複雑にすると、帯域幅のコストを節約できます。

はい、これは検索エンジンにやさしく、プログレッシブエンハンスメントの良い例です。リンクは引き続きクロール可能であり、JavaScriptと同じコンテンツをロードするため、Google、およびJavaScriptが有効になっていないユーザーは、コンテンツを問題なく見つけることができます。JavaScriptを使用しているユーザーは、リンクをクリックしたときにページ全体が読み込まれるのを待つ必要がないため、ページの読み込みが高速になるという追加のメリットが得られます。

于 2012-06-24T20:47:47.823 に答える
0

SEOの影響が何であるかは不明です。Googleは現在いくつかのjavascriptを解釈します。したがって、Googleがこれらのリンクを引き続き読み取ることは可能ですが、保証はされません。通常、人々は「About」のようなページへのリンクを隠したいと思っています。したがって、Googleがこれらのリンクを読み取れない場合は、実際にSEOの利点が得られる可能性があります。つまり、より多くのページランクが気になるページに集中します。いくつかの大きなサイトは、この理由で実際にjavascriptを使用してそのようなページへのリンクを生成します。

ライブになったら、ウェブマスターツールのAbout usページへのリンクを見て、Googleがリンクを見つけたかどうかを確認できます。

于 2012-06-24T20:50:24.230 に答える
-1

アンカーは大丈夫だと思いますが、ページ全体ではなくメインコンテンツのみを出力するため、サーバーサイドスクリプトを改善する必要があります。

$ _SERVER ['HTTP_X_REQUESTED_WITH']をチェックすることで、ajax呼び出しと「通常の」リクエストを区別できます。これは、jqueryによって自動的に設定されるヘッダーです。

ajax呼び出しが行われた場合は、メインコンテンツを出力します。それ以外の場合は、doctype、htmlタグ、およびそれらの間にあるすべての楽しいものを出力します。そのため、JavaScriptを使用せずに、クローラーや他の訪問者も含め、誰もがコンテンツを取得できます。

詳細情報:http ://davidwalsh.name/detect-ajax

例:

<?php
    $pageID = isset($_POST['page'])
        ? $_POST['page']
        : "home";

    if ( !$_SERVER['HTTP_X_REQUESTED_WITH'] ) {
        require('content/components/header.php');
    }

    require "content/" . $pageID . ".php";

    if ( !$_SERVER['HTTP_X_REQUESTED_WITH'] ) {
        require('content/components/footer.php');
    }

?>

content / components / header.phpを使用:

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style.css" />
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript" src="scripts.js"></script>
    </head>
    <body>
        <div class='siteBody'>
            <div class='siteHeader'>
                <?php
                    foreach ($pageList as $key => $value) {
                        if ($pageID == $key) {$btnClass="btnMenuSel";} else {$btnClass="btnMenu";}
                        echo "<a class='$btnClass' href='?page=".$key."'>".$pageList[$key]."</a>";
                    }
                ?>
            </div>
        <div id="siteContent"  style='margin-top:10px;'>

およびcontent/components / footer.php:

        </div>
    <div class='siteFooter'></div>
    </div>
</body>
</html>
于 2012-06-24T20:59:34.393 に答える