web-dev-qa-db-ja.com

Googleに90,000以上のユーザープロファイルを作成する

このスキーマでホストされている大量のユーザープロファイルhttps://example.com/stats.php?player=name(最も美しいURLではありませんが、.htaccessはサイトの速度を大幅に低下させ、Apache2.confを理解していません)。とにかく、90,000のアカウントすべてをsitemap.xmlに入力せずに、これらのページすべてを動的にインデックス付けできるようにするにはどうすればよいですか。

7
Dalton Edwards

サイトマップは、Webページのように動的にすることができます。 PHPスクリプトを使用して、データベースからそれらの名前を取得し、それぞれのXMLをエコーアウトするループを作成します。また、XMLに適切なコンテンツタイプを必ず出力してください。それでおしまい。

以下のコードは、動的なXMLサイトマップを生成するための基本的なスクリプトです。これは、あなた、または動的なサイトマップを作成しようとしている人を正しい方向に向けることを意図した例にすぎません。ここでは、より良いエラーチェックと処理が必要です。

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
$query = "SELECT name FROM users";
if ($result = mysqli_query($link, $query)) {
    echo header("Content-type: text/xml");
?>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php
    $date = date('Y-m-d');
    while ($row = mysqli_fetch_assoc($result)) {
?>
     <url>
      <loc>https://domain.com/stats.php?player=<?php echo $row['name']; ?></loc>
      <lastmod><?php echo $date; ?></lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
<?php       
    }
    mysqli_free_result($result);
?>
</urlset> 
<?php   
}
mysqli_close($link);
?>

1つのサイトマップに含まれるレコードは50,000のみであるため、このスクリプトには制限があります。ただし、 複数のサイトマップ を処理するように変更できる必要があります。これにより、50,000の制限を超えて成長できます。

12
John Conde

サイトマップは、notでページをインデックスに登録するのに役立ちます。 サイトマップパラドックス をご覧ください。

ページのインデックスを取得するには:

  1. 他のページから、またはできれば複数の他のページから各ページにリンクする必要があります。
  2. Googleがページを重複として表示しないように、各プロファイルに十分な一意のコンテンツを含めます。
  3. Google検索からページにアクセスするすべてのユーザーに適切なランディングページエクスペリエンスを提供します。 Googleがページのインデックスを作成した後、誰もそのページをクリックしないか、クリックするたびに別の結果をクリックすると、ランキングが低下するか、インデックスからすぐに外れます。

一般に、ユーザープロフィールページは、Googleの検索インデックスに含めるのにふさわしい候補ページではありません。彼らは通常、多くのコンテンツを持っていないし、良いランディングページでもありません。

3