سایت مپ ساز یا سایتمپ فریمورک: چطور انتخاب کنیم؟
سایت مپ ساز یا سایتمپی که CMS یا فریمورک شما میسازد؟ بر اساس دقت lastmod، پوشش، مقیاس و hreflang تصمیم بگیرید، با یک چکلیست برای هر حالت.
نوشته Roozbeh Nazari · CEO
معمولاً وقتی Search Console یک سایتمپ میخواهد، سایت مپ ساز اولین ابزاری است که سراغش میروند: دامنه را وارد میکنید، اجازه میدهید خزش کند، یک فایل XML دانلود میکنید و آن را آپلود میکنید. برای بعضی سایتها این دقیقاً کار درستی است. اما برای بیشتر سایتهایی که روی یک سیستم مدیریت محتوا یا یک فریمورک مدرن اجرا میشوند، این ابزار برای سایتمپ دائمی ابزار اشتباهی است و برای کار دیگری ابزار بسیار مفیدی است. این مقاله نشان میدهد چطور تصمیم بگیرید، با استفاده از معیارهایی که واقعاً بر نحوه استفاده موتورهای جستجو از این فایل اثر میگذارند: دقت تاریخها، پوشش، مقیاس، زبانها و نگهداری.
اول، دو گزینه. یک سایتمپساز مبتنی بر خزنده، URLها را با دنبال کردن لینکها از صفحه اصلی شما کشف میکند و سپس آنچه یافته را در قالب XML پروتکل sitemaps.org مینویسد. سایتمپ فریمورک یا CMS را خود اپلیکیشن از پایگاه داده صفحاتش تولید میکند: WordPress، Wix و بسیاری از پلتفرمهای دیگر این کار را انجام میدهند، و در فریمورکهایی مانند Next.js یک تابع کوچک مینویسید که فهرست URLها را برمیگرداند و فریمورک آن را بهعنوان sitemap.xml ارائه میکند.
معیار 1: آیا فایل میتواند درباره lastmod راست بگوید؟
مستندات Google میگوید که از مقدار lastmod زمانی استفاده میکند که بهطور مداوم و قابلتأیید دقیق باشد، و priority و changefreq نادیده گرفته میشوند. پروتکل sitemaps.org نیز اضافه میکند که lastmod باید تاریخ آخرین تغییر صفحه باشد، نه تاریخ تولید سایتمپ.
این همان جایی است که ابزارهای مبتنی بر خزنده از نظر ساختاری ضعیفاند. خزنده صفحه را همانطور که امروز هست میبیند؛ مگر اینکه سرور یک هدر Last-Modified قابلاعتماد بفرستد، نمیتواند بداند محتوا چه زمانی تغییر کرده است، بنابراین بسیاری از ابزارها یا lastmod را حذف میکنند یا روی همه URLها تاریخ خزش را میزنند. سایتمپ فریمورک میتواند فیلد واقعی تاریخ بهروزرسانی را از CMS بخواند. اگر سایت شما بهطور منظم تغییر میکند، معمولاً همین معیار بهتنهایی موضوع را به نفع فریمورک حل میکند.
معیار 2: پوشش، و اینکه چرا خزش URLهای متفاوتی پیدا میکند
خزنده فقط میتواند صفحاتی را پیدا کند که به آنها لینک داده شده است. صفحات یتیم، یعنی صفحاتی که وجود دارند اما از هیچ جایی به آنها لینک داده نشده، در سایتمپ حاصل از خزش ظاهر نمیشوند. سایتمپ مبتنی بر پایگاه داده همه آنها را فهرست میکند، از جمله صفحاتی که شاید نخواهید ایندکس شوند، مانند آرشیوهای برچسب کممحتوا یا صفحات آزمایشی، مگر اینکه آنها را فیلتر کنید.
این تفاوت مفید است. اجرای یک سایتمپساز یا خزنده سایت روی سایتتان و مقایسه فهرست URLهای آن با سایتمپ فریمورک، یکی از سریعترین راهها برای پیدا کردن صفحات یتیم و صفحاتی است که اصلاً نباید در سایتمپ باشند. ما دقیقاً از همین مقایسه در ممیزیهای سئو تکنیکال استفاده میکنیم: فایل دائمی از اپلیکیشن میآید و خزنده ابزار بررسی است.
معیار 3: مقیاس و فایلهای ایندکس سایتمپ
هر سایتمپ به 50,000 URL یا 50 MB بدون فشردهسازی محدود است. سایتهای بزرگتر فهرست را به چند فایل تقسیم میکنند و از یک ایندکس سایتمپ به آنها ارجاع میدهند؛ این ایندکس باید روی همان سایتی باشد که فایلهای فهرستشده روی آن قرار دارند (مگر اینکه ارسال میانسایتی در Search Console تنظیم شده باشد) و در همان پوشه یا بالاتر از آن فایلها. فریمورکها این کار را در کد انجام میدهند: برای مثال Next.js تابعی به نام generateSitemaps را مستند کرده است که از یک کوئری پایگاه داده، فایلهای سایتمپ شمارهگذاریشده تولید میکند. با خزنده باید هر بار کل سایت را دوباره خزش کنید و چند فایل را دستی آپلود کنید؛ این کار برای چند صد URL قابلمدیریت است و فراتر از آن شکننده.
معیار 4: زبانها و جایگزینهای hreflang
سایتهای چندزبانه میتوانند جایگزینهای زبانی را داخل سایتمپ با عناصر xhtml:link اعلام کنند؛ Google این روش را بهعنوان یکی از راههای پشتیبانیشده برای معرفی نسخههای محلیسازیشده یک صفحه به خود مستند کرده است. سایتمپ فریمورک میتواند اینها را از همان دادهای بسازد که صفحات را میسازد، بنابراین صفحه، ترجمههایش و سایتمپ با هم هماهنگاند. برخی ابزارهای آنلاین هم میتوانند سایتمپ دارای hreflang خروجی بدهند، اما به خواندن درست تگهای هر صفحه وابستهاند و هیچ راهی برای اطلاع از ترجمهای که هنوز به آن لینک داده نشده ندارند. اگر سایتتان بیش از یک زبان دارد، پیش از انتخاب، مقاله ما درباره معماری سایتمپ چندزبانه را بخوانید.
معیار 5: سایتمپساز رایگان در برابر سایتمپ نگهداریشده
یک سایتمپساز رایگان برای یک فایل یکباره مناسب است، اما در صفحه خود ابزار بررسی کنید که چند URL را خزش میکند و آیا robots.txt و تگهای canonical را رعایت میکند یا نه. هزینه واقعی، نگهداری است: فایل تولیدشده یک عکس لحظهای است و هر صفحه جدید یعنی تولید و آپلود دوباره آن. سایتمپ فریمورک یک بار مقداری از وقت توسعهدهنده را میگیرد و پس از آن خودبهخود بهروز میماند. راهنمای Google میگوید سایتمپی که بیش از چند ده URL دارد لازم است تولید شود، نه اینکه دستی نوشته شود، و اینکه یک CMS مانند WordPress، Wix یا Blogger احتمالاً از قبل سایتمپی در دسترس قرار داده است؛ به همین دلیل توصیه میکنیم نگهداری فایل را به اپلیکیشن بسپارید.
چکلیست تصمیمگیری
- اگر سایت پایگاه داده صفحات دارد، بهطور منظم محتوا منتشر میکند، بیش از چند ده URL دارد یا به بیش از یک زبان اجرا میشود، از سایتمپ CMS یا فریمورک خود استفاده کنید.
- اگر سایت یک سایت استاتیک کوچک بدون CMS یا یک میکروسایت موقت است، یا امروز به یک فایل نیاز دارید در حالی که نسخه فریمورک در حال ساخت است، از یک سایتمپساز مبتنی بر خزنده استفاده کنید.
- در هر دو حالت از خزنده بهعنوان ابزار ممیزی استفاده کنید: فهرست URLهای آن را با سایتمپ مقایسه کنید تا صفحات یتیم، ریدایرکتها، صفحات noindex و URLهای غیرکنونیکال را که نباید فهرست شوند پیدا کنید.
- هر چیزی که فایل را تولید میکند، آن را در Search Console ثبت کنید و گزارش سایتمپها را برای وضعیتهای "واکشی نشد" یا "دارای خطا" زیر نظر بگیرید، و صفحات کشفشده را با آنچه انتظار داشتید مقایسه کنید.
اشتباهات رایجی که میبینیم
مشکلات تکرارشونده در تجربه ما اینها هستند: سایتمپهایی که URLهای ریدایرکتشده یا noindex را فهرست میکنند، مقادیر lastmod که با هر دیپلوی تغییر میکنند در حالی که محتوا تغییری نکرده، سایتمپی روی هاست www که در پراپرتی بدون www ثبت شده، و فایلی حاصل از خزش که سالها پیش یک بار آپلود شده و هرگز بهروز نشده است. هر یک از اینها به موتورهای جستجو یاد میدهد که این فایل ارزش اعتماد ندارد.
اگر میخواهید تنظیمات خودتان را بررسی کنید، صفحه ابزارهای ما نقطه شروع خوبی است و تیم سئو تکنیکال ما میتواند نحوه ساخت فایل توسط فریمورک شما را بررسی کند. همچنین میتوانید با ارسال URL سایتمپ خود با ما تماس بگیرید تا بگوییم اول چه چیزی را تغییر میدادیم.
منابع
- ساخت و ارسال سایتمپ — Google Search Central
- مدیریت سایتمپهای بزرگ با فایلهای ایندکس سایتمپ — Google Search Central
- پروتکل XML سایتمپها — sitemaps.org
- قرارداد فایل sitemap.xml — مستندات Next.js
- گزارش سایتمپها — راهنمای Search Console
- معرفی نسخههای محلیسازیشده صفحه به Google — Google Search Central