Modx CMSMODx est toujours en développement à l'heure qu'il est. Toutefois, il est déjà parfaitement fonctionnel, dispose de nombreux plug-ins et addons et bénéficie du support d'une communauté très active et d'une documentation utile pour débuter. Ses atouts les plus importants sont sa souplesse et sa modularité. Concevoir un site sous MODx, c'est un peu faire un jeu de construction en HTML, CSS et PHP. Cette modularité permet de concevoir des modèles de page au code très lisible et très simple, avec une grande liberté de mise en page.

A des années lumières de certains systèmes très chers qui rendent les sites impossibles à référencer, MODx dispose en outre de fonctionnalités qui facilitent le travail du référenceur

Titres et éléments d'un document

MODx propose de nombreux champs pour définir un document : titre, titre long, description, résumé, titre dans les menus. Tous ces éléments sont des variables qui peuvent être utilisées de diverses façons. On peut ainsi créer une page avec titre, sous titre, chapô et corps de texte principal, puis paramétrer séparément les textes des liens présents dans les menus. Les balise title et meta description peuvent utiliser un ou plusieurs de ces éléments.

URLs "SEO friendly"

Comme sur de nombreux CMS (et comme sur Dotclear sur lequel ces lignes sont écrites), on peut disposer d'URLs sans passage de paramètre et contenant des mots clefs. Mais MODx va plus loin en permettant de disposer d'URLs similaires à celles qu'aurait un site statique en prenant en compte des répertoires/sous répertoires et en proposant de faire figurer l'extension de son choix. On peut donc avoir des URLs comme : http://www.carnets-referencement.com/referencement/modx-cms.php. Sur le premier site sur lequel j'ai travaillé, j'ai pu reprendre les URLs de la version précédente (statique) et ainsi conserver leur référencement.

Liens latéraux et mots clefs

MODx permet de définir une liste de mots clefs qui seront appliqué en tant que méta-données sur l'ensemble du site. Chaque document est ensuite rattaché à un ou plusieurs mots clefs de la liste initiale. Une fois ce travail effectué, un snippet (plugin constitué d'un code en PHP) nommé ListRelated permet de relier entre eux automatiquement les documents ayant des mots clefs en communs.

Deux petits soucis vite réglés

En réalisant mon premier site MODx, j'ai trouvé deux petits soucis pour le référencement. Heureusement, je n'étais pas le premier et d'autres membres de la communauté d'utilisateurs avaient déjà trouvé des solutions.

Par défaut, MODx retourne un code 200 pour une erreur 404

C'est un problème car cela empêche la suppression de documents retirés du serveur de l'index des moteurs de recherche.
La solution est ici
Il faut créer un plugin avec le code suivant :

if (($modx->documentIdentifier == $modx->config['error_page'])||($modx->Event=='OnPageNotFound')) {
                 $header = "HTTP/1.0 404 Not Found\n";
                 header($header);
}
Et cocher les deux cases : "OnWebPagePrerender" et "OnPageNotFound" dans l'onglet "system events"

Le lien de retour vers la homepage pointe vers un document et non la racine du site
C'est également gênant car les moteurs indexent dans ce cas deux documents pour la homepage. Par ailleurs la répartition du PageRank à l'intérieur du site est affectée. Au passage Dotclear à le même problème dans sa configuration par défaut.
Il existe également une solution ici sous la forme d'un plugin avec un code comme suit:
$output = $modx->documentOutput;
$pattern = '/href=\"1\/\"/';
$replacement = 'href="/"';
$modx->documentOutput = preg_replace($pattern, $replacement, $output);
Cocher la case "OnWebPagePrerender" dans l'onglet "system events"