Дружественные поисковой системе URL-адреса, содержащие цифры ... хорошо или плохо? - PullRequest
5 голосов
/ 15 февраля 2010

Я создал веб-сайт с иерархической структурой и URL-адресами, удобными для поисковых систем (SEF), такими как:

/seeds-1/
/seeds-1/fruits-2/
/seeds-1/fruits-2/black-berries-5/
/seeds-1/fruits-2/blue-berries-6/
/seeds-1/fruits-2/strawberries-7/
/seeds-1/vegetables-3/
/seeds-1/vegetables-3/potato-8/
/seeds-1/vegetables-3/onion-9/
/seeds-1/vegetables-3/cabbage-10/
/seeds-1/flowers-4/
/seeds-1/flowers-4/red-rose-11/
/seeds-1/flowers-4/tulips-12/

и так далее. Вы заметите, что числа в конце являются идентификаторами. Теперь, когда я закончил с веб-сайтом и всем остальным, «консультант» вмешивается и говорит моему клиенту, что «... URL не являются 100% поисковыми системами, чтобы сделать их 100% дружественная поисковая система, цифры должны быть удалены ... ". Я, очевидно, не могу говорить с «консультантом», так как они выполнили свою работу и исчезли .

Теперь я буду признателен, если кто-то может указать на плюсы и минусы для обоих типов URL. Мне нужны веские аргументы, чтобы убедить клиента, плюс мне действительно нужно знать, допустил ли я ошибку при выборе такого типа схемы URL для моего сайта.

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

Может быть, я ленивый. Правила переписывания выглядят так:

RewriteRule ^[^/]+-([0-9]+)/$ object.php?ObjectID=$1
RewriteRule ^[^/]+-([0-9]+)/[^/]+-([0-9]+)/$ object.php?ObjectID=$2
.
.
.

Достаточно легко извлечь ObjectID из строки запроса, привести его к целому числу и использовать его в запросе SQL. Я думаю, что использование сравнения текста в запросах (WHERE Name = '% s') медленнее по сравнению с использованием сравнения целых чисел (WHERE ObjectID =% d), поэтому я сомневаюсь. Вопрос скорее в том, стоит ли делать URL-адреса более удобными для человека за счет того, чтобы сделать их менее удобными для кодирования и производительности.

Ответы [ 4 ]

4 голосов
/ 15 февраля 2010

Согласитесь с черувим и будем расширяться.

Здесь нужно учесть две вещи -

Дружелюбный человек - это одно очко ... если ваш пользователь хочет ввести овощи / лук / vidalia вместо vegatables / onions-10, то, очевидно, это имеет больше смысла для конечного пользователя.

Кроме того, поисковая система также может поднять немного больше деталей ... так что поиск лука vidalia может дать лучший рейтинг для вашего сайта.

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

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

Честно говоря, это действительно сводится к тому, что хочет ваш клиент. Как указали и другие пользователи, в том, как вы представляете ссылки, разницы в производительности не так много ...

Что действительно важно сейчас, так это если ваш клиент хочет, чтобы его представили. Их волнует, читается ли такая информация людьми? Если они просто прислушаются к совету консультанта, то вы можете просто реализовать свои правила переписывания.

3 голосов
/ 15 февраля 2010

Поиск по "семенам", "цветам", "овощам" и т. Д. Будет совпадать в URL, поэтому URL-адреса хороши, и движки с ними справятся.

Хотите ли вы сделать их более человеческими дружественными - это еще один вопрос.

1 голос
/ 15 февраля 2010

Нет ничего плохого в том, что в URL есть идентификаторы. Это делается повсеместно. Например:

  1. Здесь при переполнении стека (/ questions / 2264708 / search -...) или
  2. Амазонка (http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/)

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

Это не повредит SEO вообще. Это может быть немного менее удобно для пользователя, потому что пользователи не могут "угадать" URL, но это совсем другая проблема.

1 голос
/ 15 февраля 2010

С технической точки зрения вам понадобятся только числовые идентификаторы, если ключевые слова не являются уникальными в своем контексте.

Это так, если, например, на первом уровне может быть более одного семени . Тогда вам понадобится числовой идентификатор (или другое уникальное значение), чтобы различать различные seed :

/seeds-1/…
/seeds-2/…
 ⋮

Но если все ключевые слова уникальны в своих контекстах (пути уникальны), то вы можете удалить числовой идентификатор без потери информации.

...