Home / Comment permalink

5 Mistakes to Avoid on your Drupal Website - Number 5: Maintenance

In the previous articles in this series, we've focused on aspects of architecture, security and performance and the choice of infrastructure. All of that work will come to little without a reliable maintenance plan. It's likely that even soon after you launch, critical improvements will need to be made, and new features added as you gain insight from usage in the wild. The process is cyclical.

The life cycle of a website begins from initial plans and extends to the end of the site. The site exists in three different phases: development, deployment, and maintenance. After the site is launched, your website lifecycle practices become critical to the success of changing and maintaining your site.

Best Practices

  • Keep your code under version control.
  • Maintain separate environments for the different stages of the site, and keep them up to date.
  • Restrict access to the production site for all but the most trusted users.
  • Review all logs periodically, including Apache, Drupal, and MySQL.
  • Review and assess your architecture periodically, and plan for the future.

Reliable collaboration through version control

  • Mistake: Not using a version control system (VCS).
  • Example: Copying code occasionally to backup folders as a method of version control.
  • Solution: Use a version control system. Git is the most popular among Drupal developers, but any modern system is better than none is fine if used. Be sure you leave meaningful commit messages so that colleagues can understand the changes you have made.

Keep organized

  • Mistake: Keeping extraneous file in the VSC repository.
  • Example: Image asset files, holiday pictures, or database dumps pushed to the repository.
  • Solution: Keep the VCS as clean and small as possible.

Deploy with version control

  • Mistake: Uploading files to production through FTP.
  • Solution: Deployment must come directly from the VCS repository.

Security during deployment

  • Mistake: Production environment not properly secured.

  • Example: Any developer can take a snapshot of production to install on their laptop.
  • Solution: Allow developers to take snapshots and have other access to development and staging environments, but allow access to the production environment only for the most trusted users.

Test on environments as similar to production as possible

  • Mistake: Development and staging environments out-of-date or missing functionality.
  • Example: Testing only in production because the other environments have old data or no connection to an external service.

  • Solution: Maintain testing environments as similar to production as possible. With these, you can easily copy from production and execute tests to assure that changes will work when moved to production.

Keep your site up to date

  • Mistake: Sites using out-of-date code for core and contributed modules.
  • Solution: Keep all modules and core as current as possible.


Monarch Life Cycle by Sid Mosdell - CC BY 2.0

Remember that a website is a living organism. Regularly check all logs so that you’ll know where it is going. As it changes over time, you may find new ways to improve and protect it. Schedule periodic reassessment of each aspect of your site.

Keeping a large Drupal website going is a challenge on many fronts. If you follow these best practices and avoid the mistakes outlined here, you’ll find your work goes much better. You’ll keep your website functioning smoothly and your stakeholders happy.

Read more about maintenance, version control and security on Acquia's Library!

Photo Monarch Life Cycle, in a series by Sid Mosdell (CC BY 2.0)


Posted on by Rachel Gillevet (not verified).

Hey Heather,
Great post.I thought our readers would find value in it, so I included your article in my roundup of March's best CMS, web design/development, and security content. http://www.wiredtree.com/blog/marchs-best-web-develop ment-cms-security-c... Thanks again for highlighting these.


Posted on by AdamsonSmith (not verified).

I am definitely bookmarking this page and sharing it with my friends. Very outstanding web. The content here is truly important. I will share it with my friends.

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Filtered HTML

  • Use [acphone_sales], [acphone_sales_text], [acphone_support], [acphone_international], [acphone_devcloud], [acphone_extra1] and [acphone_extra2] as placeholders for Acquia phone numbers. Add class "acquia-phones-link" to wrapper element to make number a link.
  • To post pieces of code, surround them with <code>...</code> tags. For PHP code, you can use <?php ... ?>, which will also colour it based on syntax.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <h4> <h5> <h2> <img>
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.