SlideShare a Scribd company logo
Site Audit 
Drupal Best Practices and Content Analysis 
https://drupal.org/project/site_audit 
2014.10.13 - SFDUG
Jon Peck 
Senior Engineer at Four Kitchens 
@FluxSauce - github.com/fluxsauce - drupal.org/u/fluxsauce
What is an audit? 
• official inspection of an 
individual's or organization's 
accounts 
• validate the good things 
you’re doing 
• highlight areas of 
improvement 
Electrical inspector in Public Safety Building, 1957 
Item 54948, Engineering Department Photographic Negatives 
(Record Series 2613-07), Seattle Municipal Archives.
Why audit sites? 
• Learn about contents and structure 
• Ensure optimal configuration 
• Discover areas of improvement
Every site is unique, but… 
• Built with the same framework 
• Similar architectural 
requirements 
• One size fits most 
http://www.flickr.com/photos/juliancolton/5360064817
Effective auditing 
• Consistent 
• Quantifiable 
• Contextually aware 
• Easy to understand 
• Actionable recommendations
Static program analysis 
• Performance & behavior gathering 
• Does not execute 
• Non-intrusive 
• Automated
What is Site Audit? 
• Drupal 7 site analyzer 
• Installed on target platform 
• Provides reports in multiple formats 
• Powers Launch Check on Pantheon
Requirements 
• Bootstrappable Drupal site 
• Drush 5.10 or higher 
• Shell access to target
Installation 
• Not a module 
• Place in Drush commands folder 
• Within user profile for just yourself 
• Within Drush installation folder
What does Site Audit check? 
• Best Practices 
• Block 
• Cache 
• Codebase 
• Content 
• Cron 
• Database 
• Extensions 
• Google Insights 
• System Status 
• Users 
• Views 
• Watchdog
What doesn’t Site Audit 
analyze? 
• DOM / front-end performance 
• Usability and site experience 
• Aesthetics 
• Content
Usage 
drush 
help 
-­‐-­‐filter=site_audit
drush audit_cache
drush ac --detail
HTML Output 
drush audit_best_practices --html --detail
JSON output 
drush audit_cron --json
Vendor support 
drush ae --vendor=acquia 
drush ae --vendor=pantheon
Audit All 
drush aa --skip=insights --html --bootstrap
Reports 
What and why.
Best Practices 
• Drupal Fast 404 HTML pages 
• Multisite - informational 
• PHP Filter - should be disabled 
• Settings and configuration - exists, not symbolic 
• settings.php 
• sites/all 
• sites/default 
• Unnecessary files in sites
Block 
• Caching • Cache Report
Cache 
• Anonymous page 
caching 
• Backends - list 
• Bins - list any specified 
• Default class 
• Minimum cache lifetime 
- should be never expire 
• Lock - display default 
locking mechanism 
• Page Compression - 
should be on 
• Expiration of cached 
pages - at least 15 
minutes 
• Aggregate and 
compress CSS, JS
Codebase 
• Size of entire site on disk 
• Size of public files 
• Managed file size, count
Content 
• Available content types and node counts 
• Unused content types - consider removing 
• Available vocabularies and term counts 
• Unused vocabularies - consider removing
Database 
• Collation - check if 
anything isn’t UTF-8 
• Engine - checks if anything 
isn’t using InnoDB 
• Row count - reports tables 
with more than X rows 
• Size in MB - including 
indexes and data
Extensions (modules and themes) 
• Count - 150 as arbitrary warning 
• Dev - reports development modules, provider aware of dev env 
• Disabled but not uninstalled 
• Duplicate - checks for duplicates 
• Missing - enabled, but code is missing 
• Unrecommended - Short list of bad modules 
• Version - specific problems in widely used modules
Status 
• Drupal status report 
• Highlights errors and problems
Users 
• Who is #1, blocked? 
• Count of all users 
• Count of blocked users 
• Role list, counts by role
Views 
• Count enabled 
• Caching rendered output 
• Caching query results
Watchdog 
• Number of 404s 
• How old the logs are 
• Count of entries 
• PHP errors 
• Syslog
Development 
Yes, it is extensible.
Structure 
• Object-oriented, abstract classes 
• Checks - individual checks; treat like unit tests 
• Report - collection of checks, run in a specific order. 
Can abort.
Writing custom Checks and 
Reports 
• Extend abstract SiteAuditReport, SiteAuditCheck 
• Drush hooks 
• Add callbacks 
• Add to audit_all 
• README.md
Hacked! integration
Drupal 8 version in 
development.
Applied site_audit recommendations. 
Good configuration matters. 
https://drupal.org/project/site_audit 
@FluxSauce - github.com/fluxsauce - drupal.org/u/fluxsauce

More Related Content

PDF
How to audit Drupal Sites for performance, content and best practices
PDF
Built it, but nobody came: avoiding over-engineering
PDF
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
PDF
貢獻開源專案 (Contribute to open source project)
PPTX
Automated Acceptance Testing from Scratch
PDF
Automating everything with Microsoft Flow
PDF
Go with the flow!
PPTX
Service workers What and Why?
How to audit Drupal Sites for performance, content and best practices
Built it, but nobody came: avoiding over-engineering
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
貢獻開源專案 (Contribute to open source project)
Automated Acceptance Testing from Scratch
Automating everything with Microsoft Flow
Go with the flow!
Service workers What and Why?

What's hot (20)

PDF
Functional Automated Database
PDF
Create awesome Azure Functions with PowerShell
PDF
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014
PDF
Automate everything with PowerShell
PDF
Automate it with Azure Functions
PPTX
Go on GAE (Go Israel Meetup)
PDF
Automate yourself out of a job - Use ChatOps!
PPTX
Developing for the Atlassian Ecosystem
PDF
COSCUP 開源工作坊:Git workflows
PDF
Apache contribution-bar camp-colombo
PDF
Using Microsoft Flow for IT Professionals
PPTX
A Personal Journey
PPTX
Rapid Application Development on Google App Engine for Java
PDF
Using Chat Automation - ChatOps
PPTX
Untangling - fall2017 - week 7
PDF
Trying Out Tomorrow’s WordPress Today
PDF
Workshop automating with microsoft flow
PDF
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
KEY
GR8CONF Contributing Back To Grails
PDF
Red Hat Summit 2015 : Drools, jBPM and UberFire Roadmaps
Functional Automated Database
Create awesome Azure Functions with PowerShell
Hadoop Demystified + Automation Smackdown! Austin JUG June 24 2014
Automate everything with PowerShell
Automate it with Azure Functions
Go on GAE (Go Israel Meetup)
Automate yourself out of a job - Use ChatOps!
Developing for the Atlassian Ecosystem
COSCUP 開源工作坊:Git workflows
Apache contribution-bar camp-colombo
Using Microsoft Flow for IT Professionals
A Personal Journey
Rapid Application Development on Google App Engine for Java
Using Chat Automation - ChatOps
Untangling - fall2017 - week 7
Trying Out Tomorrow’s WordPress Today
Workshop automating with microsoft flow
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
GR8CONF Contributing Back To Grails
Red Hat Summit 2015 : Drools, jBPM and UberFire Roadmaps
Ad

Viewers also liked (9)

PDF
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
PDF
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profits
PDF
Drupal 7 performance and optimization
PDF
Rf optimisation
PPTX
Antenna alignment tool
PPTX
Doing an awesome site audit
PPT
Og 102 site survey and layout of bts issue1.5
PPT
BTS SITE VISIT
PPT
3 g huawei-wcdma-rno-parameters-optimization
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Stop Playing Hide and Seek with Google: Drupal SEO for Non-profits
Drupal 7 performance and optimization
Rf optimisation
Antenna alignment tool
Doing an awesome site audit
Og 102 site survey and layout of bts issue1.5
BTS SITE VISIT
3 g huawei-wcdma-rno-parameters-optimization
Ad

Similar to Drupal Site Audit - SFDUG (20)

PPTX
Support/ maintenance travails - Why and how to audit legacy sites
PDF
SANDcamp 2014 - A Perfect Launch, Every Time
PDF
Auditing Drupal Sites
PPT
5 Common Mistakes You are Making on your Website
PPTX
Drupal 6 to 7 migration
PDF
DrupalSouth 2015 - Performance: Not an Afterthought
PDF
DRUPAL AUDITS MADE FASTR
PDF
Performance and optimization CakeFest 2014
PDF
Modernize Your Drupal Development
PDF
2.Drupal Performance and Scalability_15 Reasons to Perform a Drupal Website A...
PDF
Oxford DrupalCamp 2012 - The things we found in your website
PPT
The things we found in your website
PDF
DrupalCamp LA 2014 - A Perfect Launch, Every Time
PDF
Simple Tips to Improve Site Performance (No Coding Required!)
PPTX
Drupal 101: Tips and Tricks for Troubleshooting Drupal
PPT
Three Powerful Tools for Improving the Performance of your Drupal Site
KEY
Drupalmonitor.com - Drupal User Group Meetup Basel
PDF
DrupalCon 2014: A Perfect Launch, Every Time
PDF
LA Drupal Camp 2012- Maintaining a Drupal Site
Support/ maintenance travails - Why and how to audit legacy sites
SANDcamp 2014 - A Perfect Launch, Every Time
Auditing Drupal Sites
5 Common Mistakes You are Making on your Website
Drupal 6 to 7 migration
DrupalSouth 2015 - Performance: Not an Afterthought
DRUPAL AUDITS MADE FASTR
Performance and optimization CakeFest 2014
Modernize Your Drupal Development
2.Drupal Performance and Scalability_15 Reasons to Perform a Drupal Website A...
Oxford DrupalCamp 2012 - The things we found in your website
The things we found in your website
DrupalCamp LA 2014 - A Perfect Launch, Every Time
Simple Tips to Improve Site Performance (No Coding Required!)
Drupal 101: Tips and Tricks for Troubleshooting Drupal
Three Powerful Tools for Improving the Performance of your Drupal Site
Drupalmonitor.com - Drupal User Group Meetup Basel
DrupalCon 2014: A Perfect Launch, Every Time
LA Drupal Camp 2012- Maintaining a Drupal Site

More from Jon Peck (8)

PDF
Multiplier Effect: Case Studies in Distributions for Publishers
PPT
Creating a PHP Portal for Perseus Survey Solutions
PDF
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
PDF
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
PDF
Terminus, the Pantheon command-line interface
PDF
Pantheon Launch Check Introduction Webinar
PDF
Drush for humans - SANDcamp 2013
PPT
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Multiplier Effect: Case Studies in Distributions for Publishers
Creating a PHP Portal for Perseus Survey Solutions
The Great Consolidation: Entertainment Weekly Migration Case Study (DrupalCon...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
Terminus, the Pantheon command-line interface
Pantheon Launch Check Introduction Webinar
Drush for humans - SANDcamp 2013
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)

Recently uploaded (20)

PDF
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
PDF
An introduction to the IFRS (ISSB) Stndards.pdf
PDF
Unit-1 introduction to cyber security discuss about how to secure a system
PPT
tcp ip networks nd ip layering assotred slides
PPTX
Introuction about ICD -10 and ICD-11 PPT.pptx
PDF
RPKI Status Update, presented by Makito Lay at IDNOG 10
PPTX
Introduction to Information and Communication Technology
PPTX
Internet___Basics___Styled_ presentation
PDF
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
PDF
Testing WebRTC applications at scale.pdf
PDF
Slides PDF The World Game (s) Eco Economic Epochs.pdf
PPT
Design_with_Watersergyerge45hrbgre4top (1).ppt
PPTX
Job_Card_System_Styled_lorem_ipsum_.pptx
DOCX
Unit-3 cyber security network security of internet system
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
PPTX
innovation process that make everything different.pptx
PPTX
PptxGenJS_Demo_Chart_20250317130215833.pptx
PPTX
Introuction about WHO-FIC in ICD-10.pptx
PDF
Decoding a Decade: 10 Years of Applied CTI Discipline
PPTX
Funds Management Learning Material for Beg
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
An introduction to the IFRS (ISSB) Stndards.pdf
Unit-1 introduction to cyber security discuss about how to secure a system
tcp ip networks nd ip layering assotred slides
Introuction about ICD -10 and ICD-11 PPT.pptx
RPKI Status Update, presented by Makito Lay at IDNOG 10
Introduction to Information and Communication Technology
Internet___Basics___Styled_ presentation
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
Testing WebRTC applications at scale.pdf
Slides PDF The World Game (s) Eco Economic Epochs.pdf
Design_with_Watersergyerge45hrbgre4top (1).ppt
Job_Card_System_Styled_lorem_ipsum_.pptx
Unit-3 cyber security network security of internet system
Slides PPTX World Game (s) Eco Economic Epochs.pptx
innovation process that make everything different.pptx
PptxGenJS_Demo_Chart_20250317130215833.pptx
Introuction about WHO-FIC in ICD-10.pptx
Decoding a Decade: 10 Years of Applied CTI Discipline
Funds Management Learning Material for Beg

Drupal Site Audit - SFDUG

  • 1. Site Audit Drupal Best Practices and Content Analysis https://drupal.org/project/site_audit 2014.10.13 - SFDUG
  • 2. Jon Peck Senior Engineer at Four Kitchens @FluxSauce - github.com/fluxsauce - drupal.org/u/fluxsauce
  • 3. What is an audit? • official inspection of an individual's or organization's accounts • validate the good things you’re doing • highlight areas of improvement Electrical inspector in Public Safety Building, 1957 Item 54948, Engineering Department Photographic Negatives (Record Series 2613-07), Seattle Municipal Archives.
  • 4. Why audit sites? • Learn about contents and structure • Ensure optimal configuration • Discover areas of improvement
  • 5. Every site is unique, but… • Built with the same framework • Similar architectural requirements • One size fits most http://www.flickr.com/photos/juliancolton/5360064817
  • 6. Effective auditing • Consistent • Quantifiable • Contextually aware • Easy to understand • Actionable recommendations
  • 7. Static program analysis • Performance & behavior gathering • Does not execute • Non-intrusive • Automated
  • 8. What is Site Audit? • Drupal 7 site analyzer • Installed on target platform • Provides reports in multiple formats • Powers Launch Check on Pantheon
  • 9. Requirements • Bootstrappable Drupal site • Drush 5.10 or higher • Shell access to target
  • 10. Installation • Not a module • Place in Drush commands folder • Within user profile for just yourself • Within Drush installation folder
  • 11. What does Site Audit check? • Best Practices • Block • Cache • Codebase • Content • Cron • Database • Extensions • Google Insights • System Status • Users • Views • Watchdog
  • 12. What doesn’t Site Audit analyze? • DOM / front-end performance • Usability and site experience • Aesthetics • Content
  • 13. Usage drush help -­‐-­‐filter=site_audit
  • 16. HTML Output drush audit_best_practices --html --detail
  • 17. JSON output drush audit_cron --json
  • 18. Vendor support drush ae --vendor=acquia drush ae --vendor=pantheon
  • 19. Audit All drush aa --skip=insights --html --bootstrap
  • 21. Best Practices • Drupal Fast 404 HTML pages • Multisite - informational • PHP Filter - should be disabled • Settings and configuration - exists, not symbolic • settings.php • sites/all • sites/default • Unnecessary files in sites
  • 22. Block • Caching • Cache Report
  • 23. Cache • Anonymous page caching • Backends - list • Bins - list any specified • Default class • Minimum cache lifetime - should be never expire • Lock - display default locking mechanism • Page Compression - should be on • Expiration of cached pages - at least 15 minutes • Aggregate and compress CSS, JS
  • 24. Codebase • Size of entire site on disk • Size of public files • Managed file size, count
  • 25. Content • Available content types and node counts • Unused content types - consider removing • Available vocabularies and term counts • Unused vocabularies - consider removing
  • 26. Database • Collation - check if anything isn’t UTF-8 • Engine - checks if anything isn’t using InnoDB • Row count - reports tables with more than X rows • Size in MB - including indexes and data
  • 27. Extensions (modules and themes) • Count - 150 as arbitrary warning • Dev - reports development modules, provider aware of dev env • Disabled but not uninstalled • Duplicate - checks for duplicates • Missing - enabled, but code is missing • Unrecommended - Short list of bad modules • Version - specific problems in widely used modules
  • 28. Status • Drupal status report • Highlights errors and problems
  • 29. Users • Who is #1, blocked? • Count of all users • Count of blocked users • Role list, counts by role
  • 30. Views • Count enabled • Caching rendered output • Caching query results
  • 31. Watchdog • Number of 404s • How old the logs are • Count of entries • PHP errors • Syslog
  • 32. Development Yes, it is extensible.
  • 33. Structure • Object-oriented, abstract classes • Checks - individual checks; treat like unit tests • Report - collection of checks, run in a specific order. Can abort.
  • 34. Writing custom Checks and Reports • Extend abstract SiteAuditReport, SiteAuditCheck • Drush hooks • Add callbacks • Add to audit_all • README.md
  • 36. Drupal 8 version in development.
  • 37. Applied site_audit recommendations. Good configuration matters. https://drupal.org/project/site_audit @FluxSauce - github.com/fluxsauce - drupal.org/u/fluxsauce