WooCommerce: 11 советов по производительности, безопасности и масштабируемости
Опубликовано: 2023-06-01Веб-сайты WooCommerce должны работать постоянно: они должны быстро загружаться, быть безопасными и выдерживать большие всплески трафика.
Достижение этого может быть сложной задачей без правильной стратегии и опыта, особенно при работе с большим количеством посетителей, поскольку одна проблема может привести к многочасовому простою и потере продаж.
В этой статье наш специальный гость Мартин Ронфорт, основатель Dr Tech , поделится обзором стратегий и процессов, которые вы можете применить к своему магазину WooCommerce и с легкостью расширять его.
На самом деле в Dr Tech они управляют тысячами магазинов WooCommerce — от небольших предприятий, которые только начинают свою деятельность, до магазинов с миллионами запросов и масштабными маркетинговыми кампаниями — и занимаются всеми техническими аспектами, такими как хостинг, скорость загрузки, безопасность, обновления, резервное копирование, время безотказной работы и масштабируемость.
Пошли, Мартин!
- Оптимизация производительности
- Оптимизация данных
- Безопасность
- Масштабируемость
- Заключение
Оптимизация производительности
1. CDN
Давайте начнем непосредственно с самой большой оптимизации, которую вы можете сделать. Если вы еще не используете CDN, это даст вам самые большие преимущества с точки зрения скорости загрузки.
Если вы не знаете, что такое CDN, то сеть доставки контента — это сеть серверов, расположенных в разных частях мира, которые работают вместе для более быстрой и эффективной доставки контента веб-сайта пользователям. Когда пользователь запрашивает веб-страницу или файл с веб-сайта, CDN автоматически перенаправляет запрос на ближайший сервер в сети, который может доставить контент. Это не только снижает нагрузку на сервер веб-сайта, но и сокращает время, необходимое для того, чтобы контент дошел до пользователя, что приводит к более быстрой загрузке страницы и лучшему взаимодействию с пользователем.
Dr Tech использует Cloudflare для четырех основных задач: разгрузка контента, оптимизация изображений, минимизация и полностраничная доставка.
Разгрузка контента
Выгружая ваши JS, CSS и изображения в CDN и кэшируя их там, все эти файлы будут обслуживаться с серверов CDN, а не с вашего сервера. Таким образом, вы значительно увеличите скорость загрузки, так как Cloudflare имеет центры обработки данных по всему миру и будет использовать для обслуживания контента ближайший к вашим посетителям. Кроме того, это значительно снизит нагрузку на ваш сервер, что приведет к экономии средств (мы видели, как магазины кэшируют более 80% своих запросов в CDN!).
Оптимизация изображения
Встроенный в Cloudflare инструмент оптимизации изображений автоматически конвертирует ваши изображения в формат WebP, одновременно уменьшая их размер.
Минификация
Мы рекомендуем использовать Cloudflare для минификации вместо плагина кэширования, так как он более эффективен. Однако будьте осторожны с минификацией, так как она потенциально может сломать ваш сайт (это зависит от темы и плагина, который вы используете). Поэтому убедитесь, что вы протестировали свой интернет-магазин в течение нескольких дней после его внедрения, чтобы убедиться, что он работает нормально для вас. Если он не работает должным образом, просто отключите его.
Полная доставка страницы
Вот как вы можете добиться времени загрузки менее 1 секунды и TTFB менее 100 мс. Идея состоит в том, чтобы кэшировать всю страницу в CDN. Когда посетитель посещает ваш магазин, вся страница загружается непосредственно с серверов CDN, и на ваш сервер отправляется 0 запросов. У Cloudflare есть серверы по всему миру, а это значит, что ваш контент будет доставляться вашим посетителям с сервера, расположенного рядом с ними! И поскольку это статический контент, ваш сайт будет загружаться очень быстро.
2. Хостинг
Чтобы эффективно управлять магазином WooCommerce, избегайте дешевых услуг виртуального хостинга, которые стоят всего несколько долларов в месяц. Даже при всех ваших усилиях у вас не будет достаточно ресурсов для обеспечения высокой скорости загрузки и надежности. Хотя их может быть достаточно для небольших веб-сайтов или блогов, они не подходят для электронной коммерции — им просто не хватает мощности, необходимой для электронной коммерции.
Еще одна проблема, которую следует учитывать, — это сложность миграции, особенно в электронной коммерции, где клиенты постоянно посещают ваш сайт и потенциально покупают ваш продукт. Миграция требует простоя, а это означает, что как только вы перерастете эти маленькие серверы, вам нужно будет перейти на более крупный сервер. Для этого потребуется перевести ваш веб-сайт в автономный режим, что может привести к потере продаж и негативно повлиять на ваш бизнес.
Вместо этого мы рекомендуем использовать сервер, который:
- Оптимизирован для WooCommerce
- Гибкость, позволяющая увеличивать ресурсы (ЦП, ОЗУ и хранилище) по мере роста, что позволяет избежать необходимости миграции. Это называется вертикальным масштабированием, и мы поговорим о нем подробнее в части о масштабируемости.
3. Кэширование
В Dr Tech мы используем плагин W3TC для кэширования (бесплатной версии достаточно), но вы можете использовать и другой плагин кэширования — на самом деле, поскольку большая часть оптимизации производительности выполняется CDN, на самом деле не имеет значения, какой плагин вы используете. использовать. W3TC и другие плагины кэширования очень сложны. Однако мы используем только две функции: кэширование страниц и CDN.
Кэширование страницы
При реализации кэширования страниц обязательно исключите все страницы, которые не следует кэшировать. Например, SEO-плагины, такие как Yoast, могут вызывать проблемы, если карта сайта кешируется (у нас была эта проблема на Dr Tech). Все страницы WooCommerce уже должны быть исключены по умолчанию, включая корзину, оформление заказа и мою учетную запись. Чтобы убедиться, что все работает правильно, включите кэширование страниц и протестируйте свой сайт. Если возникают какие-либо проблемы, исключите проблемную страницу из кэширования.
CDN
Это функция CDN вашего плагина кэширования, которая помещает все ваши статические файлы (JS, CSS и изображения) в CDN. Вам также нужно будет настроить CDN, чтобы включить кэширование этих файлов.
4. Управление вашим кодом
Для достижения оптимальной производительности важно убедиться, что используемые вами темы и плагины хорошо закодированы и соответствуют лучшим практикам WordPress. Если их нет, то лучше их вообще не использовать.
Более того, если плагин или тема, которую вы хотите использовать, не соответствуют лучшим практикам WordPress, у вас позже возникнут проблемы с обновлениями и безопасностью в вашем путешествии по электронной коммерции.
Для этого вы можете либо нанять опытного разработчика, который обладает знаниями в этой области, либо получить больше информации по этому вопросу с помощью документации WordPress и WooCommerce. Все хорошо описано.
В Dr Tech, чтобы убедиться, что все работает, мы проверяем код всех плагинов и тем, прежде чем сделать их доступными для пользователей Dr Tech. Если они не соответствуют лучшим практикам WordPress, мы их просто не включаем. Когда это возможно, мы предлагаем разработчикам предложения о том, как они могут улучшить свой код, ждем, пока они исправят его, а затем добавляют его.
Оптимизация данных
Идея здесь проста: вещи, которые вам не нужны на вашем сайте, не должны быть на вашем сайте. Либо вы должны удалить его, либо, возможно, его вообще не следовало добавлять. Любые ненужные данные увеличивают использование вашего хранилища (вы платите за это), использование вашего процессора и оперативной памяти (вы тоже платите за это) и замедляют работу вашей базы данных. Поэтому вы всегда хотите, чтобы ваш интернет-магазин был как можно меньше.
5. Используйте промежуточный сайт
Во-первых, вы должны использовать промежуточный сайт. Там вы можете протестировать новые темы, плагины, пользовательский код или все, что захотите. И только после того, как вы будете уверены, что будете их использовать, добавляйте их на свой основной сайт. Никогда не тестируйте вещи на своем основном сайте.
Это связано с тем, что плагины и темы добавляют много данных на ваш сайт, и почти ни один из них не очищает свои собственные данные при их удалении. WordPress не имеет функции очистки, чтобы удалить данные плагина, который вы только что установили, на 2 минуты и удалить мгновенно. Его данные навсегда останутся в вашем интернет-магазине.
6. Удаление старых и неиспользуемых данных
Даже если вы постараетесь не добавлять бесполезные данные в свой магазин, они все равно будут у вас. Например, опубликовать исправления. Это старые версии ваших страниц, статей в блогах, продуктов и других типов контента в вашем интернет-магазине, которые автоматически сохраняются в качестве резервной копии. Иногда это может быть полезно, но как только ваш контент будет опубликован в течение нескольких недель, скорее всего, вам больше не понадобятся эти резервные копии. Кроме того, по умолчанию WordPress хранит неограниченное количество редакций для всех ваших сообщений, и вам, вероятно, не нужно так много. К счастью, вы можете просто добавить одну строку кода в свой файл wp-config, чтобы ограничить количество ревизий, которые WordPress будет хранить (например, вы можете оставить 5):
define( 'WP_POST_REVISIONS', 5 );
Редакции — это один из типов данных, которые вы хотите удалить; все, что вы не используете, должно быть удалено, чтобы обеспечить максимальную производительность. И особенно если он есть в вашей базе!
Безопасность
Для наших собственных целей безопасности Dr Tech я не могу рассказать вам обо всем, что мы делаем для защиты нашей инфраструктуры. Но ниже приведены некоторые рекомендации, которыми мы можем поделиться с вами.
Для начала мы можем сказать, что намного легче построить хорошую практику, хороший процесс и хорошие привычки, когда вы малы и нет давления. Если у вас есть проблема с безопасностью, это будет очень напряженный момент — и исправить ситуацию намного сложнее, чем предотвратить!
7. Не давайте людям доступ к вашему сайту
В сообществе WordPress разработчики часто запрашивают ваши учетные данные администратора WP или FTP. Хотя я признаю, что это может быть быстрым решением, чтобы помочь вам, предоставление этого доступа дает им полную власть над вашим магазином — они могут получить доступ к вашим файлам, данным... ко всему. Хотя у большинства людей благие намерения, безопасность начинается с установления здоровых привычек. Поэтому крайне важно никогда не раскрывать свой пароль администратора и не позволять никому, не относящемуся к вашей команде, изменять любой код, который вы не понимаете или не проверяли.
Вместо этого лучше попросить совета и выполнить задание самостоятельно.
Вы также можете использовать свой промежуточный сайт и заставить разработчиков работать там. Затем вы можете просмотреть изменения и применить их к основному сайту самостоятельно.
8. Просмотрите свой код
Причина, по которой вы не хотите, чтобы люди имели доступ к вашему коду, заключается в том, что существует множество потенциальных уязвимостей. Например, бэкдоры — одна из самых распространенных уязвимостей. Эти бэкдоры предоставляют посторонним несанкционированный доступ к вашему сайту, позволяя им делать что угодно, от кражи данных до получения контроля над всем вашим сайтом. Крайне важно убедиться, что ваш код свободен от бэкдоров и других уязвимостей.
Поэтому, если вам нужно нанять внешних разработчиков, и то же самое происходит, если вы устанавливаете новую тему или новый плагин, вам нужно принять некоторые меры предосторожности. Даже если у них нет плохих намерений, им может не хватать необходимого опыта, знаний или внимания к деталям, чтобы избежать создания серьезных проблем уязвимости. Всегда лучше иметь в своей команде опытного профессионала, который все проверит и проверит.
Кроме того, даже если ваш магазин в настоящее время мал и непривлекателен для злоумышленников, очень важно сохранять бдительность и следить за тем, чтобы ваш сайт оставался безопасным по мере его роста. Выработать хорошие привычки безопасности на раннем этапе намного проще, чем пытаться исправить ситуацию, когда злоумышленники уже нашли уязвимости.
9. Добавьте инструменты: WAF, DDOS и защиту от перебора
ВАФ
WAF (брандмауэр веб-приложений) — это инструмент безопасности, который помогает защитить веб-сайты от вредоносных атак, таких как SQL-инъекции и межсайтовые сценарии. Он действует как фильтр между веб-сайтом и Интернетом, проверяя входящий трафик и блокируя любые вредоносные запросы.
Для вашего магазина электронной коммерции WAF особенно важен, потому что он помогает предотвратить атаки, которые могут скомпрометировать конфиденциальные данные клиентов, такие как информация о кредитной карте.
ДДОС-защита
DDOS или распределенный отказ в обслуживании — это тип кибератаки, когда несколько систем наводняют ваш веб-сайт трафиком, перегружая ваш сервер и делая его недоступным для законных пользователей. Этот тип атаки часто осуществляется хакерами или другими злоумышленниками, чтобы нарушить работу или закрыть веб-сайт или онлайн-сервис.
Без защиты от DDOS успешная атака может привести к значительным простоям, потере продаж и ущербу для репутации бизнеса. Защита от DDOS может помочь смягчить воздействие этих атак, обнаружив и заблокировав вредоносный трафик до того, как он перегрузит ваш интернет-магазин.
Защита от грубой силы
Атака грубой силы — это тип кибератаки, при которой злоумышленник пытается угадать пароль пользователя, многократно пробуя разные комбинации символов, пока не будет найдена правильная. Этот тип атаки может быть очень эффективным, если в вашем интернет-магазине их нечем заблокировать. Вы также должны использовать надежные пароли и использовать меры безопасности, такие как двухфакторная аутентификация и ограничение скорости, чтобы ограничить количество попыток входа в систему. Вы также не должны использовать очень простой псевдоним в качестве входа администратора, не используйте «admin».
Масштабируемость
Поздравляем с запуском вашего магазина и увеличением продаж и посещаемости! Теперь, когда ваш магазин растет, должна расти и ваша серверная инфраструктура. Существует два способа масштабирования вашей инфраструктуры: вертикальное масштабирование и горизонтальное масштабирование (также известное как многосерверная инфраструктура).
10. Вертикальное масштабирование
Вертикальное масштабирование — это просто. Когда вам нужно больше ресурсов, вы увеличиваете характеристики своего сервера, добавляя больше ОЗУ, ЦП и хранилища. Тогда вы можете идти, пока вам не понадобится сделать это снова.
Это решение работает до тех пор, пока вы не достигнете максимальной мощности вашего сервера. К сожалению, вертикальное масштабирование не бесконечно, физические машины, на которых размещен ваш магазин, имеют ограничения. Это когда масштабирование становится сложным, и вы должны перейти на многосерверную инфраструктуру.
Кроме того, еще одна причина не использовать дешевый сервер: это приведет к более быстрому достижению максимальной мощности и потребует миграции на сервер большего размера. Эта миграция вызовет простои, которых вы хотите избежать. Если вы начнете с хорошего сервера, который имеет потенциал для максимально возможного масштабирования, вы сэкономите время и усилия.
11. Горизонтальное масштабирование: многосерверная инфраструктура
Благодаря многосерверной инфраструктуре вы можете расширять свой бизнес, не беспокоясь об ограниченности ресурсов, и легко справляться с резкими скачками посещаемости веб-сайта. По мере роста ваших потребностей вы можете просто добавить больше серверов или удалить их, когда они больше не нужны.
В идеале вы хотели бы начать с многосерверной инфраструктуры с самого начала. Но поскольку это сложнее и дороже, большинство предприятий начинают с вертикального масштабирования. Однако наступит момент, когда один сервер не сможет справиться с трафиком, и потребуется команда со специальными навыками для создания и обслуживания многосерверной установки для дальнейшего роста.
Я бы порекомендовал рассмотреть этот вариант на ранней стадии, задолго до достижения максимального потенциала сервера, если вы выполняете вертикальное масштабирование. Это поможет избежать каких-либо ограничений и обеспечит плавный и беззаботный процесс планирования новой установки!
Бонус
Многосерверная инфраструктура значительно улучшит время безотказной работы. Благодаря возможности иметь несколько серверов у вас могут быть резервные серверы, готовые взять на себя управление в случае сбоя. Используя балансировщик нагрузки, вы можете распределять трафик между серверами и автоматически прекращать отправку трафика на сервер, который не работает должным образом. Это создает гораздо более стабильную инфраструктуру для вашего бизнеса.
В Dr Tech именно этим мы и занимаемся. Мы с самого начала размещаем ваш магазин в многосерверной инфраструктуре и используем балансировщики нагрузки, чтобы ваш магазин мог расти и обрабатывать большие объемы трафика без каких-либо проблем с ресурсами.
Заключение
Производительность, безопасность и масштабируемость так же важны, как и качество продуктов, которые вы продаете на своем веб-сайте WooCommerce.
У вас может быть лучший продукт на рынке, но если вы подведете своих клиентов из-за того, что ваш веб-сайт WooCommerce не оптимизирован, вы можете упустить большую часть потенциального дохода (то же самое относится и к обратному! Если у вас есть лучший и самый оптимизированный веб-сайт WooCommerce на планете, но вы продаете продукт, который никому не нужен или не нравится, вы потратили впустую свое время и деньги).
Теперь вы должны принять меры на своем собственном веб-сайте WooCommerce и сделать его более быстрым, безопасным и способным хорошо работать с пиками трафика.
Если вы не хотите реализовывать эти стратегии самостоятельно, вы всегда можете перенести свой веб-сайт на Dr Tech, чтобы вы могли сосредоточиться на развитии своего бизнеса, пока они занимаются всем остальным. В настоящее время они предлагают бесплатную 7-дневную пробную версию, а затем всего 1 доллар в месяц в течение следующих 3 месяцев. Узнайте больше на сайте Dr Tech.