사이트 맵의 기능은 검색 엔진이 웹 사이트의 다양한 웹 페이지를 최대한 빨리 포함할 수 있도록 하는 것입니다.
여기서 우리는 먼저 검색 엔진의 크롤링 방법에 대한 기본 원리를 이해해야 합니다. 전체 인터넷은 교차하는 "그물"과 같습니다. 네트워크의 각 노드는 각 웹 페이지이고 각 웹 페이지는 URL을 통해 서로 연결됩니다. 스파이더는 한 웹 페이지에서 시작하여 웹 페이지의 URL을 통해 다른 웹 페이지로 크롤링한 다음 다른 웹 페이지의 URL을 통해 더 많은 웹 페이지로 크롤링할 수 있습니다. 하지만 새로 출시된 웹사이트라면 이를 가리키는 다른 URL이 없을 수 있으므로 절대 "크롤링"(포함)되지 않습니다. 이 문제를 해결하기 위해 신규 웹사이트에서는 적극적으로 URL을 검색엔진에 제출하고 스파이더를 신청하여 크롤링할 수 있지만(구글 애플리케이션 URL:) 일반적으로 신청 시 홈페이지의 URL만 제출하게 됩니다.
모든 URL(특히 동적으로 생성된 URL)을 스파이더가 빠르고 쉽게 검색하려면 포괄적이고 완전하며 명확한 구조와 적시에 업데이트된 사이트 맵을 제공해야 합니다.
그리고 중복된 내용의 robots.txt 파일을 처리하기 위해 .ashx 파일을 사용하여 sitemaps.org를 기반으로 xml 형식의 사이트맵을 생성합니다. 사이트 맵이 생성된 후 Google과 같은 검색 엔진에 제출할 수 있습니다. 많은 기사를 통해 사이트 맵을 제출하면 웹 사이트 포함 속도와 깊이가 크게 향상된다는 사실이 확인되었습니다. 거의 모든 다른 SEO 방법은 사이트 맵 제출을 제외하고는 입증하기 어렵고, 비효율적이거나 심지어 부작용을 일으킬 수도 있습니다!
Linq to XML은 거의 완벽한 운영 경험을 제공합니다.
<%@ WebHandler Language="C#" 클래스="웹사이트" %>
시스템 사용;
System.Web 사용;
System.Xml 사용;
System.Xml.Linq 사용;
System.Linq 사용;
공개 클래스 웹사이트: IHttpHandler {
공공 무효 ProcessRequest (HttpContext 컨텍스트) {
context.Response.ContentType = "텍스트/xml";
//파일의 선언 정보. 세 번째 매개변수 독립형의 값 yes는 이 XML 문서가 자체 포함되어 있으며 외부에서 정의된 DTD에 의존하지 않음을 나타냅니다.
XDeclaration 선언 = new XDeclaration("1.0", "UTF-8", "yes");
context.Response.Write(선언);
//XML 파일의 네임스페이스
XNamespace ns = " http://www.google.com/schemas/sitemap/0.84 ";
XElement siteMap = new XElement(ns + "urlset");
string fixUrl = " http://www.freeflying.com/article ";
문자열 전체Url = 문자열.Empty;
//데이터를 루프아웃하고 XML 노드로 변환합니다.
foreach(Articles.GetArticles()의 var 항목)
{
XElement url = new XElement("url");
WholeUrl = string.Format("{0}?id={1}&catelog={2}",fixedUrl,item.ID,item.Catelog);
XElement loc = new XElement("loc", WholeUrl);
XElement lastmod = new XElement("lastmod", item.LastMod.AddDays(-23).ToShortDateString());
XElementchangefreq = new XElement("changefreq", item.Frequency);
XElement 우선순위 = new XElement("우선순위", item.Weight);
url.Add(loc, lastmod,changefreq,priority);
사이트맵.추가(url);
}
//마지막으로 전체 xml 파일을 출력합니다.
context.Response.Write(siteMap);
}
공공 bool IsReusable {
얻다 {
거짓을 반환;
}
}
}
XML 기술은 RSS에도 사용됩니다.
<%@ WebHandler Language="C#" 클래스="rss" %>
시스템 사용;
System.Web 사용;
System.Xml 사용;
System.Xml.Linq 사용;
공개 클래스 RSS : IHttpHandler {
공공 무효 ProcessRequest (HttpContext 컨텍스트) {
context.Response.ContentType = "텍스트/xml";
context.Response.Write("<?xml 버전="1.0" 인코딩="UTF-8" ?>");
XElement rssFeed = new XElement("rss", new XAttribute("version","2.0"));
string fixUrl = " http://www.freeflying.com/article ";
문자열 전체Url = 문자열.Empty;
XElement 채널 = 새 XElement("채널",
new XElement("제목", "자유 비행"),
새로운 XElement("링크",fixedUrl),
new XElement("description","자유롭게 날아다니는 꿈을 위한 웹사이트"),
새로운 XElement("pubDate",DateTime.Now.ToString())
);
foreach(Articles.GetArticles()의 var 기사)
{
XElement 항목 = new XElement("항목");
XElement title = new XElement("제목", 기사.제목);
WholeUrl = string.Format("{0}?id={1}&catelog={2}",fixedUrl,article.ID,article.Catelog);
XElement link = new XElement("link", WholeUrl);
XElement 설명 = new XElement("설명", 기사.설명);
XElement pubDate = new XElement("pubDate", article.LastMod.ToString());
item.Add(제목,링크,설명,pubDate);
채널.추가(항목);
}
rssFeed.Add(채널);
context.Response.Write(rssFeed);
}
공공 bool IsReusable {
얻다 {
거짓을 반환;
}
}
}
시뮬레이션된 데이터
시스템 사용;
System.Data 사용;
System.Configuration 사용;
System.Linq 사용;
System.Web 사용;
System.Web.Security 사용;
System.Web.UI 사용;
System.Web.UI.HtmlControls 사용;
System.Web.UI.WebControls 사용;
System.Web.UI.WebControls.WebParts 사용;
System.Xml.Linq 사용;
System.Web.UI.MobileControls 사용;
System.Collections.Generic을 사용합니다.
/// <요약>
/// 기사 요약 설명
/// </summary>
공개 수업기사
{
공개기사()
{
//
// TODO: 여기에 생성자 논리를 추가합니다.
//
}
공개 정적 List<Article> GetArticles()
{
새 목록 반환<Article>(){
new Article(234, "blog", DateTime.Now.AddDays(-23), Freq.none, 0.8, "asp.net seo", "asp.net의 SEO에 관한 기사"),
new Article(267, "blog", DateTime.Now.AddDays(-245), Freq.daily, 0.6, "ado.net pro","데이터세트 사용 정보"),
new Article(653, "news", DateTime.Now.AddDays(-45), Freq.daily, 1,"C#을 통한 CLR","이 책에 대한 노트북")
};
}
}
공개 수업 기사
{
공개 정수 ID;
공개 문자열 Catelog;
공개 DateTime LastMod;
공개 이중 무게;
공개 주파수;
공개 문자열 제목;
공개 문자열 설명;
공개 기사(int id, 문자열 카탈로그, DateTime lastMod, Freq 빈도, 이중 가중치, 문자열 제목, 문자열 설명)
{
아이디 = 아이디;
카테고리 = 카테고리;
LastMod = 마지막Mod;
무게 = 무게;
빈도 = 빈도;
제목 = 제목;
설명 = 설명;
}
}
공개 열거형 빈도
{
없음 = 1,
매일 = 2,
매주 = 3,
}
작성자: Free Fly 원본 링크