SEO-оптимизация MODx Revolution

Результаты кропотливой работы по оптимизации страниц

В этом руководстве будем настраивать наш MODx таким образом, чтобы он соответствовал минимальным требованиям SEO. Внедрение каждой доработки не занимает больше 2-3 минут, учитывая, что я предлагаю уже готовые варианты. Через 20 минут, следуя этому руководству, можно получить готовый к продвижению сайт.

Внимание! В статье, в примерах кода, между квадратными скобками поставлен знак пробела, потому что их слитное указание обрабатывается CMS'ой и не даёт посмотреть как должен выглядеть сам код. При копировании кода учитывайте это. Потом просто уберите пробелы, прошу.

Не забудьте оценить статью в самом конце, если вам всё понравилось! Мне будет очень приятно.


Заголовки Title и H1

Данные теги отвечают за отображение заголовков страниц:

В MODx как раз и есть такое деление:

Деление заголовков в админке MODx

Советую заполнять их как на примере выше. Короткий заголовок будет показываться на странице, и должен быть по праву лаконичным. А вот заголовок Title можно и подспамить немного, сделать длинным :)

Чтобы у нас заработали нужные теги:

Title:

Внутри раздела HEAD, в шаблоне страницы, необходимо добавить код:

<title>[ [*longtitle] ]</title>

H1:

Внутри раздела BODY перед основным контентом страницы добавить код:

<h1>[ [*pagetitle] ]</h1>

Если совсем не знакомы с HTML и сейчас было не очень понятно, то просто нажмите сейчас Ctrl+U и найдите эти теги в этой статье.

Мета-описание Description

Аналогично с заголовком Title, мета-описание Description может использоваться поисковыми системами для формирования сниппета страницы. Постарайтесь описывать контент страницы, суть вашей статьи или УТП бизнеса, чтобы пользователю было понятно на что он кликает, и что может получить после посещения страницы. При редактировании страницы в MODx, данный элемент у нас называется просто "Описание".

Описание страницы в MODx

Чтобы он показывался потом на странице, нужно внутри раздела HEAD (можно даже рядом с Title) добавить код:

<meta name="description" content="[ [*description] ]">

Keywords

Нет, не нужно! :)

Содержание данного тега уже минимум с 2009 года не используется Google в ранжировании. Устанавливать его на сайт нет нужды, хоть Яндекс в справке до сих пор не убрал данный тег из используемых, а Елена Першина очень сильно просит его заполнять:

Уважаемая Елена Першина рекомендует что-то непутёвое

Rel Canonical

Чтобы робот мог понимать, что URL https://shterkel.com/seo-optimizacziya-modx.html это основной вариант страницы, и что добавлять в индекс страницы вида https://shterkel.com/seo-optimizacziya-modx.html?utm=blabla не нужно, требуется установить указание на канонический вариант страницы. Подробнее про это в справке Яндекса. То есть после внедрения данной строки кода можете почти забыть про технические дубли страниц (контент один и тот же, но на разных URL).

Для установки корректного rel canonical нам нужно в шаблоне, внутри раздела HEAD (можно рядом с дескрипшеном), добавить код:

<link rel="canonical" href="[ [*id:is=`1`:then=`[ [++site_url] ]`:else=`[ [++site_url] ][ [*uri] ]`] ]">

Что делает данный код:

  1. Проверяет какую страницу мы хотим получить;
  2. Если главная, то отдаёт просто основной адрес сайта, например: https://shterkel.com/
  3. Если любая другая страница, то к основному адресу сайта подставляет ещё и "псевдоним" (alias) страницы, который и служит URL частью. Пример: https://shterkel.com/seo-optimizacziya-modx.html

Семантическая разметка

Open Graph

Данная семантическая разметка работает, когда кто-то вашей страницей делится в соцсетях или мессенжерах (появляется красивый сниппет со страницы). Описанием и заголовком в этом сниппете можно управлять как хотите, но я рекомендую связку короткого заголовка (pagetitle) и описания страницы (description).

Пример кода указан ниже. Его тоже нужно разместить в раздел HEAD.

<meta property="og:title" content="[ [*pagetitle] ]"/>
<meta property="og:description" content="[ [*description] ]"/>
<meta property="og:url" content="[ [*id:is=`1`:then=`[ [++site_url] ]`:else=`[ [++site_url] ][ [*uri] ]`] ]"/>

Если же вы хотите сделать длинный заголовок страницы, то замените в коде выше pagetitle на longtitle.

Семантическая разметка статей в формате JSON-LD

Ниже представляю рабочий вариант семантической разметки для статей, которая содержит в себе:

Обратите внимание, что изображение в статью у меня подтягивается отдельно настроенным способом (дополнительное поле в MODx, у меня оно названо как imageCat). Если у вас нет такого, то блок image нужно удалить. Кусок кода, который нужно убрать ниже:

"image": {
"@type": "ImageObject",
"url": "[ [*imageCat] ]",
"height": 200,
"width": 800
},

Полный код семантической разметки можно вставить в HEAD (по рекомендации Google), а можно и в BODY. За всю практику не нашёл отличий от размещения. Код всегда будет валидный.

<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Article",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "[ [++site_url] ][ [*uri] ]"
},
"headline": "[ [*pagetitle] ]",
"image": {
"@type": "ImageObject",
"url": "[ [*imageCat] ]",
"height": 200,
"width": 800
},
"datePublished": "[ [*publishedon:date=`%Y-%m-%d`] ]",
"dateModified": "[ [*editedon:date=`%Y-%m-%d`] ]",
"author": {
"@type": "Person",
"name": "Александр Штеркель"
},
"publisher": {
"@type": "Organization",
"name": "Блог Александра Штеркеля",
"logo": {
"@type": "ImageObject",
"url": "https://shterkel.info/img/avatar.png",
"width": 55,
"height": 55
}
},
"description": "[ [*description] ]"
}
</script>

 


Оцените статью:

+6

Опубликовано: 25.08.19
Изменено: 14.02.20

Написал: Александр Штеркель