اصلاح کانونیکال صفحهبندی آرشیوها در وردپرس
در سایتهای فروشگاهی و محتوایی، شما با نوشتن توضیحات و متن در دستهبندیها تلاش میکنید تا با اسم دستهبندی در گوگل رتبه کسب کنید. اما مشکلی که وجود دارد اینجاست که صفحهبندیهای دستهبندی هر کدام برگه مجزایی به حساب میآیند و تعداد بالای آنها به معنی یکسان بودن چندین صفحه با تیتر ۱ و توضیحات مشابه است. در نتیجه بدون آنکه متوجه باشید در این قسمت سئو شما با مشکل مواجه شده است. البته این موضوع برای سایتهای محتوا محور مجلهای و خبری یا حتی دانلود فیلم و موزیک صدق نمیکند. اصلاح موضوع وابسته به شرایط سایت و استراتژی سئو سایت دارد.
راهکارهای رایج و توصیههای گوگل
یکی از روشهای پیشنهادی برای اصلاح این موضوع، تنظیم کانونیکال صفحههای دوم و بعدی یک آرشیو (دستهبندی، برچسب یا صفحه اصلی) به صفحه اول همان آرشیو است. اما این روش با توصیه رسمی گوگل در تناقض است. جان مولر از گوگل به صراحت اعلام کرده است که استفاده از rel=canonical در صفحه ۲ برای اشاره به صفحه ۱، روش اشتباهی است، زیرا محتوای این دو صفحه معادل هم نیستند. توصیه اصلی گوگل این است که هر صفحه در یک سری صفحهبندی، یک کانونیکال خودارجاع (self-referencing) داشته باشد؛ یعنی صفحه ۲ به خود صفحه ۲ اشاره کند و صفحه ۳ به خود صفحه ۳.
علاوه بر این، افزونههای سئو مانند Yoast و Rank Math نیز از این رویه پیروی میکنند و به صورت پیشفرض، کانونیکال خودارجاع را برای صفحات صفحهبندی شده تنظیم میکنند. در واقع، اگر شما از این افزونهها استفاده میکنید، به طور پیشفرض کانونیکال صحیحی دارید و نیازی به تغییر آن نیست. استفاده از کدهای ارائه شده در این مقاله، عملاً توصیه گوگل را نقض کرده و افزونه را مجبور به انجام کاری میکند که خلاف دستورالعملهای رسمی است.
چه زمانی ممکن است به این کد نیاز داشته باشید؟
با وجود تأکید گوگل بر استفاده از کانونیکال خودارجاع، برخی از سایتهای بزرگ فروشگاهی از روش کانونیکال کردن صفحات دوم و بعدی به صفحه اول استفاده میکنند. دلیل این کار، تمایل به کاهش تعداد صفحات ایندکس شده و تمرکز بودجه خزش بر روی صفحاتی است که واقعاً ارزش سئویی دارند. این روش یک استراتژی پیشرفته سئو است که تنها در شرایط خاص و با تحلیل دقیق قابل توجیه است. استفاده از این کد فقط زمانی توصیه میشود که:
- واقعاً متخصص سئو هستید و با تحلیل دقیق به این نتیجه رسیدهاید که صفحات دوم و بعدی آرشیوها هیچ ارزشی برای کاربران و موتورهای جستجو ندارند.
- سایت شما تعداد بسیار زیادی صفحهبندی دارد (مثلاً هزاران صفحه) و این موضوع باعث اتلاف بودجه خزش میشود.
- استراتژی سئوی خاصی دارید که در آن فقط صفحه اول هر آرشیو باید در نتایج جستجو دیده شود.
تأکید میشود که در ۹۹٪ سایتها، استفاده از این کد نه تنها ضروری نیست، بلکه میتواند به سئوی شما آسیب بزند. گوگل ممکن است این کانونیکالها را نادیده بگیرد و همچنان صفحات دوم و بعدی را ایندکس کند.
کدهای اصلاح کانونیکال صفحهبندی (با هشدار جدی)
با وجود هشدارهای بالا، در صورتی که پس از بررسی کامل و با آگاهی کامل از عواقب آن تصمیم به استفاده از این روش گرفتید، کدهای زیر را در انتهای فایل functions.php قالب فرزند خود قرار دهید.
کد مخصوص افزونه Yoast SEO:
/*
* Fix Yoast SEO Canonical In WordPress Archive Pagination
* WARNING: This code sets canonical of paginated pages to the first page.
* Google recommends against this practice. Use only if you are an SEO expert
* and have analyzed the specific needs of your site.
* Mahdi Jafarzadeh
* https://www.wpwm.ir/
*/
add_filter('wpseo_canonical', 'seo_canonical_paged', 10, 1);
function seo_canonical_paged($canonical) {
if (is_paged()) {
if (is_home()) {
return home_url();
}
if (is_archive()) {
$url = get_category_link(get_queried_object_id());
return $url;
}
}
return $canonical;
}کد مخصوص افزونه Rank Math:
/*
* Fix RankMath SEO Canonical In WordPress Archive Pagination
* WARNING: This code sets canonical of paginated pages to the first page.
* Google recommends against this practice. Use only if you are an SEO expert
* and have analyzed the specific needs of your site.
* Mahdi Jafarzadeh
* https://www.wpwm.ir/
*/
add_filter('rank_math/frontend/canonical', 'rankmath_canonical_paged', 10, 1);
function rankmath_canonical_paged($canonical) {
if (is_paged()) {
if (!is_front_page() && is_home()) {
return get_post_type_archive_link('post');
}
if (is_front_page() && is_home()) {
return home_url('/');
}
if (is_archive()) {
$url = get_category_link(get_queried_object_id());
return $url;
}
}
return $canonical;
}نحوه عملکرد کدها به صورت گام به گام
در این بخش، هر بخش از کدهای بالا را به صورت دقیق بررسی میکنیم:
- خطوط ۶ و ۷ (Yoast) / ۶ و ۷ (Rank Math) – افزودن فیلتر: با استفاده از
add_filter، یک فیلتر به تابع تولید کننده کانونیکال در افزونه سئو اضافه میکنیم. در Yoast این فیلترwpseo_canonicalو در Rank Mathrank_math/frontend/canonicalاست. - خط ۸ (Yoast) / ۸ (Rank Math) – تعریف تابع: تابع
seo_canonical_pagedیاrankmath_canonical_pagedتعریف میشود که کانونیکال تولید شده توسط افزونه را دریافت کرده و پس از تغییر، آن را بازمیگرداند. - خط ۹ (Yoast) / ۹ (Rank Math) – بررسی صفحهبندی بودن: با استفاده از تابع
is_paged()بررسی میشود که آیا صفحه فعلی یکی از صفحات دوم و بعدی یک آرشیو است یا خیر. - خط ۱۰ (Yoast) / ۱۰ (Rank Math) – بررسی صفحه اصلی وبلاگ: اگر صفحه اصلی وبلاگ (صفحهای که آخرین مطالب را نمایش میدهد) در حالت صفحهبندی باشد، کانونیکال به آدرس اصلی
home_url()تغییر داده میشود. - خط ۱۳ (Yoast) / ۱۶ (Rank Math) – بررسی آرشیوها: اگر صفحه در یک آرشیو (دستهبندی، برچسب یا سایر taxonomyها) در حالت صفحهبندی باشد، با استفاده از
get_category_link(get_queried_object_id())آدرس صفحه اول آن آرشیو دریافت شده و به عنوان کانونیکال تنظیم میشود. - خط ۱۶ (Yoast) / ۱۹ (Rank Math) – بازگشت کانونیکال پیشفرض: اگر هیچیک از شرایط بالا برقرار نبود، همان کانونیکال تولید شده توسط افزونه بازگردانده میشود.
نکات مهم
در این بخش به نکات کلیدی برای استفاده صحیح از این کدها اشاره میکنیم:
- توصیه گوگل را جدی بگیرید: گوگل به صراحت استفاده از کانونیکال برای صفحات دوم و بعدی به صفحه اول را توصیه نمیکند. این روش میتواند باعث شود گوگل صفحات دوم و بعدی را ایندکس نکند و در نتیجه محتوای موجود در آن صفحات (که ممکن است شامل محصولات یا مطالب جدید باشد) از دید کاربران پنهان بماند.
- راهکار جایگزین: استفاده از noindex: اگر هدف شما جلوگیری از ایندکس شدن صفحات دوم و بعدی است، روش صحیحتر استفاده از متا تگ noindex است. اما توجه داشته باشید که Yoast از نسخه ۶.۳ به بعد گزینه noindex برای زیرصفحات آرشیوها را حذف کرده است، زیرا گوگل اعلام کرده که استفاده طولانیمدت از noindex میتواند باعث شود لینکهای موجود در آن صفحات نیز دنبال نشوند.
- استفاده از
rel="next"وrel="prev": بهترین روش برای مدیریت صفحهبندی، استفاده از تگهایrel="next"وrel="prev"است که هر دو افزونه Yoast و Rank Math به صورت خودکار آنها را به صفحات اضافه میکنند. - تست پس از اعمال کد: اگر تصمیم به استفاده از این کد گرفتید، حتماً پس از اعمال، صفحات مختلف را با ابزار تست ریچ ریسالت گوگل بررسی کنید و از صحت کانونیکال تنظیم شده اطمینان حاصل کنید.
- کارکرد این کد در سایتهای مختلف: این کد در چند سایت با موضوع مختلف بررسی شده و مفید واقع شده است، اما مهم است که بدانید برای چه سایتی با چه استراتژی این روش را به کار میگیرید. این روش یک استراتژی پیشرفته سئو است و برای همه سایتها مناسب نیست.
جمعبندی
در این مقاله، به بررسی روش اصلاح کانونیکال صفحهبندی آرشیوها در وردپرس برای افزونههای Yoast SEO و Rank Math پرداختیم. اگرچه کدهای ارائه شده میتوانند کانونیکال صفحات دوم و بعدی را به صفحه اول تغییر دهند، اما این روش توصیه رسمی گوگل نیست و میتواند عواقب منفی برای سئوی سایت شما داشته باشد. توصیه اکید ما این است که از این کدها استفاده نکنید مگر اینکه پس از بررسی دقیق و با آگاهی کامل از عواقب آن، به عنوان یک متخصص سئو به این نتیجه رسیده باشید که این روش برای سایت شما مفید است. در بیشتر موارد، بهترین کار این است که افزونه سئو را به حال خود رها کنید و از تگهای rel="next" و rel="prev" که به صورت خودکار اضافه میشوند، برای مدیریت صفحهبندی استفاده کنید.
امیدواریم این آموزش برای شما مفید بوده باشد. اگر سوالی درباره اصلاح کانونیکال صفحهبندی، نحوه استفاده از کدها یا هر بخش دیگری از این آموزش دارید، لطفاً در بخش نظرات مطرح کنید. همچنین اگر تجربهای در مدیریت صفحهبندی آرشیوها دارید، خوشحال میشویم آن را با ما و سایر کاربران به اشتراک بگذارید.







