0

私はsymfony2でルーティングシステムを介してかなりのURLを取得するのは非常に簡単であることを知っています、そして私はそれが大好きです。しかし、ルートパラメータがスラッグのみに基づいている場合、スラッグで見つける必要があります。

$em->getRepository('Bundle:Entity')->findOneBySlug($slug);

私はstackoverflowhttp://mysite.com/articles/234/the-title ように両方のパラメーターを組み合わせることを考えています。SEOの場合にのみスラッグパラメータを維持することは、エンティティID(234)を使用して直接提案および検索します。

$em->getRepository('Bundle:Entity')->find($id);

この戦略を使用することの賛否両論は何ですか。私は正しい方法ですか?

4

3 に答える 3

1

純粋なSEOの観点からは、より多くのクリックを引き付ける傾向があり、共有しやすいため、URLを短くする必要があります。ただし、SEOのみに対応することは、私見では間違いです。

文字列に一意の識別子を追加することは賢明なことであり、検索と保守が容易になります。「SEO効果」を最大化するために、URL文字列の最後に一意の識別子を付けることをお勧めします。

URLに含まれるキーワードはランキングシグナルである可能性がありますが、URLに含まれるキーワードがユーザーのクエリと一致する場合、実際にはCTRが上昇します。その場合、URLのキーワードは検索結果ページ(SERP)で太字になります。URLの最後にIDを配置することで、スラッグ内のキーワードがユーザーに表示される可能性が高くなります。つまり、太字になる可能性が高くなり、CTRが向上する可能性があります。

これが私が提案することです:

http://example.com/articles/the-title-234

于 2012-07-27T05:52:25.860 に答える
1

この方法で一意のスラッグについて心配する必要がないため、私はあなたが提案したように、一意の識別子とスラッグの両方を使用します。

ただし、スラッグが有効かどうかを確認する必要があります。したがって、次のようなURLは使用しないでください:/ articles / {id} / {unchecked-slug}、使用すると、無制限の数の異なる/悪意のあるURL、つまり/ articles / 123/the-で同じ記事に到達できるためです。正しいタイトルと/artcle/ 123/some-dirty-words。

だから私はこのようなものを使用することをお勧めします:

$em->getRepository('Bundle:Entity')->findOneBy(array('slug' => $slug, 'id' => $id);

私はSEOの専門家ではありませんが、検索の一部となる可能性のある有用な単語が含まれている限り、短いURLはそれほど重要ではないと思います。

于 2012-07-27T07:47:32.830 に答える
0

これまで誰も提案していないので、WordPressの機能を紹介します。提供されているものと同一のパーマリンクがデータベースにすでに存在する場合は、最後にカウンターを連結するだけです。

http://example.com/blog/my-article

becomes

http://example.com/blog/my-article-2

becomes

http://example.com/blog/my-article-3

eywuが提案した方法は2番目に優れていますが、パーマリンクに完全なIDがまだあるからです。誰もそれを覚えたくありません、そしてそれは検索エンジンにとって意味がありません。

于 2012-07-27T13:45:29.393 に答える