О SEO блогах на WordPress

В этой статье поведаю о зеленых попугаях в PageSpeed Insights и попаданием в топ Яндекса. Проведен эксперимент.

За основу я взял шаблон Reboot от команды WPSHOP (не реклама, раньше всегда использовал темы root, pluto или верстал сам).

На новом шаблоне изменил под себя дизайн, немного дописал CSS.

В шаблоне снёс подключение Google шрифтов, поставил свои библиотеки на хостинг, обязательно подключение шрифта с параметром font-display: swap;.

Проверка валидации показала предупрждение в подключении скриптов и стилей: для HTML5 считается устаревшим параметр "text/javascript" и др., решается добавлением в function. php шаблона (работает в большинстве случаев):

add_action( 'template_redirect', function(){
ob_start( function( $buffer ){
$buffer = str_replace( array( 'type="text/javascript"', "type='text/javascript'" ), '', $buffer );
$buffer = str_replace( array( 'type="text/css"', "type='text/css'" ), '', $buffer );
return $buffer;
});
});

Валидация успокоилась. Эдуард Шевелёв / shevelev.design

Далее подключаем модули:

Clearfy Pro - известность. Пришел на смену модуля MFP mod, кстати тоже еще актуален). С помощью него удаляется весь мусор из WordPress. Модуль проставляет заголовки Last Modified, удаляет JSON, jquery-migrate.min.js, производит минификацию HTML и много-многое другое полезное для SEO. Конечно, все это можно сделать вручную через function.php.

Yoast SEO - классика. Кроме разметки и мета, использую для генерации карты сайта. У Yoast есть дополнения для WooCommerce, пример работающего магазина на данном модуле - wpnull.org и еще миллионы сайтов. О All in One SEO Pack плохого ничего не могу сказать, но шаблоны делают под Yoast.

Really Simple SSL - позволяет настроить SSL и HSTS в один клик, либо все делаем без модуля в .htaccess. Включить редирект HTTPS на сайте - это верхушка айсберга защищенного соединения.

WP-Optimize - оптимизация и чистка БД, кеширование сайта.

Webcraftic Robin image optimizer - этим делом сжимаю изображения на всем сайте, доступна конвертация в WebP.

Яндекс.Турбо - тут понятно, использую только для статей, они сразу попадают в Яндекс после публикации и доступны в облегченной турбо версии сайта для мобильных устройств.

Если бы мне нужен был бы слайдер, я бы его скачал с CodePen или GitHub. Но не пользовался бы Slider Revolution, модуль крутой, но меня удобство не интересует, главное скорость, все через код. Contact Form 7 тоже выкинуть, свою PHP форму поставить и пусть работает на нужных страницах, а то подгружает свои библиотеки глобально.

Карта robots.txt сделана вручную, с учетом WooCommerce:

User-agent: *

Disallow: /cgi-bin

Disallow: /cart/

Disallow: /checkout/

Disallow: *?filter*

Disallow: *?add-to-cart*

Disallow: */trackback

Disallow: */feed

Disallow: /*attachment*

Disallow: */embed*

Disallow: */wp-json*

Disallow: /?

Disallow: /wp-

Disallow: /*?s=

Disallow: /*?

Disallow: /?s=

Disallow: /*&s=

Disallow: /search

Disallow: /author/

Disallow: /xmlrpc.php

Disallow: /readme.html

Allow: /wp-*.png

Allow: /wp-*.jpg

Allow: /wp-*.jpeg

Allow: /wp-*.gif

Allow: /wp-*.svg

Host: ДОМЕН

sitemap: КАРТА САЙТА

Для HSTS в .htaccess обязательно max-age=31536000

<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy: "no-referrer-when-downgrade"
</IfModule>

Остался jQuery, на который постоянно жалуется Google. Встроенная в ядро библиотека jQuery WP подключается в файле wp-include/script-loader.php. Если это не предусмотрено шаблоном, как в нашем случае. Переносим jQuery в футер, используем команду:

function jquery_mumbo_jumbo() {

wp_dequeue_script('jquery');

wp_dequeue_script('jquery-core');

wp_dequeue_script('jquery-migrate');

wp_enqueue_script('jquery', false, array(), false, true);

wp_enqueue_script('jquery-core', false, array(), false, true);

wp_enqueue_script('jquery-migrate', false, array(), false, true);

}

add_action('wp_enqueue_scripts', 'jquery_mumbo_jumbo');

jQuery блокирует отрисовку, особенно на мобильных устройствах, Google хамит на эту библиотеку. Если это не мешает загрузке контента на сайте, убираем в футер.

*Замечу, что шаблон уже в основном оптимизирован разработчиками, не использует тяжелых фреймворков и билдеров. В коде нет латиницы. Если Вы берете шаблон из themeforest, крайне рекомендую удалять неиспользуемый CSS и JS вручную, перекидывать скрипты в футер вручную (увеличиваем скорость отрисовки контента) и т.д. Не использовать плагины для автоматической оптимизации и сжатия кода. Обычно на темах навешено 100500+ плагинов, которые подгружают свои библиотеки на всем сайте, да и style.css наполнен 30ью демо-сайтами. Как по мне, любые автоматические оптимизаторы зло, да еще и реклама в коде. Максимум плагин для кеширования и работы с БД.

Что получилось?

Для эксперимента собрал статью о procreate, полтора месяца назад ключ "procreate photoshop" собирал 1500 запросов/мес. Страница сразу оказалась в топе и уже долго там находится.

Статья в поиске Эдуард Шевелёв / shevelev.design

Помимо этого

Представление в поиске внутри Эдуард Шевелёв / shevelev.design
Представление в поиске снаружи Эдуард Шевелёв / shevelev.design
PageSpeed Insights Эдуард Шевелёв / shevelev.design
HSTS stspreload.org Эдуард Шевелёв / shevelev.design
pingdom.com Эдуард Шевелёв / shevelev.design

На сайте нет семантического ядра, разнообразный контент на любые темы.

Хостинг: самый дешевый тариф Бегет, у них кстати сейчас PHP 7.4. Хостинг тоже тестирую, до этого пользовался МакХостом без проблем. Пока Бегет радует каждый день падением сайта и потерей соединения с сервером БД. Раньше такого не было:(

CDN на сайте не используется, выделенный IP тоже. Всегда спасает кеш при недоступности сайта. Есть еще много доработок, занимаюсь.

0
25 комментариев
Написать комментарий...
Ришат Рафиков

За модули спасибо! Интересно

Ответить
Развернуть ветку
Beget

Эдуард, здравствуйте!

Посмотрели ваш тикет и аккаунт. Проблемы были вызваны вредоносной активностью на сайтах, которые размещаются рядом с вашим аккаунтом на этом сервере виртуального хостинга. Нам жаль, что вы столкнулись с подобной ситуацией. На новых серверах shared-хостинга, где открыта регистрация, подобные ситуации могут неизбежно встречаться. Дело в том, что когда на сервере размещаются сайты новых клиентов, некоторые из них могут потреблять множество ресурсов (порой десятикратно, а то и стократно превышающие допустимые лимиты) или сайты на которые ведётся DDoS. О проблемности попадающих на сервер сайтов можно узнать только по факту и по проявившейся проблеме. Поэтому администраторы 24/7 мониторят такие случаи. Иногда случается, что быстро устранить нет возможности или ситуация повторяется, но уже с сайтом на др. аккаунте. Но наши специалисты следят за этим и решают их как можно быстрее, чтобы сайты работали исправно.

На данный момент сервер с вашим аккаунтом работает стабильно. Если что-то пойдет не так - обращайтесь в тикет или любым удобным способом, поможем.

Ответить
Развернуть ветку
Эдуард Шевелев
Автор

Спасибо! Да, сейчас стабильно работает. У Вас раньше не было подобных проблем, сам в шоке. Я подключал к Вашему хостингу большое количество своих клиентов, создавал сайты на бегете, все на протяжении 4 лет и ни одной проблемы. 

Ответить
Развернуть ветку
Anna Petrova

Спасибо за плагины. Посмотрю.
Мне больше нравится делать на теме Divi.
По поводу "топ Яндекса" - мой новый сайт через 2 недели на первом месте без рекламы. Ссылки не будет, т.к. не реклама ))
Все сайты лежат на свебе (sweb.ru). Отлично работают + техподдержка не бросает, даже если у автора кривые руки )
Мои плагины:
Classic Editor
Code Snippets
Envira Gallery
JivoSite
MFP mod WP
Site Kit от Google
Wordfence Security
Yoast SEO Premium
Уведомление о куки
Яндекс Метрика
—--—--—--—-
Давайте поделимся многолетним опытом и выложим темы и плагины!

Ответить
Развернуть ветку
Avdotii Pedishnii

Раз уж вы так обожаете плагины, не забывайте ВОВРЕМЯ обновлять, хотя это помогает всего лишь в половине случаев,зависит от авторства уязвимости.
Ну а если сайт отдан заказчику, то обновлениями там точно не пахнет, редкий владелец сайта вообще в админку заходит...
Моё решение - вообще не ставить плагины, мой список - редко один, очень редко два плагина...
Например, вот про апрельскую дырку плагина из вашего списка - https://www.wordfence.com/blog/2020/05/vulnerability-in-google-wordpress-plugin-grants-attacker-search-console-access/
И т.д...
Плагин Живосайт. Ну ёмае)))

Ответить
Развернуть ветку
Anna Petrova

Спасибо

Ответить
Развернуть ветку
Anna Petrova

Ещё раз спасибо за советы. Живосайт удалён ))
По поводу кодить ручками. Моих знаний хватает только на установку плагинов и нажатия кнопки активировать )
Пока этого хватает для несколькостроничных статичных сайтов.

Ответить
Развернуть ветку
Привет

"Пока Бегет радует каждый день падением сайта и потерей соединения с сервером БД" - и так будет вечно, увы.

Ответить
Развернуть ветку
Ришат Рафиков

У меня тоже ничего на бегет не падает

Ответить
Развернуть ветку
Алексей Медведев

Хватит про beget херню сочинять🤣🤣🤣 ниче нигде не падает и не пропадает. Если руки из жопы, нехер на зеркало пенять! 

Ответить
Развернуть ветку
ezdiumno ru

Странные у вас заявы. Почти 4 года на Beget и ничего, тем более постоянно, не падает.
Видимо вы с коллегой настолько наСЕОшничали, что ваши системы начали нестабильно работать, а вовсе не хостинг.
Вот на МакХосте падало. Но редко. Они быстро все восстанавливали  Один раз, правда упали конкретно примерно на месяц, так пришлось им серверы из РФ переносить в Европу. Но это было один раз 

Ответить
Развернуть ветку
Эдуард Шевелев
Автор

Бегет классная вещь, на момент написания статьи у них были проблемы с сервером. Для меня было шоком, что бегет за 5 лет вдруг начал сдавать.

МакХост также пользую, проблем за 3 года не было. О тех работах предупреждают, поддержка работает мгновенно и интерфейс для работы шикарный.

Ответить
Развернуть ветку
Привет

"Видимо вы с коллегой настолько наСЕОшничали, что ваши системы начали нестабильно работать, а вовсе не хостинг." - я где-то об этом упомянул? Что и где я там насеошничал? Я занимаюсь сео? вот это поворот

Ответить
Развернуть ветку
Привет

Есть еще один вариант обрезки лишнего дерьма из коробки, называется:
 Must-use plugins (a.k.a. mu-plugins)

Почитать тут:

Ответить
Развернуть ветку
Avdotii Pedishnii

Странно слышать в одном тексте про оптимизацию для гугла и Yoast SEO...
Он у вас совсем не мусорит в исходном коде?
Он не нагружает сервер сотнями запросов?
Возможно у вас на сайте десяток страниц?

"Кроме разметки и мета, использую для генерации карты сайта."
Разметка - это 18 строчек в шаблоне (схемы Article, крошки, меню).
Мета-теги - это 45строчек в functions.php
Карта сайта  - банальный get_posts с аргументами, 14 строчек в шаблоне.
При этом все на автомате плюс шаблоны для мета-тегов если надо. Покажи автокейвордсы в Yoast???

Я первым вопросом клиенту спрашиваю, НАФИГА у вас установлен Yoast, отвечают99% именно так как вы пишите - для мета тегов))) за бортом остается 85% функционала.

Выпиливание джиквери в твоем варианте - -сначала разрешаем движку подгрузить джиквери, затем ПЛАГИНОМ выпиливаем сформированный код. Норм, чо...

Ответить
Развернуть ветку
Эдуард Шевелев
Автор

Трафик на страницу каждый день идет и не только по одному ключу (только зашел в метрику). Смысл статьи не в супер-SEO стратегии сайтов на WP, а именно оптимальной базовой настройке блога, который будет красиво отображаться в Яндексе и выходить легко в топ по НЗ запросам. Если мы возьмем супер конкурентные сферы, тут не обойтись молодым сайтиком и плагинами. Я не гипер-сеошник, не копирайтер. Публиковал статью в "личный опыт" и больше занимаюсь дизайном. Но имея жалкий блог, абсолютно бесплатно по НЗ можно выйти на какой-то естественный трафик. 

Еще в 2018 по такой схеме новый сайт за 5 часов попал в топ, на только-что созданном домене. 

Это реально работает, частично практикуется в проектах пузата (но там они не вмешиваются в код, чисто плагины ставят, "и так сойдет").

Ответить
Развернуть ветку
Максим Пряник

Пузат и его курсы это помойка. Найдите его пост на фб, в котором он продает все свои проекты на телдери и посмотрите их, и цены на них. Типичный инфоцыган.

Ответить
Развернуть ветку
Месье Никита

Такой себе эксперимент на одном сайте. И на одном key. 

Ответить
Развернуть ветку
Аркадий Паровозов

Смысл статьи в рекламе плагинов, все вышеперечисленное делается руками, ну кроме Yoast SEO

Ответить
Развернуть ветку
Эдуард Шевелев
Автор

Соглашусь со всем. Полезный авторитетный ответ, спасибо.

Конечно Yoast большой комбайн с широким функционалом для работы с тысячами страниц в приятном интерфейсе без кода для всех желающих, который наверно должен не простаивать, и  нет смысла ставить ради десяточка страниц. Мета можно вручную написать в хедере шаблона, да и карту сайта сгенерить. Не забываем о комментарии кода с рекламой Yoast. И нагрузке при генерации страниц. НО если мы не используем кеш. При кешировании сайта, генерации и обращении к БД быть не должно, сделать предзагрузку всех страниц заранее в общей базе, сайт будет открываться с отдельной папочки CASH уже в сжатом виде со всеми мета, твиттерами, фейсбуками, текстами, заголовками, картинками... Я говорю сейчас о сайте без активных виджетов, о простом блоге,  где нет надобности что-то искать в БД, там где контент постоянный и статичный, без мультирегиональности, геолокации, активных слайдеров с товарами и т.д. Например, при использовании CDN, все страницы уже созданы и распространяются кешем по серверам. 

В принципе, все можно сделать руками вместо плагинчиков.  Да и зачем WordPress, когда можно и на html блог сделать, это будет еще быстрее. Я поверхностно написал статью, здесь описаны самые быстрые, простые и дерзкие способы. 

JQuery это широкий вопрос. Если использовать предзагрузку всех страниц в кеше,  у нас получается одна статика без обращений к БД и работы движка WP. JQuery если он нужен, например для анимации, прописываем библиотеку в футере, которая непосредственно будет в статике, главное чтоб внешний вид был в балансе со скоростью загрузки. А вот админка уже не статика, как и WooCommerce, здесь совсем неактуально хождение по кругу загрузки и работы скриптов. Но если библиотеку просто удалить из WP, тогда ее надо вставлять вручную в админку. Каждая ситуация уникальна, функция по JQuery взята с stackoverflow https://stackoverflow.com/questions/35663927/wordpress-jquery-on-footer

Ответить
Развернуть ветку
Евгений Калинский

Для оптимизации сайта под PageSpeed отлично подойдёт наш плагин Helper Lite for PageSpeed за счёт отложенной асинхронной загрузки картинок

Ответить
Развернуть ветку
Elena Shikova

Может еще в плагин добавите замену figure на что-то более подходящее по заветам Demi Murych, чтобы было нам счастье в одном сосуде.

Ответить
Развернуть ветку
Евгений Калинский

Мы это добавляем, но в премиум версию плагина

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Аркадий Паровозов

«Еще в 2018 по такой схеме новый сайт за 5 часов попал в топ, на только-что созданном домене.»

Ну как бы вот..... думаю остальное ветер)))

Ответить
Развернуть ветку
Эдуард Шевелев
Автор

Последнее время пользуется спросом 

Ответить
Развернуть ветку
22 комментария
Раскрывать всегда