août 02 2010

[ASP.NET 4] Optimisation du référencement partie 1 : IIS Search Engine Optimization Toolkit

Category: ASP.NET | IIS 7.0 | ASP.NET 4Nicolas Esprit @ 14:58

À l'heure où le Web est omniprésent, avoir son site Web correctement référencé est un objectif de la plus haute importance, voire vital. Aujourd'hui, il est plus qu'important d'être correctement référencé et surtout bien classé dans les différents moteurs de recherche, afin de générer un trafic digne de ce nom. L'optimisation du référencement d'un site auprès d'un moteur de recherche, plus couramment nommée Search Engine Optimization (SEO), consiste à améliorer ce site afin qu'il obtienne le meilleur rang possible dans ce moteur de recherche. Dans cet article, nous allons présenter les différents méthodes SEO qu'il est possible d'appliquer pour vos applications Web en ASP.NET 4.0 et nous focaliser sur le routage d'URL.

Search Engine Optimization en ASP.NET 4.0

ASP.NET 4.0 apporte trois nouveautés concernant la SEO :

  • les nouvelles propriétés Page.MetaKeywords et Page.MetaDescription ;
  • le support du routage d'URL pour les applications ASP.NET Web Forms (déjà présent en ASP.NET MVC) ;
  • la nouvelle méthode Response.RedirectPermanent().

Les propriétés Page.MetaKeywords et Page.MetaDescription fonctionnent de la même manière que la propriété Title de la classe Page. Elles suivent les règles suivantes:

  • s'il n'y a pas de balises méta dans l'élément head qui correspondent aux noms des propriétés, les balises méta seront ajoutées à la page au moment du rendu ;
  • s'il existe déjà des balises méta avec ces noms, ces propriétés agissent comme des méthodes get et set pour le contenu des balises existantes.

De cette façon, ces propriétés peuvent définir au moment de l'exécution, les balises méta de votre page Html, vous permettant ainsi de les extraire d'une base de données ou d'une autre source. Notez que ces propriétés sont également accessible dans la directive @Page du markup.

Avant d'attaquer le routage d'URL dans les applications ASP.NET Web Forms, qui fera l'objet d'un prochain billet, je voudrais d'abord m'attarder sur un outil très pratique pour les développeurs qui leur permet de détecter les différentes violations des règles SEO.

 

IIS Search Engine Optimization Toolkit

IIS SEO Toolkit est une extension pour le serveur Web IIS 7 et peut être téléchargé gratuitement sur le site IIS.net, ou bien installé à partir du Web Platform Installer. Cette boîte à outils intègre un moteur d'indexation qui indexe votre site Web hébergé sur un domaine (ou votre application Web locale) comme un moteur de recherche et vous fournit un rapport d'analyse détaillé du site. Une fois installé, dans le gestionnaire IIS 7 vous trouverez une nouvelle icône "Search Engine Optimization" comme visible ci-dessous :

 

 

Un double-clic sur cette icône va ouvrir la page ci-dessous.

 

On peut y voir que le SEO Toolkit se décompose en trois outils :

  1. Site Analysis ;
  2. Sitemaps and Sitemap Indexes ;
  3. Robots Exclusion.

 

Les outils "Robots Exclusion" et "Sitemaps and Sitemap Indexes" vous permettent de créer et gérer facilement les fichiers robots.txt et sitemap.xml pour votre site afin de guider les moteurs de recherche sur les URL qu'ils doivent suivre ou non. L'outil d'analyse du site vous permet d'explorer un site comme un moteur de recherche, puis d'analyser le contenu en utilisant une variété de règles qui permettent d'identifier le référencement, l'accessibilité et les problèmes de performance en son sein. Attardons-nous sur ce dernier outil afin de passer rapidement en revue les questions SEO avec un site. Pour ce faire, j'ai pris mon blog qui utilise BlogEngine.Net. Ce dernier, en plus d'être simple à utiliser et gratuit, met d'office en place plusieurs techniques SEO.

Nous allons maintenant cliquer sur "New Analyze" afin de lancer l'analyse du blog. La boîte de dialogue ci-dessous apparaît.

 

Celle-ci nous permet de nommer le rapport, ainsi que de configurer la façon et jusqu'à quelle profondeur nous voulons explorer le site. Après avoir saisi "Blog Nicolas Esprit" comme nom et "http://www.nicolasesprit.com" comme URL on peut directement lancer l'analyse. Notez que les options avancées méritent tout de même notre attention. En effet, l'option External Links permet de définir quels liens sont considérés comme internes selon quatre possibilités :

  • Host : nicolasesprit.com ;
  • Host : nicolasesprit.com and subdomains (*.nicolasesprit.com) ;
  • Directory : nicolasesprit.com/ ;
  • Directory : nicolasesprit.com/ and sub-directories.

 

L'outil offre également la possibilité de saisir les informations d'authentification si votre site nécessite un compte pour y accéder (ou certaines pages).

 

Lorsque nous cliquons sur le bouton "Ok", l'outil va examiner le contenu HTML renvoyé par l'URL, puis explorer le site comme un moteur de recherche. Mon site dispose de 446 URL différentes et moins d'une minute est nécessaire pour explorer et télécharger tout le contenu et effectuer des analyses sur ce dernier. Le résumé ci-dessus apparaît, on peut y voir que l'outil a détecté 307 infractions de toutes sortes sur mon site, dont voici le détail :

 

Comme vous pouvez le constater, 70 % des erreurs concernent les champs Description ou Title qui sont soit trop courts, soit trop longs ou encore en doublon. Ceci n'est qu'un simple résumé des différentes erreurs. En réalisant un clic droit puis en sélectionnant "View Group Details in New Query" sur un type de violation, nous pouvons voir toutes les erreurs en question. L'image ci-dessous illustre le résultat obtenu pour le type de violation "The description is missing" :

 

C'est un véritable écran de création de requêtes comme on peut le voir dans le Designer de requêtes SQL via Visual Studio ou SQL Server Management Studio. Ainsi il est très facile de filtrer les différentes pages en erreur ou d'exporter le résultat dans Excel pour une analyse plus fine. Mais l'outil ne s'arrête pas là et permet de voir le détail de chacune d'elles avec un simple double-clic :

 

La fenêtre de détails comporte sept onglets. Le premier, nommé "Details", résume les différentes propriétés de l'URL source d'erreur. Vous pouvez constater que le champ Description est vide.

 

Le deuxième onglet, nommé "Violation", est celui qui nous intéresse le plus. Il fournit le détail de l'erreur avec un descriptif permettant de comprendre pourquoi cela pose problème d'un point de vue SEO. De plus, une action recommandée est proposée afin de corriger cette violation. Bref, 50 % du boulot est déjà fait.

Les deux onglets suivants "Header" et "Content" présentent simplement le contenu Html de la page ainsi que son en-tête. L'onglet "Word Analysis" est intéressant car il permet d'afficher les occurrences de mots dans la page, mais aussi les occurrences d'expressions à deux ou trois mots. Cet outil permet donc d'analyser finement le contenu d'une page pour pourvoir l'optimiser afin de faire ressortir tel ou tel mot-clé pour les moteurs de recherche. L'image ci-dessous présente l'écran en question :

 

Enfin les deux derniers onglets "Links" et "Violation" listent respectivement les liens entrants et sortants vers/depuis cette page et la liste des différentes violations détectées sur la page courante.


Exemple d'erreur : la duplication d'URL

La Search Engine Optimization est un art à part entière et nécessite des connaissances poussées sur les algorithmes d'indexation et de classement des moteurs de recherche, qui plus est, évoluent constamment. L'outil IIS SEO Toolkit permet donc aux développeurs n'ayant pas ces connaissances de pallier les principales violations aisément. Pour illustrer ceci, attardons-nous sur les erreurs du type "The page contains multiple canonical formats" :

 

 

Comme on peut le voir sur la capture d'écran ci-dessus, les URL "http://www.nicolasesprit.com/" et "http://www.nicolasesprit.com/?page=1" affichent la même page. Les moteurs de recherche identifient les pages de manière unique en utilisant les URL. Quand une seule page, comme c'est le cas ici, peut être consultée en utilisant plusieurs URL, un moteur de recherche suppose qu'il y a en fait plusieurs pages uniques ! Utilisez une URL unique pour référencer une page permet d'éviter la dilution de l'intérêt pour la page.

En effet, les moteurs de recherche jugent une page digne d'intérêt lorsque beaucoup de liens externes pointent sur celle-ci. Imaginons maintenant que 50% des liens externes pointent sur "http://www.nicolasesprit.com/" et que les 50 autres pour cent pointent sur "http://www.nicolasesprit.com/?page=1". Au lieu d'avoir la page d'accueil du blog avec un intérêt 100, nous aurons alors dans les moteurs de recherche deux pages distinctes avec chacune un intérêt 50. Autrement dit cette simple petite duplication d'URL peut avoir un énorme impact sur la position du blog dans les résultats d'une recherche.

Voici ce que recommande l'outil pour une telle erreur :

Choisissez un format canonique pour les URL de votre site, puis faites en sorte que tous les liens de votre site suivent ce format (par exemple, utilisez toujours des lettres minuscules.) Si un lien externe qui pointe vers votre site n'utilise pas le format canonique d'URL, utilisez une redirection HTTP permanente pour rediriger les visiteurs du site des moteurs de recherche à un équivalent canonique de cette URL.

 

Prenons un exemple plus simple. Depuis quelques temps "www" devant une URL est considéré comme un sous-domaine d'un site. Ainsi, pour les moteurs de recherche les URL www.nicolasesprit.com et nicolasesprit.com sont différentes. La solution pour pallier ce problème est la redirection HTTP permanente. C'est ici que nous allons utiliser la nouvelle méthode apparue avec ASP.NET 4.0 : Response.RedirectPermanent. Tout ce dont vous avez besoin est de copier ce bout de code dans votre fichier Global.asax (vous pouvez également implémenter un HttpModule) :

void Application_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = sender as HttpApplication;
if (app != null)
{
string domain = "www.nicolasesprit.com";
string host = app.Request.Url.Host.ToLower();
string path = app.Request.Url.PathAndQuery;

if (!String.Equals(host, domain))
{
Uri newURL = new Uri(app.Request.Url.Scheme + "://" + domain + path);
app.Context.Response.RedirectPermanent(newURL.ToString(), endResponse: true);
}
}
}

 

La méthode de redirection traditionnelle en ASP.NET envoie un code HTTP 302 au client qui indique que la ressource a été temporairement déplacée vers une nouvelle URL et qu'il doit ponctuellement accéder à cette nouvelle URL pour trouver la ressource. La méthode RedirectPermanent envoie un code 301 au client qui indique que la ressource a été déplacée définitivement et qu'il doit rechercher la ressource à la nouvelle adresse pour toutes les futures demandes.

 

Après avoir passé en revue les différentes possibilités qu'offre le IIS SEO Toolkit, passons maintenant au routage d'URL avec ASP.NET 4.0 dans les applications Web Forms. Mais avant cela, une petite mise au point s'impose : quelle est la différence entre routage d'URL et réécriture d'URL ? La suite dans le prochain billet...

Tags: , , , , ,

Commentaires

1.
Aymeric Lagier Aymeric Lagier France says:

Merci pour cet article et pour le suivant Smile

2.
Nicolas Nicolas France says:

Mais de rien Smile
La troisième et dernière partie sur le routage en ASP.NET 4.0 arrive ce week-end.

3.
pingback aymericlagier.com says:

Pingback from aymericlagier.com

[DevExpress] Mettre en place le routage sur un ASPxNewsControl en ASP.NET 4 | Aymeric's blog

4.
trackback linktausch says:

linktausch

Then I became aware google frowned on multiple listings and suspended the listing name that was not showing as high up on google maps.- it was a combination of a few key words and the original listing I had not really been aware of in past years. Within an hour I was off the 10 pack and not on the first page of the organic listings. I reactivated the first new name I had suspended and suspended the second. Now everything is great- but—– the 10 pack is showing the listing name I now have suspended. It isn’ t...

Les commentaires sont clos