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.

Partagez cet article