Восьмибитный путь MODx revo,
часть 3:
SEO-friendly, как сделать удобным внесение SEO настроек

Восьмибитный путь MODx
или

Сайт с нуля MODx revo, часть 3:
SEO-friendly, как сделать удобным внесение SEO настроек

Изумительное свойство modx revolution - это божественное управление SEO-настройками сайта и бесподобный контроль за процессом ввода и вывода данных менеджером. Сделай редактирование файла robots txt из админ-панели, и для этого создай новый шаблон:

создай новый шаблон

И создай страницу robots txt, тут в «псевдониме» необходимо указать только название файла без расширения: «robots», .txt - modx добавит автоматически. И скрой его из меню сайта, чтобы оно не палилось сниппетами вывода менюшек.

Отредактируй настройки этой страницы:

создай страницу robots

Рекомендуемое
содержимое robots.txt

User-agent: *
Disallow: /index.php
Disallow: /core
Disallow: /connectors

Crawl-delay: 3

Host: [[++http_host]]
Sitemap: [[++site_url]]sitemap.xml

Где [[++site_url]] - автоматически подставит домен сайта.

Дальше идешь в Системные настройки → Настройка форм и создаешь новый профиль «Редактирование страниц».

Настройка форм

Нажав на него правой кнопкой мыши выбирай «Редактировать». Внутри создай новый набор правил на действие «Создание ресурса» для шаблона «txt».

создай новый набор правил

Правой кнопкой мыши нужно «Отредактировать» этот набор, для этого сними галочки со следующих полей:

Теперь при создании страницы с шаблоном «txt» - нет лишних полей, не нужных при редактировании страниц, которые представляют из себя текстовый файл. Но можно и просто создать файл robots txt в корне вкладки Файлы, как по мне, удобней управлять сайтом со вкладки Ресурсы и править плантацией риса, это дело вкуса.

удобней управлять сайтом со вкладки Ресурсы или Файлы?

Вернись к набору параметров и сделай точно такой же набор для действия «Обновить ресурс» с шаблоном «txt». Или просто скопируй этот набор правой кнопкой мыши.

Так же я рекомендую создать набор правил на действие «Создать ресурс», шаблон оставляем пустым.

создать набор правил на действие Создать ресурс

Убираем галочку:

Ты действительно не понял,
что я имел в-виду?
рой бидрил ооочень близко, поверь

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

Во вкладке «Регионы» убираем нахуй галочки:

По тем же абсурдным соображениям воображения. Это спрячет раздел с TV полями, вкладку Настройки и Группы ресурсов.

Использование мета-тегов
в modx revo

Я уже давно обкатываю следующую схему для SEO настроек сайта, идем в Системные настройки → «Управление словарями»

Фильтруй по core → resource → ru и меняй ключи:

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

Установи компоненты: SEO Pro и SEO Tab. Следуй в Системные настройки и фильтруй по seopro. Меняй:

Закомментируй следующие строчки в файле: /assets/components/seopro/js/mgr/seopro.js (в новых версиях вроде уже нет таких строк)

/*
if (field === 'pagetitle' || field === 'longtitle') {
  var extra = ' | ' + MODx.config.site_name;
  charCount = charCount + extra.length;
}  
*/

Это исправит точный подсчет символов при вводе мета-тегов. Возможно надо будет обновить кэш браузера ( ctrl+ f5 ).

Теперь при редактировании страниц, все SEO-теги легко и комфортно можно отредактировать, с учетом кол-ва вводимых символов и фокусных фраз:

SEO-настройки

А на вкладке SEO, теперь есть мега-удобный редактор xml карты и индексации сайта. Так же при смене url страницы, ей автоматически присвоиться 301-редирект.

мега-удобный редактор xml карты и индексации сайта

Нау, что бы это все хорошо отображалось в самом коде сайта, с помощью компонента «MetaX» делай следующее - в шаблоне страниц, там где идут мета-теги все удаляй и вставляй код:

[[MetaX?tpl=`metax-html5`]]

Далее, отредактируй этот чанк MetaXmetax-html5:

<base href="[[++site_url]]" />
<meta name="robots" content="[[+seoTab.robotsTag]]" />
<meta http-equiv="Content-Type" content="[[*contentType:lcase]]; charset=[[++modx_charset]]" />
<link rel="canonical" href="[[+metax.canonical]]" />
<title>[[*longtitle:empty=`[[*pagetitle]]`]]</title>
[[*description:notempty=`<meta name="description" content="[[*description:strip]]" />`]]
[[*introtext:notempty=`<meta name="keywords" content="[[*introtext:strip]]" />`]]
[[+metax.css]]
[[+metax.rss]]

Что сейчас происходит? Если в настройках SEO страницы убирать индексацию страницы, ей, при ранжировании нихуя не светит?! автоматически будет присваиваться соответствующий мета-тег: noindex или nofollow.

Создай страницу ошибки 404,
страница не существует

Как правило для этой страницы подойдет шаблон «Статические страницы», если у нее нет уникального оформления, но если ее дизайн сверх пиздат и не на ссаном бутстрапе — нужно создать отдельный шаблон, в этой статье это рассматривать не буду. У меня она простая для сверх-нубов.

Создай саму страницу, с названием «Ошибка 404! Страница не существует...» и скрой ее из меню. В содержимом, можешь написать какой-то текст: объясняющий пользователю - что он ошибся при вводе ссылки, или о том, что эта страница - уже давно нахер никому не сдалась...

В SEO-настройках, убери ее из генерации карты sitemap.xml.

Далее идешь в системные настройки и фильтруешь по категории core → Сайт, ключ error_page меняй на id только что созданной страницы.

Сделай карту сайта sitemap.xml
для отечественных поисковых систем

Создай новый шаблон с названием «sitemap xml» и кодом:

[[!StercSeoSiteMap]]

Подключи воображение и сделай корректную настройку форм для этого шаблона.

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

Создай страницу с названием «sitemap», шаблоном «sitemap xml», скрой ее из меню и в настройках выбери тип содержимого «XML». И, соответственно убери эту страницу — в SEO настройках — из генерации sitemap.xml. Кстати страницу robots.txt - тоже, на счастье, убери к лучшим временам.

Нынче на сайте удобная и прозрачная система управления SEO-настройками, поисковые системы будут воздыхателями сайта и попробуют пошкодничать в топе на поиске.

Оптимизируй их всех

Для кэширования фронтенд элементов, добавь в .htaccess следующий код, кажись это настройки из Boilerplate, вроде довольно устаревшие, так что вероятно пора их обновить.

php_flag register_globals Off

php_flag zlib.output_compression On
php_value zlib.output_compression_level 5



# сжатие text, html, javascript, css, xml:
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>

# ------------------------------------------------------------------------------
# | Compression                                                                |
# ------------------------------------------------------------------------------

<IfModule mod_deflate.c>

    # Force compression for mangled headers.
    # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping
    <IfModule mod_setenvif.c>
        <IfModule mod_headers.c>
            SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
            RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
        </IfModule>
    </IfModule>

    # Compress all output labeled with one of the following MIME-types
    # (for Apache versions below 2.3.7, you don't need to enable `mod_filter`
    #  and can remove the `<IfModule mod_filter.c>` and `</IfModule>` lines
    #  as `AddOutputFilterByType` is still in the core directives).
    <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE application/atom+xml \
                                      application/javascript \
                                      application/json \
                                      application/rss+xml \
                                      application/vnd.ms-fontobject \
                                      application/x-font-ttf \
                                      application/x-web-app-manifest+json \
                                      application/xhtml+xml \
                                      application/xml \
                                      font/opentype \
                                      image/svg+xml \
                                      image/x-icon \
                                      text/css \
                                      text/html \
                                      text/plain \
                                      text/x-component \
                                      text/xml
    </IfModule>

</IfModule>

# ------------------------------------------------------------------------------
# | Expires headers (for better cache control)                                 |
# ------------------------------------------------------------------------------

# The following expires headers are set pretty far in the future. If you don't
# control versioning with filename-based cache busting, consider lowering the
# cache time for resources like CSS and JS to something like 1 week.

<IfModule mod_expires.c>

    ExpiresActive on
    ExpiresDefault                                      "access plus 1 month"

  # CSS
    ExpiresByType text/css                              "access plus 1 year"

  # Data interchange
    ExpiresByType application/json                      "access plus 0 seconds"
    ExpiresByType application/xml                       "access plus 0 seconds"
    ExpiresByType text/xml                              "access plus 0 seconds"

  # Favicon (cannot be renamed!)
    ExpiresByType image/x-icon                          "access plus 1 week"

  # HTML components (HTCs)
    ExpiresByType text/x-component                      "access plus 1 month"

  # HTML
    ExpiresByType text/html                             "access plus 0 seconds"

  # JavaScript
    ExpiresByType application/javascript                "access plus 1 year"

  # Manifest files
    ExpiresByType application/x-web-app-manifest+json   "access plus 0 seconds"
    ExpiresByType text/cache-manifest                   "access plus 0 seconds"

  # Media
    ExpiresByType audio/ogg                             "access plus 1 month"
    ExpiresByType image/gif                             "access plus 1 month"
    ExpiresByType image/jpeg                            "access plus 1 month"
    ExpiresByType image/png                             "access plus 1 month"
    ExpiresByType video/mp4                             "access plus 1 month"
    ExpiresByType video/ogg                             "access plus 1 month"
    ExpiresByType video/webm                            "access plus 1 month"

  # Web feeds
    ExpiresByType application/atom+xml                  "access plus 1 hour"
    ExpiresByType application/rss+xml                   "access plus 1 hour"

  # Web fonts
    ExpiresByType application/font-woff                 "access plus 1 month"
    ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
    ExpiresByType application/x-font-ttf                "access plus 1 month"
    ExpiresByType font/opentype                         "access plus 1 month"
    ExpiresByType image/svg+xml                         "access plus 1 month"

</IfModule>





Содержание:


31 марта 2016, 00:49
modx revolution


Авторизация
Зайди на сайт с помощью соц. сети:
Тебе — сюда нельзя!!!
На сайте присутствует апокалиптичная тарабарщина
и нецензурная брань.
Хмм... и мне-то вообще-то насрать...
Продолжить
Нет, уйти с сайта