ورود

View Full Version : اموزش ساخت XML Sitemap



phpeproject.ir
دوشنبه 09 اردیبهشت 1392, 14:14 عصر
دوستان من میخوام برای این سایت (http://phpeproject.ir/)XML Sitemap بسازم اما نمیدونم چج.ری راهنمایی کنید ؟

mehbod.rayaneh
دوشنبه 09 اردیبهشت 1392, 14:31 عصر
سلام
http://support.google.com/webmasters/bin/answer.py?hl=en&answer=2620865
اصولا برا سیستمهای مدیریت محتوا افزونه داره!
http://wp-persian.com/plugins/google-sitemap-generator/
هی تاکی میکنم ک برید دنبالش برا خودتون بسازید! :لبخند:

soroush.r70
دوشنبه 09 اردیبهشت 1392, 16:03 عصر
برو تو این سایت آدرس سایتت رو بده خودش برات می سازه

http://www.xml-sitemaps.com/

ravand
دوشنبه 09 اردیبهشت 1392, 21:45 عصر
این سایت بهتره: http://pachenar.ir/link/923/%D8%B3%D8%A7%D8%AE%D8%AA%D9%86_%D9%86%D9%82%D8%B4% D9%87_%D9%88_%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C_%D9%85 %D8%B4%DA%A9%D9%84_%D8%A7%DB%8C%D9%86%D8%AF%DA%A9% D8%B3_%D9%86%D8%B4%D8%AF%D9%86_%D8%B3%D8%A7%DB%8C% D8%AA_%D8%AF%D8%B1_%DA%AF%D9%88%DA%AF%D9%84
اینم یه سایت ایرانی: http://pachenar.ir/link/917/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%86%D9%82%D8%B4% D9%87_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%B3%D8%A7%DB%8C% D8%AA

dousti_design
دوشنبه 09 اردیبهشت 1392, 22:02 عصر
من همیشه از htaccess برای اینکار استفاده میکنم به این صورت که میام:
این آدرس رو:
http://gholbang.ir/sitemap.php
ریدایرکت میکنم به این آدرس:
http://gholbang.ir/sitemap.xml
بعد توی فایل php کافیه یه حلقه بذارید و چندتا echo
این روش برای سایتهای داینامیک به دلیل اینکه نوشتن کد برای چاپ کردن دیتا از دیتابیس ساده تر از نوشتن کد برای خواندن یک فایل xml، حفظ داده های موجود در آن و افزودن داده های جدید است.

ravand
دوشنبه 09 اردیبهشت 1392, 22:06 عصر
من همیشه از htaccess برای اینکار استفاده میکنم به این صورت که میام:
این آدرس رو:
http://gholbang.ir/sitemap.php
ریدایرکت میکنم به این آدرس:
http://gholbang.ir/sitemap.xml
بعد توی فایل php کافیه یه حلقه بذارید و چندتا echo
این روش برای سایتهای داینامیک به دلیل اینکه نوشتن کد برای چاپ کردن دیتا از دیتابیس ساده تر از نوشتن کد برای خواندن یک فایل xml، حفظ داده های موجود در آن و افزودن داده های جدید است.

یعنی نقشه رو برای تک تک صفحات می سازی؟

DeveloperStudio
سه شنبه 10 اردیبهشت 1392, 10:17 صبح
با سلام
به آدرس زیر رجوع نمایید :

آموزش کنترل SiteMapPath (http://developer1.ir/ASP_NET/Navigation/SiteMapPath.aspx)

ravand
سه شنبه 10 اردیبهشت 1392, 11:11 صبح
اینطوری که من شنیدم فقط باید برای صفحات اصلی سایت نقشه بسازید نه تک تک صفحات. بقیه ی صفحات رو گوگل خودش ایندکس میکنه. حالا شاید دوستان نظر دیگه ای داشته باشن.

dousti_design
سه شنبه 10 اردیبهشت 1392, 11:43 صبح
اینطوری که من شنیدم فقط باید برای صفحات اصلی سایت نقشه بسازید نه تک تک صفحات. بقیه ی صفحات رو گوگل خودش ایندکس میکنه. حالا شاید دوستان نظر دیگه ای داشته باشن.
نه برای همه صفحات باید بسازید و محتوای هر فایل سایت مپ نباید بیشتر از 500,000 مورد باشه.
فقط برای صفحه اصلی که نشد sitemap!:لبخندساده:

ravand
سه شنبه 10 اردیبهشت 1392, 11:52 صبح
محتوای هر فایل سایت مپ نباید بیشتر از 500,000 مورد باشه.
منظور شما از 500,000 مورد مورد چیه؟
ببینید من سایتم بیش ار هزار تا صفحه داره یعنی باید به طور خودکار نقشه اش آدرس تولید کنه؟

dousti_design
سه شنبه 10 اردیبهشت 1392, 12:23 عصر
منظورم 500,000 صفحه هست. یعنی یه فایل xml اگه بیشتر از این تعداد توش باشه خیلی سنگین میشه و بهتره که اینو آرشیو کنیم و از به فایل دیگه استفاده کنیم. مزیت بزرگ سایت مپ هم پینگ (ping) هست. مثلا شما یه سایت داری که خبر میذاری توش و سایت مپ هم نداری، یه مطلب رو امروز میذاری هی منتظر میمونی میبینی یه ماه دیگه توی گوگل ایندکس شده!
ولی یه بار هست میای تو گوگل سرچ میکنی مثلا "رئال مادرید به فینال صعود کرد" بعد توی نتیجه ها یه سایتی رو میاره کلیک میکنی میری میبینی تاریخ خبر مال چند دقیقه پیشه!
این از طریق google sitemap ping هستش که هر بار که مطلب اضافه میکنی میای پینگ میکنی و به گوگل میگی که یه چیزی اضافه کردم.

ببینید من سایتم بیش ار هزار تا صفحه داره یعنی باید به طور خودکار نقشه اش آدرس تولید کنه؟
اگر بخاید ایندکس بشید و سئو براتون مهمه بله باید سایت مپ داشته باشید.
اگه از روش htaccess خواستید سایت مپ بسازید بگید کدشو بذارم.

ravand
سه شنبه 10 اردیبهشت 1392, 12:27 عصر
فکر میکنم حق با شماست . اگه کدش رو بذارید ممنون میشم.

dousti_design
سه شنبه 10 اردیبهشت 1392, 12:43 عصر
کد htaccess:


RewriteRule ^sitemap.xml sitemap.php [QSA]

یه مثال از کد sitemap.php:


<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php
$query = "SELECT * FROM news";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$url = "www.example.com/".$row['title'];
echo "<url>";
echo "<loc>".$url."</loc>";
echo "<lastmod>$row[date]</lastmod>";
echo "<changefreq>never</changefreq>";
echo "<priority>0.6</priority>";
echo "</url>";
}

?>
</urlset>

تگ ها هم که معلومن loc همون آدرس صفحه هست.
بعدش آهرین تغییر صفحه
بعدش معیاری که میگه این صفحه هر چند وقت یه بار تغییر میکنه.
بعدش هم عددی بین 0 تا 1 که اهمیت این صفحه رو معلوم میکنه.
مورد آخری رو سعی کنید برای همه صفحات یکسان نباشه( مثلا بیاید همشو بدید یک) من خودم میام برای صفحه اصلی میدم یک، برای دسته بندی اخبار مثلا توی سایت خبری اخبار اقتصادی (http://gholbang.ir/%D8%A7%D9%82%D8%AA%D8%B5%D8%A7%D8%AF%DB%8C/) میدم 0.9 و همینطوری میام پایین تر

soroush.r70
چهارشنبه 11 اردیبهشت 1392, 11:56 صبح
یه سوال فنی با توجه کد بالا من میام برای اخبارم نقشه درست می کنم
برای بقیه صفحاتمم باید به این صورت کار کنم یعنی مثل همین کد رو بذارم داخل همون sitemap.php...?
مثال :

sitemap.php


<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php
$query = "SELECT * FROM news";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$url = "www.example.com/".$row['title'];
echo "<url>";
echo "<loc>".$url."</loc>";
echo "<lastmod>$row[date]</lastmod>";
echo "<changefreq>never</changefreq>";
echo "<priority>0.6</priority>";
echo "</url>";
}

?>
</urlset>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php
$query = "SELECT * FROM tblnew";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$url = "www.example.com/".$row['title'];
echo "<url>";
echo "<loc>".$url."</loc>";
echo "<lastmod>$row[date]</lastmod>";
echo "<changefreq>never</changefreq>";
echo "<priority>0.6</priority>";
echo "</url>";
}

?>
</urlset>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php
$query = "SELECT * FROM map";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$url = "www.example.com/".$row['title'];
echo "<url>";
echo "<loc>".$url."</loc>";
echo "<lastmod>$row[date]</lastmod>";
echo "<changefreq>never</changefreq>";
echo "<priority>0.6</priority>";
echo "</url>";
}

?>
</urlset>

dousti_design
چهارشنبه 11 اردیبهشت 1392, 12:14 عصر
یه سوال فنی با توجه کد بالا من میام برای اخبارم نقشه درست می کنم
برای بقیه صفحاتمم باید به این صورت کار کنم یعنی مثل همین کد رو بذارم داخل همون sitemap.php...?

میتونید تو همین فایل هم بذارید اما دیگه نباید وسطش تگ urlset رو ببندید و دوباره باز کنید. اینجوری بذارید:


<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php
$query = "SELECT * FROM news";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$url = "www.example.com/".$row['title'];
echo "<url>";
echo "<loc>".$url."</loc>";
echo "<lastmod>$row[date]</lastmod>";
echo "<changefreq>never</changefreq>";
echo "<priority>0.6</priority>";
echo "</url>";
}
$query = "SELECT * FROM tblnew";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$url = "www.example.com/".$row['title'];
echo "<url>";
echo "<loc>".$url."</loc>";
echo "<lastmod>$row[date]</lastmod>";
echo "<changefreq>never</changefreq>";
echo "<priority>0.6</priority>";
echo "</url>";
}
$query = "SELECT * FROM map";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$url = "www.example.com/".$row['title'];
echo "<url>";
echo "<loc>".$url."</loc>";
echo "<lastmod>$row[date]</lastmod>";
echo "<changefreq>never</changefreq>";
echo "<priority>0.6</priority>";
echo "</url>";
}

?>
</urlset>

تو فایل های جداگانه هم میتونید بذارید مثلا sitemap2.xml, sitemap3.xml و...

soroush.r70
پنج شنبه 12 اردیبهشت 1392, 10:08 صبح
بعد در مورد

RewriteRule ^sitemap.xml sitemap.php [QSA]

ما فقط باید فایل sitemap.php رو بوجود بیاریم دیگه sitemap.xml رو خودش می سازه یا باید بسازیم خالی باشه

sitemap.xml زدیم همون sitemap.php هستش

یه توضیح می دی

soroush.r70
پنج شنبه 12 اردیبهشت 1392, 10:09 صبح
بعد در مورد این کد htaccess

RewriteRule ^sitemap.xml sitemap.php [QSA]

ما فقط باید فایل sitemap.php رو بوجود بیاریم دیگه sitemap.xml رو خودش می سازه یا باید بسازیم خالی باشه

sitemap.xml زدیم همون sitemap.php هستش...؟

یه توضیح می دی

dousti_design
پنج شنبه 12 اردیبهشت 1392, 11:39 صبح
نه دیگه نیازی به sitemap.xml نیست. در واقع این فایل اصلا وجود نداره. فقط sitemap.php بسازید کافیه