🚀 48% روی طرح ویژه صرفه‌جویی کنید = همه ویژگی‌ها را فقط با $2.08/ماه دریافت کنید (طرح سالانه). همین حالا ارتقا دهید

چرا تشخیص کلیدواژه‌های متنِ قابل‌مشاهده داده‌های پنهان را از دست می‌دهد و چگونه آن را اصلاح کنیم

تشخیص کلیدواژه

شما پایش کلمه کلیدی را تنظیم کرده‌اید، وقتی DevTools را باز می‌کنید می‌توانید به‌طور کاملاً واضح کلمه را در HTML صفحه ببینید — و با این حال هشدار هرگز فعال نمی‌شود. چیزی خراب نیست. تشخیص استاندارد کلمه کلیدی، متن قابل مشاهده یک صفحه را می‌خواند: کلماتی که یک انسان واقعاً می‌تواند روی صفحه بخواند. اگر مقداری که دنبال می‌کنید در یک عنصر مخفی، یک ویژگی data- یا یک اسکریپت درون‌خطی قرار داشته باشد، داده واقعی است اما متن قابل مشاهده نیست، بنابراین تشخیص معمولی از کنار آن عبور می‌کند.

راه‌حل فقط یک گزینه است. در زبانه تشخیص کلمه کلیدی افزونه Auto Refresh توسط Extfy، گزینه یافتن متن پایش در منبع را فعال کنید تا جستجوی کلمه کلیدی از متن رندرشده به کد منبع کامل HTML تغییر کند — شامل عناصر مخفی، ویژگی‌ها و اسکریپت‌ها.

img
انگلیسی 
در حال اجرا 
بازه زمانی
فهرست نوسازی
تشخیص کلمه کلیدی
برچسب‌های خود را وارد کنید
in_stock 

تنظیمات اعلان و برجسته‌سازی برای کلمه کلیدی

 به کاربر اطلاع بده 

وقتی کلمه کلیدی پیدا شد یا انتخابگر کلیک شد
وقتی کلمه کلیدی پیدا نشد یا هیچ انتخابگری مطابقت نداشت

 پخش صدا هنگام یافتن/نیافتن کلمه کلیدی 

 یافتن متن پایش در منبع 

داده‌های پنهان واقعاً کجا قرار دارند

صفحات مدرن اطلاعات بسیار بیشتری را در نشانه‌گذاری خود نسبت به چیزی که روی صفحه نمایش می‌دهند، نگه می‌دارند. کلمه کلیدی موردنظر شما اغلب در یکی از این مکان‌ها قرار دارد:

  • عناصر پنهان — یک پیام وضعیت که درون display:none یا visibility:hidden قرار گرفته و منتظر است یک اسکریپت آن را نمایش دهد.
  • ویژگی‌های data- — مقادیری مانند data-availability="in_stock" یا data-status="approved" که رابط کاربری را هدایت می‌کنند اما هرگز به‌صورت متن نمایش داده نمی‌شوند.
  • اسکریپت‌های درون‌خطی و JSON — اشیای وضعیت که صفحه در یک بلوک <script> ارسال می‌کند و بعداً با جاوااسکریپت نمایش می‌دهد.
  • ویژگی‌هایی مانند title، alt و aria-label — قابل خواندن برای ماشین‌ها و صفحه‌خوان‌ها، اما نامرئی برای تطبیق متن.
  • کامنت‌های HTML و بلوک‌های قالب — نشانه‌گذاری‌هایی که توسعه‌دهندگان باقی گذاشته‌اند و هنوز وضعیت واقعی صفحه را نشان می‌دهند.

چرا تشخیص معمولی کلمه کلیدی نمی‌تواند هیچ‌کدام از این‌ها را ببیند

تشخیص متن قابل مشاهده عمداً طوری ساخته شده است که با درک شما هماهنگ باشد: صفحه را همان‌طور می‌خواند که یک انسان می‌بیند، پس از اینکه مرورگر همه‌چیز را رندر کرده است، و فقط کلماتی را در نظر می‌گیرد که واقعاً روی صفحه ظاهر می‌شوند. این کار آن را سریع نگه می‌دارد و نتایج را تمیز نگه می‌دارد — تطبیق یعنی یک انسان هم می‌تواند آن کلمه را ببیند. هزینه این طراحی یک نقطه کور است. هر چیزی که فقط در نشانه‌گذاری وجود داشته باشد، طبق تعریف متن قابل مشاهده نیست، بنابراین تشخیص‌دهنده اصلاً به آن نگاه نمی‌کند. صفحه می‌تواند پر از دقیقاً همان رشته‌ای باشد که به‌عنوان کلمه کلیدی وارد کرده‌اید و تشخیص صادقانه گزارش دهد «یافت نشد»، زیرا در نمای رندرشده واقعاً آنجا وجود ندارد.

راه‌حل: گزینه یافتن متن پایش در منبع را روشن کنید

  1. افزونه Auto Refresh را در صفحه‌ای که پایش می‌کنید باز کنید و به زبانه تشخیص کلمه کلیدی بروید.
  2. کلمه کلیدی را دقیقاً همان‌طور که در منبع ظاهر می‌شود وارد کنید — برای مثال in_stock، نه برچسب «موجود» که صفحه ممکن است بعداً نمایش دهد.
  3. گزینه یافتن متن پایش در منبع را فعال کنید.
  4. روی ذخیره کلیک کنید. از بارگذاری بعدی به بعد، هر بررسی کل منبع HTML را — شامل عناصر پنهان و اسکریپت‌ها — به‌جای فقط متن قابل مشاهده اسکن می‌کند.

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

  • چه چیزی را می‌خواند: حالت متن قابل مشاهده صفحه رندرشده‌ای را که یک انسان می‌بیند می‌خواند؛ حالت منبع، HTML خامی را که سرور ارسال کرده است می‌خواند — هر تگ، ویژگی، کامنت و اسکریپت درون‌خطی.
  • سرعت: حالت متن قابل مشاهده سبک‌تر است؛ اسکن کل منبع در هر بار بارگذاری کار بیشتری انجام می‌دهد، بنابراین انتظار داشته باشید بررسی‌ها کمی سنگین‌تر باشند.
  • مثبت‌های کاذب: حالت متن قابل مشاهده به‌ندرت اشتباه می‌کند؛ حالت منبع ممکن است کلمه کلیدی را در نشانه‌گذاری پس‌زمینه‌ای پیدا کند که ارتباطی با آنچه روی صفحه است ندارد.
  • بهترین کاربرد: حالت متن قابل مشاهده برای پایش روزمره؛ حالت منبع برای توسعه‌دهندگان و کاربران حرفه‌ای که مقادیری را دنبال می‌کنند که صفحه ذخیره می‌کند اما نمایش نمی‌دهد.

یک مثال واقعی: تشخیص تغییر قبل از نمایش آن توسط صفحه

صفحه محصولی را تصور کنید که هنگام خرید به کاربران «ناموجود» را نشان می‌دهد، در حالی که نشانه‌گذاری آن از قبل دارای data-availability="in_stock" است — داده به‌روزرسانی شده، اما رابط کاربری هنوز هماهنگ نشده است. تشخیص متن قابل مشاهده همچنان با برچسب قدیمی «ناموجود» تطبیق می‌دهد. با فعال بودن یافتن متن پایش در منبع و تنظیم کلمه کلیدی روی in_stock، Auto Refresh تغییر را همان لحظه‌ای که در HTML قرار می‌گیرد تشخیص می‌دهد، اغلب کمی پیش از اینکه صفحه قابل مشاهده به‌روزرسانی شود. همین روش برای پرچم‌های خطای پنهان، وضعیت‌های تأیید در ابزارهای مدیریتی و هر مقداری که صفحه با جاوااسکریپت با تأخیر نمایش می‌دهد نیز کار می‌کند.

دقت تطبیق منبع را حفظ کنید

  • دقیق باشید.کوتاه و رایج در سراسر نشانه‌گذاری یک صفحه به‌طور تصادفی ظاهر می‌شوند؛ یک رشته متمایز مانند in_stock یا status-approved بسیار ایمن‌تر از stock است.
  • مراقب تطبیق‌های شبح‌وار باشید. اگر زمانی که هیچ تغییری به‌صورت قابل مشاهده رخ نداده است هشدارها فعال می‌شوند، کلمه کلیدی شما با نشانه‌گذاری پس‌زمینه تطبیق داده شده است — کلمه کلیدی را محدودتر کنید یا آن قانون را دوباره به حالت متن قابل مشاهده برگردانید.
  • آن را برای هر قانون به‌صورت جداگانه فعال کنید، نه همه‌جا. اگر تشخیص استاندارد از قبل چیزی را که نیاز دارید در یک صفحه پیدا می‌کند، این گزینه را در آنجا خاموش بگذارید تا بررسی‌ها سریع‌تر و تمیزتر باشند.

تشخیص متن قابل مشاهده حالت پیش‌فرض مناسب است — تا زمانی که چیزی که دنبال می‌کنید هرگز واقعاً رندر نشود. وقتی کلمه کلیدی در یک عنصر پنهان، یک ویژگی یا یک اسکریپت قرار دارد، گزینه یافتن متن پایش در منبع را در زبانه تشخیص کلمه کلیدی و Auto Refresh فعال کنید تا صفحه را همان‌طور که DevTools انجام می‌دهد بخواند و داده‌هایی را که تشخیص معمولی بی‌سروصدا از دست می‌دهد، پیدا کند.