Google SiteMaps are
an important tool for website developers, webmasters. A Google Sitemap
is an XML file which instructs the Google crawler which URLs in your
site to visit, and allows you to tell the crawler how often pages are
updated, The lastMod attribute tells Google when the page was last
modified, the changefreq attribute tells Google how often the page
changesand you can also place a relative priority on the pages within
the site. The instructions Google gives is to code the XML file by hand,
but of course, with a dynamic website, you don't want to do that.
Google publish extremely helpful guidelines for site owners (are they still called Web Masters??), including details on the specification of the sitemap format
Let's show a sample Sitemap.xml file that is fully Google compliant .
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
<url>
<loc>http://www.infoa2z.com/asp.net/get-the-all-files-with-their-name,-size-from-a-folder-asp.net</loc>
<lastmod>2012-12-12</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.infoa2z.com/sqlserver/count-duplicate-records-from-table-in-sql-server</loc>
<lastmod>2012-12-12</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
</urlset>
Sample code in UpdateSitemap.asp.cs file
Namespace used
using System.Xml;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
protected void btnsubmit_Click(object sender, EventArgs e)
{
Response.Clear();
Response.ContentType = "text/xml";
using (XmlTextWriter writer = new XmlTextWriter(Server.MapPath("../uploadfiles/sitemap.xml"), Encoding.UTF8))
{
writer.WriteStartDocument();
writer.WriteStartElement("urlset");
writer.WriteAttributeString("xmlns", "http://www.google.com/schemas/sitemap/0.84");
writer.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
writer.WriteAttributeString("xsi:schemaLocation", "http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd");
SqlDataAdapter adp1 = new SqlDataAdapter("Select A.Title,lower((select name from Articles AC where AC.CategoryId=A.CategoryId)+'/'+url) as 'URL' from Articles A where A.Isactive=1", config.DbConn);
DataSet ds = new DataSet();
adp1.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
for (int LIntCtr = 0; LIntCtr <= ds.Tables[0].Rows.Count - 1; LIntCtr++)
{
writer.WriteStartElement("url");
writer.WriteElementString("loc", "http://www.infoa2z.com/" + ds.Tables[0].Rows[LIntCtr]["url"].ToString().ToString() + "");
writer.WriteElementString("lastmod", String.Format("{0:yyyy-MM-dd}", DateTime.Now));
writer.WriteElementString("changefreq", "daily");
writer.WriteElementString("priority", "0.8");
writer.WriteEndElement();
}
}
writer.WriteEndElement();
writer.Flush();
}
}
Google publish extremely helpful guidelines for site owners (are they still called Web Masters??), including details on the specification of the sitemap format
Let's show a sample Sitemap.xml file that is fully Google compliant .
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
<url>
<loc>http://www.infoa2z.com/asp.net/get-the-all-files-with-their-name,-size-from-a-folder-asp.net</loc>
<lastmod>2012-12-12</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.infoa2z.com/sqlserver/count-duplicate-records-from-table-in-sql-server</loc>
<lastmod>2012-12-12</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
</urlset>
Sample code in UpdateSitemap.asp.cs file
Namespace used
using System.Xml;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
protected void btnsubmit_Click(object sender, EventArgs e)
{
Response.Clear();
Response.ContentType = "text/xml";
using (XmlTextWriter writer = new XmlTextWriter(Server.MapPath("../uploadfiles/sitemap.xml"), Encoding.UTF8))
{
writer.WriteStartDocument();
writer.WriteStartElement("urlset");
writer.WriteAttributeString("xmlns", "http://www.google.com/schemas/sitemap/0.84");
writer.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
writer.WriteAttributeString("xsi:schemaLocation", "http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd");
SqlDataAdapter adp1 = new SqlDataAdapter("Select A.Title,lower((select name from Articles AC where AC.CategoryId=A.CategoryId)+'/'+url) as 'URL' from Articles A where A.Isactive=1", config.DbConn);
DataSet ds = new DataSet();
adp1.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
for (int LIntCtr = 0; LIntCtr <= ds.Tables[0].Rows.Count - 1; LIntCtr++)
{
writer.WriteStartElement("url");
writer.WriteElementString("loc", "http://www.infoa2z.com/" + ds.Tables[0].Rows[LIntCtr]["url"].ToString().ToString() + "");
writer.WriteElementString("lastmod", String.Format("{0:yyyy-MM-dd}", DateTime.Now));
writer.WriteElementString("changefreq", "daily");
writer.WriteElementString("priority", "0.8");
writer.WriteEndElement();
}
}
writer.WriteEndElement();
writer.Flush();
}
}