2009-07-08 4 views
32

常に新しいページを生成する非常に動的なウェブサイトは、sitemapを使用する必要がありますか?もしそうなら、stackoverflow.comのようなサイトはどのようにサイトマップを再生成するのでしょうか?誰かが質問を追加するたびに常にサイトマップを再生成していた場合、貴重なサーバーリソースがなくなってしまうようです。設定された間隔(たとえば4時間ごと)で新しいサイトマップを生成しますか?どのように大規模で動的なウェブサイトがこの仕事をしているのかは非常に不思議です。高度にダイナミックなウェブサイト上のサイトマップ

+0

サイトマップは特に必要ですか?彼らはちょっと昔ながらです。いくつかのサイトはそれらをまったく提供しません。 –

+0

あなたが話しているサイトマップのタイプを指定できますか?様々な目的のために持っているサイトマップのいくつかの実装があります。たとえば、検索エンジンに使用されるXMLベースのサイトマップと、ユーザーがサイト上の特定のページを見つけるためのサイトマップがあります。 – MitMaro

+8

彼らはsitemap.xmlファイルについて話していますが、100,000以上のアイテムを持つサイト内のすべてのアイテムをリストしたユーザーがアクセス可能なサイトマップは、まったく無意味です。 – ceejayoz

答えて

35

Stackoverflow(およびすべてのスタックExchangeサイト)では、システムに投稿されたすべての質問へのリンクを含むsitemap.xmlファイルが作成されます。新しい質問が投稿されると、サイトマップファイルの最後に別の項目が追加されます。ファイルの最後に追加するのはリソースが集中しているわけではありませんが、ファイルはかなり大きいです。

これは、Googleのような検索エンジンが効果的にサイトをクロールできる唯一の方法です。ブログ記事でそれについて

ジェフアトウッド会談:The Importance of Sitemaps

これはGoogle's webmaster help page on sitemapsからである:あなたのサイトは動的なコンテンツを持っている

  • :場合

    サイトマップは特に便利です。

  • サイトには、 クロールプロセス中にGooglebotが簡単に検出できないページがあります。たとえば、豊富なAJAXまたはFlashを搭載した などのページがあります。
  • あなたのサイトは新規であり、リンクがほとんどありません。 (Googlebotが1ページから別の に 以下のリンクでウェブをクロールし、ので、あなたのサイトがうまくリンクされ でない場合 はそれを発見し、それが私たちのために難しいかもしれません。)
  • あなたのサイトは、コンテンツの大規模なアーカイブを持っていますよくリンクされていないページ 、または でリンクされていないページ。
+4

ユーザーが質問を削除するとどうなりますか?サイトマップ全体を再生成する時間はありますか? –

+4

あなたのサイトがその質問に対して404を返す限り、削除のために更新する必要はありません。 Googleは404を無視してインデックスから削除するので、害はありません。 – ceejayoz

+2

これはSOのサイトマップアイテムがlastmodフィールドを更新することを意味しないのでしょうか?検索エンジンは、どのように質問ページを再インデックスするのかを知っていますか? –

-1

サイトのより静的なページ用のサイトマップのみを作成します。たとえば、StackOverflowでは、サイトマップはFAQ、About、Questions、Tags、Usersなどのページのリンクを表示できますが、実際の質問やすべてのタグ、さまざまなユーザーへのリンクは表示されません。

+3

これはsitemap.xmlファイルの目的を見落としています。 – ceejayoz

+0

@MitMaro:あなたの意見に同意します(私の同様の投稿を参照)。なぜあなたがdownvoted得たか分からない。カウンターに+1してください。 –

+0

@ceejayoz:彼はsitemap.xmlファイルについて言及していませんでした。そして、たとえ彼がxmlサイトマップの目的を果たしたとしても、検索エンジンは高度に動的なページや外部リンクのないページにインデックスを付けることができます。サイトのメインセクション(たとえば、スタックオーバーフローに関する質問ページ)にサイトマップを提供することにより、検索エンジンのクローラは、そのページの動的コンテンツ(質問)を索引付けすることができ、したがって、サイトマップは、 。 – MitMaro

2

StackOverflowのようなものでも、一定量の静的編成があります。 FAQ、タグページ、質問ページ、ユーザーページ、バッジページなどがあります。非常にダイナミックなサイトでは、サイトマップにアプローチする最善の方法は、カテゴリのマップを持つことです。サイトマップの各ノードは、動的に生成されたデータのページ(質問ページのノード、ユーザーページのノードなど)を指すことができます。

もちろん、サイトマップは特定のサイトでは適切でない場合もあります。そこにはある程度の判断が必要です。

+1

私はあなたの投票にも反対しました。私は誰かが私たちと意見を異にすると思う... lol – MitMaro

+1

受け入れられた答えで判断すると、OPはあなたにも同意しない。 – ceejayoz

+1

@ceejayoz:ええ、明らかに、私はMitMaroと私の両方がOPが尋ねた質問に答えたと思います。彼らが望んでいた特異性を指定しなかったので、... –

12

質問が投稿されるたびにGoogleのサイトマップXMLを再生成する必要はありません。データベースから直接オンデマンドでXMLファイルを生成する(そして少しキャッシングする)方がずっと簡単です。

負荷を軽減するために、サイトマップを複数のサイトマップに分割することができます。日/月単位で分割すると、今日のサイトマップを頻繁に取得するようにGoogleに指示することができますが、6ヶ月前からサイトマップを一度だけ取得します。

+0

誰がGoogle sitemap.xmlファイルについて何か言ったのですか? –

+5

それは質問に暗示されています。 「大規模でダイナミックなウェブサイト」では、投稿されたすべての質問をユーザーがアクセス可能なサイトマップに追加することはありません。 – ceejayoz

+10

これは良い答えです。私はそれを受け入れているだろうが、ロバートは光沢のあるハイパーリンクと見積もりボックスでうまくフォーマットされています! –

4

ここで私の解決策を共有したいと思います。 この質問や他の多くの人が何をすべきかを決定するのに私は苦労しました。

私のサイトの構造。

静的ページ

  • ホーム(非常に動的な。30分間キャッシュされた)
  • アーティスト、アルバム、曲、プレイリストやアルバム(ページ区切り付き一覧)規約などと
  • 法律(静的ページ

) ...など

動的ページ

  • アーティスト、アルバム、曲、プレイリストやアルバムの詳細ページ

私のアプローチ。

sitemap.xml:このURLは、最初の項目が/sitemap-main.xmlである<sitemapindex />を生成します。 ArtistsAlbumsSongsなどの数を数え、1,000で割った値(各サイトマップに必要なURLの数。制限は50,000です)。私はこの数字を丸める。

したがって、たとえば1900曲= 1.9 = 2です。 が生成されます。インデックスにURL /sitemap-songs-0.xml/sitemap-songs-1.xmlを追加します。他のすべてのアイテムについてもこれを繰り返します。基本的に、私は改ページしています。

出力はキャッシュされずに戻されます。私はこれが常に新鮮であることを望む。


サイトマップ-main.xml:これは、すべての静的なページを示しています。静的なファイルを実際に使用することができます。ただしばらくそれを更新する必要があるだけです。


サイトマップ - 歌 - 0.xml、サイトマップ - アルバム - 0.xmlなど:私は、単純なスイッチを使用し

$app->get('/sitemap-:type-:page.xml', function ($type, $page) use ($app) {... 

SlimPhp 2で、このため、単一のルートを使用文を使用して関連ファイルを生成します。このページの場合、1,000アイテム、上記で指定した制限があります。ファイルを2週間キャッシュします。 それ以外の場合は、数時間だけキャッシュします。

これは他の誰かが独自のシステムを実装するのに役立つと思います。

0

非常に動的なサイトでは、毎日実行される私のサーバーにcronジョブを書きました。毎日私のバックエンドに電話をかけ、新しく生成されたすべてのコンテンツに応じて新しいサイトマップを生成し、XMLファイルの形式でサイトマップを返します。この新しいサイトマップは以前のものを上書きし、すべての変更に応じて私のウェブサイトを更新し続けます。新しく追加された動的コンテンツごとにサイトマップを変更することは、私にとっては良いアプローチではありません。

関連する問題