Navigation

Related Articles

Back to Latest Articles

Faisons un peu de référencement avec symfony


Samuel Breton
Faisons un peu de référencement avec symfony

Tout site internet qui se respecte et qui veut atteindre un trafic correct doit effectuer un travail sur son SERP.

Symfony étant un Framework et non un CMS on ne trouve pas énormément d’informations concernant le SEO. Cependant pour quelques sites que Lexik a lancé récemment nous nous sommes penché un peu sur l’optimisation de notre référencement.

Attention il ne s’agit la que de quelques conseils primaires rien de bien révolutionnaire. Prétendre ressortir premier sur Google en quelques lignes et serait un pure escroquerie.

Pour commencer j’ai voulu éclaircir quelques chose qui me perturbe depuis que je travaille sur Symfony. La balise META title. Elle est présente dans un projet Symfony mais je ne l’avais vu quasiment nulle part auparavant.
Un exemple simple tapez des mots extrèmement concurrentiel sur votre moteur de recherche préféré : « Jeux d’argent », « Location immobilière ». Sur la première page des résultats si on regarde la source des pages on peut voir que la majorité ont la balise <title></title> en première position dans leur header et que la quasi totalité n’ont pas de balise META title.

L’explication qui semble la plus plausible et que ces deux balises ont la même fonction et que les moteurs de recherche pourraient interpréter la présence des deux balises comme du spam, en gros on essaye de caser nos mots clés en quantité anormale.

J’ai donc cherché comment régler ce problème et je suis tombé sur un post qui correspondait exactement à ce que je voulais : Removing META name=title tag in Symfony for SEO Simplement il y a une petite retouche à faire dans le code fourni, ce qui donne :

<?php
class myWebResponse extends sfWebResponse
{
    public function getMetas()
    {
        $meta_tags = $this->metas;
 
        if (array_key_exists('title', $meta_tags))
        {
            unset($meta_tags['title']);
        }
        return $meta_tags;
    }
}

Il nous faut ensuite modifier notre fichier factories.yml pour lui indiquer quelle classe utiliser :

prod:
  response:
    class: myWebResponse

Et voilà le tour est joué. On se retrouve maintenant avec uniquement la balise

Pour rester dans les META je vous conseille de modifier votre fichier view.yml dans votre application afin d’être sur d’avoir des META sur toutes les pages.

default:
  metas:
    title:        Le titre de mon site
    description:  la description de mon site
    keywords:     site, symfony

Maintenant google et les autres moteurs de recherche, oui oui il en existe d’autres, n’aiment pas que l’on est des META en double en gros ils n’aiment pas retrouver les mêmes descriptions ou titre d’une page à l’autre. Donc de manière générale je définis les META pour chaque page à partir de l’action.

1
$this->getContext()->getResponse()->addMeta('description', 'La description de mon site');

Ensuite de manière à ce que le moteur de recherche tombe en premier sur mes mots clés j’ai tendance à modifier un peu mon layout.php et l’ordre des includes, je précise que ce n’est en rien une vérité :

1
2
3
4
5
6
    <head>
        <?php include_title() ?>
        <?php include_metas() ?>
        <?php include_http_metas() ?>
        <link rel="shortcut icon" href="/favicon.ico" />
    </head>

Une fois encore je précise que ce ne sont là pas des vérités absolus, juste des mise en pratique d’observations.

De plus cette semaine j’ai vu qu’un plugin spécial SEO venait de sortir csSEOToolkitPlugin je n’ai pas eu le temps de le tester mais je compte bientôt le faire, peut être ce sera le sujet d’un prochain post, en attentant si certains ont des feed-back à partager sur ce plugin, ils peuvent les partager via les commentaires.

Show Comments (5)

Comments

  • Guillaume

    Bonjour,

    Effectivement c\’est intéressant, j\’ai supprimé la balise meta title. Il n\’y a pas de raison d\’avoir cette information en double. La balise title suffit amplement il me semble.

    Par contre, avec votre code de la classe myWebResponse, toutes les balises meta étaient supprimées. Du coup j\’ai remplacé la ligne suivante :
    $meta_tags = $this-&amp;amp;gt;metas;
    par celle ci :
    $meta_tags = parent::getMetas();
    Cela me semble un peu plus logique, et surtout cela fonctionne chez moi.

    Bon ben du coup je m\’abonne au flux RSS, le contenu de votre blog semble bien intéressant, et le design est carrément agréable.

    • Article Author
  • Mike

    Bonjour,

    Je débute sous symfony.
    En fait je m’y suis mis depuis seulement deux jour et la je suis en train de faire le tutorail jobeet. Je ne suis qu’à la 6è leçon pour l’instant mais quand je regarde le code source de ma page, je ne vois pas cette fameuse blaise meta title dont vous parlez.
    Pouvez vous m’expliquer pourquoi? Ou est ce juste une balise qui apparaissait avant la version 1.2?
    Merci

    • Article Author
  • yOye

    @ Mike :

    Regarde dans ton projet dans le fichier suivant :

    apps/frontend/config/view.yml

    Tu trouveras toutes les META qui sont commenté comme indiqué dans l’article il faut les décommenter pour qu’elles apparaissent dans ton code source.

    • Article Author
  • Seb

    Bonjour,

    Bravo pour tous ces billets super utiles quand on débute Symfony !
    merci !

    Seb

    • Article Author
  • FAREH

    voilà un article qui traite bien le sujet de SEO en symfony2 : optimisations SEOpour les liens avec symfony2
    http://www.dev-skills.com/optimisations-seo-pour-les-liens-avec-symfony2/

    • Article Author

Recevez nos articles