На днях я запустил довольно большой сайт и хотел бы включить плагин для кэширования. Настройка представляет собой один сайт с некоторыми смешанными функциями Buddypress (для регистрации пользователей, карт с помощью gpress, наличия профиля), работающих на общем хосте.
Мои вопросы:
1. Какой плагин вы считаете лучшим для кэширования с учетом этой настройки и почему (если возможно)?
2. Каковы передовые методы и шаги, которые я должен предпринять/рассмотреть во время установки, чтобы убедиться, что все работает?
3. transients
Можно ли по-прежнему использовать те, которые я добавил самостоятельно, или мне следует удалить их и оставить плагин делать свое дело? будут ли они конфликтовать, если их не удалить?
Спасибо!
ДОПОЛНЕНИЕ: План Power на http://www.inmotionhosting.com/hostingplans.html
Можете ли вы предоставить информацию о сервере или хостинге?
спасибо, очень подробный и исчерпывающий ответ! Вы абсолютно рекомендуете этот плагин? вы пробовали какие-то другие?
@Amit Я пробовал WP Super Cache, hyber db cache, серверную часть кеша объектов apc и batcache. Ни один другой плагин для кэширования не имеет всех этих функций.
еще раз спасибо! я обязательно попробую. Кстати, вы рекомендуете удалить весь мой переходный код и все, что я добавил в свой htaccess, например, gzip и т. Д.?
Лучше всего протестировать и сравнить различные настройки, чтобы найти то, что лучше всего подходит для вашей среды.
В тарифных планах виртуального хостинга ваши возможности кэширования ограничены.
Вы сможете статически кэшировать только вывод html со своих страниц. Это самый быстрый способ обслуживания страниц, но вы теряете динамические аспекты WordPress, такие как комментарии и просмотр последних комментариев к сообщениям.
Существуют варианты дискового кэширования для объектов и базы данных, но если ваш хост не использует быстрые диски, вы не получите от этого большой выгоды, а также может привести к падению производительности.
Все плагины кеширования имеют возможность не обслуживать кешированные страницы вошедшим в систему пользователям или любому пользователю с файлом cookie комментария.
Вошедшие пользователи + известные пользователи = без кеша
Неизвестные пользователи получают кэшированную страницу.
Переходные процессы
Переходные процессы — это небольшие фрагменты данных, срок действия которых истекает через какое-то время. WordPress хранит переходные процессы в виде кеша в базе данных. Если бы у вас была возможность использовать Memcache, WordPress сохранял бы временные данные в памяти. Переходные процессы хороши тем, что они сокращают количество запросов к базе данных. Их также удобно использовать для социальных сетей, например для отображения ваших последних твитов. Это предотвращает вызов API Twitter при каждой загрузке страницы.
Плагин, который использует лучшие практики высокопроизводительных веб -сайтов, — это W3 Total Cache.
W3 Total Cache делает больше, чем просто кеширует
Итого W3:
Для вашего набора виртуального хостинга вы должны включить кеширование страниц, минимизацию, кеширование браузера и опцию собственного CDN.
Настройки кэша страницы
Проверьте все параметры кэша страниц
Предварительная загрузка кеша
Включите это и установите интервал обновления, который подходит для вашего сайта. Это перестроит кеш страницы с заданным интервалом.
Уменьшить настройки
Выберите «Переписать структуру URL-адресов», и если вы собираетесь использовать CDN, проверьте автоматическую загрузку, чтобы новые мини-файлы автоматически загружались в CDN.
Сократить HTML
Включите и проверьте удаление разрывов строк, минимизацию встроенных js и css. Если вы используете AdSense или другой сервис, который использует основы комментариев, введите их здесь, чтобы избежать их минимизации.
Настройки CSS и JS Minify
В управлении файлами выберите свою тему и добавьте любые файлы css, которые вы хотите объединить и минимизировать. Существует также мастер справки, который будет искать все ваши шаблоны и добавлять предлагаемые файлы для вас.
Использование мастера справки
W3 Total включает в себя инструмент, который просматривает ваши шаблоны тем, находит используемые файлы Javascript и CSS и предоставляет рекомендуемые настройки. Сначала попробуйте эти настройки и при возникновении проблем вернитесь назад и измените их по мере необходимости. Любые файлы, выделенные красным, — это файлы, которые вы уже включили для минимизации.
Тот же раздел параметров доступен для файлов js, и у вас есть возможность разместить файлы после
<head>
, после<body>
и до</body>
. Лучше поставить столько, сколько вы можете, прежде чем<body>
. Если какие-либо плагины добавляют встроенные js, вы не сможете использовать их раньше</body>
для jquery или плагинов js, потому что их нужно будет загрузить перед любыми встроенными<script>
тегами. Вы можете включать любые комбинации файлов в каждом месте и для каждого шаблона. Например, вы можете настроить свой comment-reply.js так, чтобы он загружался только на single.php.Настройки кеша браузера
This is the most important one to get right. If you properly cache your static content in your users browsers you can drastically reduce page load times. «do not process 404 errors for static objects» browser cache settings is a big win for shared hosting because invoking PHP and returning 404 pages to bots etc is a big drain on resources and this feature prevents that
General
Check everything
CSS and JS Files
Check everything and set our expires header lifetime to far future. 31536000 seconds is 1 year and what yslow recommends. If you make changes to your css or javascript you have to change the file names to prevent users from using the old version. If your using minify you won’t have to worry about serving outdated content because every time the minify cache is rebuilt is generates a new file name.
Set your cache Control policy to cache with max age
There are two more browser cache setting sections. HTMl and Images. For Images use the same settings as CSS and JS. You can increase the expires time on the images if you want.
For HTML don’t set expires unless your site is mainly static. You can use short lifetimes if you want (180 seconds) but I wouldn’t go higher. Enable gzip and you can check the set W3 Headers so you can check the response headers to make sure they are working.
CDN Settings
W3 Total has built in support for popular origin pull and origin push CDN’s and a robust self hosted option that requires you to set up subdomains and cnames.
Self hosted CDN will let you take advantage of pipelining. Browser can only download a few files at once, only 4 in some cases. Pipelining is a technique whereby aliases (subdomains for example) of your server are used to allow your browser to increase the practical limit of files that can be downloaded in parallel. Doing so maximizes the throughput of the your internet connection and allows the browser to render a page faster. W3TC takes care of managing these files transparently once DNS CNAMEs (aliases) and subdomains are properly configured.
Check all the options then click the upload buttons to upload all the content to the CDN. If using self hosted there is another setting page to put in ftp information. For origin push CDN it’s configured based on what provider you are using. For origin pull you don’t upload any files and only set your cname to the url the provider gives you. Note: Don’t select force override unless new files are not working. Force override will constantly upload files to the cdn even if they already exist and this wastes bandwidth and resources.
Testing
You should always test your results and tweak your settings accordingly. I like to use WebPageTest.org. To compare my results and identify any potential problems.
How much can you increase your performance using W3 Total Cache on WordPress with shared hosting?
Это результаты до и после для блога WordPress, в который мы добавили W3 Total.
До:
После
Надеюсь, это поможет.
Не используйте W3 Total Cache, это замедлит работу и сломает ваши страницы. Я предлагаю лучше использовать Super Cache и Page Speed Ninja. Или LiteSpeed Cache для кэширования объектов и оптимизации css и js, Cache Enabler для создания статических html-файлов. Поскольку статический кеш не будет создан litespeed, так как он должен иметь модуль lscache на http-сервере, который поддерживается только http-сервером litespeed или openlitespeed.
Используйте.htaccess для кэширования таких вещей, как CSS, изображения и javascript на стороне клиента. Самая быстрая загрузка — та, которой никогда не должно было случиться.
Я разместил коллекцию ссылок и справочных статей по этому вопросу: http://icanhazdot.net/2010/03/23/speeding-up-self-hosted-wordpress/