Pour avoir plusieurs ' sitemap ' efficaces

bg62bg62 Member
dans Plugins

Bonjour à tous :)
Pour les ' sitemap ' que PluXml peut gérer, nous avons, sitemap.php, pour le 'général ', puis celui des catégories, puis encore celui (et autres ) des éventuels commentaires ... mais il serait fort intéressant d'en avoir un qui puisse gérer également les images intégrées à un site.
sachant que :
- les images sont de plus en plus recherchées sur le Net et par les moteurs tels Google & autres, et par d'autres site genre Pinterest ...
- les 'fichiers' images peuvent avoir plusieurs extensions différentes
- sachant que les fichiers ' *.tb.jpg ' ne doivent pas être pris en compte (doublons,nombre,utilité,taille ...)
- selon le nombre d'images hébergées on risque aussi d'être amené à créé plusieurs 'sitemap' puis GG et autres recommandes certaines limites ...

-- >> Peut-on réussir à faire cela via un script en 'php' ou serait-il plus intéressant d'avoir un Nième plugin qui **pourrait gérer l'ensemble des sitemaps et de leurs paramètres, ainsi que leur inscription dans le fichiers 'robots.txt' **???

-->> vos avis ??
-->> du boulot pour les codeurs :)
amitiés
b. g.

Réponses

  • 1 mai modifié

    Bonsoir,

    Je ne sais pas trop ce que tu souhaite, mais on peut tenter de faire un sitemapImage à partir des images d'accroche dans un premier temps :

    Voici un exemple à partir du fichier sitemap.php de pluxml transposer en sitemapImage.php pour les images d'accroche des rubriques et articles: (noms des hooks aussi modifier pour éviter toutes interférences avec le sitemap.php classique.)

    <?php
        const PLX_ROOT = './';
        const PLX_CORE = PLX_ROOT .'core/';
    
        include(PLX_ROOT.'config.php');
        include(PLX_CORE.'lib/config.php');
    
        # On verifie que PluXml est installé
        if(!file_exists(path('XMLFILE_PARAMETERS'))) {
            header('Location: '.PLX_ROOT.'install.php');
            exit;
        }
    
        # On inclut les librairies nécessaires
        include(PLX_CORE.'lib/class.plx.date.php');
        include(PLX_CORE.'lib/class.plx.glob.php');
        include(PLX_CORE.'lib/class.plx.utils.php');
        include(PLX_CORE.'lib/class.plx.capcha.php');
        include(PLX_CORE.'lib/class.plx.erreur.php');
        include(PLX_CORE.'lib/class.plx.record.php');
        include(PLX_CORE.'lib/class.plx.motor.php');
        include(PLX_CORE.'lib/class.plx.plugins.php');
    
        # On impose le charset
        header('Content-Type: text/xml; charset='.PLX_CHARSET);
    
        # Creation de l'objet principal et lancement du traitement
        $plxMotor = plxMotor::getInstance();
    
        # Détermination de la langue à utiliser (modifiable par le hook : Index)
        $lang = $plxMotor->aConf['default_lang'];
    
        # Hook Plugins
        if(eval($plxMotor->plxPlugins->callHook('SitemapImageBegin'))) return;
    
        # chargement du fichier de langue
        loadLang(PLX_CORE.'lang/'.$lang.'/core.php');
    
        # On démarre la bufferisation
        ob_start();
        ob_implicit_flush(0);
    
        $plxMotor->prechauffage();
        $plxMotor->demarrage();
    
        # Entête XML
        echo '<?xml version="1.0" encoding="'.strtolower(PLX_CHARSET).'" ?>'."\n";
    ?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
        <?php
            # Les catégories
            foreach($plxMotor->aCats as $cat_num => $cat_info) {
                if($cat_info['active']==1 AND $cat_info['menu']=='oui' AND ($cat_info['thumbnail'] !='')AND ($cat_info['articles']!=0 OR $plxMotor->aConf['display_empty_cat'])) {
                    echo "<url>\n";
                    echo "\t\t<loc>".$plxMotor->urlRewrite("?categorie".intval($cat_num)."/".$cat_info['url'])."</loc>\n";
                    echo "\t\t<image:image>
                <image:loc>".$plxMotor->urlRewrite($cat_info['thumbnail'])."</image:loc>
            </image:image>\n";
                    echo "\t</url>";
                }
            }
            eval($plxMotor->plxPlugins->callHook('SitemapImageCategories')); # Hook Plugins
            # Les articles
            if($aFiles = $plxMotor->plxGlob_arts->query('/^[0-9]{4}.(?:[0-9]|home|,)*(?:'.$plxMotor->activeCats.'|home)(?:[0-9]|home|,)*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/','art','rsort', 0, false, 'before')) {
                $plxRecord_arts = false;
                $array=array();
                foreach($aFiles as $k=>$v) { # On parcourt tous les fichiers
                    $array[ $k ] = $plxMotor->parseArticle(PLX_ROOT.$plxMotor->aConf['racine_articles'].$v);
                }
                # On stocke les enregistrements dans un objet plxRecord
                $plxRecord_arts = new plxRecord($array);
                if($plxRecord_arts) {
                    # On boucle sur nos articles
                    while($plxRecord_arts->loop()) {
                        $num = intval($plxRecord_arts->f('numero'));
                        if($plxRecord_arts->f('thumbnail') !='') {
                            echo "\n";
                            echo "\t<url>\n";
                            echo "\t\t<loc>".$plxMotor->urlRewrite("?article".$num."/".plxUtils::strCheck($plxRecord_arts->f('url')))."</loc>\n";
                            echo "\t\t<image:image>
                <image:loc>".$plxMotor->urlRewrite($plxRecord_arts->f('thumbnail'))."</image:loc>
            </image:image>\n";
                            echo "\t</url>";
                        }
                    }
                }
            }
            eval($plxMotor->plxPlugins->callHook('SitemapImageArticles')); # Hook Plugins
        ?>
    
    </urlset>
    <?php
    
        # Récuperation de la bufférisation
        $output = ob_get_clean();
    
        eval($plxMotor->plxPlugins->callHook('SitemapImageEnd')); # Hook Plugins
    
        # Restitution écran
        echo $output;
        exit;
    ?>
    

    À copier dans un fichier sitemapImage.php (ou du nom que vous voulez avec l'extension php) à la racine de votre site, il suffit alors de le declarer aux moteurs de recherches via robots.txt ou depuis un compte que vous avez dans votre moteur de recherche.


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bg62bg62 Member
    2 mai modifié

    Super .... mais ...

    • SI tous les fichiers images du site portent un nom correct ..
    • serait-il possible d'aller rechercher tous les noms et extensions des images placées dans le dossier 'médias' ,(et ses x dossiers) ainsi que ceux qui sont dans 'photos' (... et ses x dossiers) ( sauf si le répertoire 'photos' est déjà scanné par la première commande qui elle scannerait tout dans le répertoire 'médias' )

    Autrement dit, ce que je voudrais c'est un script qui scanne tout ce qui se trouve dans le répertoire 'medias' (dossier dans lequel se trouvent toutes les images, autres dossiers et sous-dossiers et + ) (avec les conditions exprimées dans la question initiale telles que - les 'fichiers' images peuvent avoir plusieurs extensions différentes
    - il peut y avoir également d'autres sortes de fichiers que les moteurs prennent en compte comme les *.pdf
    - sachant que les fichiers ' *.tb.jpg ' ne doivent pas être pris en compte (doublons,nombre,utilité,taille ...
    - selon le nombre d'images hébergées on risque aussi d'être amené à créé plusieurs 'sitemap' puis GG et autres recommandes certaines limites ...)

    ....
    :)

  • 2 mai modifié

    Bonjour,

    Ce n'est pas aussi simple. Chacun organise l'arborescence de ses dossiers et où il stock ses images comme il veut. Les miniatures sont aussi optionnelles et peuvent mériter d'être indexées.

    Google et autre sont tout à fait capable de trouver les images , voir de les indexer et même de trouver des images identiques en tout ou partie d'un site à un autre.

    Le sitemap quant à lui est structurer de sorte qu'une ou plusieurs images sont associées à une page particulière, donnant ainsi un contexte pour le referencement, des mots clés extraits probablement de ces pages.

    Le plus logique pour gerer ce sitemap, serait peut-être de pouvoir lier une image avec une page ou un article particulier depuis la page médias en ajoutant un champ dans la config. Ou depuis les pages d'édition des articles et statistiques.

    A voir ce que d'autre en pense et si quelqu'un a déjà opté pour une solution.

    A vous les studios :)


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • griffongriffon Member

    Bonjour à tous,
    Ma modeste contribution concernant google et les images.
    Je crois (en tout cas quelques tests que j'ai faits vont dans ce sens) que pour les images, google les indexe automatiquement en utilisant le contenu de la balise alt associée à l'image dans le tag <src de l'image dans la page (il n'utiliserait pas la balise title, en tout cas selon mes tests).
    Et bien sûr les images en background non plus.
    Il faut s'assurer que le contenu du alt soit pertinent avec des mots précis.
    Donc pour moi un sitemap special image n'apporterait rien.

  • bg62bg62 Member
    21 mai modifié

    @gcyrillus-nomade
    @griffon
    je pense que tu n'as pas fait assez de tests alors … car Google mets très longtemps à prendre 'toutes' les images en compte (et quand je parle image je parle de fichiers avec extension connue +alt pertinente ou non ...).
    Pour avoir mis depuis des années des centaines de milliers d'images en ligne, je peux te le garantir !
    Les images trop petites sont très souvent ignorées ( les fichiers tels que " *.tb.jpg " en ce qui nous concerne ).
    Les autres images sont prises rapidement en général lorsqu'elle se trouvent dans le corps d'un article ( en premier niveau du dossier 'medias' par exemple ).
    Les images qui posent souvent problèmes sont celles qui sont ' ailleurs ', plus loin dans l'arborescence du dossier 'medias', tels ' medias/photos ', ' medias/autredossier ', etc …
    Google ne passe pas tous les jours, ne repasse même très souvent d'ailleurs contrairement à ce que l'on pourrait croire.
    ===>> Il serait donc intéressant de l'aider, de lui soumettre de temps à autres un sitemap reprenant ces fichiers qui sont assez importants quand même (google images !)
    ===>> D'où ma demande, que je maintiens, si quelqu'un peut s'en occuper : un script qui va scanner TOUS les fichiers (n'oublions pas les .pdf, *.txt et autres qui pourraient s'y trouver)(SAUF les vignettes du genre '.tb.*'), un script qui donc pourrait générer un sitemap respectant à la fois les normes des fichiers 'sitemap' habituelles et celles de google quant à leur quantité éventuelle, sachant que pour ce genre de fichiers il est plus que fortement recommandé de limiter la taille d'un seul sitemap à 50 Mo (sans compression) ou 50 000 URL.
    ( ... Si votre fichier est volumineux ou comporte davantage d'URL, vous devez le scinder en plusieurs sitemaps. Vous pouvez éventuellement créer un fichier d'index de sitemaps, et nous envoyer ce fichier d'index unique. …)
    ( https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap?hl=fr )
    remarques :
    1 - " utilisez des URL absolues et complètes dans vos sitemaps. Google tentera d'explorer les URL indiquées à la lettre près. Par exemple, si votre site se trouve sur https://www.example.com/, ne spécifiez pas d'URL comme /mypage.html (URL relative), utilisez l'URL absolue et complète https://www.example.com/mypage.html.
    Incluez dans votre sitemap les URL que vous souhaitez voir figurer dans les résultats de recherche Google. Google affiche généralement les URL canoniques dans ses résultats de recherche, que vous pouvez influencer à l'aide de sitemaps. Si vous avez des URL différentes pour la version classique et la version mobile d'une page, nous vous recommandons de renvoyer vers une seule version "
    2 - " Le format sitemap XML est le plus polyvalent des formats acceptés. En utilisant les extensions de sitemap compatibles avec Google, vous pouvez également fournir des informations supplémentaires sur vos images, vos vidéos et vos contenus d'actualités ainsi que les versions localisées de vos pages.
    Comme pour tous les fichiers XML, toutes les valeurs des balises doivent utiliser l'échappement d'entité.
    Google ignore les valeurs et .
    Google utilise la valeur si elle est cohérente et vérifiable (par exemple, en comparant la dernière modification de la page). "
    3 - et tout cela, je suppose ..., en effectuant un scan depuis les articles afin de pouvoir rattacher une image 'x' à l'url de l'article dans lequel elle se trouve ... (pas évident !)
    4 - https://www.sitemaps.org/protocol.html

    Voilà, voilou, et j'espère bien que quelqu'un pourra me coder cela, même si ensuite c'est un petit script à 'lancer' manuellement (?) afin de réussir à m'en servir, afin aussi de pouvoir le proposer aux utilisateurs de PluXml qui chercheraient la même chose que moi :)

    Grands Mercis aux "codeurs" qui s'y mettront !

    amitiés

    b.g.

  • 21 mai modifié

    @bg62
    Bonjour, il existe déjà des sitemap generator gratuits qui peuvent faire ce que tu demandes, mais tu ne réponds pas à mes interrogations en ce qui concerne la liaison avec les pages, de façon à ce que tes images arrivent à matcher avec des mots clés.

    Par exemple , un script qui scannera un dossier ne sera pas capable de retrouver les alt des balises images là où elle s'affichent ni ne saura avec quelle page du site l'associée.

    Il y a forcément des choses à faire manuellement en amont pour que chaque images puissent être associées à un contenu ou une description (~200 caractères à priori).

    Comment vois tu l'organisation de ce travail en amont et où le faire ?

    Sans réflexion poussée, je dirais : "ajouter dans l'admin (medias.php) un champ alt/description pour tous les fichiers et une case à cocher pour l'ajouter ou non à un sitemap".

    Si tu utilises des plugins de type carrousel/galerie, ce serait peut-être aussi leur job.

    Où, une fois bien pensé, ne serait pas une fonctionnalité qui pourrait devenir native à PluXml?

    P.S. je suis très peu disponible en ce moment et plutôt mode 'maintenance' et à reprendre, corriger ou améliorer quelques uns des plugins que j'ai déjà fait avant qu'il ne deviennent jamais finis ou carrément obsolète pour certains d'entre eux ;)


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

Connectez-vous ou Inscrivez-vous pour répondre.