About
How it works ?
Best practices
Contribute
Best Practices
Design
Choose the most suitable technology
(#1)
Use a framework or custom build
(#2)
Choose a design that is simple, clear and tailored to the web
(#5)
Use as few plugins as possible
(#24)
Allow for quick navigation through the history
(#28)
Adapt videos to the viewing environment
(#92)
Adapt sounds to the listening environment
(#95)
Compress documents
(#97)
Optimize PDFs
(#98)
Adapt text for the web
(#100)
Remove duplicate email addresses before sending
(#102)
Only use double opt-in email addresses
(#103)
Use plain text instead of HTML
(#104)
Remove non-essential features
(#109)
Precisely specify the need
(#110)
Improve the process flow
(#111)
Employ asynchronous processing when possible
(#112)
Limit the number of HTTP requests
(#180)
Use input help instead of autocomplete
(#204)
Development
Favor static pages
(#3)
Use performance-orientated forks of applications
(#4)
Externalize CSS files and JavaScript
(#7)
Split CSS
(#9)
Minimize the number of CSS files and compress them
(#10)
Favor CSS over images
(#11)
Provide a print style sheet
(#16)
Use conditional comments
(#17)
Generate CSS sprite sheets
(#18)
Use standard typefaces
(#19)
Delete image tags with empty SRC attributes
(#23)
Use functions instead of strings as the argument of setTimeout() and setInterval()
(#26)
Avoid for...in loops
(#29)
Avoid using try...catch...finally
(#30)
Use primitive operations
(#31)
Keep DOM access via JavaScript to a minimum
(#32)
Cache objects repeatedly accessed by JavaScript
(#33)
Check JavaScript code
(#35)
Favor instant visual changes
(#36)
Use local variables
(#37)
Use anonymous functions
(#38)
Make the most of string concatenation
(#39)
Use Ajax for content sections that are frequently updated
(#40)
Keep repaint (appearance) and reflow (layout) to a minimum
(#42)
Do not modify the DOM when traversing
(#43)
Make DOM elements invisible during modification
(#44)
Cache frequently-used calculated data
(#47)
Use static variables
(#48)
Free up the memory of variables that are no longer needed
(#49)
Do not call a function in the declaration of a for loop
(#50)
Remove all warnings and notices
(#51)
Avoid rewriting getter/setter natives
(#53)
Do not unnecessarily assign values to variables
(#54)
Avoid running SQL queries inside a loop
(#55)
Only connect to a database if necessary
(#56)
Never write SELECT * FROM
(#57)
Use stored procedures
(#58)
Limit the number of results
(#59)
Use all the CMS' levels of caching
(#60)
Use a templating engine
(#61)
Use single quotes (') instead of double (“)
(#62)
Replace $i++ with ++$i
(#63)
Cache the bytecode
(#64)
Resize images outside of the browser
(#93)
Resize images outside of the CMS
(#94)
Encode sound outside of the CMS
(#96)
Generate PDFs outside of the CMS
(#99)
Choose a suitable data format
(#113)
Create a modular application architecture
(#114)
Avoid using bitmap images for the interface
(#161)
Keep the number of domains serving resources to a minimum
(#170)
Avoid expensive JavaScript/CSS animations
(#810)
Hosting
Minify CSS files
(#12)
Optimize bitmaps
(#21)
Avoid redirections
(#45)
Do not generate 404 pages
(#46)
Choose a 'green' web host
(#66)
Use 'green' electricity
(#67)
Maximize the energy efficiency of servers
(#68)
Choose servers with SSD storage
(#69)
Use virtual servers
(#70)
Store data in the cloud
(#71)
Use a reverse proxy
(#72)
Only install essential components on the server
(#74)
Use a CDN
(#75)
Use an asynchronous server
(#77)
Add Expires or Cache-Control headers
(#78)
Compress the HTML output
(#79)
Use ETags
(#80)
Disable Apache's AllowOverride directive
(#81)
Disable some web server access logs
(#82)
Disable MySQL and MariaDB binary logs
(#83)
Disable Apache's DNS Lookup
(#84)
Only use in-memory caching
(#85)
Minify JavaScript files
(#88)
Minimize the use of SSL certificates
(#90)
Cache Ajax responses
(#91)
Adapt the quality of service and the service level agreement
(#501)
Only use the essential sections of JavaScript and CSS libraries
(#811)