Quatre constructeurs de matériel viticole. Un site Web de brochures vieillissant. Le brief : "nous voulons quelque chose de propre, bilingue, adapté aux appareils mobiles et qui ne soit pas spammé". Pas de portail client, pas de e-commerce, pas de back-office. Cinq pages. La réaction naturelle en 2026 est de se tourner vers WordPress, Symfony ou Next.js. J'ai choisi PHP 8 brut, Bootstrap 5 via CDN et zéro dépendance npm en production. 25 commits et trois semaines plus tard, le site fonctionne sur un hébergement mutualisé chez InterServer sans rien demander à personne.
Il ne s'agit pas d'un article sur "pourquoi PHP est génial". C'est un tour d'horizon des vrais problèmes que l'on rencontre lors de la création d'un site de brochures sérieux sans framework : un routage bilingue qui fait trébucher Google, un anti-spam qui ne harcèle pas les humains, un CSP qui casse les CDN, un LCP qui tanke à cause d'un message mal placé.chargement="paresseux", et CI/CD qui tente de tester un plan de site sans Apache.
La question revient toujours. Cinq pages statiques, un formulaire de contact, pas de contenu dynamique. Qu’apporte ici un CMS ? Un panneau d'administration que personne n'utilisera, un écosystème de plugins où 40 % ont publié des CVE et des mises à jour mensuelles qui cassent le thème. WordPress compte plus de 7 000 CVE référencés. Pour un site qui ne changera pas pendant 3 ans, c'est une surface d'attaque gratuite.
Symfony ? Doctrine? Pour cinq pages sans base de données ? Le chargeur automatique à lui seul pèse plus que l'ensemble du projet. Lecomposer.jsonintroduit un arbre de dépendances où chaque nœud est un vecteur d'attaque et une responsabilité de maintenance. Le vrai luxe d'un site PHP brut est qu'il fonctionnera encore dans 10 ans sans toucher à une ligne - pas de changements majeurs entre les versions majeures du framework, pas d'avis de dépréciation, nonmise à jour du compositeurcasser des choses un vendredi.
La pile finale tient en une phrase :index.php+ uncomprend/dossier, Bootstrap 5 et Font Awesome via CDN, PHPMailer fourni pour le formulaire de contact, Apache avec.htaccesspour les réécritures et la sécurité.
Le piège classique du PHP bilingue, c'est de penser qu'il vous fautobtenir du texte, unmessages.fr.ymlfichier et un système de routage avec un/{_lieu}/paramètre. Pour cinq pages, la solution la plus maintenable est aussi la plus brutale : dupliquer.index.phppour le français,fr/index.phppour l'anglais. L'en-tête est partagé via uninclure.
hreflang est composé de trois lignes dans le– et 90 % des sites se trompent. Erreurs classiques : oublierx-par défaut, en pointant le hreflang vers une URL avec une barre oblique finale lorsque le canonique n'en a pas, ou en l'ajoutant uniquement dans une direction (FR pointe vers EN, mais EN ne renvoie pas vers FR).
x-par défautpointe vers le français — c'est le marché principal. Chaque page dans les deux langues contient les trois liens. Et dans le plan du site, même chose avec:
https://viticulture-solutions.com/