یه سایت خیلی چیزها نیاز داره، خیلی چیزها،ولی بعضی چیزها اونقدر مهمن که از نون شبم واجبترن. یکی از این بعضی چیزها Sitemap هستش، نه مثل این نقشه سایتی که من توی منوی کناریم دارم! نه. یه نقشه سایت با فرمت XML برای موتورهای جستجو، مثل این که تو این آدرسه.
خوب این چیه؟ چه اطلاعاتی رو ارایه میده و اصولا چرا ساخته میشه؟ خیلی سادست، این فایل تمام صفخات ما رو به موتورهای جستجو معرفی میکنه. البته موتورهای جستجو، اکثرا فید رو هم قبول میکنن برای اینکار ولی این sitemap یه چیز دیگست.
پروتکل نقشه سایت اینجا تعریف شده و در حقیقت ابتکار اولیه مربوط به گوگله ولی در حال حاضر همه (دست کم موتورهای جستجوی با پدر و مادر مثل bing یا yahoo یا ask) ازش پشتیبانی میکنن.
برای اینکار یه فایل xml (معمولا به اسم 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>2010-01-01</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
</urlset>

البته تو این مثال، فقط یه لینک گذاشته شده، ولی شما میتونید به تعداد نامحدودی لینک رو اضافه کنید،‌ به ازای هر لینک یه تگ url لازمه که داخل urlset اضافه بشه. حالا توضیح هر کدوم از اینها.
تگ loc
این تگ آدرس لینکی رو که شما میخواید به نقشه سایتتون اضافه کنید رو نشون میده. مثلا http://cyberrabbits.net یا هر آدرس دیگه ای. این آدرس باید یه مقدار معتبر XML باشه بنابراین بد نیست اگه تو url هاتون از حروف فارسی استفاده نکنید (البته خیلی راحت میشه از توابع PHP(یا هر زبان دیگه ای) استفاده کرد و این آدرسها رو درست کرد، ولی اصولا آدرس لینک فارسی خوشایند نیست، جلوه و ظاهر خوبی هم نداره)‌ یعنی مثلا


http://www.google.com/search?q=سلام

باید نوشته بشه :


http://www.google.com/search?q=%D8%B3%D9%84%D8%A7%D9%85

تگ lastmod
تاریخ آخرین تغغیر این صفحه رو نشون میده وبه فرمت YYYY-MM-DD هستش. این تگ اختیاریه، بود و نبودش با خودتونه ولی باشه بهتره. البته این با If-Modified-Since (304) فرق میکنه (که شما اینو میتونید تو Header صفحه جا سازی کنید) و موتور جستجو از هر دو استفاده میکنه.
تگ changefreq
میگه که این صفحه معمولا هر چند وقت یکبار آپدیت میشه. مقدارشم میتونه یکی از اینها باشه :

  • always
  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • never

معنی هر کدوم هم مشخصه،‌ فکر نکنم توضیح بخواد. البته این تگ هم اختیاریه. یه چیز دیگه هم اینکه این مقادیر فقط یه پیشنهادن،‌نه یه دستور، سعی نکنید مثلا برای همه بزنید hourly واقعیت بهترین گزینست! (باور کنید چوپان دروغگو،‌دست کم اینجا راسته!!)
تگ priority
که میگه این صفحه از چه اولویتی برخورداره. یعنی اگه مثلا کسی دنبال یه متنی گشت، و توی سایت شما دو تا نتیجه داشت، کدوم یکی اول بیاد و کدوم یکی بعدش. یه عددیه بین صفر و یک. ‌مثلا 0.75 یا 0.5 که اگه نگذارید 0.5 حساب میشه.
اینم یادتون باشه، مثلا اینکه همه رو ۱ بگذارید به نفعتون نیست. چون این مقدار نسبیه و فقط برای مقایسه صفحات سایت شما با هم استفاده میشه. اینه که بهتره مقادیر رو درست و حسابی انتخاب کنید.

حالا این فایل sitemap.xml رو میتونید با کمک gzip کمپرس کنید (فقط برای اینکه ترافیک سایتتون هدر نره، خصوصا اینکه ممکنه خیلی حجیم بشه این فایل لذای تعداد لینکهای زیاد) و فایل gz رو روی سرور بگذارید.
فایل robots.txt
گام بعدی هم اینه که این فایل رو توی فایل robots.txt به روباتهای جستجوگر (یا همون خزنده ها ) معرفی کنید . به آخر فایل robots.txt یه خط اضافه کنید و آدرس فایل sitemap رو بدید، این فایل میشه یه چیزی مثل این :

User-agent: *
Disallow:

Sitemap: http://cyberrabbits.net/sitemap.xml.gz

البته،‌ بازهم بد نیست توی Google webmaster tools وYahoo Site Explorer و یا Bing Webmaster Tools هم این نقشه سایتتون رو ثبت کنید.(جاهای دیگه هم هست، این سه تا رو من نوشتم)

‌اکثر CMS ها خودشون اینکار رو انجام میدن. ولی برای WordPress باید یک افزونه نصب بشه که من شدیدا توصیه میکنم که از Google XML Sitemaps استفاده کنید. (اگه از این استفاده میکنید نیازی به ویرایش فایل robots.txt نیست، چون WordPress خودش این فایل رو مدیریت میکنه و این افزونه هم کارهای لازم رو انجام میده.)

– عنوان فقط همینجوری انتخاب شده، نیاید بنویسید که گشنگی نکشیدی که میگی نقشه سایت از نون شب واجبتره!!
– اگه وبلاگ شما با این پست پینگ شده، عمدی بوده :) و خواستم پیشنهاد بدم که اینکار رو انجام بدید (یعنی ایجاد نقشه سایت) اگه ناراحتتون کرده ببخشید :)