hreflang چیست؟ آموزش گامبهگام نسخههای زبانی سایت
- hreflang چیست و چه مشکلی را حل میکند؟
- سه راه پیادهسازی مجاز؛ هدر، سایتمپ و هدر HTTP
- کد زبان و کد منطقه؛ قواعدی که بیشترین اشتباه را میگیرند
- آموزش گامبهگام اجرا در وردپرس
- پنج خطای رایج که نسخههای زبانی را میشکند
- تقسیم کار با canonical؛ دو برچسب که جای هم را نمیگیرند
- سنجش بعد از اجرا؛ پایش نسخههای زبانی در سرچکنسول
- جمعبندی؛ چه زمانی اصلاً به hreflang نیاز دارید؟
سایت چندزبانه بدون این برچسب، چند سایتِ موازی با یک محتواست؛ موتور جستوجو نمیداند نسخهٔ فارسی برای جستجوگر ایرانی یا نسخهٔ انگلیسی برای مخاطب بینالمللی «نسخهٔ اصلی» است و معمولاً یکی از دو نسخه را بیدلیل حذف میکند. این مقاله، سفر اجرای نسخههای زبانی را از صفر تا سنجش باز میکند: چیستی، سه راه پیادهسازی، قواعد کدها، آموزش اجرا در وردپرس، خطاهای رایج و مسیر پایش.
برای شفافیت، مرز با مقالههای همخانواده را همین اول روشن کنیم: مقایسهٔ افزونههای چندزبانهٔ وردپرس تصمیمِ انتخاب ابزار را باز میکند و کلاس قابلیت افزونهها را میسنجد؛ اینجا فرض بر این است که ابزار را انتخاب کردهاید و سؤال «چطور درست اجرا کنم؟» است. بحث تکرار صفحات که برادرِ همین موضوع است، در شناسایی صفحات تکراری و ریشهٔ دوئپلیکیشن جداگانه ریشهکاوی شده؛ اینجا فقط جایی سراغش میرویم که برچسب زبان با برچسب canonical تقسیم کار میکنند.
hreflang چیست و چه مشکلی را حل میکند؟
hreflang یک نشانهٔ فنی است که سه چیز را به موتور جستوجو میگوید: این صفحه برای کدام زبان است، برای کدام منطقه است، و معادلهای همین محتوا در زبانهای دیگر کدام آدرسها هستند. نتیجهٔ درست اجراشدنِ آن، پخش درست مخاطب است: جستجوگر فارسیزبان در ایران نسخهٔ فارسی میبیند، کاربر انگلیسیزبان کانادا نسخهٔ انگلیسی، و هر نسخه اعتبار خودش را جمع میکند بهجای اینکه نصفنصف تقسیم شود.
بدون این برچسب، دو نسخهٔ همارزِ یک صفحه از دید موتور جستوجو رقیباند؛ او یکی را انتخاب میکند و دیگری را در نتیجههای آن زبان کمرنگ میکند. به تجربهٔ ما این دقیقاً همان جایی است که مدیر سایت میگوید «نسخهٔ انگلیسی ایندکس نمیشود»، در حالی که مشکل، غیبت نشانِ زبان است نه جریمه. مسئلهای که این برچسب حل میکند کیفیت نیست؛ مشخصکردن مخاطبِ هر نسخه پیش از رقابت است.
یک نکتهٔ چارچوبی قبل از ورود به جزئیات: این برچسب خودش رتبه نمیسازد؛ فقط مسیر پخش را منظم میکند. اگر زیرساخت کلی سایت مشکلی داشته باشد، زبانبندی درست هم آن را پنهان نمیکند. نقشهٔ کامل مباحث فنی را در هاب سئو فنی مرتب نگه داشتهایم و این مقاله، قطعهٔ «نسخههای زبانی» همان پازل است.
سه راه پیادهسازی مجاز؛ هدر، سایتمپ و هدر HTTP

سه راه رسمی برای اعلام زبان نسخهها وجود دارد و هر سه معتبرند. راه اول، تگ لینک در بخش هدر هر صفحه است؛ پرکاربردترین روش وقتی افزونه چندزبانه خودش تولیدش میکند. راه دوم، حاشیهنویسی در نقشهٔ سایت است: هر آدرس عنصر فرزندی میگیرد که معادلهای زبانیاش را لیست میکند؛ برای سایتهای بزرگ تمیزتر از شلوغکردن هدر است. راه سوم، هدر HTTP است که معمولاً برای فایلهای غیر HTML مثل PDF چندزبانه به کار میرود.
انتخاب بین این سه، سلیقه نیست؛ مقیاس و ابزار است. اگر افزونهٔ چندزبانه دارید، مسیر هدر خودکار پوشش داده میشود و کمترین کار نگهداری را دارد؛ اگر هزاران آدرس دارید و هدر را نمیخواهید شلوغ کنید، سایتمپ تمیزتر است — به شرطی که نقشه سالم بماند و با هر انتشار بهروز شود؛ نگهداری نقشه را در نگهداری نقشهٔ سایت XML سالم باز کردهایم. هدر HTTP را برای صفحات عادی لازم ندانید.
قاعدهٔ طلایی هر سه راه یکی است: بازگشتِ دوطرفه. هر نشانهٔ زبانی که برای صفحهٔ A اعلام میکند «معادل من B است»، باید در صفحهٔ B هم همان پیام با آدرس A بیاید. ناقصماندن این حلقه، رایجترین دلیل بیاثرشدن کل زحمت است.
کد زبان و کد منطقه؛ قواعدی که بیشترین اشتباه را میگیرند
ساختار کدها ساده است: زبان بهتنهایی، و در صورت نیاز، زبان بههمراه منطقه با خط تیره — فارسی بههمراه ایران برای مخاطب داخل کشور، یا انگلیسی بههمراه آمریکا برای بازار آنجا. اشتباه رایج اول: کد منطقه را جای کد زبان میگذارند یا فکر میکنند کد منطقه «محدودکنندهٔ جغرافیایی» است. کد منطقه هدفگیری زبانی-منطقهای را دقیقتر میکند، اما جایگزین تنظیمات جغرافیایی سایت نیست و کد زبان بهتنهایی هم معتبر است.
اشتباه رایج دوم، الفبای کدهاست. کدها باید فرمت رسمی زبان و منطقه را داشته باشند و با فرضی مثل «هر چه در وردپرس انتخاب کردم کافی است» ساخته نشوند؛ بعضی افزونهها کد را از نام فایل قالب میسازند و خروجی را خوانندهٔ ماشینی نمیپذیرد. به تجربهٔ ما هنگام عیبیابی، نیمی از مشکلها به همین ریشه برمیگردد: کدی که چشم انسان میفهمد اما تجزیهکنندهٔ رسمی نه.
اشتباه سوم، نشانهٔ پیشفرض است. برای هر مجموعهٔ معادلهای زبانی، یک نسخهٔ پیشفرض تعریف میشود که برای کاربری میآید و هیچکدام از زبانهای اعلامشده با او نمیسازد — مثلاً جستجوگری با زبان سیستم فرانسوی که وارد سایت دوزبانهٔ شما میشود. نبودِ این پیشفرض یعنی آن کاربر نسخهای دلخواه نمیگیرد و همانجا از دست میرود؛ سهکلمهای که معمولاً فراموش میشود.
آموزش گامبهگام اجرا در وردپرس

اجرای عملی در وردپرس را در پنج قدم میتوان بست. قدم اول، تصمیم معماری است نه ابزار: زیردامنهٔ جدا برای هر زبان، پوشهٔ زبانی کنار دامنهٔ اصلی، یا دامنهٔ مستقل هر بازار. هر سه مجازند و انتخاب به ظرفیت فنی تیم برمیگردد؛ بعد از انتخاب دیر تغییرش ندهید، چون جابهجایی معماری یعنی بازسازی همهٔ نشانهها. قدم دوم، انتخاب افزونهٔ چندزبانه بر اساس همان معماری؛ مرز قابلیت افزونهها را جداگانه مقایسه کردهایم.
قدم سوم، تولید نشانهها با همان افزونه و انتخاب مسیر اعلام: هدر یا سایتمپ. در همین قدم، گزینهٔ پیشفرضِ زبانِ جبرانی را فعال کنید تا کاربری که با هیچ زبانی نمیسازد به یکی از نسخههای موجود برگردد. قدم چهارم، اعتبارسنجی: ابزار رسمی گوگل آدرسهای مهم را میخواند و خطای کد و حلقهٔ ناقص را نشان میدهد؛ چند صفحهٔ نمونه از هر زبان بسنجید. قدم پنجم، ثبت در پایش: وضعیت فهرستشدن هر نسخه را پیش و پس از اجرا یادداشت کنید.
دو نکتهٔ اجرایی که در پروژههای واقعی تفاوت میسازد: اول، ترجمهٔ محتوا را با اجرای فنی قاطی نکنید؛ برچسب زبان روی محتوای ماشینیِ بازبینینشده، نسخهٔ ضعیف را فقط به مخاطب درست میرساند. دوم، لینکهای داخل متن را هم چندزبانه کنید؛ کاربری که از نسخهٔ انگلیسی وارد شده و به صفحهٔ تماس فارسی میرسد، تجربهٔ شکستهای میگیرد.
پنج خطای رایج که نسخههای زبانی را میشکند
خطای اول، حلقهٔ ناقص است؛ رایجترین: صفحهٔ فارسی به انگلیسی اشاره میکند و انگلیسی جواب نمیدهد. موتور جستوجو نشانههای ناقص را میبیند و معمولاً کل مجموعه را نادیده میگیرد. علتها معمولاً فنیاند: صفحهٔ معادل حذف شده، پیشنویس مانده، یا افزونه در قالبی اختصاصی هدر را خالی گذاشته. چکلیست اعتبارسنجی در ادامهٔ همین بخش، این خطا را در پنج دقیقه میگیرد.
خطای دوم، کد نادرست یا فرمتِ ناپذیرفتنی است که در بخش قبل باز شد. خطای سوم، نشانهگذاری یکطرفه: فقط نسخهٔ اصلی نشانه دارد و معادلها بینشانهاند — معمولاً وقتی نسخهٔ جدید زبان دستی اضافه میشود و فراموشی پیش میآید. خطای چهارم، بازگشت به صفحهٔ اصلی بهجای معادلِ واقعی: همهٔ زبانها به صفحهٔ نخست سایت اشاره میکنند؛ نشانه از نظر موتور معتبر است اما تجربهٔ کاربر میشکند و نرخ پرش نسخهها بالا میرود. خطای پنجم، قاطیکردن زبان با کشور در هدفگیری: کد منطقه جای تنظیمات جغرافیایی سرویس میزبان و پروفایل کسبوکار را نمیگیرد؛ جابهجایی این دو، هر دو را بیاثر میکند.
تقسیم کار با canonical؛ دو برچسب که جای هم را نمیگیرند
دو برچسب، دو کار متفاوت دارند و مهمترین سوءتفاهم فنی این حوزه همینجاست. برچسب محتوای استاندارد میگوید «از میان این چند آدرس شبیه به هم، این یکی را نماینده قرار بده» و برای نسخههای همزبانِ نزدیک به کار میرود: نسخهٔ چاپی یا با پارامتر. برچسب زبان میگوید «اینها معادلهای زبانی هماند، هر دو را نگه دار و هر یک را به مخاطب خودش بده» — یعنی دقیقاً ضدانحلال، نه همراهِ انحلال.
پس قاعدهٔ تقسیم کار این است: اگر دو صفحه محتوای همارز برای دو زبان دارند، برچسب زبان به کار میآید و برچسب استاندارد نباید یکی را به دیگری بفرستد؛ اگر دو صفحه در یک زبان شبیه هماند، بحث تکرار است و مسیرش برچسب استاندارد و ادغام است — ریشهکاوی کامل تکرارها را در شناسایی صفحات تکراری و ریشهٔ دوئپلیکیشن نوشتهایم. جایی که پروژهها میسوزند، حالت ترکیبی است: برچسب استاندارد اشتباهی معادلِ زبان دوم را از فهرست خارج میکند؛ هر بار که «نسخهٔ زبانی ناپدید شد»، اول این نقطه را چک کنید.
یک آزمون ساده برای تفکیک: به نسخهٔ دوم فقط ترجمه بدهید؛ اگر صفحه معتبر و مستقل میماند، بحث زبان است. اگر کپیِ همزبانِ یک محتواست، بحث استاندارد است؛ همین آزمون نیمی از بحثهای فنی را دو دقیقهای تمام میکند.
سنجش بعد از اجرا؛ پایش نسخههای زبانی در سرچکنسول
پایش بعد از اجرا سه لایه دارد. لایهٔ اول، گزارش فهرستشدن صفحهها در سرچکنسول است: وضعیت هر نسخهٔ زبانی را جدا ببینید و بهویژه صفحاتی را نگاه کنید که «جایگزین کاربر درست شد» گزارش شده؛ بعضی از این جایگزینیها طبیعیاند و بعضی یعنی موتور، نشانهٔ زبانی شما را باور نکرده و نسخهٔ خودش را انتخاب کرده — روند هفتگی همین یک فیلتر، سلامت اجرا را میگوید. لایهٔ دوم، گزارش هدفگیری بینالمللی است که نشانههای زبانی هر آدرس را نشان میدهد و خطای حلقهٔ ناقص را برمیگرداند.
لایهٔ سوم، رفتار کاربر است: ترافیک و نرخ تعامل هر زبان را جدا نگه دارید. اگر نسخهای فهرست شده اما جذب ندارد، مشکل از برچسب نیست؛ از تقاضای کلمهها یا کیفیت محتوای همان زبان است. پایش روی همین سه لایه نصف ارزش نسخههای زبانی را نجات میدهد، چون خرابیها تدریجیاند — افزونهای آپدیت میشود، قالبی بازنویسی میشود و حلقهها بیصدا میشکنند؛ کسی که پایش ماهانه ندارد، سه ماه بعد تازه میفهمد.
جمعبندی؛ چه زمانی اصلاً به hreflang نیاز دارید؟
جمعبندی تصمیم: اگر مخاطبتان تکزبانه است، این برچسب برای شما ساخته نشده و وقتتان را به جای بهتر ببرید؛ اگر دو زبان یا دو بازار دارید، این برچسب پیششرط منظمشدن رقابت داخلی نسخههاست و اجرایش با افزونهٔ درست و پنج قدم این راهنما، کار یک هفته است نه یک پروژه. مرز «زبان» و «تکرار» را نگه دارید — تکرار با برچسب استاندارد حل میشود و مسیرش در شناسایی صفحات تکراری و ریشهٔ دوئپلیکیشن است — و حلقهٔ دوطرفهٔ نشانهها را مثل قرارداد امضاشده نگه دارید؛ هر انتشار جدید، حلقههایش را دوباره امضا میخواهد.
اگر نمیدانید از کجا شروع کنید، ممیزی رایگان دامنه وضعیت فنی دامنه را نشان میدهد و میگوید نسخههای زبانی در کجای اولویتهای شماست؛ برای دیدن اینکه کدام بخش در پلتفرم خودکار میشود و کدام دستساز میماند، قابلیتهای پلتفرم فهرست قابلیتهاست. تصمیم اجرا را با همین دو ورودی ببندید، نه با حدس؛ و اجرا را همانجا شروع کنید که ممیزی ضعیفترین حلقه را نشان داد.
رصد ما، رشد شما.
سؤالات پرتکرار
hreflang چیست و چه فرقی با canonical دارد؟
برچسب زبان میگوید «اینها معادلهای زبانی هماند، هر دو را نگه دار»؛ برچسب محتوای استاندارد میگوید «اینها تکرارند، یکی را نماینده کن». برای نسخههای همزبانِ مشابه canonical به کار میرود و برای نسخههای زبانی، برچسب زبان.
کد fa کافی است یا fa-IR لازم است؟
کد زبان بهتنهایی معتبر است و برای مخاطب عمومی فارسیزبان کافی است؛ افزودن کد منطقه فقط وقتی لازم میشود که نسخهٔ جداگانهای برای یک بازار خاص داشته باشید. کد منطقه جغرافیا را قفل نمیکند؛ فقط نسخهٔ هدفگیریشده را دقیقتر میکند.
برای سایت دوزبانهٔ کوچک هم لازم است؟
به تجربهٔ ما بله، چون همان دو نسخه هم بدون نشانه با هم رقابت داخلی میکنند. اجرا با افزونه چند ساعت کار است و خطای رایجش فقط حلقهٔ دوطرفه است که در چکلیست این مقاله پوشش داده شده.
چرا نشانههای زبانی من اثر نکردهاند؟
سه علت پرتکرار: حلقهٔ دوطرفه ناقص است، کد در فرمت رسمی نوشته نشده، یا نسخهٔ پیشفرضِ زبانِ جبرانی تعریف نشده. گزارش هدفگیری بینالمللی سرچکنسول، خطاها را بهازای هر آدرس نشان میدهد.
نسخهٔ پیشفرض (x-default) کجا لازم میشود؟
برای کاربری که زبانش با هیچکدام از نسخههای اعلامشده نمیسازد. بدون این نشانه، آن کاربر نسخهٔ دلخواه نمیگیرد؛ معمولاً نسخهٔ اصلی یا صفحهٔ انتخاب زبان را بهعنوان پیشفرض معرفی میکنند.