اگر به کد منبع سایت وردپرس خود نگاه کرده باشید، احتمالاً متوجه کدهای اضافی در wp_head وردپرس شدهاید. در این مقاله از سری مقالات آموزش وردپرس یاد میگیرید چگونه این کدهای اضافی را حذف کنید تا سرعت و بهینهسازی سایت شما بهتر شود.
این کدها به طور پیشفرض توسط وردپرس افزوده شده و با هوک wp_head وارد سایت میشوند. در واقع وردپرس مقدار زیادی کد به هدر سایت اضافه میکند که بسیاری از آنها هیچ نیازی برای سایت شما ایجاد نمیکنند و حتی شاید بهتر باشد حذفشان کنید. برای مرتبسازی و پاکسازی هدر وردپرس لازم است چند تابع remove_action ایجاد کنید. در ادامه روش انجامش را توضیح میدهم!
راهنمای مطالعه:
هدر اضافی وردپرس چیست؟
در ادامه نمونههایی از کدهایی که به هدر اضافه میشوند را مشاهده میکنید. به نظر من خیلی از اینها بیفایده هستند و معمولاً همهشان را از هدر سایتم حذف میکنم و به همین خاطر به آنها «اضافی» میگویم. اما این موضوع بسته به نیاز و نوع سایت شما متفاوت است؛ قبل از پاک کردن هرکدام بهتر است کمی جستجو کنید و ببینید عملکرد هرکدام چیست.
<link rel="alternate" type="application/rss+xml" title="Site Name RSS Feed" href="your-site.com/feed/" />
<link rel="alternate" type="application/atom+xml" title="Site Name Atom Feed" href="your-site.com/feed/atom/" />
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="your-site.com/xmlrpc.php?rsd" />
<link rel="pingback" href="your-site.com/blog/xmlrpc.php" />
چطور هدر را پاکسازی کنیم؟
وردپرس این کدها را با استفاده از تابعی به نام add_action در تگ head قرار میدهد که برای اجرا کردن توابع در نقاط (هوکهای) مختلف است. برای حذف این کدها باید از تابع مقابل آن یعنی remove_action استفاده کنید.
نمونه remove_action:
remove_action( $hook_name, $callback, $priority );
همانطور که در مثال بالا میبینید، تابع remove_action سه ورودی دریافت میکند: نام هوک، نام تابع فراخوانی و اولویت اجرا. نام هوک مکانی است که کد در آن وارد میشود (در اینجا wp_head)، callback همان تابع اصلی افزودن کد و priority همان عدد اولویت است که هنگام اضافه شدن تابع تعیین شده بود.
نمونه کد:
// Remove rsd link.
remove_action( 'wp_head', 'rsd_link' );
// Remove the WordPress generator tag.
remove_action( 'wp_head', 'wp_generator' );
// Remove RSS feed links.
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
// Remove the link to the Windows Live Writer manifest file.
remove_action( 'wp_head', 'wlwmanifest_link' );
// Removes the adjacent post links.
remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
// Removes the WordPress shortlink for your post.
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
// Remove emoji detection scripts.
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
فقط کافی است این کدها را در فایل functions.php پوسته فرزند خود یا توسط یک افزونه کد نویسی وارد کنید تا نتیجه را ببینید. همه بخشها را توضیح دادهام، اما بهراحتی از روی نام هر تابع، میتوانید متوجه شوید کدام بخش را حذف میکند.
مهم: افزودن این کدها به قالبهای آماده یا برای فروش و ارائه به دیگران اصلاً توصیه نمیشود؛ چون اختیار کاربر را بدون اطلاع از او میگیرید. بهتر است خود کاربر تصمیم بگیرد که آیا میخواهد هدر سایتش را پاکسازی کند یا نه.
پاکسازی هدر با افزونه
اگر ترجیح میدهید به جای کدنویسی از افزونه استفاده کنید، چند افزونه مناسب برای این کار وجود دارد. مثلاً افزونه “WP Head Cleaner” را میتوانید فعال کنید تا کدهای اضافی را از تگ head وردپرس حذف کند.
این افزونه یک پنل تنظیمات دارد که میتوانید دقیقاً مشخص کنید چه چیزهایی حذف شوند و چه چیزهایی نه. من خودم کد افزونه را بررسی کردم و ساختار خوبی دارد، اما به خاطر اینکه توسط توسعهدهنده متفرقه پشتیبانی میشود، اگر مشکلی پیش آمد مسئولیتی ندارم!
جمعبندی
تقریباً هیچ سایتی در وردپرس ندیدم که کمی کد برای مرتبسازی و پاک کردن اضافات هدر به آن نیافزوده باشم. به نظر من وردپرس نباید این بخشها را به اجبار به کاربرانش اضافه کند و بهتر است تنظیماتی در هسته باشد تا خودتان تعیین کنید چه کدهایی در هدر نمایش داده شوند.
چرا حذف کدهای اضافی هدر مهم است؟
حذف کدهای اضافی از هدر وردپرس میتواند دلایل مختلفی داشته باشد. مهمترین این دلایل عبارتند از:
- افزایش سرعت سایت: کدهای اضافی، خصوصاً در سایتهای سنگین و پرترافیک، میتوانند حجم فایل HTML ارسالی به مرورگر را افزایش دهند و باعث کندی لود سایت شوند.
- بهبود امنیت: اطلاعاتی مانند شماره نسخه وردپرس یا لینکهای غیرضروری میتوانند اطلاعات اضافهای درباره سایت شما به هکرها بدهند و ریسک امنیتی را افزایش دهند.
- بهینهسازی سئو: برخی از این کدها میتوانند باعث تداخل در ساختار کد یا معرفی اطلاعات تکراری به موتورهای جستجو شوند.
- حفظ حریم خصوصی بازدیدکنندگان: بعضی کدها دادههایی از کاربران را بیدلیل افشا میکنند یا به آدرسهای خارجی ارسال میکنند. حذف آنها به حفظ حریم خصوصی کاربران کمک میکند.
- کاهش وابستگی به افزونهها: با حذف این کدها به شکل دستی، به افزونههای سنگین و زیاد نیاز ندارید و سایت سبکتر باقی میماند.
چه مواردی را نباید حذف کنیم؟
همیشه قبل از حذف هر کد یا اکشن از هدر، باید بدانید که حذف آن چه تاثیری روی عملکرد سایت میگذارد. برای مثال:
- wp_generator: حذف آن بیضرر است و فقط نسخه وردپرس را مخفی میکند.
- emoji scripts: اگر سایت شما از اموجی استفاده نمیکند، میتوانید حذفش کنید؛ اما اگر کاربرانتان به این قابلیت نیاز دارند، حذف این اسکریپت باعث بروز اختلال خواهد شد.
- RSS feed links: اگر کاربران یا خودتان از RSS سایت استفاده میکنید، نباید لینکهای فید را حذف کنید.
- REL Canonical: تگ canonical از نظر سئو اهمیت دارد و حذف آن توصیه نمیشود.
- REST API: اگر از REST API روی سایت خود یا اپلیکیشن متصل استفاده میکنید، حذف توابع آن کارکرد سایت را مختل میکند.
حتماً قبل از حذف هر خط، در محیط آزمایشی تست کنید تا اطمینان حاصل شود سایت بدون مشکل به کارش ادامه میدهد.
مثالهای عملی بیشتر
برای شخصیسازی بیشتر میتوانید با دستور مشابه، هر کدی که به صورت افزونه یا توابع سفارشی به هدر اضافه شده را نیز حذف کنید. به عنوان نمونه:
// حذف لینک کوتاه وردپرس
remove_action('wp_head', 'wp_shortlink_wp_head', 10);
// حذف تگ ویرایشگر وبلاگ
remove_action('wp_head', 'wlwmanifest_link');
// حذف اطلاعات oEmbed
remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
// حذف rel=prev/next در آرشیوها
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10);
لیست کامل اکشنها را میتوانید از مستندات توسعه وردپرس مشاهده کنید تا بر اساس نیاز خود حذف کنید.
راهکارهای حرفهایتر برای توسعهدهندگان
اگر سایتهای زیادی مدیریت میکنید، میتوانید ماژول یا افزونه مخصوص خود را برای حذف این افزونهها بسازید تا در تمام پروژهها از یک کد مشترک استفاده کنید. برخی توسعهدهندگان حرفهای کد بالا را به صورت شرطی فقط برای محیط production اجرا میکنند که توصیه میشود:
if ( defined( 'WP_ENV' ) && WP_ENV === 'production' ) {
// کدهای حذف اکشن در اینجا
}
همچنین میتوانید لیست کدهای extra header را با فیلتر wp_resource_hints یا فیلترهای مشابه، بیشتر شخصیسازی کنید و حتی بخشهای مورد نیاز را به صورت شرطی برای صفحات خاص بارگذاری کنید.
افزونههای جایگزین و حرفهایتر
افزونههایی مانند Clearfy یا Perfmatters امکانات پیشرفتهتری برای بهینهسازی و حذف کدهای اضافی هدر و بخشهای دیگر سایت دارند. این افزونهها نه فقط هدر، بلکه کدهای اضافی در کل سایت را هدف میگیرند و گزینههایی برای کنترل فایلهای CSS، جاوااسکریپت و حتی تنظیمات سئو دارند. فقط در انتخاب افزونههای کمتر شناخته شده دقت کنید که به روزرسانی و پشتیبانی فعال داشته باشند تا به مشکلات امنیتی یا ناسازگاری برخورد نکنید.

دیدگاه و پرسش