ایندکس نشدن سایت وردپرس: تیک تنظیمات خواندن فقط یکی از جاهایی است که سایت را از گوگل می‌بندد

چهار کارت کنار هم: تیک تنظیمات خواندن، فایل robots.txt و هدر X-Robots-Tag با نشان ممنوع، و حالت به‌زودی با نشان هشدار
محصولات زیر برای شماست...
جدیدترین مقالات
دسترسی سریع
فهرست محتوا

ایندکس نشدن سایت وردپرس گاهی علتش چیزی است که خود سایت به گوگل می‌فرستد. روز ۱۹ آبان ۱۴۰۵ یک سایت آزمایشی فارسی ساختیم (وردپرس 7.1.4 با ووکامرس 11.2.2، ووکامرس فارسی 10.0.7، رنک مث 1.0.282، یواست سئو 28.8 و المنتور 4.4.0، که سه‌تای آخر نسخه رایگان‌اند) و یکی‌یکی چیزهایی را روشن کردیم که به گوگل می‌گویند این سایت را ایندکس نکن. بعد از هر تغییر، کد پاسخ، هدرها و تگ robots صفحه را از بیرون خواندیم، و هر جا به کار می‌آمد robots.txt و نقشه سایت را هم. تیک «تنظیمات > خواندن» فقط یکی از جاهایی است که چنین چیزی می‌نویسند، و در وردپرس 7.1.4 robots.txt را باز می‌گذارد. اگر فقط می‌خواهید سایتتان را بسنجید، بخش اول سه فرمان دارد و جدولش می‌گوید هر خروجی از کجا آمده.

سه چیز را از بیرون بخوانید

گوگل پاسخی را می‌بیند که سایت می‌فرستد. در cmd ویندوز (در ویندوز 11 ما curl.exe از پیش نصب بود) این سه خط را اجرا کنید، yoursite.example را با نشانی سایتتان عوض کنید و همین را برای یک نوشته هم بزنید:

CODE
وردپرس نیاز
curl.exe -s -L -D - -o NUL https://yoursite.example/ | findstr /i "HTTP/ location x-robots-tag"
curl.exe -s -L https://yoursite.example/ | findstr /i /r "name=.robots woo-coming-soon"
curl.exe -s -L https://yoursite.example/robots.txt

اولی کد پاسخ، Location (اگر نشانی جای دیگری برود) و هدر X-Robots-Tag (اگر باشد) را چاپ می‌کند؛ گزینه L (حرف بزرگ) ریدایرکت‌ها را دنبال می‌کند، پس برای نشانی‌ای که از http به https می‌رود چند پاسخ می‌بینید و آخری معیار است. دومی تگ robots صفحه را چاپ می‌کند و، اگر ووکامرس صفحه «به‌زودی» نشان بدهد، تگ woo-coming-soon-page را هم؛ نقطه در name=.robots برای این است که وردپرس گیومه تکی می‌نویسد و رنک مث دوتایی. سومی فایل robots.txt است. در مک و لینوکس این‌ها را بزنید:

CODE
وردپرس نیاز
bash
curl -sL -D - -o /dev/null https://yoursite.example/ | grep -iE "^HTTP|^location|x-robots-tag"
curl -sL https://yoursite.example/ | grep -iE "name=.robots|woo-coming-soon"
curl -sL https://yoursite.example/robots.txt

نقشه سایت را هم با فرمان سوم بخوانید: نشانی‌اش را جای robots.txt بگذارید، یا اگر robots.txt خطی با Sitemap دارد، همان نشانی را بزنید. اگر فرمان اول هیچ چیز چاپ نکرد، درخواست اصلاً به سایت نرسیده است.

ترمینال ندارید؟ در مرورگر عبارت view-source و دو نقطه را قبل از نشانی صفحه بگذارید و دنبال robots بگردید؛ هدرها را هم در تب Network ابزار توسعه‌دهنده مرورگر (F12)، زیر Response Headers می‌بینید.

روی یک وردپرس 7.1.4 تازه و بدون افزونه فعال، فرمان‌های ویندوز با نشانی یک نوشته از سایت آزمایشی ما این را چاپ کردند (اولین خروجی از فرمان اول، دومی از فرمان دوم و بقیه از سومی):

CODE
وردپرس نیاز
HTTP/1.1 200 OK
<meta name='robots' content='max-image-preview:large' />
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: http://localhost:41230/wp-sitemap.xml

این خروجی را با هر چیزی که روی سایت خودتان می‌بینید مقایسه کنید: هدر noindex ندارد، تگ فقط max-image-preview:large دارد که پیش‌فرض خود وردپرس است و robots.txt فقط wp-admin را می‌بندد. جدول زیر می‌گوید هر تفاوت از کجا می‌آید.

آنچه می‌بینیداز کجا آمدهکجا را عوض کنید
تگ robots همه صفحه‌ها noindex, nofollow و نقشه سایت وردپرس ۴۰۴تیک تنظیمات خواندن«تنظیمات > خواندن»، تیک را بردارید
noindex فقط روی یک نوشته یا یک نوع نوشته، و آن‌ها در نقشه سایت افزونه سئو نیستندگزینه robots رنک مث یا یواستهمان نوشته یا نوع نوشته در افزونه
هدر X-Robots-Tag: noindex روی همه نشانی‌ها، اما تگ صفحه noindex نداردسرور، هاست یا CDNاز میزبان بخواهید یا فایل htaccess را ببینید
robots.txt فقط یک Disallow برای کل سایت دارد و تگ صفحه‌ها index استفایل واقعی robots.txt یا ویرایشگر robots.txt رنک مثفایل یا متن را درست کنید
کد ۲۰۰ و متن «به‌زودی» روی همه صفحه‌ها (در ووکامرس فرمان دوم woo-coming-soon-page را هم چاپ می‌کند؛ اگر وارد شده‌اید، پنجره ناشناس هم باز کنید)حالت به‌زودی ووکامرس یا المنتورووکامرس: «قابلیت مشاهده سایت»؛ المنتور: «ابزارها > حالت تعمیر»
کد ۵۰۳ روی همه صفحه‌ها (در المنتور روی robots.txt هم)حالت تعمیر المنتور، یا به‌روزرسانی نیمه‌کاره وردپرس که تا حدود ۱۰ دقیقه می‌ماندالمنتور: همان جا؛ وردپرس: بخش ۵۰۳ در نوشته به‌روزرسانی روی کپی
۴۰۴ برای نوشته‌ای که در پیشخوان هستپیش‌نویس یا خصوصینوشته را منتشر کنید
هیچ تفاوتی نبوداین سه خروجی علتی نشان ندادند (روی نشانی‌ای که زدید)فرمان‌ها را روی صفحه فروشگاه هم بزنید و نشانی را در Search Console با URL Inspection بسنجید (بخش آخر)

تیک تنظیمات خواندن در 7.1.4 تگ noindex می‌گذارد و robots.txt را باز می‌گذارد

در «تنظیمات > خواندن» ردیف «نمایش به موتورهای جستجو» تیکی دارد با برچسب «از موتورهای جستجو درخواست کن تا محتوای سایت را بررسی نکنند». تیک را زدیم و ذخیره کردیم و فقط پیام «تنظیمات ذخیره شد.» آمد.

ردیف «نمایش به موتورهای جستجو» در تنظیمات خواندن وردپرس با تیک زده‌شده و برچسب «از موتورهای جستجو درخواست کن تا محتوای سایت را بررسی نکنند»

بعد از آن تگ robots هر صفحه‌ای که خواندیم، حتی صفحه جست‌وجو و ۴۰۴، noindex, nofollow شد و نقشه سایت خود وردپرس (wp-sitemap.xml) ۴۰۴ داد. فایل robots.txt سه خط شد (خط Sitemap رفت): User-agent، Disallow برای wp-admin و Allow برای admin-ajax.php، و هیچ خطی که کل سایت را ببندد. مستندات وردپرس می‌نویسد از نگارش 5.3 این تیک تگ می‌گذارد و تا 5.2 robots.txt را می‌بست؛ در کد منبع 7.1.4 هم تابع do_robots شاخه‌ای برای بستن کل سایت ندارد. گوگل در راهنمای noindex می‌نویسد noindex فقط وقتی دیده می‌شود که robots.txt جلوی خزیدن را نگرفته باشد؛ در وردپرس 7.1.4 این شرط برقرار است.

در سه صفحه‌ای که از وردپرس باز کردیم (پیشخوان، تنظیمات خواندن و افزونه‌ها)، جز خود تیک، تنها نشانه خط «موتورهای جستجو مسدود شده‌اند» در جعبه «در یک نگاه» پیشخوان بود. در پنجره 1320 در 900 ما، با ووکامرس و المنتور فعال، برای دیدن آن جعبه باید پایین می‌رفتیم. «ابزارها > سلامت سایت» هم آزمونی با همین معنی دارد: «موتورهای جستجو از ایندکس کردن این سایت منع شده‌اند.» (آزمون را با کد اجرا کردیم و صفحه را باز نکردیم).

جعبه «در یک نگاه» در پیشخوان وردپرس با خط «موتورهای جستجو مسدود شده‌اند» و نشان قرمز کنارش

رنک مث و یواست با همین تیک تگ را noindex, nofollow کردند و canonical (نشانی اصلی صفحه) را برداشتند. اما نقشه سایتشان (sitemap_index.xml) باز هم ۲۰۰ داد و همان نشانی‌ها را فهرست کرد: نقشه می‌گوید این صفحه‌ها را بیاور و خود صفحه‌ها می‌گویند نیا. هر دو افزونه در پیشخوان هشداری نوشتند که تیک را نشان می‌داد؛ رنک مث همان هشدار را روی پیشخوان، تنظیمات خواندن، افزونه‌ها و صفحه اصلی خود افزونه هم نشان داد.

این تیک همیشه کار شما هم نیست. در کد منبع WP Staging Pro 6.20.0 (فایل فروشگاه؛ صفحه محصول) مقدار این گزینه، blog_public، روی کپی صفر می‌شود؛ در نوشته تغییر قالب روی کپی با نگارش 6.18.0 هم همین را روی کپی دیدیم. کدی هم هست (فایل PreserveBlogPublicSettings در بخش انتقال) که هنگام انتقال کپی به سایت اصلی مقدار سایت اصلی را نگه می‌دارد. انتقال را با 6.20.0 اجرا نکردیم، پس مقدار این گزینه را بعد از آن نخواندیم؛ نوشته به‌روزرسانی روی کپی انتقال را با نگارش 6.19.0 اجرا کرده و می‌گوید با گزینه‌های پیش‌فرض چه چیزهایی از سایت اصلی عوض می‌شود.

فایل واقعی robots.txt و هدر سرور با تیک خالی هم سایت را از گوگل می‌بندند

robots.txt وردپرس مجازی است. روی آپاچی ما، وقتی فایلی واقعی با همین نام در پوشه سایت گذاشتیم، آپاچی همان را داد. فایلی با یک Disallow برای کل سایت گذاشتیم و تیک خواندن را نزدیم: تگ همه صفحه‌ها noindex نداشت و هدری هم نیامد؛ فقط robots.txt راه را بسته بود. با تیک خواندن هم همان فایل ماند. گوگل در مقدمه robots.txt می‌نویسد این فایل فقط می‌گوید خزنده به کدام نشانی‌ها برود و راه نگه داشتن صفحه از گوگل نیست؛ برای آن noindex یا رمز عبور لازم است. راهنمای Search Console صفحه‌ای را که بسته شده و جایی به آن لینک خورده، با عنوان «Indexed, though blocked by robots.txt» توضیح می‌دهد.

رنک مث هم متن robots.txt را از گزینه‌ای می‌خواند که بسته فارسی‌اش «ویرایش robots.txt» نام دارد. متنی با همان Disallow را در آن گذاشتیم؛ خط‌های ووکامرس و خط Sitemap رفتند، تگ صفحه‌ها index ماند و نقشه‌های رنک مث جواب می‌دادند. گزینه را از صفحه‌اش نزدیم و مقدارش را مستقیم نوشتیم.

هدر هم همین‌طور است. در فایل htaccess آپاچی (فایلی پنهان که نامش با نقطه شروع می‌شود، در پوشه اصلی سایت) سه خط گذاشتیم که روی پاسخ‌ها X-Robots-Tag: noindex, nofollow می‌نویسد. این سه خط کل سایت را noindex می‌کنند؛ فقط روی سایت آزمایشی بگذارید:

APACHE
وردپرس نیاز
<IfModule mod_headers.c>
Header set X-Robots-Tag "noindex, nofollow"
</IfModule>

صفحه‌ها، robots.txt و نقشه سایت همه این هدر را گرفتند، در حالی که تیک خواندن خالی بود و تگ صفحه همان max-image-preview:large ماند. فقط فرمان اول بالا آن را چاپ کرد. گوگل می‌گوید هدر و تگ اثر یکسان دارند. چنین هدری را سرور، هاست یا CDN هم می‌تواند بنویسد؛ ما فقط نمونه آپاچی را ساختیم و نمی‌دانیم کدام هاست این کار را می‌کند.

حالت به‌زودی ووکامرس noindex ندارد و حالت تعمیر المنتور ۵۰۳ می‌دهد

حالت به‌زودی ووکامرس در «قابلیت مشاهده سایت» است. برای کل سایت که روشنش کردیم، هر چهار نشانی‌ای که خواندیم (صفحه اول، فروشگاه، یک نوشته و یک برگه) کد ۲۰۰ و صفحه «به‌زودی می‌آید» داد، با Cache-Control: max-age=60. تگ robots فقط max-image-preview:large بود و noindex نبود. با گزینه محدود کردن به صفحه‌های فروشگاه، از چهار نشانی فقط فروشگاه این صفحه را داد. ووکامرس این را عمداً کرده: درخواست ادغام ۴۷۱۷۸ در اردیبهشت ۱۴۰۳ noindex را از این صفحه‌ها برداشت، چون نمی‌شود فرض کرد لازم است و کاربر ممکن است بخواهد صفحه به‌زودی ایندکس شود، مثلاً برای جمع کردن سرنخ.

در آزمایش ما با ووکامرس، مدیری که وارد شده بود همان نوشته را عادی دید و بازدیدکننده «به‌زودی می‌آید» را، پس صاحب سایت ممکن است آن را نبیند. اینکه گوگل متن «به‌زودی» را به‌جای محتوای شما بگیرد یا نه، نسنجیدیم.

المنتور 4.4.0 در «ابزارها > حالت تعمیر» دو حالت دارد و صفحه‌اش می‌نویسد حالت به‌زودی کد ۲۰۰ می‌دهد و حالت تعمیر کد ۵۰۳. با حالت به‌زودی هر سه نشانی‌ای که خواندیم، صفحه اول، یک نوشته و robots.txt، همان یک صفحه‌ای را با کد ۲۰۰ داد که برای این حالت ساخته بودیم؛ پس robots.txt به‌جای متن یک صفحه HTML بود و canonical هر سه نشانی همان صفحه بود. نقشه سایت وردپرس ۲۰۰ ماند.

با حالت تعمیر هر سه نشانی ۵۰۳ و Retry-After: 600 دادند، robots.txt هم، و نقشه سایت وردپرس باز هم ۲۰۰ ماند. المنتور حالت تعمیر را برای بیش از دو سه روز توصیه نمی‌کند. گوگل در مشخصات robots.txt می‌نویسد اگر robots.txt را پیدا کند ولی با خطای سرور نتواند بگیرد، ۱۲ ساعت اول خزیدن سایت را متوقف می‌کند و تا ۳۰ روز از آخرین نسخه سالم استفاده می‌کند، و اگر نسخه‌ای نداشته باشد محدودیتی فرض نمی‌کند.

در افزونه سئو می‌شود یک نوشته یا یک نوع نوشته را noindex کرد، و نقشه سایت نشانش می‌دهد

در رنک مث و یواست noindex را برای یک نوشته و بعد برای همه نوشته‌ها روشن کردیم؛ گزینه‌ها را همان‌طور که افزونه در دیتابیس نگه می‌دارد نوشتیم، نه از روی صفحه‌هایش. در هر دو، تگ آن نوشته noindex شد و نشانی‌اش از post-sitemap.xml رفت. وقتی کل نوع «نوشته» noindex بود، یواست خود post-sitemap.xml را ۴۰۴ کرد و رنک مث فایل را نگه داشت، فقط با نشانی صفحه اول سایت. پس اگر نوشته‌ای در نقشه سایت افزونه سئو نیست، اول گزینه robots همان نوشته و نوع آن را ببینید. دو افزونه را در نوشته رنک مث یا یواست روی فروشگاه تومانی هم مقایسه کرده‌ایم.

چیزهایی که شبیه مشکل‌اند و نیستند

ووکامرس روی سبد خرید و حساب کاربری noindex می‌گذارد و روی نشانی‌هایی مثل «سفارش دریافت شد» هدر X-Robots-Tag: noindex؛ همین را در کد منبع 11.2.2 و در آزمایش دیدیم. نقشه سایت وردپرس، رنک مث و یواست هر سه سبد خرید و حساب کاربری را فهرست کرده بودند، و noindex را خود ووکامرس عمداً می‌گذارد، پس خطای سایت شما نیست. رنک مث و یواست روی فایل‌های نقشه سایت خودشان هم هدر noindex می‌گذارند (یواست روی robots.txt هم)؛ اگر فرمان اول را روی sitemap_index.xml زدید و noindex دیدید، ممکن است همین باشد؛ در آزمایش ما صفحه‌ها index بودند.

با پیوند یکتای ساده هم صفحه‌ها ۲۰۰ و بدون noindex ماندند، اما robots.txt و wp-sitemap.xml از نشانی همیشگی‌شان جواب ندادند. در نصبی بدون فایل htaccess ۴۰۴ شدند. وقتی از پیوندهای یکتای قبلی بلوک وردپرس در htaccess مانده بود، هر دو به نشانی با اسلش آخر ریدایرکت شدند و آنجا یک صفحه HTML دادند. گوگل در مشخصات robots.txt می‌نویسد خطای 4xx به‌جز ۴۲۹ را مثل نبودن robots.txt می‌گیرد.

پیش‌نویس و نوشته خصوصی برای بازدیدکننده ۴۰۴ بودند؛ نوشته رمزدار ۲۰۰ بود، بدون noindex و در wp-sitemap-posts-post-1.xml.

با URL Inspection بسنجید؛ بعد از رفع، گوگل باید دوباره بخزد

اگر هیچ‌کدام از این جاها چیزی نشان نداد، نشانی صفحه را در ابزار URL Inspection بسنجید. خود گوگل می‌نویسد ممکن است ماه‌ها طول بکشد تا Googlebot به صفحه‌ای برگردد، و همان ابزار درخواست خزش می‌گیرد؛ گوگل robots.txt را معمولاً تا ۲۴ ساعت نگه می‌دارد. وضعیت «Discovered» (که نام کاملش به «currently not indexed» می‌رسد) در راهنمای گوگل یعنی صفحه شناخته شده ولی هنوز نخزیده است و با «URL marked ‘noindex’» و «URL blocked by robots.txt» جدا فهرست می‌شود. این نام‌ها از راهنمای انگلیسی گوگل‌اند و در Search Console فارسی شما ممکن است جور دیگری نوشته شوند. اگر نمی‌خواهید خودتان بگردید، بررسی و رفع را به ما بسپارید یا صفحه پشتیبانی فنی را ببینید. ما زمان این بازبینی‌ها را نسنجیدیم: سایت آزمایشی نشانی عمومی ندارد، پس نمی‌دانیم گوگل بعد از هر تغییر چه کرد.

پرسش‌های متداول

علت ایندکس نشدن سایت وردپرس چیست؟

چند چیز می‌تواند باشد. در آزمایش ما هر کدام جای خودش را داشت: تیک تنظیمات خواندن در تگ robots، فایل واقعی robots.txt در خود آن فایل، هدر سرور در X-Robots-Tag، noindex افزونه سئو در تگ robots و نقشه سایت افزونه، و حالت تعمیر در کد پاسخ و حالت به‌زودی در محتوای صفحه. از بیرون کد پاسخ و هدرها، تگ robots صفحه و فایل robots.txt را بخوانید. اگر چیزی پیدا نشد، نشانی صفحه را در URL Inspection بسنجید.

تیک «از موتورهای جستجو درخواست کن تا محتوای سایت را بررسی نکنند» robots.txt را می‌بندد؟

در وردپرس 7.1.4 نه. با تیک، در سایت آزمایشی ما تگ robots هر صفحه‌ای که خواندیم noindex, nofollow شد و نقشه سایت خود وردپرس ۴۰۴ داد، اما robots.txt در سایت بدون افزونه فعال ما فقط خط‌های پیش‌فرض wp-admin را داشت. تا نگارش 5.2 این تیک robots.txt را هم می‌بست.

چطور بفهمم یک نوشته noindex است؟

تگ robots صفحه و هدر X-Robots-Tag را با curl یا view-source بخوانید و ببینید نشانی نوشته در نقشه سایت افزونه سئو هست یا نه. در آزمایش ما با noindex روشن، آن نوشته هم در رنک مث و هم در یواست از post-sitemap.xml رفت.

حالت به‌زودی ووکامرس جلوی ایندکس را می‌گیرد؟

در ووکامرس 11.2.2 ما noindex ندیدیم: صفحه‌ها کد ۲۰۰ و متن «به‌زودی می‌آید» دادند و تگ robots فقط max-image-preview:large بود. ووکامرس noindex را عمداً از این صفحه‌ها برداشته است. اینکه گوگل متن «به‌زودی» را به‌جای محتوای شما بگیرد یا نه، نسنجیدیم.

چرا روی نقشه سایت رنک مث هدر X-Robots-Tag: noindex می‌بینم؟

در آزمایش ما رنک مث و یواست این هدر را روی فایل‌های نقشه سایت خودشان می‌گذارند، در حالی که صفحه‌ها index بودند. هدر را روی یک صفحه بخوانید، نه روی نقشه سایت.

بعد از برداشتن noindex گوگل کی دوباره سایت را می‌خزد؟

گوگل می‌نویسد ممکن است ماه‌ها طول بکشد تا Googlebot به صفحه برگردد و می‌شود در URL Inspection درخواست خزش داد. گوگل robots.txt را معمولاً تا ۲۴ ساعت نگه می‌دارد. ما زمانش را نسنجیدیم.

تصویر سمانه جعفری
سمانه جعفری
پیشنهاد میکنیم این مقالات را هم بخوانید

دیدگاه یا پرسش خود را بنویسید