مدیر بازاریابی یک شرکت واردکننده تجهیزات پزشکی با یک سؤال ساده شروع کرد: «چرا بعد از بازطراحی سایت، بعضی ارجاعها در آنالیتیکس گم شدهاند؟» اول فکر کردیم مسئله از تنظیمات گزارشگیری است. بعد سراغ کمپینها رفتیم. چند لینک خارجی در بلاگ داشتند؛ لینک به سایت تولیدکننده، لینک به چند مقاله علمی، و لینک به صفحه ثبتنام یک رویداد تخصصی. همه لینکها در تب جدید باز میشدند. ظاهر ماجرا بیخطر بود، اما در کد صفحه با عبارتهایی روبهرو شدیم که تیم محتوا قبلاً چندان به آنها توجه نکرده بود: rel='noopener' و rel='noreferrer'.
این همان نقطهای است که یک جزئیات فنی کوچک، وارد تصمیمهای محتوایی و بازاریابی میشود. اگر لینک خارجی را در تب جدید باز میکنید، فقط درباره راحتی کاربر تصمیم نگرفتهاید؛ درباره امنیت صفحه، حفظ دادههای ارجاعی، و حتی کیفیت تحلیل کانالهای ورودی هم تصمیم گرفتهاید.
در این مقاله، تفاوت noopener و noreferrer را نه مثل یک تعریف خشک HTML، بلکه مثل بخشی از یک پروژه واقعی مرور میکنیم؛ جایی که تیم سئو، محتوا، برنامهنویسی و مارکتینگ باید به یک زبان مشترک برسند.
ماجرا از کجا شروع میشود؟ لینک خارجی در تب جدید
بیشتر سایتهای شرکتی و فروشگاهی، لینکهای خارجی را با target='_blank' باز میکنند. دلیلش هم روشن است: نمیخواهند کاربر از سایت خارج شود. مثلاً یک کلینیک زیبایی در مقاله «مراقبت بعد از لیزر» به یک منبع پزشکی معتبر لینک میدهد؛ یا یک شرکت نرمافزاری در گزارش بلاگ خود به ابزارهای بینالمللی اشاره میکند. باز شدن لینک در تب جدید باعث میشود صفحه اصلی سایت همچنان باز بماند.
اما همین رفتار، در گذشته یک ریسک امنیتی جدی ایجاد میکرد. صفحهای که در تب جدید باز میشود، در بعضی شرایط میتوانست از طریق شیء window.opener به صفحهای که آن را باز کرده دسترسی محدودی پیدا کند. این دسترسی همیشه به معنی هک کامل سایت نیست، اما میتواند برای تغییر مسیر صفحه قبلی به یک آدرس مخرب یا شبیهسازی صفحه ورود استفاده شود.
برای صاحب کسبوکار، مسئله این نیست که کاربر عبارت
window.openerرا میشناسد یا نه؛ مسئله این است که یک لینک خارجی بیدقت، میتواند اعتماد کاربر به برند را مخدوش کند.
در پروژهای که گفتیم، لینکها به سایتهای معتبر میرفتند. اما سؤال درست این نبود که «آیا امروز به این سایت اعتماد داریم؟» سؤال دقیقتر این بود: «آیا ساختار لینکدهی ما برای همه لینکهای خارجی، حتی لینکهایی که بعدها اضافه میشوند، امن و قابل تحلیل است؟»
noopener دقیقاً چه کاری انجام میدهد؟
noopener به مرورگر میگوید وقتی لینک را در یک تب یا پنجره جدید باز میکنی، اجازه نده صفحه مقصد به صفحه مبدأ از طریق window.opener دسترسی داشته باشد. سادهتر بگوییم: در را باز کن، اما کلید برگشت به اتاق قبلی را دست مهمان نده.
فرض کنید در بلاگ یک برند ساختمانی، مقالهای درباره استانداردهای عایقکاری نوشته شده و به سایت یک تولیدکننده خارجی لینک دادهاید. کاربر روی لینک کلیک میکند و سایت خارجی در تب جدید باز میشود. اگر آن لینک بدون محافظت باشد، صفحه مقصد ممکن است در برخی سناریوها بتواند صفحه قبلی را دستکاری کند. با noopener این مسیر بسته میشود.
از نگاه عملی، مزیت بزرگ noopener این است که امنیت را تقویت میکند، اما معمولاً داده رفرال را قطع نمیکند. یعنی سایت مقصد همچنان میتواند بفهمد کاربر از سایت شما آمده است، مگر اینکه تنظیمات دیگری مثل سیاستهای referrer یا خود noreferrer وارد ماجرا شود.
برای تیم محتوا این نکته مهم است. چون بسیاری از همکاریهای محتوایی، روابط عمومی دیجیتال، رپورتاژها و ارجاعهای B2B بر پایه همین شناخت مسیر ارجاع کار میکنند. اگر شما به یک شریک تجاری لینک میدهید، شاید بخواهید آن شریک بداند این ترافیک از سایت شما آمده است. در چنین موقعیتی، noopener معمولاً انتخاب تمیزتری است.
noreferrer چه تفاوتی ایجاد میکند؟
noreferrer یک قدم جلوتر میرود. این مقدار علاوه بر اینکه رفتار امنیتی مشابه noopener ایجاد میکند، جلوی ارسال هدر Referer را هم میگیرد. یعنی وقتی کاربر از صفحه شما به صفحه مقصد میرود، سایت مقصد معمولاً نمیفهمد کاربر دقیقاً از کدام آدرس آمده است.
اینجا همان جایی بود که در پروژه تجهیزات پزشکی، دادهها کمی مبهم شده بودند. تیم محتوا برای احتیاط، در بسیاری از لینکهای خارجی از noreferrer استفاده کرده بود. از نظر امنیتی تصمیم بدی نبود، اما برای تحلیل بازاریابی یک هزینه داشت: بعضی سایتهای مقصد دیگر نمیتوانستند ارجاع از دامنه شرکت را ببینند و در بعضی گزارشها مسیر ترافیک شفاف نبود.
آیا این یعنی noreferrer اشتباه است؟ نه. اتفاقاً در بعضی موقعیتها بسیار منطقی است. مثلاً اگر به سایتی لینک میدهید که نمیخواهید آدرس صفحه شما را ببیند، یا صفحه مبدأ شامل ساختار URL حساس، فیلترهای داخلی، شناسه کمپین یا اطلاعاتی است که بهتر است منتقل نشود، noreferrer میتواند انتخاب محافظهکارانهتری باشد.
اما اگر بیدلیل روی تمام لینکهای خارجی سایت قرار بگیرد، ممکن است بخشی از شفافیت دادههای بازاریابی را کم کند. در استراتژی محتوا، ما فقط به «نوشتن مقاله» فکر نمیکنیم؛ به مسیر حرکت کاربر، نقاط خروج، اعتمادسازی و اندازهگیری اثر محتوا هم فکر میکنیم.
مقایسه سریع برای تصمیمگیری
برای اینکه بحث از حالت نظری خارج شود، این مقایسه کوتاه را در نظر بگیرید. قرار نیست هر بار تیم محتوا وارد جزئیات فنی شود، اما دانستن این تفاوتها جلوی تصمیمهای کورکورانه را میگیرد.
| ویژگی | noopener | noreferrer |
|---|---|---|
| هدف اصلی | جلوگیری از دسترسی صفحه مقصد به صفحه مبدأ | جلوگیری از ارسال اطلاعات ارجاع، همراه با اثر امنیتی مشابه |
| اثر روی امنیت لینک خارجی | مثبت و معمولاً کافی برای لینکهای تب جدید | مثبت و محافظهکارانهتر |
| اثر روی رفرال ترافیک | معمولاً رفرال را حفظ میکند | معمولاً رفرال را حذف یا مبهم میکند |
| کاربرد مناسب | اکثر لینکهای خارجی عادی و معتبر | لینکهایی که نمیخواهید مبدأ آنها منتقل شود |
در همان پروژه، بعد از بررسی لینکها به یک قاعده ساده رسیدیم: برای لینکهای خارجی عمومی در بلاگ، noopener کافی بود؛ برای چند لینک خاص که به صفحات واسط، ابزارهای ناشناس یا مقصدهای کماعتماد میرفتند، noreferrer هم اضافه شد.
آیا مرورگرهای جدید خودشان noopener را اعمال نمیکنند؟
این سؤال را معمولاً توسعهدهندهها میپرسند، و سؤال درستی است. بسیاری از مرورگرهای جدید برای لینکهایی که با target='_blank' باز میشوند، رفتاری شبیه noopener را به شکل پیشفرض اعمال میکنند. پس چرا هنوز در کدها آن را مینویسیم؟
جواب کوتاه: چون صراحت در کد، بهخصوص در سایتهای تجاری، ارزش دارد. همه کاربران همیشه با آخرین نسخه مرورگر وارد سایت نمیشوند. بعضی سایتها در وبویو اپلیکیشنها باز میشوند. بعضی سازمانها هنوز از مرورگرهای قدیمیتر یا محیطهای محدود استفاده میکنند. وقتی شما rel='noopener' را صریح مینویسید، نیت امنیتی لینک را هم برای مرورگر و هم برای تیمهای بعدی روشن میکنید.
از طرف دیگر، سایتها معمولاً یکبار ساخته و رها نمیشوند. چند ماه بعد یک کارشناس محتوا لینک جدیدی اضافه میکند، یک افزونه صفحهای را میسازد، یا یک قالب بلاگ بهروزرسانی میشود. اگر استاندارد لینکدهی در تیم مشخص نباشد، رفتار لینکها کمکم نامنظم میشود. همین بینظمیهای کوچک در audit فنی، سئو تکنیکال و تجربه کاربری خودش را نشان میدهد.
این موضوع چه ربطی به استراتژی محتوا دارد؟
شاید در نگاه اول، تفاوت noopener و noreferrer بیشتر به توسعه فرانتاند مربوط باشد تا استراتژی محتوا. اما در عمل، هر محتوایی که منتشر میکنید بخشی از سیستم اعتمادسازی سایت است. لینک خارجی، اگر درست استفاده شود، اعتبار مقاله را بالا میبرد؛ اگر بد استفاده شود، هم کاربر را از مسیر خارج میکند و هم اندازهگیری عملکرد محتوا را سخت میسازد.
برای یک سایت شرکتی، لینک خارجی سه نقش دارد:
- اعتباردهی: وقتی به منبع معتبر اشاره میکنید، نشان میدهید ادعای شما روی هوا نیست.
- تجربه کاربری: کاربر میتواند مسیر مطالعه را ادامه دهد، بدون اینکه صفحه شما را از دست بدهد.
- سیگنال تحلیلی: خروجیها و ارجاعها به شما میگویند کدام مقالهها، منابع یا همکاریها جدیتر دیده میشوند.
حالا اگر در تمام لینکها بیدلیل noreferrer بگذارید، ممکن است بخش سوم را کمرنگ کنید. اگر هیچ محافظتی نگذارید، بخش دوم و اعتماد کاربر در معرض ریسک قرار میگیرد. تعادل همینجاست؛ جایی که فنیترین جزئیات، به تصمیم بازاریابی تبدیل میشوند.
در پروژههای سئو، ما معمولاً این موارد را همراه با ساختار محتوا، لینکسازی داخلی، معماری بلاگ و گزارشگیری بررسی میکنیم؛ چون مقاله خوب فقط متنی نیست که رتبه بگیرد، باید قابل اعتماد، قابل تحلیل و قابل توسعه هم باشد.
قاعده پیشنهادی برای سایتهای ایرانی
اگر سایت شما وردپرسی، اختصاصی، فروشگاهی یا شرکتی است، لازم نیست برای هر لینک جلسه فنی بگذارید. بهتر است یک دستورالعمل کوتاه برای تیم محتوا و توسعه بنویسید. مثلاً:
- لینکهای خارجی که در تب جدید باز میشوند، حداقل
rel='noopener'داشته باشند. - برای لینک به منابع ناشناس، صفحات واسط، ابزارهای نامطمئن یا موقعیتهایی که انتقال آدرس مبدأ مطلوب نیست، از
noreferrerاستفاده شود. - اگر تحلیل رفرال برای همکاری، کمپین یا گزارشگیری مهم است، پیش از استفاده از
noreferrerدلیل آن بررسی شود. - لینکهای داخلی سایت تا حد ممکن در همان تب باز شوند، مگر اینکه دلیل تجربه کاربری مشخصی وجود داشته باشد.
- افزونهها، قالبها و کامپوننتهایی که لینک خارجی تولید میکنند، در بازبینی فنی بررسی شوند.
در پایان همان پروژه تجهیزات پزشکی، مشکل با یک تغییر عجیب و بزرگ حل نشد. فقط استاندارد لینکدهی اصلاح شد، چند لینک حساس بازنویسی شدند، و برای تیم محتوا یک چکلیست کوتاه ساختیم. نتیجه؟ هم audit فنی تمیزتر شد، هم گزارشهای ارجاعی قابل فهمتر شدند، هم تیم دیگر لازم نبود هر بار از توسعهدهنده بپرسد «این rel را چی بگذاریم؟»
یک نمونه تصمیم واقعی در تولید محتوا
فرض کنید مقالهای درباره «انتخاب نرمافزار CRM برای شرکتهای خدماتی» نوشتهاید. در متن به سه منبع لینک میدهید: یک گزارش آماری معتبر، صفحه قیمتگذاری یک ابزار خارجی، و یک سایت مقایسهای نهچندان شناختهشده.
برای گزارش آماری معتبر، noopener انتخاب مناسبی است؛ امنیت حفظ میشود و اگر مقصد داده ارجاع را ببیند، مشکلی ایجاد نمیکند. برای صفحه قیمتگذاری ابزار خارجی هم احتمالاً همین کافی است، بهخصوص اگر بخشی از همکاری یا بررسی بازار شما باشد. اما برای سایت مقایسهای ناشناس، ممکن است ترجیح دهید noreferrer هم داشته باشید تا آدرس صفحه شما منتقل نشود.
این تصمیمها کوچکاند، اما کنار هم فرهنگ محتوایی سازمان را میسازند. تیمی که میداند چرا لینک میدهد، چطور لینک میدهد و چه چیزی را اندازه میگیرد، معمولاً محتوای قابل اعتمادتر و پایدارتری تولید میکند.
جمعبندی کاربردی
اگر بخواهیم تفاوت noopener و noreferrer را در یک جمله خلاصه کنیم: noopener بیشتر برای بستن دسترسی امنیتی صفحه مقصد به صفحه مبدأ است؛ noreferrer علاوه بر این، جلوی ارسال اطلاعات ارجاع را هم میگیرد. پس انتخاب بین آنها فقط فنی نیست؛ به سیاست امنیت، حریم خصوصی و تحلیل بازاریابی سایت شما بستگی دارد.
برای بیشتر لینکهای خارجی که با تب جدید باز میشوند، استفاده از noopener تصمیمی امن، روشن و کمهزینه است. noreferrer را زمانی اضافه کنید که واقعاً نمیخواهید مقصد بداند کاربر از کدام صفحه آمده، یا مقصد برای شما اعتماد کامل ندارد. این همان تعادلی است که یک سایت حرفهای لازم دارد: نه بیاحتیاط، نه کورکورانه محافظهکار.
سوالات متداول
آیا برای همه لینکهای خارجی باید noopener بگذاریم؟
اگر لینک خارجی با target='_blank' باز میشود، بهتر است noopener را بهصورت صریح اضافه کنید. این کار امنیت لینک را بهتر میکند و معمولاً اثر منفی قابل توجهی روی تحلیل رفرال ندارد.
آیا noreferrer برای سئو ضرر دارد؟
noreferrer بهخودیخود به معنی افت رتبه یا مشکل مستقیم سئویی نیست. موضوع اصلی این است که داده ارجاع را پنهان میکند. اگر برای گزارشگیری، همکاری محتوایی یا تحلیل مسیر کاربر به referrer نیاز دارید، نباید بیدلیل از آن روی همه لینکها استفاده کنید.
آیا میتوان noopener و noreferrer را با هم استفاده کرد؟
بله، ترکیب rel='noopener noreferrer' رایج است. فقط باید بدانید با اضافه شدن noreferrer، اطلاعات ارجاع معمولاً به مقصد ارسال نمیشود. پس این ترکیب برای لینکهایی مناسبتر است که امنیت و حریم خصوصی را به شفافیت رفرال ترجیح میدهید.
در سایت وردپرسی چطور این موضوع را کنترل کنیم؟
بخشی از این رفتار به قالب، ویرایشگر و افزونههای شما بستگی دارد. بهتر است چند مقاله قدیمی و جدید را بررسی کنید، لینکهای خارجی دارای target='_blank' را پیدا کنید و ببینید مقدار rel چگونه تنظیم شده است. اگر تیم محتوا دارید، یک دستورالعمل کوتاه برای استفاده از noopener و noreferrer بنویسید تا لینکها در طول زمان یکدست بمانند.
