5 Mistakes to Avoid on your Drupal Website - Number 3: Performance
Performance is crucial for providing a great user experience. If the site is slow or balky, even great functionality won’t keep the site visitor engaged.
Photo: The Bad place by NeilsPhotography (CC BY 2.0)
The first action for improving performance is analyzing what the website is doing. With the answer to this question, optimize as much as possible, then implement caching.
- Devel for viewing database queries which run on each page.
- XhProf is generally the best tool to start with. Profiling is what helps you find the issues to begin with. Read about Using XHProf with Acquia Cloud
- New Relic - This service will analyze your site at a low level and report slow database queries, external queries and specific pages. More info about New Relic which is part of Acquia Network.
- Yottaa - Focuses on front-end performance. This service will tell you how fast your site loads in different locations around the world. More info about Yottaa which is part of Acquia Network.
- Read more about Tools for parsing a slow query log
Optimize—Common Problem Areas:
- Complex queries that take too much time and don’t use an index.
- Functions that are called too often.
- Keeping unused modules enabled on your site. Disable any unused modules.
- Misconfiguring cron. See more about configuring cron.
- Using the default views pager, which requires an additional COUNT query. Use Views Litepager, which provides pagers without the count function.
- Database logging (dblog) is enabled by default in Drupal 7, and errors can fill up your database quickly. One common solution is to use syslog instead, but this merely masks the problem by making the logs less accessible. A better solution is to fix all PHP notices and warnings to reduce logging overhead.
- Use the Fast 404 module to serve static 404s for image, icon, CSS, or other static files, rather than bootstrapping Drupal.
- Most common: No cache strategy at all. Not taking the time to understand how content can be cached (per user, per group, per role, etc) is the worst mistake.
- Caches cleared too often.
- Caching at too low a level; such as using views cache instead of Blocks or Panels pane cache.
- Basic caching, such as block caching or panels pane caching.
- Caching strategy too complex for real needs of site.
- See eBook “Simple Tips to Improve Drupal Performance: No Coding Required” for more details about performance tuning.
- When and how caching can save your Drupal site, and When and how caching can save your site. Part 2: authenticated users, Hernani Borges de Freitas.
- Download the Datasheet for Acquia's "Performance Audit".
Practical performance tips in Acquia's Library: Improving website performance.
Thanks to my colleague, Mark Sonnabaum for reviewing content in this blog post!