برای جلوگیری از ایندکس سایت استیج، دسترسی ناشناس را با رمز سرور ببندید، noindex را بهعنوان لایه پشتیبان فعال کنید و لینکها و sitemap آزمایشی را عمومی نکنید. robots.txt بهتنهایی مانع ایندکس نیست و ممکن است جلوی دیدهشدن noindex را بگیرد.
سایت استیج برای آزمایش قالب، افزونه، محتوا و تغییرات فنی ساخته میشود؛ اما اگر موتور جستوجو به آن دسترسی داشته باشد، نسخه آزمایشی میتواند وارد نتایج شود. نتیجه فقط نمایش یک آدرس ناخواسته نیست. ممکن است متن تکراری، canonical اشتباه، صفحههای ناقص و URLهایی که قرار نیست عمومی باشند، در گزارشهای ایندکس دیده شوند.
راه مطمئن این است که محیط استیج را از سطح سرور با نام کاربری و رمز عبور ببندید، noindex را بهعنوان لایه پشتیبان فعال کنید و مسیرهای کشف URL را محدود نگه دارید. تکیه به robots.txt کافی نیست و گاهی حتی باعث میشود گوگل نتواند دستور noindex داخل صفحه را ببیند.
این راهنما فقط روی محیط آزمایشی وردپرس تمرکز دارد. موضوع آن رفع یک خطای مشخص پیش از لانچ است و جای راهنمای عمومی سئو سایت وردپرسی را نمیگیرد. در ادامه، ترتیب درست لایههای محافظت، روش بررسی نتیجه و کارهایی را میخوانید که باید هنگام انتقال سایت به نسخه اصلی برگردانده شوند.
بهترین روش جلوگیری از ایندکس سایت استیج چیست؟
مطمئنترین روش، احراز هویت در سطح وبسرور است؛ یعنی کاربر و ربات پیش از دیدن هر صفحه باید نام کاربری و رمز عبور وارد کند. noindex در وردپرس لایه دوم است و حذف لینکها، sitemap و نشانههای عمومی نیز احتمال کشف آدرس را کمتر میکند. این سه کنترل باید همزمان و با نقشهای جدا تنظیم شوند.
وقتی Basic Authentication یا ابزار محافظت محیط آزمایشی هاست فعال باشد، خزنده معمولاً پاسخ 401 Unauthorized میگیرد و به محتوای وردپرس نمیرسد. این وضعیت از خود صفحه مستقل است؛ بنابراین حتی اگر افزونهای متای robots را حذف کند یا قالب درست بارگذاری نشود، محتوای استیج همچنان پشت در بسته میماند.
لایه noindex برای زمانی مفید است که حفاظت سرور موقتاً خاموش شده، یک مسیر از قانون رمز عبور جا مانده یا تیم توسعه از یک سرویس میانی استفاده میکند. وجود هر دو لایه خطای انسانی را کم میکند، اما وظیفه آنها یکی نیست: رمز عبور دسترسی را میبندد و noindex از موتور جستوجویی که صفحه را دیده میخواهد آن را در نتایج نگه ندارد.
لایه سوم مدیریت کشف URL است. استیج نباید در منوی سایت اصلی، مقاله عمومی، فایل sitemap ثبتشده یا ابزارهای اشتراکگذاری تیم قرار بگیرد. نام تصادفی سابدامین امنیت واقعی ایجاد نمیکند، ولی حذف پیوندهای عمومی احتمال پیدا شدن آدرس را کاهش میدهد و گزارشهای خزش را تمیزتر نگه میدارد.

| لایه محافظت | چه کاری انجام میدهد | نشانه کنترل موفق | محدودیت |
|---|---|---|---|
| رمز در سطح سرور | دسترسی ناشناس را پیش از اجرای وردپرس میبندد | پاسخ 401 یا فرم ورود سرور | باید برای همه مسیرها و فایلها اعمال شود |
| noindex سراسری | از موتور جستوجو میخواهد صفحه را ایندکس نکند | متای robots یا هدر X-Robots-Tag | فقط وقتی دیده میشود که خزنده به پاسخ دسترسی داشته باشد |
| حذف مسیرهای کشف | لینک، sitemap و ارجاع عمومی را کم میکند | نبود URL استیج در منابع عمومی | بهتنهایی مانع ایندکس قطعی نیست |
چرا robots.txt بهتنهایی کافی نیست؟
فایل robots.txt دسترسی خزنده به مسیرها را مدیریت میکند، اما ابزار حذف صفحه از نتایج نیست. گوگل صریح میگوید یک URL مسدودشده ممکن است براساس لینکهای بیرونی همچنان ایندکس شود. ضمن اینکه با مسدودکردن خزش، ربات نمیتواند متای noindex همان صفحه را بخواند.
خطای رایج این است که در محیط استیج هم Disallow: / گذاشته شود و هم داخل همه صفحهها noindex قرار گیرد، سپس انتظار داشته باشیم متای صفحه سریع عمل کند. اگر Googlebot براساس robots.txt وارد صفحه نشود، دستور داخل HTML را دریافت نمیکند. در این وضعیت ممکن است فقط URL بدون محتوای کامل در نتایج بماند.
برای شناخت دقیق نقش دستورهای این فایل، راهنمای robots.txt را جدا ببینید. در محیط آزمایشی، کنترل اصلی باید رمز عبور باشد. اگر URL قبلاً ایندکس شده و میخواهید noindex دیده شود، مسدودیت خزش آن URL را موقتاً بردارید تا گوگل صفحه را دوباره بخواند؛ سپس بعد از حذف از نتایج، حفاظت سرور را برقرار کنید.
اگر محتوای استیج نباید هیچگاه عمومی شود، پاسخ 401 یا 403 معتبر از نمایش HTML عمومی امنتر است. اگر صفحهای دیگر وجود ندارد، 404 یا 410 وضعیت واقعی را منتقل میکند. تحویل یک صفحه خطا با کد 200 انتخاب مناسبی نیست، چون URL را قابل دریافت نشان میدهد و تشخیص موتور جستوجو را سختتر میکند.
در وردپرس noindex سراسری را از کجا فعال کنیم؟
در پیشخوان وردپرس به «تنظیمات»، سپس «خواندن» بروید و گزینه «از موتورهای جستوجو درخواست کن تا محتوای سایت را بررسی نکنند» را فعال کنید. وردپرس از نسخه 5.3 در صورت اجرای درست wp_head، متای robots با مقادیر noindex,nofollow را به خروجی اضافه میکند. این گزینه درخواست است، نه قفل دسترسی.
پس از ذخیره، فقط به تیک تنظیمات اعتماد نکنید. یک صفحه عمومی استیج را در حالت ناشناس باز کنید، کد منبع HTML را ببینید و دنبال meta name="robots" بگردید. اگر قالب تابع wp_head() را اجرا نکند، افزونه سئو مقدار را بازنویسی کند یا کش قدیمی تحویل داده شود، خروجی واقعی میتواند با تنظیم پیشخوان فرق داشته باشد.
برای فایلهایی که HTML نیستند، مانند PDF یا برخی پاسخهای API، متای داخل صفحه کاربرد ندارد. در این مسیرها میتوان هدر X-Robots-Tag: noindex را در وبسرور یا برنامه تنظیم کرد. هدر نهایی باید با ابزار توسعه مرورگر یا دستور curl -I بررسی شود، چون CDN و پراکسی ممکن است آن را حذف یا تغییر دهند.
مفهوم ایندکس در گوگل با خزش یکی نیست. امکان دارد خزنده یک URL را ببیند ولی آن را نگه ندارد، یا آدرس مسدودشده را بدون خواندن محتوای کامل از روی لینکهای دیگر بشناسد. همین تفاوت دلیل اصلی استفاده از کنترل دسترسی در کنار دستور ایندکس است.
در بازبینی پیش از لانچ سئودو، کنترل noindex در سه نقطه انجام میشود: تنظیم وردپرس، HTML نهایی و هدر پاسخ. این مسیر کوتاه جلوی حالتی را میگیرد که گزینه پیشخوان فعال است ولی صفحهای خاص بهعلت قالب متفاوت، کش یا قانون افزونه با index تحویل داده میشود.
محافظت با رمز را در سطح هاست فعال کنید
محافظت باید پیش از بارگذاری وردپرس اجرا شود. در بسیاری از هاستها گزینهای مانند Password Protection، Directory Privacy یا Staging Protection وجود دارد. در Nginx و Apache نیز میتوان Basic Authentication تعریف کرد. هدف این است که درخواست ناشناس بهجای HTML سایت، پاسخ احراز هویت دریافت کند و هیچ قالب یا API عمومی بارگذاری نشود.
رمزگذاری یک برگه داخل وردپرس یا استفاده از افزونه «سایت در حال تعمیر است» همان نتیجه را ندارد. ممکن است صفحه ورود، REST API، feed، فایل رسانه، sitemap یا URLهای افزونه بیرون از آن قانون باقی بمانند. قانون سرور را روی کل دامنه یا سابدامین استیج اعمال کنید و مسیرهای wp-json، wp-sitemap.xml، فایلهای آپلود و آدرسهای دارای پارامتر را نیز آزمایش کنید.
برای آزمون، پنجره ناشناس مرورگر کافی نیست. یک درخواست بدون cookie به صفحه اصلی، یک نوشته، یک تصویر، sitemap و یک endpoint از REST API بفرستید. همه باید پیش از نمایش محتوا به کنترل دسترسی برسند. اگر بعضی فایلها از CDN عمومی تحویل میشوند، قانون حفاظت باید در همان لایه CDN هم هماهنگ شود.
نام کاربری و رمز را در ابزارهای عمومی مدیریت پروژه، تیکت بدون محدودیت یا URL قرار ندهید. همچنین موتور جستوجو را با استثنای User-Agent از رمز عبور عبور ندهید؛ جعل User-Agent ساده است و چنین استثنایی نتیجه آزمون را غیرواقعی میکند. تیم توسعه و بازبینها باید از همان مسیر محافظتشدهای استفاده کنند که برای همه کاربران ناشناس بسته است.
سه لایه را چگونه بدون تناقض بچینیم؟
ترتیب مناسب این است: احراز هویت سرور بهعنوان سد اصلی، noindex بهعنوان پشتیبان و حذف لینک و sitemap استیج برای کاهش کشف URL. robots.txt میتواند بودجه خزش را مدیریت کند، اما نباید جلوی دیدن noindex را در فرایند حذف URL لو رفته بگیرد. هر لایه باید با هدف خودش سنجیده شود.
در استیجی که هنوز شناخته نشده، فعالبودن رمز عبور مهمترین کنترل است. noindex را نیز نگه دارید تا اگر رمز برای تست موقت کنار رفت، صفحه با تنظیم ایندکس اشتباه تحویل نشود. لازم نیست Disallow: / را نشانه امنیت بدانید؛ فایل robots عمومی است و حتی میتواند مسیرهایی را که قصد پنهانکردنشان دارید آشکار کند.
در استیجی که قبلاً در گوگل دیده شده، ابتدا وضعیت URL را مشخص کنید. اگر میخواهید گوگل دستور noindex را بخواند، دسترسی خزنده به همان URL باید ممکن باشد. پس از خروج URL از نتایج، آن را پشت رمز ببرید. اگر محتوا برای همیشه حذف شده، پاسخ 404 یا 410 روشنتر از صفحهای است که هم مسدود است و هم پیام متناقض میدهد.
برای دامنه اصلی، هیچیک از تنظیمات استیج نباید با انتقال فایل یا دیتابیس باقی بماند. متای noindex، هدر X-Robots-Tag، رمز سرور و قانون CDN را بهصورت مستقل بررسی کنید. برداشتن تیک وردپرس تضمین نمیکند قانون دیگری در سطح افزونه، قالب یا سرور همچنان فعال نباشد.
چطور مطمئن شویم سایت استیج قابل ایندکس نیست؟
آزمون باید از بیرون محیط مدیریت انجام شود. اول پاسخ یک کاربر ناشناس را ببینید؛ برای استیج خصوصی، 401 یا در بعضی ساختارها 403 انتظار میرود. سپس در یک بازه کنترلشده و با دسترسی مجاز، HTML و هدرهای robots را بررسی کنید تا لایه پشتیبان نیز فعال باشد. نتیجه هر مسیر را جدا ثبت کنید.
با curl -I https://staging.example.com/ هدر و کد وضعیت را ببینید. برای مشاهده HTML، پس از ورود مجاز از curl همراه نام کاربری استفاده کنید و متای robots را بخوانید. تست را برای صفحه اصلی، نوشته، دسته، صفحه جستوجو، فایل PDF و sitemap تکرار کنید. یک پاسخ درست در صفحه اصلی، پوشش همه URLها را ثابت نمیکند.
در کد منبع باید فقط یک دستور روشن برای robots وجود داشته باشد. وجود همزمان index و noindex در چند متا یا هدر، نتیجه را مبهم میکند و نشانه تداخل قالب، افزونه و سرور است. کش وردپرس، CDN و مرورگر را پاک کنید و همان پاسخ نهایی بیرونی را ملاک بگیرید، نه تنظیمی که در پنل دیده میشود.
دامنه و سابدامین استیج را در سایت اصلی جستوجو کنید. منو، فوتر، نوشتههای تیم، فایلهای قابل دانلود و لینکهای محیط توسعه میتوانند آدرس را آشکار کنند. sitemap استیج نباید در Search Console ارسال شود و canonical صفحههای آن نیز نباید بیهدف به خود استیج اشاره کند، چون سیگنال عمومیبودن نسخه آزمایشی را تقویت میکند.
اگر مالکیت دامنه را در Search Console دارید، URL Inspection نشان میدهد گوگل چه وضعیتی از URL میشناسد. برای بررسی HTML زنده باید محدودیت احراز هویت را آگاهانه مدیریت کنید؛ بازکردن دائمی استیج فقط برای اجرای یک تست تصمیم مناسبی نیست. گزارش را با خروجی سرور و کد منبع همان لحظه تطبیق دهید.
اگر سایت استیج قبلاً ایندکس شده چه کنیم؟
اول URLهای دیدهشده را فهرست و نوع هرکدام را مشخص کنید. برای صفحه موجودی که باید از نتایج حذف شود، noindex بگذارید و اجازه دهید گوگل دوباره آن را بخزد. برای URLی که واقعاً حذف شده، 404 یا 410 بدهید. ابزار Removals در Search Console فقط حذف سریع و موقت را تسهیل میکند و جای وضعیت فنی درست را نمیگیرد.
در این مرحله robots.txt را طوری نبندید که Googlebot نتواند noindex را ببیند. پس از آنکه URL از نتایج خارج شد، محیط را دوباره پشت احراز هویت ببرید. اگر نسخه اصلی همان محتوا منتشر شده است، canonical تنها زمانی کاربرد دارد که صفحه استیج برای خزنده قابل دریافت باشد؛ در محیط خصوصی، کنترل دسترسی همچنان اصل است.
تمام لینکهای عمومی به استیج را حذف یا اصلاح کنید. اگر یک مقاله، فایل یا ابزار داخلی به URL آزمایشی پیوند داده، لینک را به نسخه اصلی ببرید. sitemap، feed و داده ساختاریافته را نیز بررسی کنید. ماندن یک نشانی استیج در sitemap میتواند کشف دوباره آن را آسان کند، حتی اگر مدتی از نتایج حذف شده باشد.
پس از اصلاح، به حذف فوری همه نتایج متکی نباشید. زمان بازخزش به سابقه و اهمیت URL بستگی دارد. وضعیت را با جستوجوی نمونهای، گزارش Pages و URL Inspection پیگیری کنید. اگر نتیجهای فقط عنوان یا URL را نشان میدهد، از روی ظاهر نتیجه درباره دیدهشدن noindex حدس نزنید؛ وضعیت خزش و پاسخ سرور را بررسی کنید.
پیش از لانچ چه تنظیماتی را برگردانیم؟
لانچ فقط کپیکردن فایلها نیست. باید همه محدودیتهایی که برای استیج ساخته شدهاند روی نسخه اصلی خاموش شوند و سیگنالهای فنی مقصد دوباره بررسی شوند. این کار را پیش از اعلام انتشار انجام دهید، سپس کش وردپرس و CDN را پاک کنید و پاسخ عمومی را از یک نشست ناشناس ببینید.

| کنترل هنگام لانچ | وضعیت درست در سایت اصلی | روش بررسی |
|---|---|---|
| احراز هویت سرور | خاموش برای URLهای عمومی | درخواست ناشناس بدون 401 |
| تنظیم نمایش به موتور جستوجو | گزینه بازدارنده غیرفعال | تنظیمات خواندن و کد منبع |
| متای robots | index یا نبود noindex در صفحات هدف | View Source |
| X-Robots-Tag | نبود noindex در پاسخهای قابل ایندکس | بررسی هدر با curl |
| robots.txt | مسیرهای لازم قابل خزش | آزمون فایل و ابزار Search Console |
| canonical | اشاره به URL نهایی HTTPS | کد منبع صفحه |
| sitemap | فقط URLهای نسخه اصلی | بازکردن فایل و ارسال در Search Console |
| کش و CDN | تحویل نسخه تازه | purge و درخواست از حالت ناشناس |
چکهای عمومی انتشار در چکلیست سئو سایت جدید ادامه همین مسیر است. بعد از برداشتن محدودیت استیج، canonical، ریدایرکتها، sitemap، کدهای وضعیت و نسخه موبایل را در دامنه اصلی ببینید تا یک اصلاح موضعی، خطای دیگری در مسیر ایندکس نسازد.
اگر دیتابیس استیج به سایت اصلی منتقل شده، مقدار blog_public وردپرس را مستقیم کنترل کنید. همچنین فایلهای تنظیمات وبسرور، متغیرهای محیطی، قوانین امنیتی CDN و تنظیمات افزونه سئو را مرور کنید. عبارت noindex را در HTML چند نوع صفحه و هدر چند فایل جستوجو کنید؛ یک صفحه نمونه برای تأیید کل سایت کافی نیست.
پس از لانچ، URL اصلی را با URL Inspection آزمایش و sitemap درست را ارسال کنید. درخواست ایندکس برای چند صفحه مهم میتواند بررسی را جلو بیندازد، اما جای رفع محدودیت را نمیگیرد. اگر Googlebot هنوز 401، noindex یا canonical استیج دریافت کند، درخواست دستی مشکل پیکربندی را حل نخواهد کرد.
اشتباههای رایج در مدیریت سایت استیج
رایجترین خطا، یکیگرفتن «مخفیکردن از دید کاربر» با «بستن دسترسی موتور جستوجو» است. صفحه تعمیر، نام سابدامین نامعلوم یا نبود لینک در منو امنیت و عدم ایندکس را تضمین نمیکند. پاسخ نهایی سرور و دستور robots باید اندازهگیری شوند؛ ظاهر مرورگر معیار کافی نیست.
خطای دوم، استفاده همزمان از Disallow و انتظار اجرای noindex است. خطای سوم، اعمال رمز فقط روی صفحه اصلی و بازماندن رسانهها، API یا sitemap است. خطای چهارم، انتقال دیتابیس استیج با گزینه نمایش موتور جستوجو به سایت اصلی است. خطای پنجم، پاکنکردن کش پس از اصلاح robots است.
بعضی تیمها canonical همه صفحههای استیج را به صفحه اصلی دامنه اصلی میفرستند. این کار رابطه معادل واقعی میان URLها را نشان نمیدهد و برای جلوگیری از ایندکس جای کنترل دسترسی را نمیگیرد. اگر هر صفحه نسخه متناظر دارد، canonical میتواند دقیق باشد؛ ولی محیط آزمایشی خصوصی همچنان باید با رمز محافظت شود.
قرار دادن رمز در URL نیز روش امنی نیست. URL ممکن است در تاریخچه مرورگر، گزارش ابزار تحلیل، لاگ پراکسی یا پیامهای تیم ذخیره شود. از سازوکار استاندارد احراز هویت استفاده کنید و دسترسی را پس از پایان همکاری اعضا بازبینی کنید. هدف فقط سئو نیست؛ داده آزمایشی و تغییرات منتشرنشده نیز باید خصوصی بمانند.
چکلیست ۱۰ دقیقهای تیم توسعه
در ده دقیقه میتوان مهمترین نقاط شکست را پیدا کرد: یک درخواست ناشناس به صفحه اصلی و فایل رسانه بفرستید، وضعیت 401 را تأیید کنید، پس از ورود کد منبع را برای noindex ببینید، هدر X-Robots-Tag را بررسی کنید و مطمئن شوید sitemap و لینک عمومی به استیج وجود ندارد. نتیجه را همراه زمان تست ثبت کنید.
سپس سناریوی لانچ را مرور کنید. مشخص باشد چه کسی رمز را از دامنه اصلی برمیدارد، چه کسی گزینه نمایش وردپرس را کنترل میکند، چه کسی کش را پاک میکند و چه کسی URL نهایی را در Search Console میبیند. مسئولیت مبهم باعث میشود هر عضو تیم تصور کند دیگری noindex یا قانون سرور را بررسی کرده است.
یک تست خودکار ساده نیز ارزش دارد. پایش روزانه میتواند روی دامنه استیج انتظار 401 و روی چند URL اصلی انتظار 200 بدون noindex داشته باشد. این آزمون کوچک تغییر ناخواسته تنظیمات را زود نشان میدهد، بهویژه وقتی هاست، CDN یا افزونه امنیتی بهروزرسانی میشود.
جمعبندی
برای جلوگیری از ایندکس سایت استیج وردپرس، احراز هویت سرور را لایه اصلی قرار دهید، noindex را در وردپرس و هدرهای لازم بهعنوان پشتیبان بررسی کنید و لینکها و sitemap آزمایشی را عمومی نکنید. robots.txt ابزار حذف صفحه نیست و نباید جلوی دیدهشدن noindex را بگیرد. پیش از لانچ نیز همه محدودیتها را در دامنه اصلی با درخواست ناشناس، کد منبع و هدر واقعی بازبینی کنید.
سوالات متداول
آیا robots.txt مانع ایندکس سایت استیج میشود؟
خیر. robots.txt خزش را محدود میکند، اما URL مسدودشده ممکن است از روی لینکهای دیگر شناخته و حتی بدون محتوای کامل ایندکس شود. برای استیج از رمز در سطح سرور استفاده کنید. اگر URL قبلاً ایندکس شده، اجازه دهید گوگل noindex را ببیند و بعد از حذف، دسترسی را دوباره ببندید.
آیا گزینه «از موتورهای جستوجو درخواست کن» در وردپرس کافی است؟
این گزینه مفید است، اما کافی نیست. وردپرس متای noindex میسازد و موتور جستوجو باید آن را ببیند و رعایت کند. قالب ناقص، افزونه سئو یا کش میتواند خروجی را تغییر دهد. برای محیط آزمایشی، رمز سرور را لایه اصلی نگه دارید و متای نهایی را در کد منبع بررسی کنید.
بهتر است سایت استیج روی سابدامین باشد یا پوشه؟
هر دو ساختار قابل استفادهاند، به شرطی که محافظت روی تمام مسیرها اعمال شود. سابدامین جداسازی تنظیمات، DNS و دسترسی را آسانتر میکند، اما خودِ سابدامین مانع ایندکس نیست. انتخاب را براساس زیرساخت انجام دهید و نتیجه را با درخواست ناشناس و بررسی هدر تأیید کنید.
اگر چند صفحه استیج وارد نتایج گوگل شدند چه کنیم؟
URLها را فهرست کنید، برای صفحه موجود noindex بگذارید و اجازه بازخزش بدهید. برای URL حذفشده پاسخ 404 یا 410 مناسب است. لینکها و sitemap آزمایشی را پاک کنید و در صورت نیاز از ابزار Removals برای پنهانسازی موقت استفاده کنید. پس از خروج نتایج، محیط را پشت رمز ببرید.
بعد از انتقال سایت چگونه noindex ناخواسته را پیدا کنیم؟
کد منبع چند نوع صفحه را بررسی کنید، هدرها را با curl ببینید و مقدار تنظیم نمایش وردپرس را کنترل کنید. سپس کش سایت و CDN را پاک کنید و تست را در حالت ناشناس تکرار کنید. URL Inspection نیز نشان میدهد گوگل از صفحه نهایی چه وضعیتی دریافت میکند.
منابع
- Google Search Central: Block Search indexing with noindex
- Google Search Central: Introduction to robots.txt
- WordPress.org: Settings Reading Screen




