Avez vous bien prepare le lancement de votre site web?

lancementAssez souvent, le lancement d’un site web se  fait sans s’assurer de plusieurs points. L’étape de test se trouve négligée et des fois complètement ignorée. Il est toutefois très important de s’assurer de quelques points avant de laisser les utilisateurs visiter votre site web. Dans cet article j’essaierai de lister brièvement ces points.

gestion des pages d’erreur

Votre site doit avoir une page 404 (Not found) qui inclut a son tour des liens vers des pages fonctionnelles. Cette page doit être une page portant le même layout que votre site avec un message « friendly » destinée a ne pas faire de sorte que l’utilisateur soit frustre et quitte directement votre site. La même pratique doit s’appliquer aux autres types d’erreurs : 403 « forbidden » par exemple.

Validation XHTML / HTML

Est-ce que votre site est valide XHTML ou HTML ? Ceci permettra un affichage consistant sur l’ensemble des navigateurs ou via des téléphones mobiles etc.

Accessibilité

Vérifiez que votre site s’affiche bien sous IE6, IE7 et IE8, ne vous fiez pas seulement au seul navigateur de vos développeurs. Essayez de prépare un environnement de test couvrant plusieurs versions de plusieurs navigateurs sur plusieurs systèmes d’exploitation (Windows, OSX, linux etc.).

Est-ce que votre site s’affiche bien si on incrémente la taille de la police par défaut dans le navigateur ? Quel est le rendu du site si on élimine les fichiers CSS. Est-ce qu’il est toujours fonctionnel si Javascript est désactivé ?

Sémantiques minimales

Est-ce que chaque page de votre site possède un titre unique et significatif, une description et des mots clés ? Sans ces paramètres, votre rang dans les moteurs de recherches ne sera jamais parmi les premiersJ. Les titres de pages ajoutent un plus aussi a l’expérience utilisateur lorsque ce dernier sauvegarde (bookmark) votre page.

Cache client

Est ce que vous définissez des headers expires et désactivez FileEtag quand c’est nécessaire ? Ceci réduit significativement les requêtes sur votre serveur. Apache peut gérer ces configurations dans le fichier .htaccess ou dans httpd.conf.

Contrôler l’indexation des moteurs de recherche

Avez-vous un robots.txt dans votre document root ? Si vous négligez ces fichiers, vos logs d’erreurs seront remplis des messages 404 robots.txt not found provenant de tous les moteurs de recherche qui essaient de lire votre fichier inexistant.

Avez-vous une Favicon

La favicon est l’icône qui s’affiche  à cote de la barre d’adresse dans votre navigateur)

Si vous n’avez pas de fichier favicon, le même problème que celui du fichier robots.txt se présente, sauf que le problème est plus important dans ce cas, parce que les requêtes viendront des navigateurs de vos visiteurs qui essayent de lire ce fichier inexistant, ce qui remplira vos logs de messages d’erreurs. A moins que votre site ne soit jamais visitéJ. Un autre point à signaler dans ce cas est que si vous êtes  en train d’utiliser le même disque pour vos logs apache et votre site, la performance sera pénalisée puisque à chaque requête provenant du navigateur de vos utilisateurs, le serveur va écrire dans le fichier de logs!

Minifier les fichiers JS et CSS

Quelle est la taille de vos fichiers Javascript et CSS ? Vous pouvez réduire la taille de ces fichiers en les minifiant (enlevant tous les espaces et les retours chariots pour les CSS.) et en re-factorisant vos variables Javascript (afficherErreurUsername  peut devenir v1). Cette technique vous permet de sauver approximativement 15%. Vérifiez tout de même que vos fichiers fonctionnent toujours après les avoir minifiés.

Consolider Javascript et CSS

Vous ne devez pas avoir du code JS et CSS directement dans votre HTML (inline). Le fait d’utiliser un fichier CSS ou JS externe permet au navigateur de cacher ces fichiers. Avez-vous un seul fichier JS et un seul fichier CSS dans la mesure du possible? Le fait d’utiliser un seul fichier JS et un seul fichier CSS permet de minimiser les requêtes au serveur pour charger ces fichiers.

Moteurs de recherche

Est-ce que vous avez un fichier XML valide décrivant la carte de votre site (sitemap)? Est-ce que vous avez soumis votre site à une indexation sur un moteur de recherche ?  Si non, voici un petit tutorial pour vous aider a le faire.

le code php ci-dessous permet de générer facilement un sitemap :

 'daily',
 '/news' => 'hourly',
 '/contact' => 'monthly');

 echo '' . PHP_EOL
. '' . PHP_EOL;

 foreach ($urls as $loc => $frequency) {
 echo "\t" . PHP_EOL
 . "\t\thttp://www.monsite.com" . $loc . '' . PHP_EOL
 . "\t\t" . $frequency . '' . PHP_EOL
 . "\t" . PHP_EOL;
 }

echo '';

Resultat :

 

 http://www.YOURSITE.com/
 daily

 http://www.YOURSITE.com/news
 hourly

 http://www.YOURSITE.com/contact
 monthly

Apres le lancement de votre site, vous devez vous connecter sur google webmaster tools et indiquer l’url de votre site pour l’indexation (crawling) ce qui permettra a google de mettre votre site dans sa queue d’indexation. Ensuite, ajouter votre sitemap dans le fichier robots.txt, comme suit

User-agent: *
Disallow:
Sitemap: /sitemap

Et soumettez votre site dans Yathoo! Directory, Yahoo! Search, MSN et DMOZ. Pour l’indexer dans d’autres moteurs de recherche, utiliser un service de soumission est la façon la plus facile. Vous en trouverez plusieurs en googlant.

Vérifier vos entêtes

Est-ce que vos entêtes contiennent uniquement l’information nécessaire ?

Vérifiez que la variable de configuration expose_php (lien a http://ca2.php.net/manual/fr/ini.core.php ) est désactivée sur votre serveur ? Enlevez les directives qui ne sont pas nécessaires pour alléger le chargement de vos pages. Vérifiez et appliquer les conseils de YSlow pour votre site.

Distribution de vos fichiers sur les domaines

Est-ce que les fichiers externes accédés par votre site (images, JS et CSS etc.) sont distribués sur quatre domaines ? Quatre domaines ? Oui quatre est le chiffre magique ! En effet, plusieurs navigateurs, par défaut, n’effectuent pas plus que deux appels simultanés à un seul domaine (ou sous domaine). Ceci implique que votre navigateur va mettre en queue l’ensemble des fichiers puisqu’il charge deux à chaque fois. L’utilisation de plusieurs domaines ou sous domaines (images.yoursite.com)  resoud ce problème, sauf que cela nécessite un temps supplémentaire pour résoudre le nom de domaine avant de charger les fichiers. Dans la plupart des situations, quatre sources de données est la balance idéale entre le les limites du chargement simultanée et la latence de la résolution de domaine.

Mémoire vive RAM

Est-ce que votre serveur vos éléments statique via un serveur RAM ? Le moyen le plus efficient de servir des pages statiques est d’éviter au maximum les E/S sur le disque. Servez toujours vos pages statiques depuis un disque RAM.  Utilisez un script shell pour restaurer vos données si le serveur redémarre ou se plante.

Pour vos bases de données, MySQL possède un engin appelé MEMORY, qui permet de sauvegarder les données dans la RAM. Ceci est idéal pour les données qui ne changent jamais comme les tables contenant des codes de pays par exemple. Les tables de « type » MEMORY seront perdues lors du redémarrage aussi. Vous pouvez alors créer un script SQL pour remplir vos tables de type MEMORY depuis vos tables stockées sur le disque. Par exemple :

insert into countries_memory select * from countries_innodb;

Vous pouvez configurer l’exécution automatique de votre script en spécifiant la directive init-file de votre fichier de configuration MYSQL  (my.cnf).

Utilisez aussi MEMCACHED ou APC pour tous vos données (provenant de fichiers ou de base de données) que vous voulez mettre en cache. Vous pouvez aussi utiliser ces librairies pour stocker vos sessions PHP au lieu d’utiliser une base de données.

Pre-chargez vos fichiers de configuration Apache

Sur un site de production, il faut toujours désactiver l’accès « on the fly » pour les fichiers .htaccess. Ceci permettra de gagner des E/S sur votre serveur. Enlevez l’option

AllowOverride dans votre httpd.conf et ajouter :

AllowOverride None
Include "/YOURSITE/.htaccess"

Ceci permettra de pre-charger les configurations de votre fichier .htaccess directement dans votre configuration d’Apache. Redémarrez toutefois votre serveur pour que cela prenne place.

Gestion des erreurs PHP

Est-ce que les messages d’erreurs PHP sur votre serveur sont logues et non affiches ? Est ce que la directive error_reporting est au niveau E_ALL ou plus ?

Dans votre php.ini, mettez log_errors a on, display_errors a off et error_reporting a E_ALL ou plus (idéalement E_ALL | E_NOTICE). Ceci est important si la version de PHP sur l’environnement de production est différente de l’environnement de développement ou bien s’il y a des configurations différentes.

Sécurité

Est-ce que des sources backend ou des fichiers de configuration ou de mots de passe sont accessible via un url ?

Exemple :

http://votresite/.svn

http://votresite/config.inc

http://votresite/configuration.xml

Email

Si vous utilisez un nouveau domaine, assurez vous de configurer les emails rattachées

Conclusion

Plusieurs de ces étapes/vérifications sont négligées  lors du lancement d’un site web. Les délais de lancement et le manque d’estimation sont souvent source de tels oublis.

Anis Berejeb

Anis est avant tout un passioné de l'agilité et du développement. Avec plus de 15 ans dans le domaine du développement web, son expertise combine des connaissances accrues dans l'ensemble des notions partant du développement logiciel jusqu'à l'organisation des équipes dans les environnements agiles à grande échelle.

You may also like...