web-dev-qa-db-ja.com

ユーザープロファイルのURL設計

一部のサイトは、ルートディレクトリのユーザープロファイルから移動していることに気付きました。たとえば、YouTubeチャンネルのURLは、単に/channel/<id>ではなく/c/<username>および/<username>になりました。

ユーザープロファイル(またはYouTubeの場合はチャンネル)があるサイトの場合、どちらが優先されますか?

3
rtainc

ほとんどの場合、GoogleはURLの構造をあまり気にしません(それらが合理的に安定してクロール可能である限り、国をターゲットとすることを除きます)。代わりに、URL構造から何を望むかを考えてください。

  • 国をターゲットにする必要がありますか?サブドメインまたは高レベルのフォルダー、たとえばuk.domain.com/...、domain.com/uk/...を使用します(これはGoogleのガイドラインが適用される主な場所です)
  • コンテンツの種類ごとにアクセスを追跡または制御する必要がありますか?たとえば、/ users/...、/ blog/...、/ private/...、/ shop/shoes/...などのフォルダーが役立ちます(site:-queriesは、いくつかの洞察を与え、多くのツールが許可しますディレクトリを分離すると、ログファイルで簡単に見つけることができます)
  • ユーザーによるコンテンツの迅速な削除が必要ですか?/users/user1234/content123などのパスにもユーザーIDを入力します(削除ツールを使用すると、ディレクトリを削除できます)
  • referral-Idsのような一時的な識別子が必要ですか? /bluesuedeshoes.htm?ref=123など、簡単に認識して削除できるようにクエリ文字列に入力します(標準のkey=value形式を使用すると、ほとんどのツールで簡単に認識できます)。

とにかく、私は大規模なサイトの構造を盲目的にたどることはありません。彼らがすべてを詳細に計画していることを望んでいます。すべてのサイトは異なっており、大規模なサイトが物事を間違えている頻度に驚かれることでしょう:)。

ルートレベルで「詳細」識別子(ユーザー名、チャネル名、製品名など)を使用すると、特定の種類のコンテンツを認識(配信、追跡、ブロックなど)できなくなり、異なる種類の間で衝突が発生する可能性がありますコンテンツの。たとえば、/ chickenはユーザー "chicken"、チャネルは "chicken"、または製品カテゴリであり、これらが複数存在する場合はどうなりますか?サイトの運営をこれまで以上に難しくする必要はありません。

4
John Mueller

パスの先頭にユーザー名がある場合、ユーザー以外のページとの名前の衝突(および、カスタムテンプレートとフォームを許可するサイトの場合、フィッシングの可能性)を回避する必要があります。

例:

  • 予約済みのファイル名:ユーザーはユーザー名robots.txtfavicon.png.well-knownなどを選択できます。

  • 内部ページ:連絡先/ about/etc。ページとcontact/about/etcという名前のユーザー.

  • ユーザビリティ:ユーザーはURLにアクセスするまで、URLが何であるかを確認できなくなります。

    https://www.facebook.com/loogin はユーザープロファイルです
    https://www.facebook.com/login はユーザープロフィールではなく、Facebookのログインページです

    https://Twitter.com/StackOverflow/media は、「StackOverflow」という名前のユーザーの「メディア」ページです。
    https://Twitter.com/hashtag/media は「メディア」ハッシュタグであり、「ハッシュタグ」という名前のユーザーの「メディア」ページではありません

  • フィッシング(カスタムテンプレートとフォームを許可する場合):/loginがログインページの場合、「signin」という名前のユーザーは、ユーザーページ/signinにログインするように誘導できます。

ユーザー名のパスプレフィックス(たとえば、/users/<username>)がある場合、これらの問題は発生せず、ユーザーリストを表示するためのニース( browsable )URLを取得します:/users

このようなパスプレフィックスのその他の利点:

  • Robots.txtでユーザープロファイルのクロールを簡単にブロックできます。

    Disallow: /users
    

    そのような「名前空間」がない場合は、各ユーザー名をリストする必要があります。

  • ユーザーは外部検索エンジンを使用して、すべてのユーザープロフィールページを検索できます。 site:example.com/usersで。

3
unor