Почему важны URL?
Статические URL и динамические URL
Статические URL
Динамические URL
URL-адреса и CTR
URL-адреса и дублированный контент
URL-адреса в реальном мире
Пример 1: динамические URL-адреса
Пример 2: числовая подмена в URL-адресах
Пример 3: URL-адреса со вставленными ключевыми словами

Поддержка согласованности URL-адресов

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

В РНР обращение к параметрам в строке запроса обычно выполняется по имени,а не по порядковому номеру. Порядок, в котором параметры находятся в строке, не влияет на работу PHP-сценария, если только этот сценарий специально не учитывает цорядок параметров.
В следующем примере PHP-сайт сгенерирует в точности тот же контент, но используя различные URL:

http://www.example.com/catalog.php?product_id=1&category_id=2
http://www.example.com/catalog.php?category_id=2&product_id=1
Если сценарий catalog.php выбирает параметры как $_GET [product_id] и $_GET [category_id], то эти два URL сгенерируют идентичный контент. Нет стандарта,согласно которому порядок параметров в URL-адресах не важен. Поэтому если в одном и т ом же сайте имеются обе эти динамические ссылки, то поисковые механизмы могут просмотреть два различных URL с идентичным контентом, что может привести к наложению штрафа на сайт.

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


http://www.example.com/compare_products.php?item[]=1&item[]=2
http://www.example.com/compare_products.php?item[]=2&item[]=1
Здесь параметра с именем item используется для заполнения РНР-массива $_GET [item]. В первом случае этот массив содержит (1,2), а во втором — (2,1). Здесь поисковый механизм не может предполагать, что URL-адреса эквивалентны, и так оно и может быть на самом деле.

Программист может также применять однотипные правила употребления заглавных букв в именах файлов и строках запроса. Поисковые механизмы не учитывают такие простые отличия, в особенности потому, что имена файлов в Windows не чувствительны к регистру букв, однако следующие URL-адреса технически различаются как в Windows, так и в Unix:

http://www.example.com/products.php?color=red
и
http://www.example.com/PRODUCTS.php?color=RED
Ваш сценарий может считать эти URL эквивалентными, но у поискового механизма может быть иное мнение. Здесь опять-таки желательна последовательность и однотипный стиль. Разработчик может также постоянно ссылаться на каталоги Web-сайта с помощью завершающего символа /. Например, если вы пользуетесь URL-адресами с числовыми заменами, то лучше не ссылаться на один и тот же продукт с помощью обеих следующих ссылок, даже если ваш сценарий успешно распознает их:
http://www.example.com/Products/1/
и
http://www.example.com/Products/1
На самом деле поисковые механизмы могут разобраться во многих из таких двусмысленностей.
Мэтт Каттс уверяет, что Google может "выполнять такие действия, как сохранение или удаление концевых слэшей, (и пытаться) преобразовывать URL-адреса с прописными буквами в строчные" (http://www.mattcutts.com/bl6g/seo-advice-url-canonicalization/) , но это лишь часть уже упомянутых неоднозначностей.
Лучше всего не надеяться на поисковые механизмы и удалить все такие подозрительные и неясные места.

Чтобы быть полностью последовательным, можно создать функцию для каждого типа URL, нужного сайту. Однотипное форматирование достигается с помощью логики этой функции. Как показано в Дублированный контент , согласованность попутно облегчает исключение файлов из индексирования в файле robots.txt, т.к. проблемы, связанные с порядком параметров и регистром их букв, проявляются и там.

Например, при создании Web-сайта электронной коммерции можно создать такую функцию:

function create_link($category_id, $product_id)
{
return 'product.php?category_id=' . $category_id . '&product_id=' . $product_id;
}
Вызов функции с параметрами 5 и 6 возвращает строку product.php?category_id=5&product_id=6. Использование этой функции во всем Web-сайте гарантирует однотипность формата всех ссылок.

Данная реализация функции create_link() специально упрощена и не годится для реальных ситуаций. Если вы хотите более существенно усовершенствовать свои URL-адреса, необходимо использовать более сложные функции в сочетании с подменой URL. Преимущества однотипности URL проявляются и здесь. Следующий раздел посвящен как раз этой теме.

Подмена URL
Инсталляция mod_rewrite
Тестирование mod_rewrite
Введение в регулярные выражения
Подмена URL и PHP
Подмена числовых URL с двумя параметрами
Подмена URL с ключевыми словами
Создание генератора ссылок
Разбиение на страницы и подмена URL
Подмена изображений и потоковых носителей
Проблемы, которые подмена не может решить
Последнее предостережение
Резюме