оптимізація wordpress

Оптимізація WordPress. Навантаження на сервер і як її знизити

Ні, ми не чіпатиме файли движка, хоча я б там теж навів порядок, а оптимізувати ми будемо шаблон, вірніше файли шаблону.







Я давно обіцяв розповісти про те, як збільшити швидкість завантаження сторінок і можна сказати, що з цієї статті я починаю виконувати свою обіцянку.

Отже, навантаження на сервер - поняття всім знайоме. Багато веб-майстри вже віч-на-віч зіткнулися з цією проблемою і дуже хотіли б з нею розібратися. Проблема в основному проявляється, коли відвідуваність перевалює за 300 уникав на добу, але у деяких вона може початися і раніше.

Звичайно відвідувачі в цьому не винні, а винні самі веб-майстри, які в силу недосвідченості або з якихось інших причин, не займаються оптимізацією сайту.

оптимізація wordpress

У свою чергу, пошукові системи тепер також включають фактор швидкості завантаження сайту, в свої алгоритми ранжирування, так що зайве навантаження на сервер буде бити по просування всього проекту.

Прошу не плутати з SEO-оптимізацією сайту, до якої можна віднести такі роботи, як: настройка посилань ЧПУ. внутрішня перелінковка. 301 редирект і т.д.

Давайте напевно вже почнемо оптимізувати Поїхали!

Приклад зайвого навантаження на сервер.

Припустимо користувач зайшов на сайт, але що відбувається при відкритті сторінки? Як інформація виводиться на екран? Давайте простежимо цей процес на прикладі заголовка сайту.

Тема і URL головної сторінки сайту, якщо Ви пам'ятаєте, задається в настройках WordPress: адімнка -> Параметри -> Загальні. Всі настройки, наявні у вкладці «Параметри», заносяться в базу даних, а точніше, в таблицю wp-options. звідки згодом вони запитуються різними функціями і виводяться на екран.

Розробниками WordPres написано чимало функцій, але самі по собі вони виконуватися не можуть. Для повноцінної їх роботи необхідно якась сполучна ланка, в ролі якого виступає шаблон сайту.

Шаблон, як відомо, складається з ряду файлів, кожен з яких відповідає за відображення певної ділянки сайту. Нас же зараз цікавить шапка, де виводитися заголовок, тому відкриємо файл header.php і подивимося, що там прописано.

У більшості шаблонів, головний заголовок сайту укладений в тег h1. тому шукаємо ділянку коду з даними тегом. У моєму шаблоні код виведення заголовка виглядав так:

З анкором ми розберемося трохи пізніше, а зараз давайте познайомимося з функцією get_option ().

Функція get_option () і навантаження на сервер

Отже, ми вписали назву і URL головної сторінки сайту в налаштування WordPress і вони вирушило на зберігання в БД, в таблицю wp-options.

У момент, коли користувач відкриває будь-яку сторінку нашого ресурсу і файл header.php починає довантажувати шапку, відбувається активація функції get_option ().

Принцип роботи вищезгаданої функції полягає в зверненні до бази даних, а точніше до таблиці wp-options і в отриманні від туди певних даних, виходячи із заданих параметрів. Після чого, команда echo виводить отримані дані на екран.

Трохи важкувато, ну нічого, зараз я все поясню. У дужках вказується параметр, в нашому випадки get_option ( 'home'). який повідомляє функції, який тип даних їй треба отримати.







Параметр home дає команду функції запросити з БД URL головної сторінки. Стоп! Значить URL головної сторінки теж зберігається в базі даних? Вірно. І при відкритті сторінки функція його запитує, тобто, відбувається звернення до даних, які зберігаються на сервері.

А тепер уявіть, що на Ваш ресурс зайшли 100 відвідувачів і почали «пустувати», відкриваючи все нові і нові сторінки.

Ви напевно чули про атаки хакерів на різні сайти, під час яких на сервер обрушуються одночасно тисячі або навіть мільйони запитів, від чого сервер не витримує і відбувається блокування ресурсу.

Треба розуміти, що якщо ми знизимо кількість запитів до бази даних, то дозволимо сервера «дихати» вільніше і він пустить звільнилися ресурси на більш корисні справи, що звичайно позначиться на швидкості завантаження сторінок.

Повернемося до функції get_option (). Для отримання з БД тих чи інших даних, функція може приймати такі параметри:

Більшість перерахованих типів даних вказуються в налаштуваннях WordPress, у вкладці «Параметри». Винятком є: «Кодування сайту» - вказується безпосередньо в БД і «Каталог завантаження за замовчуванням« - опція була прибрана з налаштувань з версії 3.5.

Як і чим замінити функцію get_option () я розповім трохи пізніше, а поки давайте з'ясуємо, що за bloginfo () прописана в коді замість анкора.

Функція bloginfo () і навантаження на сервер

Ну добре, а сам заголовок звідки взявся? Тема також зберігається в базі даних, але в нашому випадки він був отриманий і виведений на екран інший функцією - bloginfo ().

На замітку! bloginfo () - це тег шаблону, який активує функцію get_bloginfo (). Може використовуватися в будь-якому місці шаблона.

Функція bloginfo () може приймати такі параметри:

Функція bloginfo () трохи відрізняється від функції get_option (). але працює за схожим принципом, тобто, запитує з БД ті чи інші дані і виводить їх на екран.

Варто сказати, що існують різні думки з-приводу створюваної функцією bloginfo () навантаження на північ. Але навантаження однозначно має місце і якщо є можливість її знизити, то гріх такою можливістю не скористатися.

Я зробив цілий комплекс заходів, після яких мій блог прискорився в два з лишнім рази.

оптимізація wordpress

оптимізація wordpress

Причому, я не використовую ніяких кеш-плагінів або скриптів, типу MaxCache, а також я не міняв хостинг і залишився вірним TimeWeb. Результат був досягнутий тільки завдяки оптимізації WordPress. Так що робіть висновки самі.

Звичайно, заходи які я зробив, стосуються не тільки скорочення запитів до БД і я поступово про все розповім, але в одну статтю, цей об'ємний матеріал, мені не запхати.

Так що чекайте нових потів, присвячених швидкості завантаження сторінок і щоб їх не пропустити, підписуйтесь на оновлення блогу.

Технологія скорочення запитів до БД

Нагадаю, як виглядає код заголовка в моєму файлі header.php:

А тепер, найцікавіше. Якщо заглянути в вихідний код, то код заголовка там прийме зовсім інший вигляд:

Ось такий код заголовка і повинен бути прописаний у файлі header.php. Тоді сервер позбутися двох абсолютно зайвих звернень, помножених на кількість відкритих сторінок.

Але тоді навіщо в файлах шаблону прописуються вищезгадані функції?

Справа в тому, що розробники не можуть знати, на якому домені надалі буде використовуватися зверстані ними шаблони і які назви буде у сайтів вони теж знати не можуть. Тому і були розроблені універсальні функції для всіх шаблонів, які отримують дані з БД.

Але ми то з вами знаємо, як називається наш сайт і домен нам теж відомий. Виходить так, що використовувати ці функції немає ніякої необхідності.

Тому, починаючи з файл header.php шукаємо ділянки коду, з вищезазначеними функціями, потім дивимося, як вони виглядають у вихідному коді і замінюємо.

Для закріплення матеріалу я наведу кілька прикладів. Ось код, який виводить інформацію про кодування.

Дивимося вихідний код:

Копіюємо рядок цілком, і вставляємо замість коду з функціями.

Код підключення файлу style.css:

Шлях до таблиці стилів виведений за допомогою функції bloginfo ( 'stylesheet_url'). Дивимося вихідний код:

Копіюємо посилання і замінюємо їй функцію. Йдемо далі

Дані два рядки виводять фавікон. а функція bloginfo ( 'template_url') вказує шлях до директорії, де зберігається картинка. Правильно буде так:

В принципі технологія проста. Вивчаючи файли шаблону, виявляємо функції get_option () і bloginfo (). дивимося альтернативу в вихідному коді і замінюємо, тим самим скорочуємо кількість запитів до БД, від чого трохи знизиться навантаження на сервер.

Звичайно оптимізація WordPress на цьому не закінчується і це тільки перший крок, так що слідкуйте за оновленнями блогу.

З повагою, Віталій Кирилов







Схожі статті