موضوع :  ساخت نقشه سایت گوگل ( Google Web SiteMap )
خلاصه مطلب :   نقشه سایت گوگل یک فایل Xml می باشد که دارای قاعده نوشتاری خاص معرفی شده توسط گوگل است . این نقشه سایت توسط شما ساخته شده و لینک های سایت شما را به گوگل معرفی می کند ، به گفته خود گوگل یکی از مهترین راه های معرفی صفحات به گوگل و بالا بردن آمار بازدید توسط این موتور جستجوی محبوب ساخت این نقشه سایت می باشد .

ساخت نقشه سایت برای گوگل ( ( Google Sitemap

نقشه سایت گوگل یک فایل Xml می باشد که دارای قاعده نوشتاری خاص معرفی شده توسط گوگل است .

این نقشه سایت توسط شما ساخته شده و لینک های سایت شما را به گوگل معرفی می کند ، به گفته خود گوگل یکی از مهترین راه های معرفی صفحات به گوگل و بالا بردن آمار بازدید توسط این موتور جستجوی محبوب ساخت این نقشه سایت می باشد .

شما پس از ساخت نقشه سایت آن را بر روی شاخه اصلی هاست بارگزاری نموده و سپس از طریق کنترل پنلی که گوگل در اختیار اعضای خود قرار می دهد نقشه سایت خود را ثبت می نمایید .

فرمت کلی یک نقشه سایت گوگل به صورت زیر می باشد :

<?xml version="1.0" encoding="UTF-8"?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url>

      <loc>

         http://www.example.com/

      </loc>

       <lastmod>

          2005-01-01

       </lastmod>

       <changefreq>

          monthly

       </changefreq>

       <priority>

         0.8

       </priority>

   </url>

</urlset>

 

در آدرس زیر اطلاعات مفیدی در مورد نقشه سایت گوگل موجود می باشد

https://www.google.com/webmasters/tools/docs/en/protocol.html

به طور خلاصه متعیر Loc آدرس صفحه  LastMod آخرین تاریخ معرفی   ChangeFreqمشخص کننده میزان تغییر که می تواند مقادیر Daily , Weekly , Monthly , Yearly  را اختیار کند و متغیر Priority که میزان اهمیت صفحه را مشخص کرده و مقادیر بین 0 تا 1 را اختیار می کند.

به اضای هر صفحه یک تگ <Url> ایجاد و متغیر های نام بردی به صورت زیر شاخه قرار می گیرند .

قصد داریم  چنین فایل Xml توسط Asp.NET و به زبان C# ایجاد کنیم  :

برای ساخت تگ های Xml از کلاس XmlWriter استفاده می کنیم بدین منظور ابتدا فضا نام System.Xml را اضافه می نماییم :

 

using System.Xml;

 

 

حال یک متغیر  به نام  Writer از نوع   XmlWriter ایجاد می نماییم و آدرس فیزیکی فایل Xml که قرار است در آن نوشته شود را در Constructor مقدار دهی می کنیم  در این مقاله من از فایلی به نام GSiteMap.xml که در شاخه اصلی پروژه قرار دارد استفاده کرده ام :

XmlWriter writer = XmlWriter.Create(Server.MapPath("GSiteMap.xml"));

حال تابعی به نام WriteTag  برای نوشتن متغیر های فوق می سازیم :

    private void WriteTag(string Priority, string freq, string Navigation, XmlWriter MyWriter)

    {

        MyWriter.WriteStartElement("url");

 

        MyWriter.WriteStartElement("loc");

        MyWriter.WriteValue(Navigation);

        MyWriter.WriteEndElement();

 

        MyWriter.WriteStartElement("lastmod");

        MyWriter.WriteValue(DateTime.Now.ToShortDateString());

        MyWriter.WriteEndElement();

 

        MyWriter.WriteStartElement("changefreq");

        MyWriter.WriteValue(freq);

        MyWriter.WriteEndElement();

 

        MyWriter.WriteStartElement("priority");

        MyWriter.WriteValue(Priority);

        MyWriter.WriteEndElement();

 

        MyWriter.WriteEndElement();

    }


حال کافیست قبل از صدا کردن تابع فوق سایر تگ های نام برده را بنویسیم :

برای نوشتن تگ <?xml version="1.0" encoding="UTF-8"?> از متد زیر استفاده می کنیم .

writer.WriteStartDocument();


برای باز کردن تک <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> نیز به صورت زیر کد نویسی می کنیم :

writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");

 

با نوشتم دو قطعه کد فوق دو سطر اول فایل Xml ما ساخته می شوند . حال کافیست با فرخوانی تابع WriteXml که خودمان نوشته ایم تمامی صفحات را داخل این فایل بنویسیم :

WriteTag("1", "Daily", "http://www.delshad.ir/default.aspx", writer);

WriteTag("0.6", "Yearly", "http://www.delshad.ir/Contact.aspx", writer);

WriteTag("0.8", "Monthly", "http://www.delshad.ir/About.aspx", writer);


من 3 صفحه مختلف را با Priority و ChangeFreq مختلف برای نوشتن به تابع ارسال کردم .

تنها کاری که باقی مانده نوشتن آخرین تگ یعنی </urlset> و بستن متغیر writer می باشد .

نوشتن تگ آخر به صورت هوشمندانه و توسط متد زیر انجام میگیرد .

writer.WriteEndDocument();


و بستن ارتباط متغیر Writer توسط متد زیر صورت میگیرد :

writer.Close();


کد نهایی به صورت زیر می باشد :

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Xml;

 

public partial class _Default : System.Web.UI.Page

{

 

    protected void Page_Load(object sender, EventArgs e)

    {

        XmlWriter writer = XmlWriter.Create(Server.MapPath("GSiteMap.xml"));

 

        writer.WriteStartDocument();

        writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");

 

        WriteTag("1", "Daily", "http://www.delshad.ir/default.aspx", writer);

        WriteTag("0.6", "Yearly", "http://www.delshad.ir/Contact.aspx", writer);

        WriteTag("0.8", "Monthly", "http://www.delshad.ir/About.aspx", writer);

 

        writer.WriteEndDocument();

 

        writer.Close();

 

        Response.Redirect("GSiteMap.xml");

 

    }

    private void WriteTag(string Priority, string freq, string Navigation, XmlWriter MyWriter)

    {

        MyWriter.WriteStartElement("url");

 

        MyWriter.WriteStartElement("loc");

        MyWriter.WriteValue(Navigation);

        MyWriter.WriteEndElement();

 

        MyWriter.WriteStartElement("lastmod");

        MyWriter.WriteValue(DateTime.Now.ToShortDateString());

        MyWriter.WriteEndElement();

 

        MyWriter.WriteStartElement("changefreq");

        MyWriter.WriteValue(freq);

        MyWriter.WriteEndElement();

 

        MyWriter.WriteStartElement("priority");

        MyWriter.WriteValue(Priority);

        MyWriter.WriteEndElement();

 

        MyWriter.WriteEndElement();

    }

}


پس از ایجاد و بارگزاری این فایل به آدرس زیر رفته و ابتدا آدرس سایت خود را اضافه می نمایید :

https://www.google.com/webmasters/tools/siteoverview

پس از اضافه کردن سایت خود بر روی لینک  Verify Your Site کلیک نمایید .

در صفحه بعد از لیست ارائه شده ( Choose Verification Method  ) گزینه  Upload An Html File را انتخاب کرده وطبق راهنما یک فایل خالی Html با نامی که داده شده ساخته و در شاخه اصلی هاست بارگزاری می نمایید .

پس از بارگزازی فایل دکمه Verify را در همین صفحه کلیک نمایید .

در صورتی که تمامی کارها را درست انجام داده باشید پیام موفقیت ظاهر خواهد شد .

حال بر روی دکمه SiteMaps در پنل سمت چپ کلیک کرده و روی لینک Add a Sitemap  کلیک نمایید .

از لیست اراده شده Add General Web sitemap  را انتخاب نموده و در تکس باکس زیرین نام نقشه سایت که در این مثال GSiteMap.xml بود را وارد نمایید .

و در نهایت بر روی دکمه Add  کلیک کنید .

 

فایل پروژه به صورت ضمیمه ارائه شده است .