خطای pagination-URL-not-in-anchor-tag

بررسی و رفع اخطار pagination not in a anchor tag در اسکریمینگ فراگ

سلام! من حمید امیدی هستم به وبسایت من خوش آمدید.

اگر از ابزار Screaming Frog SEO Spider برای خزش فنی سایت خود استفاده کرده باشید، احتمالاً با اخطار (Warning) مواجه شده‌اید با این عنوان:

«Pagination not in an anchor tag»
این اخطار زمانی ظاهر می‌شود که ربات اسکریمینگ فراگ در حین خزش، لینک‌ های صفح ه‌بندی (Pagination Links) را درون تگ‌های <a> استاندارد پیدا نکند یا این لینک‌ ها به شکل نادرست پیاده‌ سازی شده باشند.

همانطور که می دانید تگ های <a> با ویژگی href مربوط به لینک ها هستند.

در این مقاله تخصصی، ابتدا به اهمیت صحیح پیاده‌ سازی صفحه‌ بندی برای سئو می‌پردازیم، سپس ساختار صحیح و غلط را بررسی می‌کنیم، در ادامه علت بروز این اخطار در اسکریمینگ فراگ را توضیح خواهیم داد و در نهایت راه‌ حل‌های قطعی، شامل اصلاح کدها، تغییر جاوااسکریپت، و استفاده از روش‌های پیشنهادی گوگل ارائه خواهیم داد.

با من همراه باشید…

خطای pagination not in a anchor tag

خطای pagination not in a anchor tag

اگر دقت کنید، اسکریمینگ فراگ این مشکل را در دسته بندی (خطرساز) یا ریسک بالا (issue type high) قرار داده است.

این نشان می دهد در سایت های فروشگاهی باید این مشکل مورد توجه قرار بگیرد.

صفحه‌بندی (Pagination) چیست و چرا برای سئو مهم است؟

صفحه‌ بندی روشی برای تقسیم محتوای لیستی بلند (مانند دسته‌ بندی محصولات، مقالات وبلاگ، یا نتایج جستجو) به چندین صفحه متوالی است. نمونه‌های رایج:

https://site.com/category/page/2/

https://site.com/blog?page=3

دید گوگل به صفحه بندی ها

از نظر سئو، صفحه‌بندی صحیح به گوگل کمک می‌کند:

  • تمام صفحات عمیق سایت را کشف کند.

  • تجربه کاربری و ناوبری روان حفظ شود.

  • ربات ها می توانند به درستی تشخیص دهند که لینک یک صفحه بندی را دنبال می کنند.

اما اگر لینک‌ های صفحه‌بندی درون تگ anchor یا تگ <a> نباشند، ربات‌های خزنده (مانند Googlebot و Screaming Frog) توانایی دنبال کردن آن‌ها را از دست می‌ دهند.

اخطار «Pagination not in an anchor tag» در اسکریمینگ فراگ دقیقاً چیست؟

اسکریمینگ فراگ هنگام خزش، ساختار صفحه را مشابه مرورگر پردازش می‌کند؛

اما برای تشخیص لینک‌ های صفحه‌ بندی به یک الگوی مشخص نیاز دارد. این ابزار فرض می‌کند که هر لینک صفح ه‌بندی باید با تگ <a> و ویژگی href ساخته شده باشد.

هشدار مذکور در تب «Pagination» در نتایج خزش ظاهر می‌شود.

برای مشاهده آن:

1- بعد از اجرای خزش، روی تب «Pagination» کلیک کنید.

تب pagination

تب pagination

در بخش سمت چپ گزینه را روی pagination URL not in anchor text کلیک کنید و لیست این یو آر ال ها را ببینید.

pagination url not in anchor text

pagination url not in anchor text

دلایل اصلی این اخطار:

  • لینک‌ های عددی صفحه‌بندی با جاوااسکریپت و رویدادهایی مانند onclick=”goToPage(2)” ساخته شده‌اند.
  • از تگ‌های <span>، <div> یا <button> بدون نقش لینک استفاده شده است.
  • لینک‌ها توسط CSS به شکل شبه‌ لینک طراحی شده‌اند اما فاقد <a> هستند.

تمیز ترین روش حل این مشکل در وردپرس

روش های زیادی برای برطرف کردن این اخطار وجود دارد، مثلا با ویرایش فایل های قالب یا فایل function.php .اما این روش ها شاید با یک خط کد اشتباه کل سایت را دچار مشکل کنند و خطر ریسک داشته باشند!

تمیزترین راه و سالمترین راه برای سایت های وردپرسی، استفاده از افزونه code snippet است.

برای استفاده از آن لطفا قدم های زیر را طی کنید :

1-از مخزن وردپرس افزونه Code Snippets را نصب کنید

2-به مسیر Snippets → Add New بروید

3-کد مورد نظر را در بخش کد پیست کنید این کد را از طریق لینک زیر دانلود کنید :

code snippet

4-نوع را روی PHP Snippet تنظیم کنید

5-روی Save Changes and Activate کلیک کنید

کد اسنیپت

کد اسنیپت

چطور دوباره چک کنیم؟

دوباره آدرس url سایتتان را داخل اسکریمینگ فراگ قرار داده و اجازه بدهید اسپایدر های اسکریمینگ فراگ داخل سایت خزش کنند.

سپس مسیر زیر را طی کنید :

  1. روی تب pagination کلیک کنید.
  2. از تب سمت چپ نرم افزار، گزینه را روی pagination url not in anchor tag تنظیم کنید.
  3. بعد ببینید که آیا باز هم این اخطار را میبینید یا خیر!

راه دیگر

اجازه دهید اسکریمینگ فراگ از سایتتان رندر بگیرد، سپس به بخش issues بروید و اخطار های قرمز را نگاه کنید.

آیا این اخطار را میبینید؟ pagination URL not in anchor tag

در یک نگاه :

# مشکل کد اسنیپت (همین رو کپی کن)
1 صفحه اصلی خطا داره add_filter('rank_math/frontend/disable_adjacent_rel_links', '__return_true');
یا برای یوست: add_filter('wpseo_disable_adjacent_rel_links', '__return_true');
2 لینک‌ها داخل span یا div هستن add_filter('paginate_links_output', function($o) { return preg_replace('/<span([^>]*class="[^"]*page-numbers[^"]*"[^>]*)>(.*?)<\/span>/', '<a$1>$2</a>', $o); });
3 لینک‌ها به 404 می‌خورن add_action('pre_get_posts', function($q) { if(!is_admin() && $q->is_main_query() && $q->is_category()) $q->set('paged', get_query_var('paged') ?: 1); });
4 پارامتر اضافه داره (مثل ?page_number_0=1) add_action('init', function() { if(isset($_GET['page_number_0'])) wp_redirect(remove_query_arg('page_number_0')); exit; });
5 ووکامرس مشکل داره add_filter('woocommerce_pagination_args', function($a) { $a['type'] = 'plain'; return $a; });

چرا این اخطار جدی است؟

1. از دست رفتن بودجه خزش

اگر گوگل نتواند لینک‌ های صفحه‌بندی را دنبال کند، صفحات عمیق (مثلاً صفحه ۵ به بعد) هرگز ایندکس نمی‌شوند. این یعنی محتوای ارزشمند شما از نتایج جستجو حذف می‌ شود.

البته بسیاری از متخصصین سئو از عمد صفحه بندی سایتشان را no index می کنند یا از تگ کنونیکال برای آن ها استفاده می کنند که جزء اشتباهات تخصصی سئو است.

2. کاهش اعتبار لینک‌ها (PageRank Flow)

لینک‌های <a> معمولاً PageRank را منتقل می‌کنند، درحالی که رویدادهای جاوااسکریپت یا المنت‌های <span> چنین توانایی ندارند.

3. افزایش نرخ پرش (Bounce Rate)

اگر کاربر نتواند به راحتی به صفحات بعدی برود، سایت را ترک می‌کند. این سیگنال منفی برای گوگل است.

بررسی نمونه هایی که این خطا را ایجاد می کنند :

مثال 1: استفاده از <span> به جای <a>

لطفا به تصویر زیر نگاه کنید :

تگ span

تگ span

در این ساختار کدهای سایت، خبری از تگ <a> نیست! آیا آن را میبینید؟

اسکریمینگ فراگ در این حالت خطای Pagination not in an anchor tag را نشان می‌دهد. المان <span> را لینک محسوب نمی‌کند.

مثال 2: لینک داخل <button>

لطفا نگاهی به قطعه کد زیر بیندازید :

button

button

صفحه بندی به شکل صحیح

ساختار درست لینکهای صفحه بندی معمولا به شکل زیر است :

صفحه بندی درست

صفحه بندی درست

چطور با استفاده از سورس صفحه به این مشکل پی ببریم؟

1-صفحه ای را که میخواهید سالم بودن صفحه بندیش را از نظر اسکریمینگ فراگ ببینید، باز کنید.

2-روی صفحه کلیک راست کنید و روی گزینه inspect کلیک کنید.

inspect

inspect

3-سپس روی بخش select an element کلیک کنید به شکل زیر :

select an element

select an element

4-بعد از آن موستان را روی صفحه بندی 2 ببرید به شکل زیر :

صفحه بندی صحیح

صفحه بندی صحیح

همانطور که در تصویر میبینید، لینک های صفحه بندی در این سایت در تگ a با خاصیت href قرار دارد.

4-اگر نتوانستید این گزینه ها را پیدا کنید، باز هم روی صفحه کلیک راست کرده و گزینه view page source را کلیک کنید.

سؤالات متداول

آیا اخطار «Pagination not in an anchor tag» باعث پنالتی گوگل می‌ شود؟
خیر، این یک اخطار فنی است، نه پنالتی. اما اگر رفع نشود، صفحات عمیق شما ایندکس نمی‌شوند که در درازمدت ممکن است به رتبه سایت آسیب بزند.

آیا اسکریمینگ فراگ ممکن است اخطار اشتباه دهد؟
بله، در برخی موارد نادر که صفحه‌بندی با CSS Grid یا Flexbox و لینک‌های مخفی شده باشد، ممکن است تشخیص با مشکل همراه شود. اما در ۹۵٪ موارد، اخطار دقیق است.

اگر از صفحه‌بندی با «مشاهده بیشتر» (Load More) استفاده کنم، این اخطار رخ می‌دهد؟
بله، اگر «مشاهده بیشتر» یک دکمه <button> باشد و لینک واقعی در کار نباشد، اسکریمینگ فراگ آن را به عنوان صفحه‌بندی استاندارد تشخیص نمی‌دهد. برای رفع، باید rel=”next” روی یک <a> مجزا تعریف کنید یا از صفحه‌بندی عددی کلاسیک استفاده نمایید.

جمع‌بندی نهایی

اخطار «Pagination not in an anchor tag» در اسکریمینگ فراگ، یک زنگ هشدار جدی برای مشکلات دسترسی‌پذیری و قابلیت خزش صفحات بعدی سایت شماست.

خوشبختانه با رعایت اصول ساده HTML – یعنی استفاده از <a href=”url_real”> برای همه لینک‌ های صفحه‌بندی – می‌توان این اخطار را به طور کامل برطرف کرد.

توصیه من به عنوان یک متخصص سئو فنی: هیچ‌گاه برای لینک‌های اصلی ناوبری و صفحه‌بندی از المنت‌های غیر استاندارد استفاده نکنید.

اگر نیاز به تعامل جاوااسکریپت دارید، آن را به عنوان لایه بهبود تجربه کاربری روی لینک‌ های سالم اضافه کنید، نه به عنوان جایگزین.

با پیاده‌سازی روش‌های ذکر شده در این مقاله، نه تنها اخطار اسکریمینگ فراگ را حذف می‌کنید، بلکه crawl budget خود را بهینه کرده و شانس رتبه‌گیری صفحات عمیق را افزایش می‌دهید.

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *