Dans Magix CMS 4, la gestion des domaines ne se limite pas à une simple liste d'adresses. C'est le centre de pilotage qui définit l'identité de votre site auprès des moteurs de recherche et garantit l'absence de contenu dupliqué (Duplicate Content).

1. La gestion multi-domaines et l'URL Canonique

Magix CMS 4 vous permet de déclarer l'ensemble des noms de domaines associés à votre projet (ex: .be, .fr, .com).

  • Le Domaine Principal (Canonical) : Vous devez désigner un domaine par défaut. Le système force automatiquement la redirection de tous les domaines secondaires vers celui-ci.

  • Pourquoi c'est vital ? Pour Google, domaine.be et www.domaine.be sont deux sites différents. En définissant un domaine principal, vous centralisez toute votre "puissance SEO" sur une seule adresse, évitant ainsi de diluer votre positionnement.

2. Sitemaps dynamiques par domaine

Le système de Sitemap de Magix CMS 4 est entièrement automatisé. Il génère un plan de site XML normé que les robots (Googlebot, Bingbot) consultent pour indexer vos pages plus rapidement.

  • Adaptation intelligente : Le sitemap s'appuie sur le domaine configuré pour générer des URLs absolues parfaites.

  • Mise à jour en temps réel : Dès qu'une page est ajoutée ou modifiée, le sitemap est prêt à être servi, garantissant que les moteurs de recherche disposent toujours de la version la plus récente de votre structure.

3. La nouveauté V4 : Le monitoring de présence

C'est l'innovation majeure de cette version. Magix CMS 4 ne se contente plus de générer un fichier ; il veille sur lui.

L'interface d'administration intègre désormais un système de détection d'état :

  • Vérification de présence : Le CMS vérifie physiquement si les fichiers sitemap.xml sont accessibles et correctement configurés à la racine de vos domaines.

  • Alertes de santé : Si un sitemap est manquant ou inaccessible (erreur de droit d'accès, suppression accidentelle), le tableau de bord vous alerte immédiatement.

L'avantage Magix CMS 4 : "Ne restez plus dans le doute." Un sitemap manquant peut freiner l'indexation de vos nouveaux contenus. Avec la détection intégrée, vous avez la certitude que votre "passerelle" vers Google est toujours opérationnelle.

4. Pourquoi est-ce indispensable pour une agence ?

En tant que professionnel, ce système vous permet de :

  1. Sécuriser le client : Plus de risques de "crash" SEO suite à une mauvaise manipulation de domaine.

  2. Gagner du temps : La détection automatique évite de devoir vérifier manuellement chaque fichier via la Google Search Console.

  3. Garantir la performance : En couplant le domaine principal aux sitemaps détectés, vous offrez au site une structure technique conforme aux plus hauts standards de 2026.

Extension du Sitemap : La puissance des Plugins

L'un des piliers de Magix CMS 4 est sa capacité d'agrégation. Le moteur de Sitemap ne se contente pas de lister les pages statiques ; il interroge chaque plugin actif pour savoir s'il a des contenus à indexer.

1. Le principe du SitemapProvider

Pour qu'un plugin injecte ses propres URLs dans le fichier sitemap.xml global, il lui suffit de posséder une classe SitemapProvider dans son espace de nom (namespace).

Le CMS appelle automatiquement la méthode getUrls() de cette classe. Cette méthode doit retourner un tableau d'URLs formatées selon les standards de Google.

2. Anatomie de la méthode getUrls

La méthode reçoit trois paramètres essentiels pour garantir la précision des liens :

  • $idLang : L'identifiant de la langue en cours de traitement.

  • $iso : Le code ISO (ex: fr, en) pour construire des URLs sémantiques.

  • $baseUrl : L'URL racine du domaine (utile pour les chemins absolus des images).

3. Exemple de mise en œuvre (PHP 8.2+)

Voici la structure recommandée pour votre fichier SitemapProvider.php :

<?php
declare(strict_types=1);

namespace PluginsContactsrc;

/**
 * SitemapProvider : Fournit les URLs dynamiques du plugin au moteur Magix CMS
 */
class SitemapProvider
{
    /**
     * Retourne les URLs du plugin pour le sitemap du CMS
     * * @param int $idLang Identifiant de la langue
     * @param string $iso Code ISO de la langue (ex: fr)
     * @param string $baseUrl URL de base du domaine principal
     * @return array
     */
    public function getUrls(int $idLang, string $iso, string $baseUrl): array
    {
        $urls = [];

        // 1. Ajout d'une page statique du plugin (ex: la page contact)
        $urls[] = [
            'loc'        => "/{$iso}/contact/",
            'date'       => 'now', // Format automatique géré par le CMS
            'changefreq' => 'weekly',
            'priority'   => 0.8
        ];

        // 2. Ajout de contenus dynamiques (ex: Items d'un Portfolio ou Catalogue)
        // Les données sont récupérées dynamiquement en fonction de la langue $idLang
        /* foreach($items as $item) {
            $urls[] = [
                'loc'        => "/{$iso}/portfolio/{$item['id']}-{$item['url_rewriting']}/",
                'date'       => $item['updated_at'],
                'changefreq' => 'monthly',
                'priority'   => 0.6,
                'images'     => [
                    [
                        'loc'   => "{$baseUrl}/upload/portfolio/{$item['id']}/{$item['image']}", 
                        'title' => $item['title']
                    ]
                ]
            ];
        } 
        */

        return $urls;
    }
}
Haut

Nous utilisons des cookies pour vous garantir la meilleure expérience, analyser notre trafic et vous proposer des contenus adaptés. En savoir plus.