Plugin SEO

Search Engine Optimisation Plugin

SEO est un plugin qui ajoute la possibilité d’insérer manuellement où vous le souhaitez ou de manière automatique dans la partie <head> de votre site web : meta tags, URL canonique, Google webmaster tools Meta Code et Google Analytics javascript.

Il est configurable dans la page de configuration de SPIP ainsi que dans chaque rubrique et article pour les meta tags.

Installation

Insertion manuelle

Les balises suivantes sont à votre disposition :

  • #SEO_META_TAGS : pour insérer les balises META configurées
  • #SEO_META_BRUTE{nom_de_la_meta} : pour insérer la valeur brute d’une META (keywords, copyright, etc.)
  • #SEO_GWT : pour insérer la META Google Webmaster Tools
  • #SEO_URL : pour insérer le des liens canoniques
  • #SEO_GA : pour insérer le JavaScript Google Analytics

Il est donc préférable d’insérer la balise #SEO_META_TAGS avant votre appel à INSERT_HEAD, suivie de la balise #SEO_GWT.

La balise #SEO_GA pourra être placée en pied de page.

La balise #SEO_META_BRUTE pourra quant à elle être placée n’importe où dans le flux HTML, ou utilisé pour générer une balise sur mesure dans le HEAD (cas d’un sitemap Google News et de sa balise <news:keywords> par exemple).

Insertion automatique

La balise #INSERT_HEAD doit être présente dans toutes vos pages du squelette (si possible avant le <INCLURE{fond=inc-head}> si présent dans vos squelettes).

ATTENTION : dans ce cas le plugin ne fonctionnera pas correctement si vous placez #INSERT_HEAD dans le fichier inc-head.html ou un autre fichier que vous incluez dans la partie <head> de vos squelettes. Par conséquence le plugin n’est pas compatible avec le “squelettes-dist” fournit de base.

Nota : Depuis la version 1.7.3, il est possible de forcer les metas pour tous squelettes, y compris ceux fournissant déjà par défaut ces balises. Pour activer ce mode, l’option s’active depuis la page de configuration. La constante _SEO_FORCER_SQUELETTE (apparue à partie de la version 1.7.0) est maintenant obsolète et n’est plus prise en charge.

Configuration

La configuration du plugin se fait dans “Configuration / Search Engine Optimisation” (voir la capture d’écran si-dessous).

Si “l’édition des meta tags dans les rubriques et les articles” est activé vous pourrez configurer les meta tags dans chaque rubrique ou article par le biais du formulaire qui est ajouté dans les pages d’éditions.

Page de Configuration

Fonctionnement

  • Insert Head (si activé) : Rajoute les configurations activées de manière automatique dans le HEAD grâce à la balise #INSERT_HEAD de SPIP.
  • Meta tags (si activé) : Les meta tags sont ajouté dans toutes les pages (sommaire, article ou rubrique) où #INSERT_HEAD est présent ou à l’aide de la balise #SEO_META_TAGS. Vous pouvez configurer le comportement par défaut dans la configuration du plugin mais si “l’édition des meta tags dans les rubriques et les articles” est activé ce sont ces meta tag qui sont prioritaire si ils sont renseigné.
  • Url Canonique (si activé) : Les URL canoniques sont ajoutées pour la page d’accueil du site et pour tous les articles et rubriques.
  • Google Webmaster Tools (si activé) : Le Meta Tag comprenant le code de vérification est ajouté uniquement sur la page d’accueil du site.
  • Google Analytics (si activé) : Le code javascript de Google Analytics est ajouté a touts les pages où #INSERT_HEAD est présent.

Discussion

86 discussions

  • bonjour,
    en lisant https://23forward.com/Objectif-PageSpeed-100-100-avec-SPIP
    au paragraphe “Serve static content from a cookieless domain” , il parle du code Google Anlytics et de sa vitesse, et
    puis : https://support.google.com/analytics/answer/10089681
    le plugin marche bien en Spip 4 , c’est pas mal, et on pourrait envisager de réduire le temps de chargement de la page en changeant l’appel du code GA ?

    Reply to this message

  • Bonjour tout le monde,

    Quelles démarches doit-on entreprendre pour réaliser une mise-à-jour de ce plugin sur SPIP 4 ?

    Merci.

    Reply to this message

  • Désolé, je suis peut-être obtus, mais 1/ les copies d’écran de l’article ne correspondent pas à ce que j’ai (pas obligatoirement grave), mais 2/ je ne vois pas de coche « l’édition des meta tags dans les rubriques et les articles », et donc fort logiquement, je ne vois pas comment mettre un meta dans une page particulière.

    Reply to this message

  • Désolé, je suis peut-être obtus, mais 1/ les copies d’écran de l’article ne correspondent pas à ce que j’ai (pas obligatoirement grave), mais 2/ je ne vois pas de coche « l’édition des meta tags dans les rubriques et les articles », et donc fort logiquement, je ne vois pas comment mettre un meta dans une page particulière.

    Reply to this message

  • 2

    Petit bug mystérieux ?
    Sur un site tout frais 3.2.11 sous PHP7.2, (avec un préfixe de table différent de spip_ et comportant des chiffres je préfère préciser au cas où), j’installe une dizaine de plugins. Au moment d’une migration, je tente de sauvegarder la bdd, sans succès, il manque des tables. Je désactive tous les plugins, nettoie le cache (par SPIP puis par FTP, sessions comprises).
    Résultat : les sauvegardes ne sont toujours pas menées au bout mais cette fois-ci j’ai un message après le ratage :
    “Impossible de lire la description de la table spip_seo
    Nombre de tables copiees incorrect : 31/32”.
    Une piste de réflexion, de solution, un correctif ? Merci à la communauté.

    • tu ne serais pas chez ovh par hasard ? il y a souvent des bug d’install des tables chez ovh car leur opcache est mal fichu.

      Essaie de passer dans le menu maintenance technique et de reparer l base, ca devrait permettre d’installer les tables

    • Bonjour Maïeul,
      Non, je ne suis pas sur OVH ;-)
      En fait, le site (fonctionnel) est en distant (sur hostinger) et j’essayais de le rapatrier en local.

    Reply to this message

  • 4

    Bonjour ,
    j’utilise ce plugin fort intéressant principalement pour dire par page si celle page est “noindex”;
    Seulement, le sitemap généré par défaut dans Spip ne tient nullement compte de cette indication et dit à Google et les autres : indexe cette page : ce qui fait deux infos contradictoires et .. une erreur que Google te place en plein centre...

    Comment fait-on alors SVP pour que le sitemap de Spip, standard je crois, ne prennent plus les pages “nonidex” , boucle ???
    merci d’avance.

    • Je me perds un peu dans les filtres sur Balises , et si ne veux pas mettre les rubriques en noindex, donc celle qui ont soit pas de balise #SEO_META_TAGS, soit une mais pas avec NOINDEX dedans .

      si je mets dans mon sitemap.xml.html la ligne :

      <BOUCLE_r(RUBRIQUES){!par date}{0,1000}{[(#SEO_META_TAGS{content}|match{NOINDEX}) non ]}>[
      <url><loc>(#URL_RUBRIQUE|url_absolue)</loc></url>]</BOUCLE_r>

      je n’ai plus aucune rubrique qui s’affiche dans le sitemap.xml : quelqu’un peut-il m’aider ?
      merci d’avance.

    • Tu ne dois pas mettre de crochet dans les critères.
      Ca devrait plutôt être :

      <BOUCLE_r(RUBRIQUES){!par date}{0,1000}{#SEO_META_TAGS{content}|match{NOINDEX}|non}>

    • merci de ton aide.
      c’est en fait une jointure entre tables: la table des rubriques et la table spip_seo
      et

      <BOUCLE_r(RUBRIQUES spip_seo){!par date}{0,1000}
                          {spip_seo.objet=rubrique}>

      me sort les rubriques visibles et présentes dans la table seo, avec INDEX ou NOINDEX.

      par contre :

      <BOUCLE_r(RUBRIQUES spip_seo){!par date}{0,1000}
                          {spip_seo.objet=rubrique}
                          {spip_seo.meta_content=NOINDEX, NOFOLLOW}>

      ne sort rien, pourtant il y en a bien une qui fait la jointure.

      C’est une approche, sachant que je voudrais les rubriques qui n’ont PAS “NOINDEX”

    • bonjour,
      je me réponds à moi-même : voici la solution pas si facile, afin d’apporter ma goutte d’eau à ce merveilleux projet SPIP : il faut mettre la boucle suivante qui dépend des préfixes de tables (attention) :
      Boucle qui exclut seulement les rubriques publiées qui sont en noindex dans la table seo : assez pratique car il n’est pas nécessaire de passer en revue toutes les rubriques.

      <BOUCLE_rwhereseo(RUBRIQUES){!par date}{0,1000}
                          {where id_rubrique NOT IN (SELECT id_objet FROM spip_seo WHERE spip_seo.id_objet=id_rubrique AND spip_seo.objet='rubrique'
       AND spip_seo.meta_content LIKE 'NOINDEX%')}>
          	[
      <url><loc>(#URL_RUBRIQUE|url_absolue)</loc></url>]
          </BOUCLE_rwhereseo>

      bien entendu à adapter aux articles, brèves, mots.
      bon usage !

    Reply to this message

  • Bonjour,
    Sur deux sites en spip 3.2.4, j’ai des erreurs d’installation du plugin de ce type
    Erreur SQL 1146
    Table ’xxxxxxxxxx.spip_seo’ doesn’t exist
    SELECT * FROM spip_seo WHERE id_objet=47 AND objet=’article’

    J’ai désinstallé le plugin et réinstallé mais rien ne fait.
    J’ai vidé le ficher tmp/cache mais sans succès.
    Auriez-vous une idée?
    Merci d’avance

    Reply to this message

  • 1

    Bonjour,

    j’ai activé SEO sur un site avec squelettes Z, noiZetier et Aveline.
    j’ai activé l’insertion automatique, et Valeur des balises metas par défaut (pour les objets éditoriaux) avec choix “valeur du titre de la page”

    ça marche pour les articles, la balise Title reprend bien le texte du titre de l’article.

    Mais pour les événements, c’est le titre de l’article associé à l’événement qui est affiché dans la balise title, et pas le titre de l’événement.
    J’ai ensuite “Activer l’édition des meta tags dans les objets éditoriaux”, pour les événements, et remplis un méta Title, ça ne change rien.

    pourtant, je vois le code du modèle Z qui est :

    <BOUCLE_evenement_head(EVENEMENTS) {id_evenement}>
    <title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
    [<meta name="description" content="(#INTRODUCTION{150}|attribut_html)" />]
    [<link rel="canonical" href="(#URL_EVENEMENT|url_absolue)" />]
    </BOUCLE_evenement_head>

    Du coup, je vois pas comment faire pour que la balise meta Title des événements prenne le titre des événements.

    peut-être est-ce du plutôt au fonctionnement des boucles EVENEMENTS ?

    Merci pour pistes utiles

    • En fait, je comprend que SEO est prioritaire sur tous les autres squelettes.
      Il faudrait alors une modif qui dise à SEO de ne pas toucher au Title des pages évènements.
      mais je sais pas comment faire.
      j’ai vu le code de seo-head.html, mais aucune idée de comment le modifier en ce sens, ou si c’est même possible...

      [(#ENV**{head}|seo_insere_remplace_metas{#ENV*{contexte}}|replace{'\s+<(meta|script|link|style)','
      <$1'})]

      Faudrait sans doute modifier le code php de seo_fonctions.php sinon.

      Si quelqu’un.e a des idées, merci d’avance

    Reply to this message

  • Bonjour à tous !

    Est que les balises #SEO_META_TAGS et #SEO_URL sont sensés marcher sur les pages uniques ?

    Je les ai implémenté comme sur mes squelette rubriques et articles qui marchent, mais ça ne semble pas marcher sur les pages uniques....

    Merci d’avance de vos réponses.

    Reply to this message

  • 1

    Bonjour à tous !

    Le plus SEO est-il compatible avec SPIP 3.2.1 [23954] ? Lorsque je vais sur http://localhost/mon-spip/ecrire/?exec=configurer_seo, j’ai une erreur sous chrome :

    «Ce site est inaccessible
    La connexion a été réinitialisée.»

    Toute aide sera grandement appréciée !

    • Bon, en local, ça marche pas malgrés quelques actions sur mon wamp... Par contre, ça marche sur un “vrai” serveur.

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom