Всем доброго дня, недавно применил достаточно малоизвестный (возможно и неизвестный) метод оптимизации для указанной cms. Представляю его для внимания пользователей, которые смогут отказаться от использования лишних плагинов, не нарушат работу админ панели и приведут исходный код страниц к нормальным оптимизационным показателям.
Что получилось в итоге:
1. Уникализация кода
2. Закрытие "мусорных" данных движка
3. Снижение скорости загрузки сайта
4. Как следствие, устранение нагрузки на mysql
5. Изчез спам- и вирусно-подобный трафик (по состоянию 10 дней после применения, не утверждаю что это будет и дальше)6. Устранение отслеживания действий в админ панели (метрика и т.д.)
На чем основано:
1. На применении функции
2. В качестве дополнения - изменение структуры папок (через wp-config.php). По этому пункту достаточно много материалов в сети. (если будет интресно, создам отдельную ветку)
Зачем это делается.
Исходя из наблюдений требования к сайтам ужесточаются и требуется не только уникальное контентное содержание, необходимость оптимизации кода (скорость и т.д.), но и уникальность програмного кода и общей структуры сайтов. В данном случае идет речь о фронте этой cms.
В моем примере, изначально задача стояла в приведении к нормальным показателям скорости ответа сервера. Который, к примеру, доходил до 2-3 секунд. И это все из-за плагинов по типу: wp-hide, head cleaner, WP Super Cache и т.д. Вариаций было много, но в итоге и со скоростью были проблемы, и нарушалась работа в административной части.
Собственно способ.
1. Создайте в корне сайта (2 папки)
css и js (названия могут быть любые). Там вы будете размещать файлы необходимых скриптов и стилей, которые предварительно скопировали из исходного кода. Можете при необходимости и в одну папку разместить, главное что-бы потом не самому запутаться.
2. Внесите правки в двух файлах темы: header.php и footer.php
Пример для header.php
По аналогии вносятся изменения в файле footer.php
Принцип думаю понятен.
Таким образом, выносится только необходимое отображение скриптов и стилей для посетителей сайта + минимизация запросов к базе+ устраняется весь базовый "мусор" движка: wlwmanifest, generator, json+oembed, shortlink и т.д. А административная часть работает исправно.
Далее, естественно, возникла проблема с выводом заголовков, мета-тегов и микроформатных данных из-за того, что по факту мы убрали всю позицию wp-header для посетителей сайта. Решение ниже.
3. Оптимизируем SEO плагины
Вы практически всегда используете SEO плагины, так как wordpress всегда хромает этим. В моем случае использовался плагин seopress.
Для его данных на странице, применилась замена отображения позиции wp-header на позицию bloginfo в исходном коде плагина. Это стандартное поле wp, при необходимости вы сами можете расположить custom field и прописать это в плагине. Так как в wp тег <title> вводится в wp-header, необходиомо добавить его хук вывода.
Должно получиться примерно так:
Естественно удалите ,предварительно, указанную ниже аналогичную строку в файле header.php
Кому не подходит.
1. У кого на сайте обширная сетка пользователей с разными уровнями доступа. Здесь нужно использовать переменную уже из доступа групп, а не просто регистрации.
2. У кого на сайте имеются визуальные конструкторы, генерирующие свои индивидуальные стили на каждой странице (устанете добавлять изменения в выведенный файл стилей).
Обратить внимание.
1. Не тестировалось с woocommerce, предполагаю ошибку всех расширений с ajax (естественно, который встроенный в wp-admin).
2. Явно будут прогнозируемые проблемы для использования встроенного в wp-includes jquery. Поэтому подключите jquery напрямую через папку js (вы создали в корне)
3. Генерация заголовков в архивах рубрик происходит неправильно (выводится title последней записи) - пока не разобрался.
Что получилось в итоге:
1. Уникализация кода
2. Закрытие "мусорных" данных движка
3. Снижение скорости загрузки сайта
4. Как следствие, устранение нагрузки на mysql
5. Изчез спам- и вирусно-подобный трафик (по состоянию 10 дней после применения, не утверждаю что это будет и дальше)6. Устранение отслеживания действий в админ панели (метрика и т.д.)
На чем основано:
1. На применении функции
Код |
---|
<?php if ( is_user_logged_in() ) { ?> |
Зачем это делается.
Исходя из наблюдений требования к сайтам ужесточаются и требуется не только уникальное контентное содержание, необходимость оптимизации кода (скорость и т.д.), но и уникальность програмного кода и общей структуры сайтов. В данном случае идет речь о фронте этой cms.
В моем примере, изначально задача стояла в приведении к нормальным показателям скорости ответа сервера. Который, к примеру, доходил до 2-3 секунд. И это все из-за плагинов по типу: wp-hide, head cleaner, WP Super Cache и т.д. Вариаций было много, но в итоге и со скоростью были проблемы, и нарушалась работа в административной части.
Собственно способ.
1. Создайте в корне сайта (2 папки)
css и js (названия могут быть любые). Там вы будете размещать файлы необходимых скриптов и стилей, которые предварительно скопировали из исходного кода. Можете при необходимости и в одну папку разместить, главное что-бы потом не самому запутаться.
2. Внесите правки в двух файлах темы: header.php и footer.php
Пример для header.php
Код |
---|
<?php if ( is_user_logged_in() ) { ?> <?php wp-header() ?> <?php } else { ?> <link href="/css/ваш-стиль.css" rel="stylesheet"> <?php } ?> |
Код |
---|
<?php if ( is_user_logged_in() ) { ?> <?php wp_footer() ?> <?php } else { ?> <script type="text/javascript" src="/js/ваш-скрипт.js"></script> Код метрики и т.д. <?php } ?> |
Принцип думаю понятен.
Таким образом, выносится только необходимое отображение скриптов и стилей для посетителей сайта + минимизация запросов к базе+ устраняется весь базовый "мусор" движка: wlwmanifest, generator, json+oembed, shortlink и т.д. А административная часть работает исправно.
Далее, естественно, возникла проблема с выводом заголовков, мета-тегов и микроформатных данных из-за того, что по факту мы убрали всю позицию wp-header для посетителей сайта. Решение ниже.
3. Оптимизируем SEO плагины
Вы практически всегда используете SEO плагины, так как wordpress всегда хромает этим. В моем случае использовался плагин seopress.
Для его данных на странице, применилась замена отображения позиции wp-header на позицию bloginfo в исходном коде плагина. Это стандартное поле wp, при необходимости вы сами можете расположить custom field и прописать это в плагине. Так как в wp тег <title> вводится в wp-header, необходиомо добавить его хук вывода.
Должно получиться примерно так:
Код |
---|
<?php if ( is_user_logged_in() ) { ?> <?php wp-header() ?> <?php } else { ?> <title><?php $meta_print_value=get_post_meta(get_the_ID(),'_seopress_titles_title',true); echo($meta_print_value); ?> </title> <?php bloginfo() ?> <link href="/css/ваш-стиль.css" rel="stylesheet"> <?php } ?> |
Естественно удалите ,предварительно, указанную ниже аналогичную строку в файле header.php
Код |
---|
<meta charset="<?php bloginfo('charset') ?>"> |
Кому не подходит.
1. У кого на сайте обширная сетка пользователей с разными уровнями доступа. Здесь нужно использовать переменную уже из доступа групп, а не просто регистрации.
2. У кого на сайте имеются визуальные конструкторы, генерирующие свои индивидуальные стили на каждой странице (устанете добавлять изменения в выведенный файл стилей).
Обратить внимание.
1. Не тестировалось с woocommerce, предполагаю ошибку всех расширений с ajax (естественно, который встроенный в wp-admin).
2. Явно будут прогнозируемые проблемы для использования встроенного в wp-includes jquery. Поэтому подключите jquery напрямую через папку js (вы создали в корне)
3. Генерация заголовков в архивах рубрик происходит неправильно (выводится title последней записи) - пока не разобрался.
Изменено:
sawf - 19 Апреля 2021 12:47