rel=noopener, noreferrer এবং nofollow আসলে কী করে
তিনটি ছোট link attribute, কিন্তু কাজ খুব আলাদা: browser security, referrer privacy, এবং search engine signalling.
সুচিপত্র
- সংক্ষিপ্ত সংস্করণ
- rel=noopener reverse tabnabbing ঠেকায়
- noopener কি SEO-তে প্রভাব ফেলে?
- rel=noreferrer referring page লুকায়
- কখন noreferrer useful
- Analytics trade-off
- rel=nofollow search engines-এর জন্য, browsers-এর জন্য নয়
- কখন nofollow ব্যবহার করবেন
- nofollow কী করে না
- Common combinations
- নতুন tab-এ খোলা external link
- Paid placement
- User-generated link
- Internal links
- Teams-এর জন্য practical policy
- কী ঘটছে তা কীভাবে test করবেন
- Bottom line
সংক্ষিপ্ত সংস্করণ
কোনো link-এর rel attribute বর্তমান পেজ এবং linked page-এর সম্পর্ক বর্ণনা করে। শুনতে বিমূর্ত লাগতে পারে, কিন্তু প্রতিদিনের web কাজে তিনটি value বারবার আসে:
<a href="https://example.com" target="_blank" rel="noopener noreferrer nofollow">
External resource
</a>
এই তিনটি token প্রায়ই এমনভাবে একসঙ্গে paste করা হয় যেন তারা একই কাজ করে। তারা তা করে না।
noopenerএকটি browser security control.noreferrerএকটি privacy এবং analytics control.nofollowএকটি search engine signal.
এগুলো একসঙ্গে ব্যবহার করা যায়, কিন্তু প্রতিটি কেন আছে তা জানা উচিত। প্রতিটি outbound link-এ তিনটিই যোগ করা সবসময় ভুল নয়, কিন্তু সাধারণত এটি অলস পদ্ধতি।
rel=noopener reverse tabnabbing ঠেকায়
rel="noopener" browser-কে বলে নতুনভাবে খোলা page-টিকে window.opener-এর মাধ্যমে original page-এ access না দিতে।
এটি সবচেয়ে বেশি গুরুত্বপূর্ণ যখন আপনি target="_blank" ব্যবহার করে নতুন tab বা window-তে link খুলছেন:
<a href="https://external.example" target="_blank" rel="noopener">
Open external site
</a>
noopener ছাড়া destination page এ ধরনের JavaScript চালাতে সক্ষম হতে পারে:
window.opener.location = 'https://phishing.example';
এই attack সাধারণত reverse tabnabbing নামে পরিচিত। User একটি legitimate link-এ click করে, অন্য site-এ যায়, এবং original tab নিঃশব্দে একটি fake login page বা অন্য malicious destination-এ navigate হয়ে যায়।
Modern browsers এখানে উন্নতি করেছে। বর্তমান browser behavior-এ, target="_blank" সাধারণত এমনভাবে treat করা হয় যেন rel="noopener" উপস্থিত আছে। এটি ভালো, কিন্তু explicit attribute-কে অর্থহীন করে না। Explicit noopener এখনও useful কারণ:
- এটি আপনার intent document করে;
- এটি older বা unusual browsing environments-কে protect করে;
- এটি প্রতিটি embedded web view আধুনিক desktop browser-এর মতো behave করবে—এমন assumption এড়ায়;
- এটি code review সহজ করে।
External links যেগুলো নতুন tab-এ open হয়, সেগুলোর জন্য rel="noopener" একটি sensible default.
noopener কি SEO-তে প্রভাব ফেলে?
না, অর্থপূর্ণ কোনোভাবে নয়। noopener browser behavior-এর জন্য। এটি search engines-কে বলে না আপনি কোনো page endorse করছেন কি না, link equity pass করা উচিত কি না, বা link paid কি না।
আপনার SEO policy যদি noopener-কে ranking directive হিসেবে treat করে, তাহলে policy edit করা দরকার।
rel=noreferrer referring page লুকায়
rel="noreferrer" browser-কে বলে user link follow করলে Referer HTTP header না পাঠাতে।
হ্যাঁ, header-টি ঐতিহাসিকভাবে Referer হিসেবে ভুল বানানে লেখা। Attribute-এর বানান noreferrer।
সাধারণত, user আপনার page থেকে অন্য site-এ link click করলে destination একটি referrer value পেতে পারে, যা visit কোথা থেকে এসেছে দেখায়। আপনার site-এর Referrer-Policy অনুযায়ী সেটি full URL, শুধু origin, বা কিছুই না হতে পারে।
যেমন, কোনো destination দেখতে পারে:
Referer: https://www.example.com/pricing?plan=enterprise
অথবা শুধু:
Referer: https://www.example.com/
rel="noreferrer" থাকলে, browser ওই navigation-এর জন্য headerটি পাঠানো উচিত নয়।
<a href="https://external.example" rel="noreferrer">
External site
</a>
Practicalভাবে, modern browsers-এ noreferrer-ও noopener-এর মতো behave করে। আপনি noreferrer ব্যবহার করলে, একই link-এ security-র জন্য সাধারণত noopener দরকার হয় না। অনেক team clarity-র জন্য এখনও দুটোই লেখে:
<a href="https://external.example" target="_blank" rel="noopener noreferrer">
External site
</a>
এটি ঠিক আছে। Redundant, কিন্তু readable.
কখন noreferrer useful
যখন current page URL destination-এ expose করা উচিত নয়, তখন noreferrer ব্যবহার করুন।
Common examples:
- private dashboards থেকে links;
- unpublished preview environments থেকে links;
- sensitive query parameters থাকা URLs থেকে links;
- admin tools, moderation queues, CRM screens, বা customer support systems-এর links;
- এমন links যেখানে destination-এর exact source page জানা উচিত নয়।
শেষ pointটি সবসময় secrecy নিয়ে নয়। কখনও এটি data minimization নিয়ে। Destination-এর referring URL জানার প্রয়োজন না থাকলে, সেটি পাঠাবেন না।
এটি privacy-aware web design-এর broader direction-এর সঙ্গে মেলে। Browsers, users এবং regulators—সবাই defaultভাবে কম ambient data পাঠানোর দিকে এগিয়েছে। আপনি যদি এই area পুনরায় দেখেন, আমাদের 2026 সালে cookies নিয়ে কী বদলেছে এবং এ বিষয়ে কী করবেন article একই general shift cover করে: কম invisible tracking, আরও deliberate data flows।
Analytics trade-off
noreferrer আপনি যে site-এ link করছেন তাদের attribution ভেঙে দিতে পারে। তাদের analytics visit-টিকে referral traffic-এর বদলে direct traffic হিসেবে classify করতে পারে।
এটি আপনার primary problem নয়, কিন্তু partnerships, affiliate relationships, customer journeys, এবং internal cross-domain ecosystems-এ গুরুত্বপূর্ণ হতে পারে। আপনার marketing team যদি partner sites-কে আপনার domain থেকে referral traffic দেখতে আশা করে, blanket noreferrer confusion তৈরি করতে পারে।
অনেক ordinary editorial links-এর জন্য, সব জায়গায় noreferrer যোগ করার বদলে site-wide Referrer-Policy header set করা ভালো approach। যেমন:
Referrer-Policy: strict-origin-when-cross-origin
এই policy same-origin navigation-এর জন্য full URL পাঠায়, secure cross-origin destinations-এ শুধু origin পাঠায়, এবং HTTPS থেকে HTTP-তে গেলে কোনো referrer পাঠায় না। অনেক site-এর জন্য এটি practical default।
Production-এ headers কীভাবে behave করছে তা inspect করতে হলে, analytics dashboards দেখে guess করার চেয়ে raw HTTP check প্রায়ই বেশি clear। Production-এ redirects এবং HTTP headers debug করার ছোট toolkit-এর workflow referrer-policy debugging-এ সরাসরি প্রযোজ্য।
rel=nofollow search engines-এর জন্য, browsers-এর জন্য নয়
rel="nofollow" search engines-কে বলে যে আপনি linked page-টির endorsement imply করতে চান না।
<a href="https://external.example" rel="nofollow">
User-submitted link
</a>
প্রথমে nofollow comment spam মোকাবিলার জন্য চালু হয়েছিল। ধারণাটি simple ছিল: comments-এ links যদি ranking credit pass না করে, spammers-দের blogs এবং forums flood করার incentive কম থাকবে।
আজ, Google nofollow-কে absolute directive নয়, hint হিসেবে treat করে। এই distinction গুরুত্বপূর্ণ। এর মানে search engines কিছু context-এ discovery বা ranking systems-এর জন্য link ব্যবহার করতে পারে, কিন্তু আপনি clearly signal করছেন যে link-টিকে normal editorial endorsement হিসেবে treat করা উচিত নয়।
কখন nofollow ব্যবহার করবেন
যখন আপনি link করছেন কিন্তু destination-এর পক্ষে vouch করতে চান না, তখন nofollow ব্যবহার করুন।
Reasonable examples include:
- untrusted user-generated links;
- public comments বা profiles-এর links;
- bad behavior-এর example হিসেবে উল্লেখ করা sites-এর links;
- reference হিসেবে দেওয়া কিন্তু endorsement নয় এমন links;
- যেখানে moderation limited, এমন areas-এর links।
Paid বা sponsored links-এর জন্য rel="sponsored" prefer করুন। User-generated content-এর জন্য rel="ugc" prefer করুন। প্রয়োজন হলে values combine করতে পারেন:
<a href="https://example.com" rel="ugc nofollow">
User profile link
</a>
আপনি যদি public forms, comments, directories, বা profile pages চালান, link attributes abuse problem-এর শুধু এক অংশ। Spam সাধারণত submission flow-র আরও আগেই শুরু হয়। আমাদের কেন আপনার contact form আপনার সবচেয়ে বড় spam liability নিয়ে আলাদা breakdown আছে, এবং একই lesson এখানেও প্রযোজ্য: weak moderation-এর ক্ষতিপূরণ nofollow দিয়ে হবে—এমন আশা করবেন না।
nofollow কী করে না
nofollow users-কে link click করা থেকে আটকায় না। এটি browser-কে referrer পাঠানো থেকে block করে না। এটি destination-কে view থেকে hide করে না। এটি target="_blank" secure করে না।
এটি এমন guarantee-ও দেয় না যে কোনো URL কখনও crawl করা হবে না। Search engines যদি URLটি অন্য কোথাও খুঁজে পায়, তারা তবুও crawl করতে পারে। Indexing ঠেকাতে হলে destination page-এ appropriate robots controls ব্যবহার করুন, যেমন noindex; অন্য কারও link-এ nofollow attribute নয়।
Common combinations
নতুন tab-এ খোলা external link
<a href="https://external.example" target="_blank" rel="noopener">
External resource
</a>
এটি baseline। নতুন browsing context open করার ফলে তৈরি security issue এটি address করে।
আপনি যদি referrer data-ও পাঠাতে না চান:
<a href="https://external.example" target="_blank" rel="noopener noreferrer">
External resource
</a>
Paid placement
<a href="https://sponsor.example" rel="sponsored">
Sponsor site
</a>
নতুন tab-এ open হলে noopener add করতে পারেন:
<a href="https://sponsor.example" target="_blank" rel="sponsored noopener">
Sponsor site
</a>
Paid links disclose করার অস্পষ্ট substitute হিসেবে nofollow ব্যবহার করবেন না। Search engines-এর কাছে এখন এটির জন্য আরও specific value আছে: sponsored।
User-generated link
<a href="https://user-submitted.example" rel="ugc nofollow">
User-submitted site
</a>
এটি search engines-কে বলে linkটি user contribute করেছে এবং এটিকে normal editorial vote হিসেবে treat করা উচিত নয়।
Internal links
বেশিরভাগ internal links-এর জন্য এসব value-এর কোনোটি দরকার হয় না।
Routine sculpting tactic হিসেবে internal links-এ nofollow যোগ করবেন না। এতে সাধারণত benefit-এর চেয়ে confusion বেশি তৈরি হয়। কোনো page index হওয়া উচিত না হলে, সেটি directly handle করুন। কোনো page crawl হওয়া উচিত না হলে, robots rules, authentication, canonicalization, এবং site architecture নিয়ে সতর্কভাবে ভাবুন।
নতুন tab-এ খোলা internal links-এর জন্য noopener এখনও harmless এবং appropriate হতে পারে। কিন্তু আরও ভালো প্রশ্ন হলো internal link-টির আদৌ নতুন tab দরকার কেন।
Teams-এর জন্য practical policy
একটি simple house style বেশিরভাগ ভুল ঠেকায়:
target="_blank"থাকা links-এ, বিশেষ করে external links-এ,rel="noopener"যোগ করুন।- Source URL লুকানো intentional হলে তবেই
noreferrerযোগ করুন। - Destination endorse করতে না চাইলে তবেই
nofollowযোগ করুন। - Paid links-এর জন্য
sponsoredএবং user-submitted links-এর জন্যugcব্যবহার করুন। - Access control, moderation, বা indexing rules-এর substitute হিসেবে link attributes ব্যবহার করবেন না।
গুরুত্বপূর্ণ অংশ হলো intent। rel-এর প্রতিটি token একটি specific question-এর উত্তর দেওয়া উচিত:
- Security: new page কি opener থেকে isolated হওয়া উচিত?
- Privacy: destination কি referrer information পাবে?
- SEO: আমরা কি editorial reference হিসেবে এই link endorse করছি?
Team-এর কেউ যদি এসব প্রশ্নের উত্তর দিতে না পারে, attributeটি সম্ভবত cargo cult HTML।
কী ঘটছে তা কীভাবে test করবেন
noopener-এর জন্য, linkটি open করুন এবং destination window.opener access করতে পারে কি না check করুন। Controlled test page-এ, noopener active থাকলে window.opener হওয়া উচিত null।
noreferrer-এর জন্য, destination side-এ network request inspect করুন বা test environment-এ request logger ব্যবহার করুন। Browser DevTools outgoing request headers দেখাতে পারে, কিন্তু server-side logs প্রায়ই বেশি reliable।
nofollow-এর testing কম immediate, কারণ এটি browser behavior নয়; search engine interpretation। আপনার best check হলো source inspection: rendered HTML-এ expected rel value আছে কি না confirm করুন। আপনার frontend framework যদি links rewrite করে, শুধু template নয়, final DOM inspect করুন।
Bottom line
এই attributes ছোট, কিন্তু security, privacy এবং SEO-র intersection-এ থাকে। এগুলোকে interchangeable হিসেবে treat করলে খারাপ habits তৈরি হয়।
New-tab links-এর সঙ্গে noopener উদারভাবে ব্যবহার করুন। Referrer privacy গুরুত্বপূর্ণ হলে সচেতনভাবে noreferrer ব্যবহার করুন। Endorsement নিয়ে search-facing statement দিতে হলে nofollow ব্যবহার করুন। আর কোনো link paid বা user-generated হলে আরও specific modern values ব্যবহার করুন: sponsored এবং ugc।
বেশিরভাগ site-এর জন্য এটুকুই যথেষ্ট। লক্ষ্য প্রতিটি link সাজানো নয়। লক্ষ্য হলো প্রতিটি link যেন browser এবং search engines-কে ঠিক যা জানা দরকার, সেটাই বলে।