Si les pages pointées par différents liens ont en grande partie le même contenu, ce phénomène est appelé « contenu dupliqué ». Si un site Web comporte de nombreux contenus répétés, les moteurs de recherche penseront que la valeur du site Web n'est pas élevée. Nous devrions donc essayer d’éviter toutes sortes de contenus dupliqués.
Le contenu dupliqué sur les sites Web dynamiques est souvent causé par les paramètres d'URL, et la réécriture d'URL va aggraver ce phénomène (ce qui est assez intriguant, haha). Parce que si les paramètres d'URL d'origine sont utilisés, le moteur de recherche peut prendre des décisions appropriées et apprendre que le contenu en double est causé par les paramètres d'URL, et le gérer automatiquement en conséquence. La réécriture d'URL masquera les paramètres d'URL, ce qui empêchera les moteurs de recherche de ne pas le faire. Je ne reconnais pas les paramètres d'URL. Par exemple:
URL d'origine :
http://www.freeflying.com/articles.aspx?id=231&catelog=blog
http://www.freeflying.com/articles.aspx?id=231&catelog=news
URL après réécriture d'URL :
http://www.freeflying.com/blog/231.html
http://www.freeflying.com/news/231.html
Le contenu des pages pointées par ces URL est en fait le même, les deux sont l'article avec l'identifiant = 231, mais cet article est référencé par les colonnes du blog et des actualités. Pour diverses raisons, notre URL finale est toujours celle indiquée ci-dessus.
Il existe deux façons de résoudre ce problème. L'une consiste à utiliser le protocole du robot pour "exclure" l'un d'entre eux, et l'autre consiste à rediriger définitivement l'une des URL vers une autre URL via 301.
Aujourd'hui, nous parlerons d'abord du protocole du robot. Pour faire simple, robot désigne un moteur de recherche. Pour Google, on l'appelle aussi « araignée ». Les araignées sont très polies et vous demanderont d’abord votre avis avant d’explorer votre contenu Web. Vous et le robot avez déjà communiqué sur la base du protocole du robot. Spécifique à la mise en œuvre, il existe deux manières :
1. Ajoutez un texte robots.txt au répertoire racine du site Web, tel que :
#contenu statique, interdire toutes les pages du dossier "Admin"
Agent utilisateur : *
Interdire : /Admin
La ligne # indique un commentaire ;
User-agent fait référence au moteur de recherche, * signifie pour tous les moteurs de recherche, vous pouvez également spécifier un moteur de recherche spécifique, tel que User-agent : googlebot ;
Interdire spécifie les répertoires ou les pages dont l'accès est interdit. Remarque : 1. Ce texte est sensible à la casse. 2. Il doit commencer par "", indiquant le répertoire racine du site Web ;
Comme le but de cette série, nous nous concentrons sur la technologie ASP.NET. Donc, pour plus de notes sur le texte robots.txt, veuillez consulter http://www.googlechinawebmaster.com/2008/03/robotstxt.html
Mais comment générer dynamiquement ce fichier (il existe en fait de nombreux besoins pour cela) ? Peut-être que l'on pense immédiatement aux opérations d'E/S, à l'écriture d'un fichier txt dans le répertoire racine..., mais il existe en fait une autre manière : en utilisant un programme de traitement général (fichier .ashx), le code est le suivant :
code
<%@ WebHandler Language="C#" Class="Handler" %>
utiliser le système ;
en utilisant System.Web ;
Gestionnaire de classe publique : IHttpHandler {
public void ProcessRequest (contexte HttpContext) {
Réponse HttpResponse = contexte.Response ;
réponse.Clear();
//response.ContentType = "text/plain"; Si vous souhaitez utiliser IE6 pour afficher la page, vous ne pouvez pas faire cette déclaration pour des raisons inconnues.
//Les deux phrases suivantes doivent être générées dynamiquement par la base de données en cours d'utilisation.
réponse.Write("Agent utilisateur : * n");
réponse.Write("Interdire : /news/231.html n");
// Faites référence au contenu d'un fichier robots statique, qui stocke le contenu protégé qui ne changera pas.
réponse.WriteFile("~/static-robots.txt");
réponse.Flush();
}
public bool IsReusable {
obtenir {
renvoie faux ;
}
}
}
Généralement, le gestionnaire implémente IHttpHandler. Dans la section UrlRewrite précédente, nous avons parlé de HttpModule. En fait, dans le cycle de vie des applications ASP.NET, il existe un concept appelé « pipeline » : une requête HTTP passe par un « filtrage ». /processing" de HttpModule, qui atteint finalement la partie "processeur" d'un HttpHandle. HttpModule et HttpHandle forment un "pipeline".
Si vous ne le connaissez pas, vérifiez le code source de Page et vous constaterez que Page implémente également IHttpHandler, donc les fichiers *.aspx sont les HttpHandle les plus couramment utilisés. Mais Page n'est pas seulement un HttpHandler, il intègre également des événements complexes du cycle de vie des pages, donc du point de vue de l'économie de ressources, je peux souvent également utiliser un fichier *.ashx () personnalisé et plus léger pour effectuer certaines tâches simples. Semblable à la génération d'un fichier txt, nous pouvons également générer des codes de vérification (fichiers jpg), des fichiers XML, etc.
Ensuite, la prochaine chose à faire est d'URLRewrite :
code
void Application_BeginRequest (expéditeur d'objet, EventArgs e)
{
// Code qui s'exécute au démarrage de l'application
Contexte HttpContext = HttpContext.Current ;
chaîne currentLocation = context.Request.Url.LocalPath ;
if (currentLocation.ToLower() == "/website1/robots.txt")
{
contexte.RewritePath("~/Handler.ashx");
}
}
De cette façon, l’araignée pensera qu’il existe bien un fichier robots.txt dans le répertoire racine du site Web.
2. Ajoutez la balise META à la page qui doit être bloquée.
<meta id="meta" name="robots" content="noindex,nofollow" />
noindex signifie que la page ne peut pas être indexée
nofollow signifie que la page ne peut pas être « suivie » (cela sera expliqué en détail dans SEO Hack)
C'est l'effet d'une page statique. Si vous avez besoin de la générer dynamiquement, c'est assez simple :
code
protected void Page_Load (expéditeur de l'objet, EventArgs e)
{
HtmlMeta méta = new HtmlMeta();
méta.Nom = "robots" ;
méta.Content = "noindex,nofollow";
this.Header.Controls.Add(méta);
}
La description, le mot-clé, etc. peuvent également être spécifiés dans la méta, et la mise en œuvre technique est la même.
Alors, comment choisir entre les deux méthodes ? Certaines de mes suggestions:
1. Essayez d'utiliser robots.txt, ce qui peut réduire la charge du site Web (bien qu'il soit très petit, haha), car une fois que l'araignée aura consulté le fichier robots.txt, elle ne demandera plus les pages associées bloquées ; utilisez la méta-méthode, le spider doit d'abord demander la page, puis prendre la décision de ne pas la récupérer. À ce moment-là, la requête Http a été envoyée et les ressources côté serveur ont été gaspillées en plus ; Meta est bloqué, cela entraînera également un impact négatif sur l'impression du site Web, réduira ou abandonnera la récupération et l'inclusion du site Web.
2. La correspondance du texte robots.txt s'effectue de gauche à droite, il n'y a donc pas de correspondance régulière ici ! Alors parfois, nous devons utiliser la méthode méta. Comme l'URL au début de notre article :
http://www.freeflying.com/blog/231.html
http://www.freeflying.com/news/231.html
Enfin, quelques remarques :
1. N'utilisez pas le même mot-clé et la même description sur toutes les pages. C'est une erreur que nous pouvons facilement commettre. Bien que articles.aspx soit une page, après avoir ajouté les paramètres d'URL, il devient des milliers de pages. sur la page, alors des milliers de pages auront le même mot-clé et la même description !
2. Essayez d'éviter d'utiliser un SessionID basé sur une URL. Lorsque ASP.NET désactive les cookies sur le client, vous pouvez configurer un SessionID basé sur une URL avec un effet similaire :
http://www.freeflying.com/(S(c3hvob55wirrndfd564))/articles.aspx