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

13 discussions

  • 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 !

    Répondre à ce message

  • JeromeD

    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

    Répondre à ce 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

    Répondre à ce message

Ajouter un commentaire

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
  • 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 apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom