URL-адреса SEO с помощью ASP.NET MVC

Есть ли определенные правила НЕЛЬЗЯ и НЕЛЬЗЯ при использовании URL-адресов для поисковой оптимизации? Многие хорошие практики кажутся хорошими для сайтов .html, но не работают на средних / больших сайтах баз данных.

AFAIK URL-адрес должен быть www.mysite.com/category/page-name-here

Если я хочу сделать сайт с насыщенным контентом и по умолчанию категория и страница управляются базой данных - мешает ли это мне иметь такие страницы, как www.mysite.com/about или www.mysite .com / home, так как главная и главная страница могут конфликтовать.

Несмотря на то, что механизм маршрутизации является гибким, возможно ли и / или целесообразно ли вышеизложенное?

-редактировать-

Чтобы уточнить мой вопрос, можно ли управлять механизмом маршрутизации с помощью базы данных?

Рекомендуется, чтобы URL-адрес содержал осмысленное описание, например stackoverflow.com/category/mvc и stackoverflow.com/questions/seo-urls-with-asp-net-mvc < / strong> - это хорошо (в отличие от stackoverflow.com/category/9955 и stackoverflow.com/questions/734583)

По истечении срока я хотел бы перевести управление на другой уровень, скажем, что два вышеуказанных контроллера (категория и вопросы), каждый из которых отображает динамические данные, могут быть изменены на просто stackoverflow.com/mvc и stackoverflow.com/seo-urls-with-asp-net-mvc.

Мне нужно было бы убедиться, что моя база данных содержала таблицу, которая сообщает мне, что первая должна быть маршрутизирована как категория, а вторая - как вопросы - это может быть достигнуто с помощью простого поиска в базе данных и должно быть реализовано в Global.asax

Мой вопрос в том, можно ли этого достичь и каковы возможные подводные камни.


person Gavin    schedule 09.04.2009    source источник
comment
Кодировщик во мне говорит, что это требует больших усилий для небольшой выгоды, но, судя по тому, что мне говорят seos, все их существование определяется множеством множества мелких достижений.   -  person Gavin    schedule 29.01.2010


Ответы (2)


Это легко осуществимо, если вы добавите жестко закодированные маршруты над общими:

// AboutController.Index()
routes.MapRoute( 
    "About",
    "about",
    new { controller = "About", action = "Index" });

// HomeController.Index()
routes.MapRoute( 
    "Home",
    "home",
    new { controller = "Home", action = "Index" });

// ArticleController.Index(string category, string pagename)
routes.MapRoute( 
    "Article",
    "{category}/{pagename}",
    new { controller = "Article", action = "Index" });

Все они могут использовать один и тот же контроллер, если хотите, но было бы немного проще, если бы они использовали отдельные.

Единственная проблема, с которой вы столкнетесь, это если бы у вас была категория под названием «около» или «дом», но это маловероятно, что я могу себе представить.

Также следует отметить, что вам не нужно использовать ASP.NET MVC для использования возможность маршрутизации.

person Garry Shutler    schedule 09.04.2009

Чтобы избежать упомянутых вами проблем со статическими страницами (about, home и т. Д.), Вы можете предпринять несколько разных подходов:

  1. Поместите страницы динамических категорий в отдельный путь (например, www.mysite.com/shop/category/page-name-here)
  2. Поместите статические страницы в отдельный путь (например, www.mysite.com/pages/about). Теперь у вас не может быть категории под названием «страницы», но все остальные будут работать.
  3. Поместите статические маршруты выше динамических маршрутов. Не идеально, поскольку он потенциально может скрыть страницы категорий, если вы неправильно назовете свои категории, но даже если вы сделали №1 или №2, вы все равно захотите сделать это в качестве меры на всякий случай.

Другие предостережения / ошибки:

  1. Вам также необходимо убедиться, что названия ваших категорий и страниц уникальны. На большом сайте это не всегда тривиально (или даже практично), поэтому, вероятно, вы видите URL-адреса, подобные тем, которые здесь, в Stack Overflow, где идентификатор вопроса фактически находится в URL-адресе, а часть «имя страницы» - это просто сахар для SEO.

  2. Вам понадобится стратегия обработки изменений имени. Если название категории или название страницы изменено, вам нужно иметь что-то на месте, чтобы перенаправлять ссылки со старых имен на новые для максимальной эффективности SEO. Вы также захотите убедиться, что новое имя категории / страницы не совпадает со старым именем другой категории / страницы, что немного усложняет изображение.

Все это возможно, и, на мой взгляд, это, безусловно, того стоит. Особенно, если вы ожидаете, что большая часть вашего трафика будет приходить с поисковых систем.

person Eric Petroelje    schedule 09.04.2009