- Mesajlar
- 1,737
Sitemizin google sıralarında üst sıralarda çıkmasını sağlamak, Seo optimizasyonu işlemlerinde yine olmazsa olmazlardan biri olan ayrıca site ziyaretçilerine aradıkları bilgileri daha rahat bulmalarını sağlayan site haritasından bahsedeceğim. Burada kısıtlı bir site haritasına değineceğim. Sitemize eklediğimiz duyuruları sitemap.xml dosyasına ekleyeceğiz. Aşağıda bulunan siteMapOlustur() rutinini duyuruları eklediğimi butonun click olayına yazabiliriz.
xmlProcess.cs Class’ ımız ise
Kullandığımız sitemap.xsl Şablon dosyamız
Bu dosyayı google site yönetim araçları panelini kullanarak eklediğimiz kendi sitemizede site haritaları bölümünde /images/sitemap.xml dosyamızı ekleyerek google ın bizi daha rahat indekslemesini sağlayabiliriz.
Kod:
private void siteMapOlustur()
{
string XmlAdi = "";
XmlAdi = "Sitemap";
string sqlSorgusu = @"Select
Row_number() over (order by TDuyurular.id desc) as sira,
* From TDuyurular Where tur='yerel' Order By id Desc";
string Url = "oku.aspx";
xmlProcess.xmlManset(XmlAdi, sqlSorgusu, "baslik", Url, true);
}
xmlProcess.cs Class’ ımız ise
Kod:
using System.Data.SqlClient;
public class xmlProcess
{
public xmlProcess()
{
//
// TODO: Add constructor logic here
//
}
public static void xmlManset(string XmlDosyasi, string SqlSorgusu, string SqlAlanAdi, string Url, bool TarihKullan)
{
string dosya = HttpContext.Current.Server.MapPath("/images/sitemaps/" + XmlDosyasi + ".xml");
XmlTextWriter textWriter = new XmlTextWriter(dosya, System.Text.Encoding.UTF8);
textWriter.Formatting = Formatting.Indented;
string stilDosyasi = "type=\"text/xsl\" href=\"/images/sitemaps/sitemap.xsl\"";
textWriter.WriteStartDocument();
textWriter.WriteProcessingInstruction("xml-stylesheet", stilDosyasi);
textWriter.WriteStartElement("urlset");//urlset başlangıcı
//urlset e özellik eklendi.
textWriter.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
textWriter.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
textWriter.WriteAttributeString("xsi:schemaLocation", "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd");
XmlElementStrings(textWriter, SqlSorgusu, SqlAlanAdi, Url, TarihKullan);
textWriter.WriteEndElement();//urlset bitişi
textWriter.Flush();
textWriter.Close();
}
private static void XmlElementStrings(XmlTextWriter textWriter, string SqlSorgusu, string SqlAlanAdi, string Url, bool TarihKullan)
{
ayar site_ayarlari = new ayar();
SqlCommand komut = new SqlCommand(SqlSorgusu, ayar.Baglanti);
//veritabani bağlantimizi kendimizin kini yazıyoruz.
komut.Connection.Open();
SqlDataReader dr = komut.ExecuteReader();
while (dr.Read())
{
textWriter.WriteStartElement("url");//url başlangıcı
string location = "http://siteadi.com/";
location += Url + dr["id"].ToString(); textWriter.WriteElementString("loc", location);
if (TarihKullan)
textWriter.WriteElementString("lastmod",
Convert.ToDateTime(dr["tarih"]).ToString("yyyy-MM-dd"));
textWriter.WriteElementString("changefreq", "always");
textWriter.WriteElementString("priority", "0.5");
textWriter.WriteEndElement();//url bitişi
}
komut.Connection.Close();
}
}
Kullandığımız sitemap.xsl Şablon dosyamız
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XML Sitemap</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<style type="text/css">
body {
font-family:"Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana;
font-size:13px;
}
#intro {
background-color:#CFEBF7;
border:1px #2580B2 solid;
padding:5px 13px 5px 13px;
margin:10px;
}
#intro p {
line-height: 16.8667px;
}
td {
font-size:11px;
}
th {
text-align:left;
padding-right:30px;
font-size:11px;
}
tr.high {
background-color:whitesmoke;
}
#footer {
padding:2px;
margin:10px;
font-size:8pt;
color:gray;
}
#footer a {
color:gray;
}
a {
color:black;
}
</style>
</head>
<body>
<h1>XML Sitemap</h1>
<div id="intro">
<p>
Bu XML Sitemap dosyası <a href="http://www.google.com/">Google</a>, <a href="http://search.msn.com/">MSN Search</a> and <a href="http://www.yahoo.com/">YAHOO</a> arama motorları için hazırlanmıştır.<br/>Yapımcı <a href="mailto:togius@hotmail.com">Tolga ŞAHİN</a>
</p>
</div>
<div id="content">
<table cellpadding="5">
<tr style="border-bottom: 1px solid black;">
<th>URL</th>
<th>Priority</th>
<th>Change Frequency</th>
<th>LastChange</th>
</tr>
<xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
<xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
<xsl:for-each select="sitemap:urlset/sitemap:url">
<tr>
<xsl:if test="position() mod 2 != 1">
<xsl:attribute name="class">high</xsl:attribute>
</xsl:if>
<td>
<xsl:variable name="itemURL">
<xsl:value-of select="sitemap:loc"/>
</xsl:variable>
<a href="{$itemURL}">
<xsl:value-of select="sitemap:loc"/>
</a>
</td>
<td>
<xsl:value-of select="concat(sitemap:priority*100,'%')"/>
</td>
<td>
<xsl:value-of select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))"/>
</td>
<td>
<xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
</td>
</tr>
</xsl:for-each>
</table>
</div>
<div id="footer">
This XSLT template is released under GPL.
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Bu dosyayı google site yönetim araçları panelini kullanarak eklediğimiz kendi sitemizede site haritaları bölümünde /images/sitemap.xml dosyamızı ekleyerek google ın bizi daha rahat indekslemesini sağlayabiliriz.