Il est souvent nécessaire de procéder à des optimisations pour que Typo3 puisse fonctionner correctement et avoir des temps de réponse corrects, en rédaction et en consultation.
Les optimisations peuvent concerner le serveur Web qui héberge Typo3, le serveur MySQL qui héberge la base de données du site, l’installation de Typo3 ou le poste client (l’ordinateur qui consulte le site).

Optimisation au niveau du serveur Web

mod_expires

Dans les répertoires /typo3temp/compressor, /typo3/contrib/, /typo3/gfx, /typo3/sysext,/typo3/sysext/version/ws se trouvent des .htaccess qui contiennent ce code:

<FilesMatch « \.(gif|png|jpg)$ »>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault « access plus 7 days »
</IfModule>
FileETag MTime Size
</FilesMatch>

Ce code, qui influence le navigateur sur sa manière de gérer le cache des fichiers, ne s’applique que si le serveur Web dispose du module mod_expires, il est donc souhaitable d’installer ce module sur le serveur Web.

En savoir plus sur le module apache mod_expires : http://httpd.apache.org/docs/2.0/mod/mod_expires.html

mod_deflate

Ce module apache fournit un filtre au serveur Web qui permet de compresser les données avant de les envoyer aux clients. C’est le navigateur qui se charge ensuite de la décompression des données mais l’intérêt est de diminuer la taille des contenus transférés.

En savoir plus sur le module apache mod_deflate : http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

Eviter les fichiers .htaccess

Tout est là: http://httpd.apache.org/docs/2.0/howto/htaccess.html#when

En résumé, lorsque l’on a accès à la configuration globale du serveur Web, on ne doit jamais utiliser les fichiers .htaccess, on ne doit donc jamais utiliser la directive apache AllowOverride avec une valeur autre que « none ».

Dans le cas contraire (allowOverride avec une valeur autre que « none »), le problème est le même, qu’il y ait ou pas des fichiers .htaccess présents.

En effet, la recherche de ces fichiers se fera tout de même pour les répertoires concernés par la directive AllowOverride, pour rien s’il n’y en a pas.

Accélérateur PHP

Typo3 utilise pour ses traitements de nombreux scripts PHP qui réalisent de nombreuses inclusions de fichiers, ce qui peut ralentir la génération des pages.

Pour améliorer cela, il est conseillé d’installer un accélérateur PHP (cache d’OPCodes) sur le serveur Web (APC, eAccelerator, Zend Platform).

Optimisation du serveur MySQL

Installer la base sur un serveur indépendant

Si possible, utiliser un serveur MySQL indépendant du serveur Web.

Configuration de MySQL

activer la mise en cache des requêtes,
activer les insertions en parallèle,
augmenter la valeur de key_buffer et de ley_buffer_size,
désactiver le log des erreurs et des requêtes lentes (slow query logs),
donner une valeur élevée à max_connections et une valeur basse à wait_timeout
donner une valeur élevée à la taille du cache des tables
Exemple de configuration de MySQL:

Optimisation de Typo3

Faire régulièrement le nettoyage du répertoire /typo3temp
Nettoyer le répertoire typo3temp
Activer la compression des fichiers css et javascript

Dans le répertoire d’installation de Typo3 se trouve un .htaccess qui contient ce code:

<FilesMatch « \.js\.gzip$ »>
AddType « text/javascript » .gzip
</FilesMatch>
<FilesMatch « \.css\.gzip$ »>
AddType « text/css » .gzip
</FilesMatch>
AddEncoding gzip .gzip

Ce code fonctionne conjointement avec la directive Typo3 compressionLevel, qui par défaut est à 0 (pas de compression).

Directive Typo3 compressionLevel

Pour fonctionner, PHP doit disposer de l’extension php_zip.

Désactiver le log des fonctions dépréciées

Par défaut, Typo3 alimente un fichier de log contenant les appels à des fonctions Typo3 dépréciées. Cela peut induire une perte de performance et le fichier peut atteindre une taille assez importante.

Pour désactiver ce comportement,mettre la valeur de la directive enableDeprecationLog à 0 dans le fichier typo3conf/localconf.php:

$TYPO3_CONF_VARS[‘SYS’][‘enableDeprecationLog’] = ‘0’;

Ne pas utiliser l’extension sys_stat

L’extension sys_stat sert à produire des statistiques de consultation des pages.

Pour cette fonctionnalité, installer plutôt awstats ou webalizer.

Ne pas utiliser indexed_search sauf si c’est indispensable

Utiliser l’extension indexed_search pour indexer le contenu du site seulement si le site a réellement besoin d’un moteur de recherche.

Article d’origine
http://www.dev-web.fr/typo3-cms/documentations-et-tutoriels-typo3/optimisation-de-typo3.html

Autre ressource
http://www.typofree.org/articles/optimizing-typo3-backend-responsiveness/