Чаще всего вебмастера проводят оптимизацию чего угодно, но только не шапки сайта. Меню относится к сквозному блоку, который располагается на всех страницах сайта и допустив ошибку - она будет дублироваться на всех внутренних страницах.
1. Одноуровневое меню.
Такое меню, как правило, встречается на простых сайтах и в нем перечислено около 5-6 страниц. Оно не имеет вложенных элементов или список.
В плане верстки его делают как список <ul><li> .. </li></ul>. А внутри списка располагаются ссылки на страницы.
2. Многоуровневое меню
Такое меню, как правило, встречается на сайтах каталогах или интернет-магазинах. В нем отображены товарные категории. Чем больше товаров на сайте - тем объемнее будет такое меню. Что бы отобразить всю структуру - администраторы сайтов стараются раздробить на максимальное бОльшее кол-во конечных категорий.
В плане верстки - это такое же одноуровневое меню, но внутри <li></li> будет храниться не только ссылка, но и еще один список, отображающитй вложенность под-меню. Пример: <li><a>Название</a><ul><li>...</li></ul></li>
3. HTML5 - семантическая верстка
Не забывает задать такому меню его роль:
- Для общего блока навигации можно задать тег <nav> ... </nav>
- Для самого блока с меню можно задать <menu> ... </menu>
На усмотрение вебмастера: такую семантику можно задать как блоки, а можно как роли. Роли прописываются у уже существующего блока. Пример role="***"
4. !!! Фишка 1С-Битрикс
В 1С-Битрикс существует компанент, который выводит всю иерархию торгового каталога. Существуют разработчики, которым проще кастомизировать компанент, чем написать все самому. В итоге они изменяют внешний вид, а логика остается прежней.
В моей практике был сайт, интернет магазин строительных материалов г.Москвы в котором было около 100 000 товаров. В итоге визуально мы видели около 15 категорий (не считая раскрывающихся подменю), а в коде страницы выводилось около 800 категорий, которые занимали 12000 строк.
Расскажу, чем чревата такая ситуация (логика из коробки):
- Как правило на многих сайтах меню располагается слева и загружается соответственно раньше самого контент страницы. Поисковая система загружает страницу и не всегда до конца ее загружает - в итоге до важного контента поисковый бот не всегда доходит.
- Долгая загрузка сайта - 12000 строк. Что бы компанент их вывел он отрабатывает примерно 1 сек, что много.
- Так как этот блок сквозной - то происходило не правильное распределение веса между страницами. Слабые страницы усилялись за счет сильных, а сильные - ослаблялись. В итоге получались усредненные страницы, и специалист не мог понять почему оптимизируя их - они не дают ожидаемой отдачи.
- Снова буду говорить про сковзной блок, но уже не про распределение веса, а про перелинковку. Происходит связь страниц, которые между собой никак не связаны. Например: керамическая плитка и котельное оборудование. Хотя казалось бы - в керамической плитке лучше вывести категории: затирка, клей, полотенца.
Всем добра !! Если есть вопросы - задавайте, обязательно отвечу ))