Игра по правилам, или Правильный шаблон для сайта — версия Web-Кошки

27 комментариев

правильный шаблон WordPressДоброго дня!

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

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

 

Каким должен быть правильный шаблон?

  1. Отсутствие циклических и дублирующихся ссылок
  2. Отсутствие дублей контента в анонсах на главной и страницах архивов
  3. Правильная иерархия тегов заголовков
  4. Заголовки не должны быть ссылками
  5. Валидный код
  6. Адаптивность под мобильные устройства
  7. Микроразметка

А теперь подробнее о каждом из этих пунктов: что, зачем и почему.

Отсутствие циклических ссылок

Прежде всего, что такое циклические ссылки? Это ссылки, которые ведут на ту же страницу, на которой они расположены. За примером далеко ходить не надо: ссылка с логотипа всегда ведет на главную страницу. Даже если вы и так находитесь на главной, лого все равно кликабельно, верно?

Аналогично с меню — если у вас в меню выведены категории, и вы зайдете в любую из этих категорий, то в меню появится циклическая ссылка — ведущая на текущую страницу.

Почему это плохо? Ну во-первых, это не очень удобно обычным пользователям… Человек может запутаться, кликать на лого, находясь на главной — а ничего не происходит, он плюнет и уйдет. Но это б полбеды, потому что таких неудачливых посетителей единицы — все ж грамотные стали 🙂 А вот то, что мы заставляем кружить поисковых роботов, подсовывая им такие ссылки — это уже действительно неприятно.

Что делать?

Поскольку, по моему опыту, именно ссылки с логотипа и меню являются генераторами таких циклических ссылок, то я покажу вам решение именно для этих случаев. Но в коде поковыряться придется.

Убираем ссылку с логотипа на главной

Логотип обычно выводится в файле header.php вашей темы оформления. Чтобы убрать с него ссылку с главной страницы, нужно написать там простейшее условие, которое будет проверять, находимся ли мы на главной или внутри. В первом случае мы получим просто картинку, без ссылки, а если внутри — ссылка останется. Вот как это выглядит в коде моего шаблона:

<?php if( is_front_page() ){?>
        <img class="logo" alt="Авторский блог Web-Кошки" src="<?php bloginfo('template_url'); ?>/images/tn_mesocolumn_header_logo.png" />
<?php } else {?>
        <a href="/" rel="nofollow"><img class="logo" alt="Авторский блог Web-Кошки" src="<?php bloginfo('template_url'); ?>/images/tn_mesocolumn_header_logo.png" /></a>
<?php } ?>

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

В третьей строчке продолжение условия «иначе», и в четвертой код лого со ссылкой на главную.

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

Любопытные спросят: а зачем ссылке на главную «nofollow». Расскажу))

Дело в том, что никак не продвигаю главную, потому и предпочитаю не передавать ей вес со внутренних страниц. Про вес дискуссии давайте не разводить, я знаю о разных теориях, но на своих проектах делаю так. Вас не заставляю.

Убираем циклические ссылки с пунктов меню

Для этого достаточно добавить в файл functions.php вот такой код:

function no_link_current_page( $p ) {
    return preg_replace( '%((current_page_item|current-menu-item)[^<]+)[^>]+>([^<]+)</a>%', '$1<span>$3</span>', $p, 1 );
}
add_filter('wp_nav_menu', 'no_link_current_page');

После чего ссылка с текущего пункта меню будет убрана, но зато, скорее всего, у вас слетит и оформление этого пункта в css. Это потому, что оно привязано к тегу ссылки, который мы убрали.

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

Дублирующиеся ссылки

Это ссылки, которые ведут на одну и ту же страницу. Смотрите: с главной из анонсов на страницу статьи обычно идет ссылка с заголовка — один! С миниатюры — два! С кнопки «Читать далее» — три. Да еще и с количества комментариев — четыре!

Зачем нагружать поискового работа, заставляю ходить разными путями, а приходить в одно и то же место? Потому я обычно убираю кнопку «Читать далее», убираю ссылку с комментариев, а ссылку с заголовка и миниатюры объединяю в коде. Все чище, проще и прозрачнее выходит.

Дублирующийся контент

Про вред дублей знают все. Но практически все допускают частичное дублирование контента в виде анонсов на главной и в категориях. А учитывая, что обычно на этих страницах на блогах нет никакой другой информации, получается, что главная и категории — просто дубли, не содержащие ничего уникального и полезного. Все еще хотите продвигать категории в таких условиях?

Что делать?

Во-первых, было бы неплохо разместить на главной и на страницах категорий, если вы их не закрываете от индексации, какой-нибудь уникальный текст. На главной можно вписать его прямо в код, на страницах категорий — воспользоваться специальной функцией:

<?php echo category_description( $category_id ); ?>

Ее нужно вставить в файл, отвечающий за вывод категорий — обычно category.php, а затем заполнить поля описания на странице редактирования категории в админке.

Так мы уже повышаем уникальность этих страниц. А вот далее у вас есть два пути: либо для каждой записи писать отдельное описание, которое пойдет в анонс. Для этого нужно заполнить поле «Цитата», которое расположено на странице редактирования записи.

Кстати, если его не видно, просто зайдите сюда:

включить цитаты wordpress

и поставьте галочку.

Второй путь для ленивых: уникального контента вы не добавите, но хоть дубли закроете.

Для этого нужно отредактировать файлы вывода главной и категорий: index.php и category.php. Найдите там цикл вывода записей и закройте в ноуиндекс вывод неуникальной цитаты.

Пример:

<article class="article" itemscope itemtype="http://schema.org/BlogPosting">
                    <a itemprop="url" class="head" href="<?php the_permalink(); ?>">
                    <?php echo kama_thumb_img('w=326 &h=159 &class=alignleft myimg'); ?>
                    <?php the_title(); ?></a>
                    <div class="meta-home">
                        <time datetime="<?php the_time('Y-m-d') ?>" itemprop="datePublished"></time>
                        <p><time><?php the_time('d.m.Y') ?></time>&nbsp;&nbsp; <span itemprop="interactionCount"><?php comments_number(); ?></span></p>
                    </div>
                        <!--noindex--><?php the_excerpt(); ?><!--/noindex-->
                    
</article>

За вывод текста анонса у меня отвечает функция

<?php the_excerpt(); ?>

Вот ее-то я и окружаю, заметьте, валидными тегами noindex. После чего этот текст не будет попадать в индекс, страницы станут поуникальнее))

Иерархия тегов заголовков

Что я имею в виду?

Необходимо проверить, что на каждой странице вашего сайта присутствует только один тег <h1>, причем он расположен выше других тегов заголовков. Ну и далее они идут по убывающей.

Кроме того, важно, чтобы в служебных элементах шаблона не было выделения этими тегами. Поэтому нужно убрать их из заголовков виджетов — разработчики шаблонов очень любят делать их в <h3>. Сделать это можно, подкорректировав файл функций. Я покажу свой код, а вы уже там ориентируйтесь по нему:

register_sidebar(array(
                'name' => 'Sidebar',
                'id' => 'sidebar',
                'before_widget' => '<div class="widget">',
                'after_widget'  => '</div>',
                'before_title'  => '<div class="widgettitle"><span>',
                'after_title'   => '</span></div>'));

За оформление заголовков виджетов отвечают параметры «before_title» и «after_title».

Если видите там <h3> или <h4> — нужно заменить на дивы. Стили, конечно, слетят, их тоже надо будет исправить.

А еще WordPress очень любит ставить тег <h3> в форму комментариев. Проверьте у себя — «Оставить комментарий» не должно быть заголовком. Для этого предназначен следующий код:

function my_comment_form_before() {
    ob_start();
}
add_action( 'comment_form_before', 'my_comment_form_before' );
 
function my_comment_form_after() {
    $html = ob_get_clean();
    $html = preg_replace(
        '/<h3 id="reply-title"(.*)>(.*)<\/h3>/',
        '<p id="reply-title"\1>\2</p>',
        $html
    );
    echo $html;
}
add_action( 'comment_form_after', 'my_comment_form_after' );

Он заменяет <h3> на тег параграфа, стили тоже нужно изменить.

Заголовки — это не ссылки

Обычно заголовки анонсов на главной и в категориях — это теги <h2>. К сожалению, у меня нет пруфа, верить мне или нет — дело ваше, но! С точки зрения семантики заголовок и ссылка — это абсолютно разные элементы и по значению, и по смыслу, и по функционалу. Потому заголовок не должен быть ссылкой, а ссылка — заголовком.

Поэтому я делаю всегда в ленте анонсов заголовки дивами или и вовсе обычными ссылками с нужным мне для стилизации классом.

Валидный код

Скажу сразу — вы быстрее поседеете, чем добьетесь полной и абсолютной валидности на сайте. Потому что на нее влияет не только шаблон, но и установленные плагины, да и сам контент тоже. Потому ноль ошибок/ноль предупреждений — это, конечно, очень круто. Но не стоит тратить часы и дни, чтобы убрать последние две или три ошибки.

А вот если у вас их сотни, то стоит задуматься.

Маленькая подсказка: ставьте при проверке валидатор в режим html5 — ошибок у вас будет на порядок меньше, потому что многие вещи в спецификации html4 еще не описаны, а на наших сайтах используются. Можно, кстати, сразу и доктайп поменять на html-пятый. Но это только тем, кто понимает, о чем я.

Ах да, ссылка на валидатор — http://validator.w3.org/

Еще обратите внимание, что валидатор очень ругается на микроразметку. Когда он станет ее полностью поддерживать, никто не знает, но все ждут))

Адаптивный дизайн

Ну это тема для отдельной большой статьи… Как его сделать на сайте своими руками, я как-нибудь покажу. Благо есть один сайт, где адаптивность как раз пора сделать, а то Гугл переживает и пишет письма))

Зачем нужно? Ну конечно, для удобства мобильных пользователей. Плюс к тому, сайты с адаптивным дизайном будут помечаться в мобильной выдаче Гугла как удобные для пользователей, соответственно, их привлекательность в глазах пользователей растет.

Я на этом блоге наконец-то полностью допилила адаптивность — были там косяки. И вот что имею на сегодня:

адаптивный дизайн

Не сто, потому что не нравятся гуглу маленькие элементы Яндекс-Поиска, которые я что-то никак не соображу, как увеличить. А может, и вовсе уберу из мобильной версии поиск.

Проверить свой сайт вы можете вот по этой ссылке.

Микроразметка

Польза микроразметки для меня выглядит очень туманно, если честно. Ну вроде как ее смысл в том, что мы явно указываем ПС, где контент, где сайдбар, где название сайта, а где автор статьи… Не знаю, насколько это имеет смысл для информационным проектов. Возможно.

В принципе, если шаблон сверстан на HTML5, то все его элементы уже прямо подписаны — в пятой спецификации есть элементы <header>, <footer>, <article>, которые указывают на предназначение и смысл этих блоков.

Однако, микроразметка все же рекомендуется к установке хотя бы из соображений, хуже точно не будет, а вдруг еще и лучше станет?

Себе я вначале делала ее сама, но где-то накосячила, и в итоге мне ее полностью переделал Артем, за что ему большое спасибо)) Обращайтесь, если что, именно к нему, человек на самом деле очень аккуратно и качественно поможет вам с этой проблемой.

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

27 коммент.
  1. В моей теме столько косяков, что проще с нуля создать)))
    Советы хорошие. Спасибо! Но выполню ли я их все — вопрос времени. Что смогу, подлатаю. Что не получится, то переживу как-нибудь!

  2. Забыл спросить, почему в хлебных крошках оставили ссылку на главную и циклическую ссылку?

    • Хлебные крошки вообще рассматриваются немножко не так, как другие ссылки на сайте. Но циклической ссылки в них нет — ведь цепочка кончается на категории, название статьи в них не включается.

      • Да, это я с первого раза невнимательно глянул. Просто сами крошки плохо заметны. Шрифт очень маленький и цвет почти сливается с фоном.

  3. Лариса, статья — супер!
    У меня, стопроцент, косяков в блогах на порядок больше, нежели у Сергея Стеклова, и тем не менее, сейчас же приступаю к «выкашиванию сорняков». Надоело откладывание в длинный ящик. 🙁
    Огроменное спасибо! 😉

  4. Да Лариса, серьезная статья. Работы получается море. Шапка кликабельна и так далее. Попробую, что попроще подправить. Сложное наверно не осилю, грамотности мало. Радует только то, что уже давно сменил шаблон на адаптивный и сейчас Гугл его одобряет для мобильных зеленым цветом. А картина со ссылками и анонсами точно совпадает с описанной.

  5. Полезная статья. Скажу несколько слов по этому поводу.
    1. Есть проблема циклических и дублирующих ссылок. По-моему мнению, можно все сделать идеально, а можно все оставить как есть. Это ни на что не повлияет.
    2. Лариса, по поводу «Читать далее» совершенно с тобой не согласен. Такая ссылка обязательна должна быть, особенно, если читали вашего сайта обычные люди. Многие попав на главную страницу сайта, просто не поймут как попасть на конкретную статью. Поэтому вы потеряете потенциального читателя данной статьи.
    3. Адаптивный дизайн важен, тем более, что с апреля Google будет понижать сайты в мобильной выдаче, которые не адаптированы под мобильные устройства.
    Наверное, 100% показателя удобства для пользователей можно достигнуть только убрав рекламу со своего сайта. 🙂 Думаю, что делать этого не стоит.
    Как раз недавно, с помощью Артема, адаптировали мой сайт к мобильным устройствам. Я обнаружил одну вещь, которая влияет на результаты проверки в Google Developers. Простое графическое исправление элементов может не привести к положительному результату проверки. Это касается обычных сайтов, а не индивидуального шаблона, как у тебя.
    3. А вообще, по моему мнению, идеальный шаблон должен быть быстрым, и адаптированным к мобильным устройствам. Сейчас это самые важные для сайта условия, с технической точки зрения, для успешного продвижения в поисковых системах. Сейчас я работаю именно над этим, что уже сделал, а что-то еще предстоит сделать.

  6. Лариса, текст вводимый в поле комментариев слишком мелкий. Ничего, практически не видно. Такого маленького размера текста, я еще нигде не видел. Нельзя ли его увеличить?

  7. Единственное, что радует, так это адаптивность 100/100… Всё остальное — мама не горюй! А часть не поняла вообще! Спасибо!
    Что-то он хочет от меня по скорости 50/100: Удалите из верхней части страницы код JavaScript и CSS, блокирующий отображение.
    Раньше бы огорчилась, а после полтора года технических мытарств — блог заглох и по-моему, навсегда…
    Не осилила — ушла в оф-лайн. Рада всех знакомых увидеть! Успеха!

  8. Лариса, привет! Спасибо за рекламу)))
    Во многом с тобой соглашусь, но есть некоторые моменты.
    Я так и не понимаю почему нельзя ссылку в заголовок включать. С точки зрения семантики здесь ничего не нарушается: заголовок — блочный элемент, ссылка — строчный. Вот ел бы было наоборот, то согласен так нельзя.
    Соглашусь с Василием — кнопка Читать нужна. Понятно что в люди с поиска заходят на статью, ну а если по прямой ссылке люди заходят? Отсутствие кнопки Читать, будет несколько напрягать, потому что многие к ней привыкли.
    Что касается микроразметки, то тут ты права. Нужность разметки вопрос спорный. Думаю это связано с двумя вещами:
    1. Если сайт сверстан не по хтмл5, то здесь, как раз разметка сильно поможет. Добавит дополнительной семантики.
    2. ИМХО, но думается мне что schema.org развивается быстрее, чем сами поисковики. И потому так мало схем поддерживается.

    ПС. Шрифт в комментариях даже для меня лишка мелкий)))

  9. Вау! Мое любимое! Столько всяких полезностей на покопаться в шаблоне — аж руки зачесались! :)))
    А можно придраться? Размер шрифта в поле написания комментария у тебя просто ужасный — совсем не видно, что набираю… 🙁 Увеличить надо раза в 2 (чтоб как опубликованных комментах, например)
    А еще хотела спросить про адаптивность. У меня на подопытном сайте почему-то поплыла верстка. Некоторые элементы (блок с вертушкой внизу главной и футер) почему-то в ряде браузеров (Хром, ИЕ и Мазила даже, вроде) стали отображаться некорректно — т.е. стили дли них браузер берет из той части файла сss, где они прописаны для /* Phone : 480px */ Причем на Сафари, например, нормально все.
    Ума не приложу, как заставить Хром и остальных читать то, что надо для обычных ПК… Баг какой-то. Причем ведь пару месяцев назад все было в порядке. А шаблон Sahifa — не обновлялся, естественно. Не подскажешь, что за это отвечает? Адрес сайтика могу дать, если надо: visson-ekb.ru

    • Бывает такое с Санифой, почему то вылезают дефолтные стили браузера. Я это лечил подключением Ресетных стилей.

      • Ой! Спасибо, Артем, но я не знаю, что это такое — «ресетные стили»… И Гугл ничего мне понятного не говорит :(((

        • По другому еще называется «сброс стилей браузера». По-простому — это обнуление различных параметров (отступы, шрифты и тд). Но этот сброс должен производиться перед тем как начинают загружаться основные стили сайта. То есть, их надо поместить в самый верх файла style.css
          Про сами стили можно почитать вот тут
          http://www.howtomake.com.ua/front/sbros-stilej-css.html
          http://meyerweb.com/eric/tools/css/reset/

  10. Лариса, а если в коде ВЫШЕ Н1 статьи красуется в Н2 название блога — это очень плохо? И вообще наверное, не стоит название блога в Н2 везде запихивать?

  11. Галина

    Всем привет.Читаю,а глаза по полблюдца,тихий лес,да еще такими замудренными словами,где уж тут новичку,что понять.Люди по 2 года ведут блог,и то наверное с напрягом читают,а мне первоклашке,и подавно.И все таки мне кажется,что практически все блогеры,тянутся под ПС,а не под простых людей.Вроде и хотят оставить ссылку на др.статью,кто как умудряется,включая слова-«здесь,тут и т.д.»,а шрифт такой,что дай бог основные слова прочесть.

    Я понимаю,что не мне высказывать свое «ф»,не доросла еще,но походив по блогам,и увидев такую игру «в прятки»,однозначно решила,что писать буду так ссылки на др.статью,именно так,чтобы пользователь,заскочив ко мне на блог по запросу,задержался бы у меня не менее,чем на полдня,как я застреваю на некоторых блогах. Лозунг-«Будь проще,и люди к тебе потянутся»-еще живет.Извините,никого не хотела обидеть.

  12. Лариса, насчёт ссылок вопрос очень спорный. Тут соглашусь с Василием. Очень много возни на пустом месте, на мой взгляд.
    Адаптивность — да… Это сейчас обязательное условие. Только сегодня делал адаптивной небольшую заглавную страничку корпоративного сайта — она была не приспособлена для мобильных устройств, пришлось повозиться, но результат того стоил. А вообще, например, существующий шаблон блога wordpress сделать адаптивным — то ещё удовольствие. Проще найти уже готовый шаблон, либо самому писать с нуля, сразу учитывая все моменты.
    И, таки, да, Лариса, шрифт при написании комментария очень мелкий. Трудно писать.

  13. Гуглу угодить по-любому не получится. Если его бот не видит ресурсов страницы, то она не адаптирована под мобильные. Предлагают посмотреть на страницу глазами робота. Я пытаюсь ему подсунуть ресурсы, но он опять недоволен. Под эти новые гугловские фишки подправил кой-чего, но вот так круто затачивать, как ты описала, не буду. Я тестирую свой дизайн на мобильном, он на нем более чем адаптивный. Для человека.

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

  14. заставляЯ ходить разными путями. Поправь и убей коммент ))

  15. Был неправ. Адаптирую сайт под новые требования Гугла. Деваться некуда, неохота падать в выдаче.

  16. And enterprises of great pitch and moment with this regard their current turn away and loose name of action.
    Блога нет. Зачем был редизайн и данная статья — непонятно.

  17. Привет, Лариса! Ты была на марафоне?)

    • Привет, Оля! Нет, не была, но записи, конечно, есть)) Но все эти требования — из практики, то есть то, что от меня требуют каждый раз при верстке. Послушала записи, еще раз убедилась, что не зря требуют))

      • Так ты серьезно взялась за фриланс?))) Можно рекомендовать тебя знакомым? Иногда нужны доработки или разработки шаблонов с учетом «марафонских стандартов»

        • Не, я уже полгода как в вебстудии работаю разработчиком)) А так да, если кому-то нужно, можешь посылать ко мне, со стандартами я знакома. И поправлю, и макет сверстаю с нуля, если что))

  18. У меня тоже стоит стандартный шаблон, но теперь думаю пора заказывать у специалистов и сразу же с мобильной версией.

  19. Мой шаблон сильно плох?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *