تعریف لینک کانونیکال اختصاصی در وردپرس (Custom Canonical URL)
با بازتعریف تگ کانونیکال در هدر و حذف پارامترهای اضافی کوئری استرینگ از آدرس، مطمئنترین آدرس مرجع را به گوگل معرفی کنید.
مشخصات فنی و شناسنامه کد (Code Information)
بازبینی: 1405/06/29<?php
/**
* پاکسازی آدرس کانونیکال از پارامترهای اضافه و تضمین آدرس مرجع یکتا
*/
function bisco_custom_canonical_url() {
if ( is_singular() ) {
$canonical_url = get_permalink();
echo '<link rel="canonical" href="' . esc_url( $canonical_url ) . '" />' . "
";
} elseif ( is_home() || is_front_page() ) {
echo '<link rel="canonical" href="' . esc_url( home_url( '/' ) ) . '" />' . "
";
}
}
// حذف کانونیکال پیشفرض وردپرس و جایگزینی با نسخه استاندارد
remove_action( 'wp_head', 'rel_canonical' );
add_action( 'wp_head', 'bisco_custom_canonical_url', 5 );
کد را کجا قرار دهیم؟ (Placement Guide)
کد را در functions.php قرار دهید.
این کد چگونه کار میکند؟ (How it Works)
تابع rel_canonical پیشفرض حذف شده و تابع اختصاصی ما با حذف هرگونه پارامتر UTM، فیلتر یا متغیر URL، دقیقترین آدرس تمیز را به تگ `<link rel="canonical">` ارسال میکند.
چه زمانی از این کد استفاده کنیم؟ (Use Cases)
زمانی که صفحات با لینکهای تبلیغاتی مختلف، پارامترهای فیلتر یا کمپینها باز میشوند و نباید به عنوان صفحه تکراری شناخته شوند.
چه زمانی نباید از این کد استفاده کنیم؟ (Anti-patterns)
اگر افزونههای سئو نظیر یوست یا رنکمث فعال هستند که این کار را خودکار به شکل پیشرفته مدیریت میکنند.
پیشنیازهای اجرا
وردپرس ۲.۹ به بالا.
نحوه تست و اطمینان از عملکرد
صفحهای را با یک پارامتر تست مثل `?utm_source=test` باز کنید و سورس را ببینید؛ تگ canonical باید آدرس تمیز بدون علامت سوال باشد.
نحوه بازگردانی سریع (Rollback)
کد را حذف کرده و `add_action( 'wp_head', 'rel_canonical' );` را فعال کنید.
خطاهای رایج و راهحل رفع
اشاره تگ کانونیکال به آدرس نامعتبر یا 404.
ملاحظات و نکات امنیتی
خروجی با esc_url محافظت میشود.
تاثیر بر سرعت و پرفورمنس
تضمین تجمیع ارزش لینکها (PageRank) روی نسخه اصلی محتوا.