Pourquoi les développeurs détestent WordPress

  Temps de lecture : 9 min.
Pourquoi les développeurs détestent WordPress ? Quelles sont les raisons qui font que WordPress est un mauvais framework ?

Tous les développeurs que je connais détestent WordPress, tous.

Est-ce que le CMS est nul à ce point-là ? Finalement pourquoi WordPress a mauvaise réputation ?

Si tu as envie de te lancer dans un projet WordPress, lis bien cet article, tu pourrais être surpris.

À la fin de cet article tu sauras pourquoi tout le monde n’aime pas WordPress (en tout cas les devs) et si tu dois l’utiliser sur ton projet.

La vérité c’est que…

Tout le monde déteste WordPress parce que c’est « cheap »

Tout le monde peut utiliser WordPress.

Avec les installateurs que proposent OVH et les autres, n'importe qui peut setup un WP avec PHP + MySQL + Mails, sans rien y connaître.

Du coup en tant que dev, quand tu dis « Je fais du WordPress », personne ne peut pas savoir si tu fais du dev dessus ou si tu as installé 4 plugins…

Ça c’est historique. Il y a 10 ans tous les apprentis développeurs faisaient de petits sites sous WordPress en indépendant pour gagner un peu d’argent.

Et comme WordPress ne requière pas spécialement de compétences incroyables en termes de développement (ce n’est pas du C), tout le monde s’est mis à faire un peu n’importe quoi.

Sans compter que c’est du PHP, là c’est la cerise sur le gâteau : c’est forcément nul.

Non seulement WordPress c’est de la merde, mais en plus il est même pas fait avec un vrai langage de programmation.

Un développeur lambda.

Absolument tout le monde dans ma boîte déteste WordPress.

Et tu veux savoir quoi ?

Aucun des développeurs disant cela n’a jamais développé avec.

Donc les développeurs détestent WordPress sans trop savoir pourquoi.

Paye la crédibilité !

Pourtant, de grands groupes ont choisi WordPress

Alors oui, c’est pour faire des blogs !

C’est avant tout à cela que sert WordPress 🙂

WordPress Walt Disney
https://thewaltdisneycompany.com/
WordPress groupe Renault
https://group.renault.com/
WordPress Blog Mozilla
https://blog.mozilla.org/

Les développeurs ne savent pas de quoi ils parlent

Dans notre communauté, tout le monde a un avis sur tout.

Et WordPress ne fait pas exception.

Alors remettons les pendules à l’heure 🙂

Voici une liste des arguments contre l’utilisation d’un projet WordPress que j’entends le plus souvent.

WordPress est mal codé

Tu peux être certain que le développeur qui a dit ça, il est allé inspecter tout le code source de WordPress sur Github…

Bien sûr que non !

Pour le coup je l’ai fait, et effectivement il y a des trucs pas tip top.

Tout d’abord, tu as des balises HTML dans le PHP.

Tu as un bon exemple ici :

https://github.com/WordPress/WordPress/blob/master/wp-includes/class-walker-comment.php#L354

Les bonnes pratiques actuelles ne sont pas forcément respectées, ce n’est pas rare de voir des fichiers de + 1000 lignes.

https://github.com/WordPress/WordPress/blob/master/wp-includes/class-http.php

Ensuite, l’utilisation de variables globales :

https://github.com/WordPress/WordPress/blob/master/wp-settings.php#L32

Enfin, il y a un peu de SQL en vrac :

https://github.com/WordPress/WordPress/blob/master/wp-includes/class-wp-network-query.php#L308

On est loin des requêtes DQL avec Doctrine.

Il y aurait sans doute d’autres choses à dire, mais le but ici n’est pas de faire un audit technique, mais simplement de faire un état des lieux de la qualité du code de WordPress.

Mais cela s’explique…

La dette technique, il est temps de réécrire WordPress

La première version de WordPress est sortie le 27 mai 2003, cela fait 17 ans depuis quelques jours.

Le cœur du CMS a une dette technique colossale, sans surprise.

Cycle de vie de WordPress
Le cycle de vie du core de WordPress basé sur des hooks.

Le fonctionnement de ce core est quasiment impossible à réécrire pour les développeurs de WordPress.

Les hooks comme after_setup_theme, wp_insert_post, wp_print_scripts , ou les fonctions comme the_content(), the_title(), the_posts() font parties intégrantes de milliers de thèmes et de plugins.

Si les développeurs étaient amené à changer cela, des milliers d’extensions ne fonctionneraient plus.

Le changement doit se faire petit à petit…

Alors oui, WordPress ne respecte pas toutes les bonnes pratiques actuelles.

Mais peut-on dire que c’est mal codé pour autant ?

Je te laisse juge !

WordPress est lent

J’aurais pu accepter cet argument avant la version 5, mais désormais WordPress est réellement performant !

Performance de WordPress
https://tools.pingdom.com/#5c9ce26968400000

Pas mal pour du WordPress ?

Ce test est généré pour ce blog que tu es en train de lire.

Avec un thème bien fait, tu peux charger WordPress aussi vite voire plus vite qu'une application Symfony.

Le but ici n’est pas de savoir qui est le plus rapide à la centième de seconde prêt.

Mais bien de savoir si l’expérience utilisateur est optimale pour le temps passé à développer.

J’ai passé une journée à setup mon WordPress + le thème. Il est optimisé SEO, design friendly…

De combien de temps j’aurais dû avoir besoin pour faire un équivalent sous Symfony ?

WordPress peut devenir super lent !

Si tu installes beaucoup de plugins, chacun va intégrer son propre style et ses propres scripts.

Ces derniers se retrouveront alors dans ton code source.

Tu peux très vite te retrouver avec beaucoup de fichiers CSS et JS pour chaque page, alors que toutes n’en n’ont pas forcément besoin.

Prenons le plugin de formulaire le plus populaire de WordPress : Contact Form 7.

In its default settings, Contact Form 7 loads its JavaScript and CSS stylesheet on every page. […] there is a technical difficulty for a plugin in knowing whether the page contains contact forms or not at the start of loading.

https://contactform7.com/loading-javascript-and-stylesheet-only-when-it-is-necessary/

Par défaut, le JS et le CSS sont chargés sur toutes les pages, car le plugin ne peut pas savoir sur quelles pages le formulaire est utilisé.

Si le développeur n’y fait pas attention, le site se retrouvera rapidement surchargé.

Et c’est à ce même développeur de veiller à ce que chaque asset se trouve uniquement sur la bonne page.

WordPress n’est pas maintenable

Comme tout projet, tout dépend de comment il est codé…

Il faut savoir utiliser WordPress quand il convient.

Si quelqu’un a choisi WordPress pour faire une application hyper métier avec des relations entre les objets dans tous les sens, il s’est planté.

Alors oui, ta TMA va être compliquée !

Mais pas plus que les autres vieux projets fait à la main et passés d’agences en agences jusqu’à arriver dans la tienne.

Parce que des projets de 10 ans avec une codebase horrible, il y en a dans tous les langages, tous les frameworks.

Tous les projets peuvent devenir merdiques, c’est le développeur qui fait la qualité d’un projet !

WordPress ne tient pas la charge

Et pourtant ! Encore une fois, tout dépend de la manière dont le site a été codé.

En effet, un site avec 150 plugins a moins de chance de survivre avec 1000 utilisateurs en simultanés.

WordPress ne tient pas la charge
https://wpspeedmatters.com/how-to-load-test-a-wordpress-website/

Dans l’article il est précisé que ce test est effectué avec un CDN.

Cela n’enlève rien au fait que l’application pour 10.000 utilisateurs, répond en moins de 1 seconde.

Alors bien sûr on peut critiquer ce test, mais je ne suis pas sûr qu’une application avec Laravel sans CDN puisse faire mieux.

WordPress n’est pas sécurisé

Pour raconter une histoire rigolote, un gérant d’une agence web m’a un jour affirmé :

Quoi ton site est sur WordPress ? Moi en 5 minutes je te le pète ton WP.

Quelle a été ma réponse ?

D'accord, prouve-le.

Bien évidemment, personne n’a rien jamais rien cassé.

Concernant WP, outre une installation propre sur un serveur sécurisé, la sécurité se résume en deux choses :

  • Les mises à jour
  • Les exploits

WordPress représente 1/3 du web (oui moi aussi j’ai du mal avec cette affirmation, enfin bon). Alors chaque faille est destructrice !

Mais pas de quoi détester WordPress pour autant !

Toutefois on peut se rassurer en se disant que le CMS est mis à jour par des centaines de contributeurs dont certains sont experts en sécurité informatique.

L’équipe WordPress est d’ailleurs en train de chercher un moyen de faire des mises à jour automatiques.

Concernant les exploits, ils sont souvent amenés par les plugins / thèmes pas très bien codés (quoique cela se défend).

Mais toi en tant que développeur, tu as la chance de choisir de les utiliser, contrairement à la personne lambda qui fait son site vitrine.

Tu peux donc créer tes fonctionnalités comme tu le ferais avec un framework classique.

Pour l’anecdote, j’ai fait un thème WordPress pour m’amuser il y a quelques mois.

Le processus de validation du thème est ultra long, chaque thème est revu par un contributeur, toutes les entrées/sorties de texte du thème doivent être sanitizées sinon ton thème est rejeté…

Finalement niveau sécurité, c’est quand même pas si mal.

Alors oui l’ensemble des fichiers WordPress est exposé dû à sa structure (on expose pas seulement l’index.php comme sur une application PHP traditionnelle).

Mais ce n’est pas pour autant que l’outil est une passoire, loin de là.

Pourquoi les développeurs WordPress sont mauvais ?

Clairement, les développeurs WordPress se font chambrer.

En réalité, apprendre WordPress est assez facile, alors les développeurs qui font « du dev compliqué » eux se font mousser.

La réalité c’est que des développeurs moyens, il y en a partout, WordPress ou pas.

Comme WordPress est plus abordable, il y en a peut-être davantage de ce côté-ci.

Mais si tu vas dans ce sens, il y a sûrement moins de développeurs perfectibles en C pour Linux plutôt qu'en JEE Jakarta EE...

Question de point de vue.

Tous les plugins et thèmes WordPress n’ont pas été fait par des développeurs sans diplôme ayant commencé le code hier soir.

Les mauvais côtés de WordPress pour les développeurs

« WordPress c’est nul », c’est ce que l’on entend souvent.

Alors du coup tout le monde s’est ligué contre le CMS, et les développeurs ont fini par détester WordPress.

Grafikart a fait une vidéo sur les mauvais côtés techniques de WordPress.

La vidéo est assez complémentaire à cet article.

Les avantages de WordPress pour les développeurs

Il y a aussi de très bons arguments en faveur de WordPress pour les développeurs !

  • Le support est incroyable, la communauté immense. Tu te poses une question ? Quelqu’un y a déjà répondu sur StackOverflow
  • Pour commencer le développement, l’apprentissage est très rapide
  • La documentation est vraiment bien faite
  • Des plugins inégalables comme Yoast, Redirect, Askismet… te ferons gagner beaucoup de temps de développement
  • C’est le CMS le plus populaire au monde pour les utilisateurs (pas pour les développeurs certes, mais du coup c’est une cible de choix pour les freelances)
  • Gutenberg permet de créer de jolies pages avec un éditeur très visuel
  • L’API Rest te permet de créer le front que tu souhaites (tu n’es pas obligé de « créer un thème WordPress »)

Pour quels projets utiliser WordPress ?

Dans quel cas utiliser WordPress ?

Tu peux envisager d’utiliser WordPress dans ton développement avec :

  • Un blog
  • Un site vitrine
  • Un site que le client souhaite administrer lui-même
  • Un budget assez serré

Il faut éviter d’utiliser WordPress si :

  • Tu construis quelque chose de métier (les contenus sont bien trop plats)
  • Tu souhaites créer une application web ou tout autre chose qui ne ressemble pas un site de contenu

WordPress sert avant tout à exposer du contenu assez simple et contribué facilement.

Conclusion

Cet article n’avait pas pour but de lister tous les avantages et les inconvénients de WordPress, mais plutôt de conseiller sur son utilisation.

Comme toute technologie, il faut savoir l’utiliser à bon escient.

Alors oui, WordPress permet à n’importe qui de faire un site propre, rapide et personnalisée sans rien connaître à la programmation HTML.

Développement web HTML sous WordPress
https://lesjoiesducode.fr/developpeur-code-en-html

Mais s’il permet de faire cela, il permet aussi de faire l’inverse : un site hyper lourd, pas sécurisé et mal codé.

Pour résumer : un grand pouvoir implique de grandes responsabilités.

Il ne faut pas oublier que le core des WordPress est quand même assez complexe, et que WordPress s’assoie sur presque 20 ans de code legacy !

Si tu n’es pas d’accord avec cet article, dis-le en commentaire, je serai ravi d’échanger avec toi !

❤️ Tu as aimé cet article ?️

J'ai mis un moment à l'écrire... Ce serait top si tu pouvais le partager à la communauté !