Поради щодо оптимізації швидкості сайту, з чого почати?


16

Мене попросили спробувати знайти рішення для повільного часу завантаження нашого сайту Magento. Я пройшов тест Yslow і, здається, найбільші кривдники

  • Зробіть менше HTTP-запитів
  • Використовуйте CDN
  • Додати Закінчується Заголовки
  • Поставте Javascript внизу
  • Мінімізуйте jS та CSS
  • Налаштування тегів ET
  • Зменшити пошук DNS
  • Уникайте фільтра AlphaImageLoader

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

Я також дивився на плагін під назвою GTMetrix, який, здається, робить багато цього для вас у адміністратора (комбінуйте CSS-листи, оптимізуйте зображення тощо), чи має хто-небудь з цим досвід? Зазвичай я намагаюся уникати занадто багато розширень, які так глибоко входять в основні функції, але здається, що це може бути рішенням. http://gtmetrix.com/magento-optimization-guide.html

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

Заздалегідь спасибі.

введіть тут опис зображення

введіть тут опис зображення


Відповіді:


27

(скопійовано з мого власного блогу на веб- сайті https://www.gui.do/post/101-ways-to-speed-up-your-magento-e-commerce-weets )

А) Хостинг-середовище / Загальні поради

  1. Отримайте виділений сервер.
  2. Розмістіть свій сайт у країні, де перебувають ваші клієнти.
  3. Не розміщуйте на своєму веб-сервері файли, які ви не використовуєте, великі чи малі.
  4. Перейдіть на MySQL Admin та виберіть усі таблиці та відновіть, а потім оптимізуйте їх.
  5. Використовуйте прискорювач PHP, як APC, ZendOptimizer + або Xcache.
  6. Встановлюйте лише необхідні модулі Apache.
  7. Використовуйте Apache mod_expires і не забудьте встановити, як довго кешувати файли. Ви можете використовувати приклад нижче для конфігурації віртуальної версії Apache: # Увімкніть термін дії та встановіть за замовчуванням 0 ExpiresActive On ExpiresDefault A0 # Налаштуйте кешування медіафайлів на 1 рік (назавжди?) ExpiresDefault A29030400 Header append Cache-Control "public" # Налаштуйте кешування медіафайлів на 2 тижні ExpiresDefault A1209600 Заголовок додає Cache-Control "public" # Налаштувати кеш-пам’ять на тижні для загально оновлюваних файлів ExpiresDefault A604800 Header append Cache-Control "proxy-revalidate"
  8. Увімкнути стиснення Gzip у htaccess .
  9. Стисніть вихід, використовуйте zlib.output_compression або mod_deflate.
  10. Використовуйте мережу доставки вмісту (CDN) для паралельної передачі статичного вмісту. Існує розширення Magento, яке може допомогти вам зробити це із зображеннями категорій та продуктів: CDN Image One Pica . Але ... (див. Наступну пораду).
  11. Не використовуйте занадто багато різних зовнішніх джерел (для зображень, кадрів кадрів, (twitter / facebook) каналів тощо), тому що кожен пошук DNS займає додатковий час, і ви створюєте додаткову залежність (на якомусь сторонній сервері) для належного завантаження свого сайту. .
  12. Увімкнути Apache KeepAlives: переконайтеся, що у вашій конфігурації Apache увімкнено KeepAlives. KeepAlives - трюк, коли кілька запитів HTTP можна зв'язати через одне TCP-з'єднання. Налаштування кожного TCP-з'єднання вимагає додаткового часу, це може значно скоротити час, необхідний для завантаження всіх файлів (HTML, JavaScript, зображень) на веб-сайт. Більше інформації на Apache.org . Будьте обережні, хоча я чув від деяких, що це створює (багато) додаткове навантаження на сервер і може зірвати сервер у великі моменти руху!
  13. Мінімізуйте переадресації.
  14. Зробіть свій вихідний W3C сумісним. Помилки сповільнення браузера.
  15. Поміняйте Apache на NginX або Litespeed. Якщо це не варіант, перейдіть на Zend Server (в ідеалі не для CE-версії, щоб ви могли використовувати кешування на всій сторінці).
  16. Вимкніть або принаймні зменшіть реєстрацію веб-сервера (зменшує запис на диску).
    • Вимкнути журнал часу доступу. Magento Wiki : Для серверів Linux, якщо увімкнено журнал часу доступу на будь-якому з ваших розділів mysql, веб-сервера чи кешу, спробуйте вимкнути його для підвищення продуктивності. Якщо ви використовуєте ext3 або reiserfs, можливо, ви можете скористатися швидшими методами написання журналу. Для отримання додаткової інформації див. Linux.com .
  17. Скомпілюйте MySQL з джерела замість менеджера пакунків вашої ОС.
  18. Завжди оновлюйте до останньої версії Magento. Ви не тільки отримаєте більше функцій та виправлення помилок та безпеки, але з кожним оновленням Magento працює краще.
  19. Розмір кешованого запиту: Блог Magento : Змініть конфігурацію вашого сервера MySQL, щоб краще скористатися оперативною пам’яттю вашого сервера. Більшість дистрибутивів Linux надає консервативний пакет MySQL поза коробкою, щоб забезпечити його запуск у широкому наборі апаратних конфігурацій. Якщо у вас є достатня кількість оперативної пам’яті (наприклад, 1 Гб або більше), ви можете спробувати налаштувати конфігурацію. Нижче наведено приклад my.cnf, хоча ви хочете ознайомитися з документацією на MySQL для повного переліку директив налаштування та рекомендованих налаштувань.
  20. встановіть "php_value memory_limit 128M" у вашій конфігурації php або додайте її до свого .htaccess-файлу, щоб у вас не вистачало пам'яті.
  21. Використовуйте файлову систему на основі пам'яті для динамічних даних. Якщо ви зберігаєте динамічні дані ( var / cache , var / session ) в RAMdisk або tmpfs, введення / виведення диска зменшується.
  22. Змініть realpath_cache_size у php.ini.
    realpath_cache_size = 1M ( обережно , це є  в процесі апашей )    realpath_cache_ttl=86400 (ok for production site) 
  23. Memcache (для хардкор) задокументовано в http://www.magentocommerce.com/boards/viewthread/9037/ та інших підказок від http://alexle.net/archives/275, щоб підняти вас та працювати.
  24. Вимкніть директиву PHP open_basedir. Прочитайте це .
  25. Усуньте сканування структури каталогів для файлів .htaccess.
  26. Рекомендовано innodb_buffer_pool_size.
    • Комбінований веб-і db-сервер, 6 Гб оперативної пам’яті:  2-3 ГБ
    • Виділений сервер бази даних, 6 Гб оперативної пам’яті: 5 ГБ
    • Виділений сервер бази даних, 12 ГБ ОЗУ: 10 ГБ
  27. Кеш запитів: query_cache_size: 64MB, query_cache_limit: 2MB
  28. Використовуйте sa окремий сервер сервера для обробки користувачів адміністратора, обробляє активність бекенда (cron), попередньо генеруючи кешування на всій сторінці та обробляйте запити медіа
  29. Використовуйте декілька веб-вузлів (інтерфейсні сервери) для обробки веб-перегляду та оформлення замовлення.
  30. Використовуйте зворотне кешування проксі-сервера, пояснення Magento від @alistairstead: Лакіруйте свій магазин Magento, змушуйте його летіти !.
  31. Якщо у вас є популярний сайт, який сильно сканує пошукові системи, ви можете зберегти деякі ресурси, налаштувавши робот.txt.
  32. Спробуйте деякі з цих розширень кешу:
    • http://www.artio.net/magento-extensions/m-turbo-accelerator
    • http://www.aitoc.com/uk/magento_booster.html
    • http://www.tinybrick.com/magento-modules/performance.html/
  33. Встановіть додаток Yireo DisableLog. Це заважає Magento писати в базу даних безліч матеріалів, що марно, коли ви вже використовуєте щось на зразок Google Analytics.

Б) Шаблон

  1. Оптимізуйте всі свої (шаблонні) зображення. Більшість, якщо не всі, мають бути принаймні нижче 10 кбіт.
    • Обріжте пробіл за допомогою редактора зображень.
    • Використовуйте файли PNG8 або файли GIF, а не Jpegs і не використовуйте прозорість (залежно від того, скільки кольорів ви використовуєте та наскільки велике зображення, але спробуйте самі).
    • Масштабні зображення: створюйте зображення у потрібних вам розмірах, не змінюючи їх розмір у редакторі.
    • Використовуйте стиснення зображення (ви можете використовувати smush.it, щоб зробити це за вас).
    • Використовуйте CSS-спрайти, навіть є CSS-спрайти-генератори .
  2. Мінімізуйте свій Css, видаліть невикористаний код .
  3. Мінімізуйте використання Javascript.
  4. Використовуйте легкий шаблон як основу для вашого шаблону. Наприклад: тема SEO Yoast Blank .
  5. Вкажіть параметри зображення .
  6. Використовуйте блоковий кеш і вихід HTML у своїх розширеннях.
  7. Застосувати Jazy Lazy Loader для прототипу .

C) Конфігурація Magento

  1. Видаліть будь-які розширення, які ви фактично не використовуєте.
  2. Вимкніть модулі, які ви не використовуєте:  Система -> Конфігурація -> Додатково -> Додатково. ! [введіть тут опис зображення] [1]
  3. Увімкнути всі кеші Magento: Система -> Кеш керування.  
  4. Використовуйте відстежувану статистику за межами веб-сайтів, як Google Analytics, а не на місці. Більшу частину цього використовуватиме Javascript, розміщуйте сам Javascript.
  5. Поєднайте файли Javascript та комбінуйте файли CSS : Система -> Конфігурація -> Додатково -> Розробник -> "Налаштування Javascript" та "Налаштування CSS" . Ви також можете скористатися розширеннями для цього, як розширення Fooman Speedster , залежно від того, що найкраще підходить для вас.
  6. Спробуйте деякі розширення Magento.
  7. Увімкніть Magento Flat Catalog, корисний лише для дуже великих каталогів, щоб відчути вдосконалення.
  8. Не використовуйте багатошарову навігацію, якщо вона вам не потрібна, це ресурсомістке використання.
  9. Використовуйте функцію компіляції Magento. Повідомляється, що ви підвищуєте продуктивність на 25% -50%: Система> Інструменти> Компіляція. Редагувати: Йоав Кутнер (Magento CTO) дайте мені знати, що " в пізніших версіях, оскільки ми оптимізували каталог EAV, Magento Compilation насправді не потрібен, якщо у вас є кешування байтового коду і якщо він правильно налаштований ".
  10. Використовуйте правильне зберігання сеансу, виберіть файлову систему або базу даних (під час налаштування). Більшість установок повинні використовувати "файлову систему", оскільки вона швидша і не спричиняє зростання бази даних. Але якщо ваш сайт працюватиме на декількох серверах, слід вибрати "базу даних", щоб дані сеансу користувача були доступні незалежно від того, з якого сервера подається його запит. Більше інформації про це від Ешлі Шродер на сайті Magebase.com.
  11. Обмежте кількість продуктів на сторінці огляду товару.
  12. Встановіть лише ті властивості фронтенду на "Так", які ви фактично збираєтесь використовувати. Встановіть усі інші на "Ні". Не використовуйте для швидкого пошуку, порівняння розширеного пошуку тощо тощо: Каталог -> Атрибути -> Управління атрибутами -> Властивості інтерфейсу.  
  13. Вимкніть журнал Magento : Система -> Конфігурація -> Додатково -> Розробник -> Налаштування журналу (за замовчуванням вимкнено).  

Порада лише для підприємства:

  • Вимкнути Enterprise_CatalogEvent. Перейдіть до Адміністратора -> Система -> Конфігурація -> Каталог -> Події каталогів. Потім потрібно вимкнути налаштування для "Увімкнути функціональність подій у каталозі" та "Увімкнути віджет подій каталогів".
  • Увімкніть пошук Solr, він швидше порівняно з налаштуваннями за замовчуванням, особливо коли у вас багато продуктів (> 10 к).
  • Увімкнути повне керування сторінками.

Г) Тестування швидкості, аналіз, моніторинг

  1. Перевірте свій сайт Magento за допомогою тесту швидкості Magento (автор: Ешлі Шродер)
  2. Запустіть свій сайт через websiteoptimization.com.
  3. Використовуйте розширення Google Page Speed ​​Firefox або Yahoo Yslow для отримання порад від Google і Yahoo.
  4. Впроваджуйте вимірювання швидкості Google в Analytics: вимірюйте час завантаження сторінки за допомогою звіту про швидкість веб-сайту
  5. Сповіщення про швидкість та оповіщення про час простою.
    • Mon.itor.us
    • Пінгдом

Бонусні поради

(тому що насправді це не прискорює інтерфейс, а лише бекенд):

  • Використовуйте K-Meleon, якщо ви працюєте в Windows для своєї загальної роботи з адміністратором. Це робить важкий резервний сервер Magento значно швидше, ніж будь-який інший браузер.
  • Використовуйте розширення GoogleGears від Yireo.com для кешування статичних файлів локально.
  • Використовуйте локальну програму pc / mac для управління Magento (наприклад,  mag-manager.com ).

Я усвідомлюю, що ви, ймовірно, не можете використовувати всі перераховані вище поради, але справа не в тому, щоб використовувати їх усі, а іноді ви просто робите вибір, щоб надати функціоналу пріоритет над ефективністю, і це нормально. Якщо ви можете застосувати лише деякі з них, ви все одно збільшите швидкість і набудете досвіду користувача. І пам’ятайте: оскільки швидкість залежить від багатьох змінних, деякі поради можуть взагалі не впливати на ваш веб-сайт, а інші можуть мати величезний вплив. Тому завжди перевіряйте вплив кожного кроку, який ви здійснюєте, і вживайте відповідних дій відповідно.


4
  1. Зображення - я бачив багато випадків, коли людина, яка завантажує зображення (продукти, сторінки CMS тощо), не навчена оптимізувати розміри зображень. Статей доступно в Інтернеті, але багато з них - це просто здоровий глузд.

    • Не використовуйте зображення для тексту.
    • Використовуйте JPEG / GIF / PNG належним чином (тобто зазвичай не використовуйте PNG для фотографічних зображень)
    • Використовуйте спрайт для невеликих зображень, оскільки ви можете упакувати купу невеликих зображень в один файл, даючи лише один запит HTTP замість десятків і більше. Ви можете також розглянути піктограми шрифту.
    • Збережіть зображення найнижчою можливою якістю, залишившись доступними для перегляду. Я вважаю, що солодке місце часто буває приблизно 50-60 якості для JPEG. Іноді якість 20 абсолютно прийнятна, і ви можете зменшити зображення з 300 Кб до 30 Кб. Це велика економія.
    • Подумайте про ліниве завантаження на важких сторінках зображення.
  2. Запити HTTP - ще один великий злочинець. Іноді просто не дуже багато можна зробити, щоб зменшити кількість запитів, але завжди слід намагатися досягти цього якнайменше. Magento надає деякі функції, які допоможуть у вирішенні цього питання (об'єднання CSS / JS).

  3. Додаткові пошукові запити DNS - я б сказав, що це найважливіше для кошика / каси. Багато магазинів матимуть різні інтеграції API, які викликають служби. Хоча ви не можете зробити багато, щоб зробити відповідь API від постачальника доставки набагато швидшим, ви можете принаймні визначити повільні сервіси, які не будуть зрозумілі в іншому випадку. Подумайте про додатковий час, який може зайняти оформлення замовлення, якщо ви телефонуєте до UPS, FedEx, USPS, постачальників ставок податку, постачальників платежів, афілійованих сайтів тощо.

  4. Інші фактори - Деякі з інших факторів, згаданих у вашому звіті, ймовірно, не матимуть такого великого впливу, як запити зображень та HTTP. Це, безумовно, варто того, щоб мінімізувати CSS і Javascript, але реальні вигоди помітні лише в довгостроковій сукупності. Також CDN може дійсно допомогти, особливо якщо ви пропонуєте завантажувані продукти.


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

Аналогічно, білий документ Magento про продуктивність сервера не принесе користі, якщо ваш сайт побудований неохайним із занадто великим розміром. Якщо ваша мета - підвищити швидкість роботи вашого сайту, першим кроком слід переглянути самі сторінки, щоб знайти неефективність. Лише після того, як ви визначили, що ваш сайт є настільки ж худорлявим і злим, як ви хочете, слід почати розглянути питання про модернізацію хостингу.

Для підсумку, я керував сайтом, використовуючи SIP-200 на Nexcess близько п'яти років або близько того, і отримує в середньому 5000 відвідувань на день (це сезонно, тож він досягає більше 10 тис. В кінці весни / на початку осені). Я не маю жодних претензій щодо цього рівня сервера для цього веб-сайту, і ми використовуємо досить складну версію Magento CE з тисячами продуктів у десятках категорій.


2

Зображення - це величезна проблема в Інтернеті, майже така ж проблема, як і JavaScript. Перше, що вам потрібно зробити - це оптимізувати свої зображення.

  • Налаштування мережі доставки вмісту
  • Оптимізуйте свої зображення
  • Використовуйте LazyLoader для зображення

Тепер на ваші файли Javascript :

  • Стисніть і комбінуйте їх
  • Усуньте додаткові оновлення сторінок, використовуючи більше ajax
  • Опустіть свої файли JS у колонтитул
  • Завантажте файли JS з іншого домену

Кеш, як божевільний

  • Увімкніть кешування MySql та збільшить розмір пулу пам'яті
  • Увімкніть кешування APC, щоб PHP не потрібно було повторно навчатися
  • Увімкніть кешування Magento на повній сторінці та використовуйте кешування Apache
  • Увімкніть GZIP для швидшого доставки файлів користувачеві.
  • Увімкніть належні заголовки Закінчується, щоб і ваші користувачі кешували

Magento також має ряд внутрішніх механізмів кешування:

  • Увімкніть очевидне кешування Magento
  • Увімкніть стиснення та компіляцію CSS та JS від адміністратора
  • Увімкніть каталог та продукти Flat, щоб пришвидшити виклики mysql
  • Увімкніть компілятор Magento, щоб пришвидшити автонавантажувач PHP

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


0

Ось що я б запропонував пришвидшити сайт Magento:

  1. Виконайте аудит сторонніх розширень та аудит TTFB. Деякі спеціальні плагіни сповільнюють Magento. Отримайте список усіх сторонніх модулів та відключіть їх один за одним. Орієнтовна швидкість за допомогою www.webpagetest.org. Виявивши кривдника, зв’яжіться зі своїм постачальником, щоб повідомити їх. Для запуску аудиту TTFB встановіть безкоштовну програму xhprof або використовуйте NewRelic .

  2. Дізнайтеся, чи достатньо ваших ресурсів хостингу для запуску Magento. Встановіть нову копію Magento тієї самої версії на свій хостинг. Порівняйте його швидкість з веб-сайтом, що живе Якщо це значно швидше, ніж ваш сайт, тоді ваш хостинг в порядку. Якщо це так само повільно, як і ваш веб-сайт в реальному часі, то ваш хостинг не є хорошим.

  3. Виконайте різні оптимізації інтерфейсу. До них відносяться: оптимізація зображень, стиснення gzip, мінімізація CSS / JS. Ви можете отримати звіт про те, що вам потрібно зробити, запустивши свій сайт проти Google PageSpeed ​​Insights .

Взято з моєї статті .


Який найкращий спосіб зробити аудит сторонніх розширень? Спасибі. @Konstantin Gerasimov
Gem

0
  • Вам потрібно зосередитись як на оптимізації вашого веб-сайту (структура, CSS, зображення тощо), так і на пошуку дійсно швидкого хоста.

  • Я б запропонував вам знайти хост, який надає SSD-накопичувач та Cloudflare CDN і який хостинг-сервіси спеціально оптимізовані для веб-сайту, що базується на Magento.

  • Наразі я використовую так званий "популярний" план для свого веб-сайту, і він робить чудову роботу.

  • Ось його повні характеристики: https://www.bgocloud.com/hosting/websites-cpanel/popular-plan .

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


-1

Я знайшов №1 найважливіше, що стосується швидкості сайту, а магенто - це ваш сервер. Ви перебуваєте у завзятому хості? Ти повинен бути. Особливо один із SSD-накопичувачами. Найповільніша частина Magento - це те, як він насправді обробляє PHP і робить сторінку, і єдиним способом боротьби з цим є кращий сервер. Також кеш на повній сторінці, спробуйте Lesti FPC.


Привіт, дякую за вашу відповідь. У мене було відчуття, що наша конфігурація сервера може бути не такою, що нам потрібно, але я тут новачок і просто вивчаю їхню систему і ніколи раніше не доводилося заглиблюватися в систему роботи адміністратора систем. Я розкопав наш останній рахунок-фактура (якщо припустити, що це сервер, на якому працює Magento): 18636 Dual Xeon E5-2609 (E52609) ОЗУ: 16 Гб жорсткий диск 1: 500 ГБ SATA жорсткий диск 2: 500 ГБ SATA жорсткий диск 3: 64 Гб Samsung 830 Жорсткий диск SSD 4: Жоден контролер жорсткого диска: бортовий контролер
Брендон,

Я не можу погодитися з цією відповіддю. Якщо ваш сайт завалений великими зображеннями, тонами HTTP-запитів та запитів до сторонніх служб (UPS, податковий пошук тощо), найкращий спеціалізований хост у світі нічого не зробить для вас. Почніть заздалегідь запустити сайт, а потім подумайте про оновлення хостингу, якщо це можливо.
pspahn

FYI Брендон. Samsung 830 - це дисковий накопичувач, призначений для домашніх комп'ютерів, а не серверів. Це зовсім не здається, що ваш сервер - це сервер.
choco-loo

-1

Існує довга відповідь і коротка відповідь, як Гвідо вже зазначив, що це кроки, які потрібно виконати для налаштування. Вам потрібно буде знайти якийсь грамотний ресурс, щоб пройти всі комбінації, щоб знайти найкращу підгонку, це забирає досить багато часу, але стандартний процес Magento-сайтів потребує проходження. Є також коротка відповідь, але ми працюємо з інкубатором, і вони використовують корпоративну техніку в першу чергу для більш високих платформ, однак перенесли це на Magento, але це не буде актуальним тут. Вам потрібно буде знайти точний баланс між апаратним забезпеченням, fpc, кешуванням, бізнес-вимогами, єдиною проблемою є те, що коли ви пройшли вправу, якщо ви істотно зміните що-небудь, вам потрібно буде його повторити.


-1

Або ви пропускаєте все це, використовуйте ту саму стекову технологію, що і Etsy, той самий хостинг, як Very with multi-nodes, пропускайте fpc, поблизу fpc ttfb, 1-2s динамічні навантаження, і використовуйте Pagespeed, все додане разом, що дає вам як у всьому світі . Тепер, якщо у вас є понад ревні кодери та розширення, є обмеження. Це залежить від того, чи хочете ви пройти технологічний шлях і вам доведеться пройти все це до п’ятого ступеня, коли програмісти не погоджуються з бізнесом, або ви поглядаєте на бізнес і знаходите найкраще рішення незалежно від протестуючих технологій, що часто призводить до менш технічної робота.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.