Оптимизация кода шаблона:
Сегодня у меня спросили, зачем оптимизировать код темы и не достаточно ли будет оптимизации текстов на сайте?
Оптимизацию кода проводят с различными целями:
- для снижения количества запросов к базе данных и увеличения скорости формирования страницы (загрузки контента);
- для увеличения скорости загрузки изображений;
- И, наконец, для более быстрой индексации материалов сайта поисковыми системами.
Разумеется, в каждом из этих случаев требуется разная оптимизация.
В этом посте я расскажу, как оптимизировать код вашей WordPress-темы для лучшей индексации контента на вашем сайте поисковыми системами и, соответственно, более релевантной выдачи этого контента по запросам пользователей.
- Начнем Ab ovo - в буквальном переводе «с яйца», т.е. с самого начала. В нашем случае с мета-тегов.
Заголовок страницы TITLE - самый важный мета-тег, в который следует включать несколько ключевых слов, по которым вы хотите продвигать данную страницу. Чтобы автоматизировать процесс создания титлов, напишем следующее условие:<title><?php if (is_single()) { ?> <?php wp_title(''); ?> <?php } elseif (is_category()) { ?> Рубрика: "<?php echo single_cat_title(); ?>" <?php } elseif (is_tag()) { ?> Страница тега "<?php single_tag_title(); ?>" <?php } else { ?> <?php bloginfo('name'); ?> <?php } ?> </title>
Пояснение:
Если загружается single, т.е. одиночная запись, то title формируется так: Название записиДля рубрик title будет выглядеть так: Название рубрики
Для страниц тегов title будет таким: Название тега (т.е. ключевое слово, которое задает в поиск посетитель)
Для все остальных страниц title будет одинаковым: Название страницы
Можно, конечно, написать условие, которое выдаст нам уникальный title буквально для каждой страницы нашего блога, но, как правило, приведенного выше кода вполне достаточно, чтобы в нашем title появились все необходимые ключевые слова, связанные с тематикой блога.
Заметьте, для этого нам не потребовалось никаких плагинов.
Естественно, в названии статьи нужно использовать ключевые слова для продвижения этой статьи, а в название сайта - включить ключевики для продвижения всего сайта.
Едем дальше: DESCRIPTION – описание сайта.
Мета-тег DESCRIPTION – используется в качестве сниппета в поисковой выдаче. Снипет – это кусочек текста, выбранный поисковиком для отражения сути вебстраницы. В поисковой выдаче снипет находится под ссылкой на сайт.
Создать уникальный description нам поможет следующий код:
<meta name="description" content="<?php if ( is_single() ) { echo 'Статья '; single_post_title('', true); } else { bloginfo('name'); echo " - "; bloginfo('description'); }?>" />
Пояснение:
На странице одиночной записи, description будет создан из названия записи.
На всех остальных страницах он будет повторять описание сайта.Напоминание!
В description (описании сайта) обязательно должны использоваться ключевые слова из title (названия сайта).
Мета-тег KEYWORDS: на данный момент этот тег не учитывается поисковиками, но все же, будет не лишним, если слова, отражающие суть страницы будут прописаны в keywords.Автоматизировать создание тега KEYWORDS нам поможет условие:
<?php if (is_single()) { echo '<meta name="keywords" content="'; $post_tags = wp_get_post_tags($post->ID, array('fields' => 'names')); echo implode(', ', $post_tags); echo '" />'; } elseif (is_category()) { echo '<meta name="keywords" content="'; echo single_cat_title (); echo '" />'; } elseif (is_tag()) { echo '<meta name="keywords" content="Тег '; single_tag_title(); echo '" />'; } else { echo '<meta name="keywords" content=" Здесь будет перечень ваших ключевых слов" />'; } ?>
Пояснение:
На странице одиночной записи, keywords будут создаваться из меток этой записи.Для рубрик в качестве keywords этот код будет выдавать название рубрик.
Для страниц тегов - название тега.
На всех прочих страницах будет загружаться стандартный список ключевых слов, который вы может вставить в вышеприведенный код вместо фразы "Здесь будет перечень ваших ключевых слов".
Мета-тег ROBOTS — предназначен для запрета или разрешения индексации поисковиками страниц сайта.
Он полезен для SEO оптимизаторов и просто тех, кто хочет избавиться от дублированного контента. При помощи данного тэга можно самостоятельно управлять индексацией страниц.Разрешить индексацию:
<meta name="robots" content="index, follow" />
Запретить индексацию:
<meta name="robots" content="noindex, nofollow" />
- Атрибут Rel="Canonical"
Если ваш сайт имеет зеркала, используйте на основном сайте Rel="Canonical", это позволит указать тот URL, который должен появиться в выдаче поисковой системы.Как пользоваться этим атрибутом?
Добавьте в раздел head вашего основного сайта элемент link:<link rel="canonical" href="http://www.example.com/" />
- Расположение основных блоков на сайте:
Вывод основных блоков необходимо организовать в следующем порядке:1. Шапка сайта.
2. Контент.
3. Сайдбар.
4. Футер.При такой организации текст постов будет располагаться ближе к началу страницы.
Напомню, что поисковики считают наиболее релевантным контент, который находится ближе к началу документа (имеется в виду исходный код документа, который можно увидеть, вызвав контекстное меню страницы кликом правой клавиши мыши и выбрав в нем «Исходный код страницы»).Поэтому, да здравствуют темы с правосторонним сайдбаром!
Но, если вы предпочитаете иметь сайдбар слева, это не проблема. Главное, чтобы в коде он находился после контента, а визуально его можно расположить где угодно.
Увидеть ваш сайт глазами поискового робота можно на сервисе http://www.seo-browser.com
- Заголовки, используемые на сайте:
Правильно используйте теги заголовков, особенно теги h1.Именно они позволяют ПС легче ориентироваться в тематике страницы и сайта, а так же используются Яндексом для составления быстрых ссылок в СЕРПЕ. Поэтому, рекомендуется использовать тэг h1 как заголовок страницы, содержащий в себе ключевые слова (слово).
Это значит, что заголовок поста в файле single.php нужно поставить в теги h1.
Вот так:<h1>Это заголовок поста</h1>
В заголовке должны присутствовать ключевые слова, по которым продвигается данная страница.
Напомню, что на странице записи заголовок поста отображается в тегах title (смотрите п.1).Наличие одинаковых фраз/слов в title и в h1 значительно повышает вероятность попасть в топ выдачи поисковых систем по ключу из title без использования внешних факторов ранжирования, только за счет внутренней оптимизации.
Хотя использование тегов заголовков внутри поста происходит уже при написании поста и к оптимизации кода wordpress-темы не относится, я, все же, упомяну об этом: Все заголовки внутри постов, а также заголовки разделов сайдбара/футера берем в теги h2. Вот так:
<h2>Это заголовок внутри поста и заголовок раздела в сайдбаре</h2>
В h2 вставляем видоизмененные ключевые слова.
- Теперь об использовании тега strong.
Выделение в тексте ключевых слов жирным или полужирным шрифтом хотя и имеет незначительный вес в SEO оптимизации, но все же пренебрегать им не стоит.
Все подзаголовки внутри постов берем в теги strong. Вот так:
<strong>Это подзаголовки, которые содержат ключевые слова из названия и тематики блога </strong>
Чтобы удобно вставлять в страницу теги strong с ключевыми словами, их нужно "зашить" в шаблон.
Например, вместо стандартной ссылки "Читать далее" под анонсами постов написатьЧитать далее продолжение поста <strong>Заголовок поста</strong>.
Для WordPress это будет выглядеть так:
Читать далее продолжение поста <strong><?php the_title(); ?></strong>
Вот еще один способ (нашла на сайте http://www.terehoff.com).
Можно вставить перед формой комментариев следующую фразу:Хотите оставить комментарий к посту/статье <strong>Заголовок поста</strong>?
Для WordPress аналогично:
Хотите оставить комментарий к посту/статье <strong><?php the_title(); ?><strong>?
Поскольку, заголовок поста состоит из ключевых слов, используя его таким образом, вы повышаете процент ключевых слов на странице.
Можно, также, добавить несколько самых важных ключевиков в этих тегах в футер вашего сайта.
Используйте подобные выделения ключевых слов не больше одного раза на странице.Для выделения ключевиков можно использовать, также, Курсив или Подчеркивание
— последнее время выделение ключевых слов курсивом или подчеркиванием имеет гораздо большую взаимосвязь с ранжировкой страницы, чем при выделении текста жирным или полужирным шрифтом.

Ксана, спасибо за такой материал, частично оптимизировала свой блог. Волнует ещё вопрос внутренней перелинковки в постах. Можно ли как то сделать, чтобы не вручную перелинковывать статьи? Или может вы знаете для этих целей хороший плагин?
Заранее спасибо!
Плагина не знаю, хотя таких должно быть много.
Для перелинковки я делаю на странице записей блок "Еще с сайта" или "Еще на эту тему".
Читайте об этом выше.
Ксана, спасибо за ответ. Но интересуют не "Ещё с сайта" или что-то подобное в конце статьи, а именно перелинковка в самом тексте, то есть когда в статье находятся необходимые ключи и ставятся ссылки на рубрики, метки или же другие статьи. Или это уже лишнее?
ЗЫ: Ксана, спасибо за полезные материалы, всегда с удовольствием читаю Ваши новые посты!
Кажется видела подобную возможность в плагине Simple Tags.
Очень хорошие древовидные комментарии. Очень нравятся! Ксана, Вы могли бы мне такие сделать?
Миша, конечно могла бы. Позвони мне, обсудим.
Вы молодец! собрали в одном посте почти все рекомендации.
У меня вопрос - некоторые темы выводят на главной тег Н1 в названии блога, в названиях поста и т.д. Получается на главной несколько Н1. Также при переходе на пост название блога остается в Н1 и название поста также Н1. Подскажите как реализовать, хотя бы на примере моего блога, плиз 🙂
Я вывожу название блога логотипом-картинкой, которую делаю ссылкой на на Главную страницу блога.
Т.о. тег H1 используется только в названии постов.
Хотя, я не считаю, что использование нескольких тегов H1 на странице это большая ошибка.
Если код в теме оптимизировать хотя бы на 80% это уже хорошо.
Добиться 100% оптимизации все одно мало кому удается.
Спасибо за ответ! Мне на одном из блогов удалось 100% оптимизировать, но там позволяла тема это сделать. А на своем поковырялся и все никак 🙂
Вы говорите "Я вывожу название блога логотипом-картинкой, которую делаю ссылкой на на Главную страницу блога."
Это дает какие преимущества в оптимизации или же просто весьма оригинальный дизайнерский прием?
Аарон, это не дает преимуществ в оптимизации, но и минусов у этого тоже нет.
Это просто способ вывести логотип.
Ксана - ты молодец. Отличный пост, обоснованный, информация разжёванная.
Вопросов при прочтении не возникает. Побольше бы таких сайтов. Добавил сайт в закладки.
Спасибо, Ксана! Ваш сайт нашла всего несколько дней назад... Столько полезной информации! Пробую использовать ваши рекомендации, надеюсь на хороший результат 🙂
Подписалась на вашу ленту.
Спасибо. возможно неумный вопрос, а как бы научиться, что почитать? дабы задавать поменьше неумных вопросов?
Прочитайте выше опубликованный пост и сделайте все то, что в нем написано.
Если захотите узнать об этом больше, спросите google - в интернете можно найти всю нужную информацию по всем важным для сайта вопросам.
А научиться можно только практикуясь.
Можете еще почитать форумы о wordpress - там масса готовой информации: http://forum.maxsite.org/, http://mywordpress.ru/support
В самом начале статьи Вы написали "Для рубрик title будет выглядеть так:
Название рубрики | Название блога | Описание блога"
В каком файле вы предлагаете сделать эти изменения
В файле header.php, разумеется.
Аарон, вы меня уже слегка замучили вопросами.
В рунете существуют два отличных форума по WordPress:
http://forum.maxsite.org/
http://mywordpress.ru/support
Там есть ответы на многие ваши вопросы.
Ksana, я понимаю вас, но если бы на этих форумах, я получил бы ответы на эти и многие другие вопросы, я бы вас не беспокоил.
Да там давно есть ответы на все вопросы по WordPress.
Просто читайте форум.
Подскажите, пожалуйста, одну простую вещь - как вы выводите код? Я пытаюсь опубликовать код своего баннера на странице, но сайт воспринимает его все равно как графический объект. Теги code и pre не помогают...
Плагин WP-Syntax.
Здравствуйте. У меня в один день вылетели 160 страниц (исключены Яндексом).
Пишет, что у меня там стоят теги но индекс. Но этого быть не может. Не подскажите, что это может быть.
Может встречалась такая ситуация? С уважением.
Нет, у меня такого не случалось.
Но, я думаю, что если Яндекс пишет, что страницы закрыты от индексации, то это так и есть.
А Вы проверьте свой робот txt
Скажите мне пожалуйста, а как можно понять, что сайт уже раскручен. И можно ли считать сейчас прогон по каталогам нужной вещью?
Раскрутка - процесс бесконечный и только вы сами можете определить, достаточно ли вам результата раскрутки.
Вообще, стоит поставить себе цель, предпринять какие то меры для раскрутки, а потом оценить результат. И думать, достаточно ли вам того, что вы добились или нужно идти дальше.
Что касается каталогов, я бы не стала рисковать.
От общедоступных каталогов толку мало, а вреда может быть много.
Спасибо вам большое)
Значит каталоги отпадают... тогда будем искать другие способы
Для меня оптимизация сейчас играет главную роль, я стараюсь оптимизировать буквально все: начиная от главной страницы и заканчивая WP. Спасибо ваша статья мне кое-что прояснила
Ксана, уточните, пожалуйста, эти коды надо просто вставить в header.php или заменить то, что там есть? Кстати, в моей теме ничего похожего нет совсем. Этот вариант подходит для любой темы вордпресс?
Зависит от того, что есть в вашей теме.
Если чего то нет, то вставить, если есть, но не в таком виде, то заменить.
Здравствуйте, Ksana!
Спасибо за познавательную статью.
При автоматизации процесса создания титлов, название главной страницы приобретает вид:
Название записи | Название блога | Описание блога
Название записи - последняя запись в блоге.
Так и задумано или это побочный эффект? 🙂
Это просто вариант title.
Пользуясь примером, вы можете сформировать title так, как вам больше нравится.
Я наверное не совсем правильно сформулировал вопрос. Мне предложенный Вами способ автоматизации, очень понравился, но так как слабо разбираюсь в материале, не могу понять возможно ли при этом title главной страницы назначить отдельно?
Да, последнее условие в коде - это как раз title для Главной.
Действительно, стоило смотреть внимательнее :). Благодарю.
Оксана, привет!) Вопрос такой - какие проблемы могут возникнуть при установки новой, данной темы на мой блог и как лучше их минимизировать, что посоветуете?
У меня такая мысль была, деактивировать настройки темы, плагинов, всех, удалить их файлы, сделать бекап. И только потом ставить новую темы. Что скажете? Спасибо за ответ, очень важно.
Да, так можно сделать.
Хотя, как правило, достаточно деактивировать виджеты и плагины и удалить их настройки (если такая функция предусмотрена в плагинах).
Здравствуйте! Я использую для создания тегов плагин All in one Seo Pack. У меня мультиязычный блог, соответственно для каждого языка своя главная страница, а плагин позволяет задать теги только для одной главной страницы, которые используются и для всех остальных.
Не подскажете как можно прописать теги для главных страниц на других языках? Структура ссылок site.com - основная главная страница, site.com/en - главные на других языках.
Зависит от того, каким образом вы реализуете мультиязычность.
Без изучения структуры сайта на ваш вопрос ответить невозможно.
В статье Вы пишете, что можно задать уникальный тайтл фактически для каждой страницы блога - может есть возможность задать такой тайтл например конкретно для страницы site.com/en ?
Возможность есть, но в комментариях нельзя опубликовать код, поэтому подсказать вам не получается.
Попробуйте написать самостоятельно, используя, как пример код из этого поста.
К сожалению я не настолько силен в PHP...
Здравствуйте, Ксана! У меня я случилась беда! Видимо, я что-то не так сделала... Добавила ваш код для вывода статей той же рубрик в файл functions.php. После того, как нажала кнопку "Обновить файл", получила: На веб-сайте произошла ошибка при получении http://myempeiria.ru/wp-admin/theme-editor.php?file=functions.php&theme=Aqua&scrollto=5780&updated=true. Веб-сайт может быть закрыт на обслуживание или настроен неправильно.
Сайт теперь не открывается никак! По адресам страниц тоже... Подскажите, пожалуйста, как можно исправить положение?
1. Перед внесением любых изменений на сайте, нужно сделать копию файлов, который вы собираетесь править.
2. Если у вас нет сохраненного файла, попробуйте удалить ту часть кода, которую вы добавили в тему.
Если есть, загрузите на сайт сохраненный файл и вносите изменения очень аккуратно, чтобы ничего не нарушить в существующем коде.
Спасибо за ответ! О сохранении я и не подумала... Дело в том, что я вообще не могу теперь попасть на сайт. Не только в панель управления, а даже как посетитель.... Он не открывается по ссылкам. По стрелке "назад" в браузере я удалила часть кода, которую вставила, но при обновлении все равно вылетаю.
Тогда, стоит обратиться к техподдержке вашего хостинга и попросить удалить тему с сайта.
После этого закачайте файлы темы заново и активируйте тему.
То есть благодаря этой статье от плагинов ал сео пак или платинум можно совсем отказаться? (А если оставить, то будут ругаться с этими кодами?)
И используете ли вы на этом сайте ал ин сео пак и т.п. ?
1. Да, если вам не нужно, чтобы title отличался от заголовка статьи, то можно отказаться.
2. Нет, я не пользуюсь плагинами для оптимизации.
Добрый вечер! Я правильно поняла, что если все это проделать, то title и description будут автоматически проставляться из самой статьи? А то я приобрела у Вас тему City News, но пока стоит плагин All in one seo, информация из встроенных в тему таких же полей не считывается.
В моих темах встроенная оптимизация, т.е. все, что нужно, там есть. Не нужно ничего менять.
И плагин для оптимизации не нужен.
Так и не поняла, в каком именно разделе редактора на сайте можно проделать эти изменения. Подскажите, пожалуйста, Ксана.
В файле header.php
Спасибо! Но я все равно не поняла, в какой именно месте в хедере прописать указанное. при публикации постов в теме City News я вижу эти блоки как титл и description. Но автоматом они не заполняются.
В теме City News ничего прописывать не нужно. Там уже все сделано.
Вам нужно только заполнить SEO блок на странице добавления записи.
Больше ничего делать не нужно.
Получается, я не буду видеть всех этих описаний напротив каждой записи в админ-панели, как в случае с плагином? Я-то подумала, что автоматически проставляются все данные.
Вы будете видеть их ПОД окном редактора на странице добавления записи.
Более того, вы сами их писать будете :).
А я по аналогии с плагином ищу напротив каждой записи)))
Людмила, зачем "заголовки разделов сайдбара/футера" брать в теги h2? Не лучше ли в h4? (я сделал именно так)
Если заголовки в сайдбаре не являются ссылками, то разнице нет.
«вместо стандартной ссылки "Читать далее" под анонсами постов написать "Читать далее" продолжение поста». - Посмотрите, Ксана, как у меня на сайте реализована данная функция (никаких "читать далее")
Очень понравилась идея ставить "ключевики" в футер сайта. Подумаю над этим.
Можно и так, как у вас :).
Хотя принципиальной разницы не вижу.
Ксана,спасибо за очень полезную статью
воспользовался Вашими советами по первым трем пунктам
TITLE,DESCRIPTION, и KEYWORDS:
появился вопрос по тегу KEYWORDS..." Здесь будет перечень ваших ключевых слов"
в этом месте нужно подставлять свои ключи ?
все перечисленные коды я вставлял в header.php,
оставшиеся коды нужно вставлять туда же ?
Вы уж извините за вопросы от "чайника" но на спец форумах обычно отвечают."Ты не знаешь даже такого ? "
тем самым просто отбивая охоту что либо спрашивать вообще.
сайт http://evpatoriya-leto.crimea.ua/
извиняюсь,не нашел поля для вставки ссылки на сайт.
Да.
Оставшиеся, это какие?
Оставшиеся коды нужно вставить как, как это написано в посте :).
Например, теги H1 нужно вставить в файл single.php.
Оставшиеся....это те которые указаны ниже в Вашей статье
Для WordPress это будет выглядеть так:
Читать далее продолжение поста
например.
Сразу еще вопрос
обязательно ли создавать статистическую главную страницу,или можно оставить как есть по умолчанию (у меня главная страница динамическая) ?
На динамическую страницу можно добавить статический текст.
Ксана ,спасибо за ответ,буду разбираться.
Здравствуйте Ксана
у меня опять вопрос
На странице одиночной записи, keywords будут создаваться из меток этой записи.
то есть,в метки записей нужно будет вбивать ключевые слова
по которым и будет продвигаться статья ?
я правильно понял ?
ну и если не тяжело,то напишите как, на динамическую страницу можно добавить статический текст.
или ссылку киньте на почту где почитать.
Да.
Открываете файл home.php или, если такого нет, то index.php и вставляете нужный текст в верхнюю или в нижнюю часть страницы до или после цикла.
Цикл начинается строкой: if (have_posts()):
А заканчивается: endif;
Затем, оформляете вывод вашего текста в стилях.
Это все :).
Ксана, спасибо огромное за Ваши статьи, очень полезно и познавательно!
У меня к Вам есть вопрос относительно "TITLE"... Настроил по вышеизложеной статье, всё отлично работает, но есть маленький нюанс, TITLE для главной странице в моём блоге формируется исходя из последней добавленной записи. Это нормально, но для порядка хотелось бы тут статический TITLE. Возможно ли как-то отдельно создать TITLE для главной странице?
Удалите wp_title('');
Здравствуйте, Ксана.
А в ваших шаблонах (я приобрела один из них) код уже оптимизирован или тоже надо прописывать заголовки h1 и так далее? И еще - титл, дискрипшен и кейнворды в каком файле прописывать?
Оптимизирован.
Добрый день. Спасибо за статью. Может кто поможет сделать, чтобы на сайте на главной логотип был в теге h1, а на других страницах просто ссылкой. Нигде не могу найти решения проблемы.Буду очень благодарен…
Можно написать простое условие:
Здравствуйте, вы не могли бы мне помочь с такой проблемой, хотя я даже и не знаю проблема ли это. Установил я себе карту сайта sitemap через SEO, и удалил два старых файла sitemap. Хотел спросить работает ли полноценно эта функция, если в корне блога нету sitemap.xml?
Что значит "sitemap через SEO" :)?
Разумеется, sitemap.xml должен быть в корне сайта.