Независимо от того, являются ли ваши URL-адреса статическими или динамическими,важно поддерживать их согласованность. В случае динамических URL важно поддерживать в них согласованный порядок параметров, если их больше одного.
В РНР обращение к параметрам в строке запроса обычно выполняется по имени,а не по порядковому номеру. Порядок, в котором параметры находятся в строке, не влияет на работу PHP-сценария, если только этот сценарий специально не учитывает
цорядок параметров.
В следующем примере PHP-сайт сгенерирует в точности тот же контент, но используя различные URL:
Http://www.example.com/catalog.php?product_id=l&category_id=2
http://www.example.com/catalog.php?category_id=2&product_id=l
Если сценарий catalog.php выбирает параметры как $_GET [product_id] и $_GET [category_id], то эти два URL сгенерируют идентичный контент. Нет стандарта,согласно которому порядок параметров в URL-адресах не важен. Поэтому если в одном и т ом же сайте имеются обе эти динамические ссылки, то поисковые механизмы могут просмотреть два различных URL с идентичным контентом, что может
привести к наложению штрафа на сайт.
В общем, лучше быть последовательным и определить стандартный порядок параметров,чтобы избежать проблем и повысить ранг сайта. А теперь рассмотрим пример,где порядок параметров может иметь значение:
http://www.example.com/compare_products.php?item[]=l&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, нужного сайту. Однотипное форматирование достигается с помощью логики э т о й функции. Как будет показано в главе 5, согласованность попутно облегчает исключение файлов из индексирования в файле 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 проявляются и здесь. Следующий раздел посвящен как раз этой теме.