Django check SEO

django-check-seo screenshot

Django check seo est un outil permettant d'analyser le SEO des pages d'un site qui tourne sous django (en Python, donc).

L'intérêt ici est qu'il s'intègre dans django-cms vraiment très facilement, lui permettant de mériter son statut de "toolbar SEO checker".

Comment est-ce que ça fonctionne ?

django-check-seo repose sur le package requests, qui permet à l'outil de récupérer le contenu html de la page, et de Beautiful Soup, qui permet de naviguer dans le code html (contenu, balises...).

Le programme va ensuite boucler sur une liste de fichiers, et exécuter une fonction dans chaque fichier. Cette stratégie permet de bien découper les tests effectués, et vous permet de rajouter des tests personnalisés.

Qu'est-ce qu'il fait ?

L'outil va exécuter une liste de tests sur le contenu de la page, en visant des éléments importants en SEO (présence de la balise title, d'un H1, de liens, des balises alt, de mot-clef dans le contenu...).

Des... mot-clef ?

C'est exact, django-check-seo utilise la balise meta keywords pour récupérer une liste de mot-clef qu'il recherchera dans le contenu de la page.

<meta name="keywords" content="django-check-seo, SEO">

L'emploi de cette balise permet à django-check-seo de ne pas nécessiter de base de données, et de nombreux modules peuvent vous permettre de modifier le contenu de cette balise (notamment djangocms-page-meta).

Comment on installe/utilise ça ?

Avec pip, pardi ! En effet, le projet est présent sur pypi (nombre de téléchargements).

python3 -m pip install django-check-seo

Il vous faudra ensuite réaliser quelques opérations supplémentaires pour activer l'application dans votre site django (elles sont listées dans le readme).

Si vous souhaitez configurer plus finement le comportement de l'application (enlever les header/footer des tests, autoriser le check d 'un site http, ...), quelques options de configuration sont également disponibles.

Si vous utilisez django-cms, un bouton doit être ajouté automatiquement dans le top panel. Sinon, il vous faudra créer vous-même un lien quelque part, ou alors vous rendre à une adresse de ce type :

https://monsite.ext/django-check-seo/?page=/url-de-la-page-a-verifier/

Vous pouvez également vérifier une url d'un autre site :

https://monsite.ext/django-check-seo/?page=https://monautresite.ext/ma-page/

Et au final, ça ressemble à quoi ?

Voilà un screenshot du contenu complet de l'application lancée via l'appui sur le bouton "Check SEO" de la toolbar django-cms :

screenshot django-check-seo

Vous pouvez avoir accès à plus de médias via la page dédiée sur le wiki du projet.

Pourquoi un SEO checker ?

Je suis alternant dans l'entreprise Kapt, et on travaille beaucoup avec django & djangocms.

Un besoin qui commençait à se faire sentir était de pouvoir avoir accès (et de pouvoir donner accès) à des conseils personnalisés relatifs au SEO de la page courante, mais aucun module ne faisait ça (enfin, il y a bien cmsplugin_seocheck qui fait sensiblement la même chose, mais nous ne savions même pas qu'il existait avant de commencer le développement).

Une de mes missions a alors été de créer ce package python (mais c'est aussi un package django (et c'est une application pour djangocms)).

Si vous êtes plus calé SEO que programmation, un article sur le site de Kapt, très justement nommé "Django Check SEO : Outil d'aide à la rédaction Web" a également été rédigé, et explique bien mieux les tenants et aboutissants de l'application que cette page, plus orientée code.

À vous les zéro erreurs !

screenshot django-check-seo pas d'erreurs

Edit 31/03/2020 : Cet article a été partagé il y a peu sur human coders news, et aujourd'hui sur le journal du hacker.
Ça a généré un peu de trafic sur le repo github, du coup j'ai rajouté des guidelines pour contribuer efficacement (CONTRIBUTING.md).