ASP.NET İLE DİNAMİK SİTE HARİTASI (SITEMAP) HAZIRLAMA
Arama motorları bir siteyi indekslemek için içeriğine bakarlar. Bunu ise kendi botları ile yaparlar. Ancak bizim hazırlayacağımız sitemap ile arama motorları sitemizin içeriğini daha iyi takip edip, daha iyi indeksleyecektir. Bu sitemap ise bazı standartları olan ve tüm arama motorları için geçerli olan bir sitemap`tir. Biz bir sitemap yapıp tüm arama motorlarına bu sitemap`i bildirebiliriz.Şimdi ise bunu Asp.net ile nasıl yapacağımıza bakalım.
Öncelikle gerekli olan namespace`lerimizi ekliyoruz.
using System.Text;
using System.Xml;
using System.Data.OleDb;
Daha sonra aşağıdaki gibi kodlarımızı yazıyoruz.protected void Page_Load(object sender, EventArgs e)
{
Response.Clear(); //sitemap xml formatlı olduğundan sayfamızın içeriğini temizliyoruz.
Response.ContentType = "text/xml";
XmlTextWriter xr = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
xr.WriteStartDocument();
xr.WriteStartElement("urlset"); // sitemap standartı gereği urlset düğümü oluşturuyoruz.
// aşağıdaki kodlar ile sitemap`in hangi standartlara uygun olduğunuz belirliyoruz.
xr.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
xr.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
xr.WriteAttributeString("xsi:schemaLocation","http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd");
// Aşağıdaki 6 satır ile de herhangi bir sayfayı sitemap`e ekliyoruz.
xr.WriteStartElement("url"); // sitemap standartına göre url düğümü oluşturuluyor.
xr.WriteElementString("loc", "http://mehmetduran.com/default.aspx");
xr.WriteElementString("lastmod", DateTime.Now.ToString("yyyy-MM-dd")); //son değiştirme tarihi
xr.WriteElementString("changefreq", "daily"); // sayfa içeriğini değişme frekansı
xr.WriteElementString("priority", "1"); // sayfanın değişme frekansına göre öncelik sırası
xr.WriteEndElement();
// Aşağıda ise dinamik olarak yani veritabanındaki bilgilere göre sitemap`imizi hazırlıyoruz.
OleDbCommand komut2 = new OleDbCommand("select sayfa_id,eklenme_tarihi from sayfalar", baglanti);
baglanti.Open();
OleDbDataReader oku2 = komut2.ExecuteReader();
while (oku2.Read())
{
xr.WriteStartElement("url");
xr.WriteElementString("loc","http://mehmetduran.com/news.aspx?nid="+oku2.GetInt32(0).ToString());
xr.WriteElementString("lastmod", oku2.GetString(1);
xr.WriteElementString("priority", "0.5");
xr.WriteElementString("changefreq", "monthly");
xr.WriteEndElement();
}
baglanti.Close();
xr.WriteEndDocument();
xr.Flush();
xr.Close();
Response.End();
}
Standart bir sitemap`i Asp.net kullanarak böyle hazırlayabiliyoruz. Tüm arama sitelerinde de kullanabiliyoruz.
0 yorum: