آموزش رایگان PHP

آموزش صفحه‌بندی اطلاعات در PHP به صورت اصولی و مطابق استانداردهای سئو گوگل

1405/05/13 21:21 محراب حسن زاده
آموزش صفحه‌بندی اطلاعات در PHP به صورت اصولی و مطابق استانداردهای سئو گوگل

مقدمه: چرا صفحه‌بندی اطلاعات اهمیت دارد؟

در وب‌سایت‌هایی با حجم اطلاعات بالا مانند فروشگاه‌های اینترنتی، وبلاگ‌ها و پرتال‌های خبری، نمایش کل داده‌ها در یک صفحه غیرممکن است. این کار سرعت لود سایت را به شدت کاهش داده و تجربه کاربری (UX) بدی را ایجاد می‌کند. در این راهنما، قصد داریم نحوه پیاده‌سازی صفحه‌بندی اطلاعات در زبان PHP را با به کارگیری متدولوژی شی‌گرا و کتابخانه PDO آموزش دهیم و در کنار آن، استانداردهای حیاتی گوگل برای جلوگیری از مشکلات تکرار محتوا (Duplicate Content) و بهبود ایندکس‌پذیری را بررسی کنیم.

اصول سئو در صفحه‌بندی بر اساس استانداردهای گوگل

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

  • استفاده از آدرس‌های خوانا (Clean URLs): بهتر است ساختار آدرس‌ها به جای پارامترهای نامفهوم، منظم و قابل خواندن باشند (مثلا /blog/page/2 به جای /blog.php?p=12&offset=2).
  • ساختار تگ‌های کنونیکال (Canonical Tags): هر صفحه از صفحه‌بندی باید دارای یک تگ کانونی به آدرس خودِ آن صفحه باشد. از اشاره دادن تگ Canonical صفحه ۲ یا ۳ به صفحه ۱ خودداری کنید، چرا که این کار مانع از ایندکس شدن آیتم‌های موجود در صفحات بعدی می‌شود.
  • محدود نکردن کراولرها: لینک‌های صفحه‌بندی باید به شکل تگ‌های واقعی لینک (< a href = " ... " > ) پیاده‌سازی شوند تا موتورهای جستجو بتوانند آن‌ها را دنبال کنند. ساختارهای مبتنی بر کلیک جاوااسکریپتی بدون تگ a برای سئو مناسب نیستند.

گام اول: پیکربندی اتصال ایمن دیتابیس در PHP با PDO

اولین گام، برقراری ارتباط با پایگاه داده است. استفاده از PDO به دلیل پشتیبانی از Prepared Statements، از حملات تزریق کد (SQL Injection) جلوگیری می‌کند:


$host = 'localhost';
$db   = 'my_database';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';

$dsn = 'mysql:host=' . $host . ';dbname=' . $db . ';charset=' . $charset;
try {
    $pdo = new PDO($dsn, $user, $pass, [
        PDO::ATTR_ERRMODE            =--> PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ]);
} catch (\PDOException $e) {
    die('Error: ' . $e->getMessage());
}

گام دوم: محاسبه منطق ریاضی صفحه‌بندی (Pagination Logic)

برای پیاده‌سازی صفحه‌بندی به دو فاکتور اصلی نیاز داریم: تعداد کل آیتم‌ها جهت محاسبه کل صفحات و اندیس شروع داده‌ها (Offset) برای صفحه فعلی:


$limit = 10;

$page = isset($_GET['page']) && is_numeric($_GET['page']) ? (int)$_GET['page'] : 1;
if ($page < 1) {
    $page = 1;
}

$offset = ($page - 1) * $limit;

$total_stmt = $pdo--->query('SELECT COUNT(*) FROM articles');
$total_items = $total_stmt->fetchColumn();

$total_pages = ceil($total_items / $limit);

$stmt = $pdo->prepare('SELECT * FROM articles ORDER BY id DESC LIMIT :limit OFFSET :offset');
$stmt->bindValue(':limit', $limit, PDO::PARAM_INT);
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
$articles = $stmt->fetchAll();

گام سوم: خروجی استاندارد HTML و آدرس‌دهی اصولی برای گوگل

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

< nav class='pagination-container' >
    < ul class='pagination' >
        < li >< a href='?page=1' class='prev-page' >صفحه قبل< / a >< / li >
        < li >< a href='?page=1' class='active' >1< / a >< / li >
        < li >< a href='?page=2' >2< / a >< / li >
        < li >< a href='?page=3' >3< / a >< / li >
        < li >< a href='?page=2' class='next-page' >صفحه بعد< / a >< / li >
    < / ul >
< / nav >

نکات تکمیلی برای بهینه‌سازی نهایی

در گذشته گوگل استفاده از تگ‌های rel="next" و rel="prev" را در تگ head برای شناسایی توالی صفحات توصیه می‌کرد. اگرچه امروزه موتور جستجوی گوگل به اندازه کافی هوشمند شده است و می‌تواند این توالی را بدون تگ‌های مذکور تشخیص دهد، اما همچنان پیاده‌سازی آنها به عنوان یک سیگنال قوی برای موتورهای جستجوی دیگر نظیر Bing بسیار کارآمد است. همیشه اطمینان حاصل کنید که پارامترهای صفحه‌بندی منجر به تولید کوئری‌های تکراری و ارجاع نامعتبر نشوند.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)
1405/04/04 00:22

آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)

مطالعه بیشتر
آموزش لیست‌ها در CSS: طراحی و استایل‌دهی ساده برای لیست‌های HTML
1402/06/10 17:47

آموزش لیست‌ها در CSS: طراحی و استایل‌دهی ساده برای لیست‌های HTML

مطالعه بیشتر
مدیریت خطاها در Async/Await و Promises در جاوا اسکریپت: راهنمای کامل با مثال‌های عملی
1403/07/30 20:59

مدیریت خطاها در Async/Await و Promises در جاوا اسکریپت: راهنمای کامل با مثال‌های عملی

مطالعه بیشتر
آموزش جامع مدیریت خطا با Try Catch و Exception در PHP (اصول و استانداردهای تمیز)
1405/05/01 20:26

آموزش جامع مدیریت خطا با Try Catch و Exception در PHP (اصول و استانداردهای تمیز)

مطالعه بیشتر
مقدمه‌ای بر Node.js و کار با جاوا اسکریپت سمت سرور: آموزش اولیه و اصولی
1403/08/04 19:58

مقدمه‌ای بر Node.js و کار با جاوا اسکریپت سمت سرور: آموزش اولیه و اصولی

مطالعه بیشتر
کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت
1402/05/25 00:16

کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت

مطالعه بیشتر
آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها
1403/07/28 21:31

آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها

مطالعه بیشتر
آموزش جامع ساخت فرم ورود کاربر در PHP (براساس استانداردهای گوگل و امنیت بالا)
1405/05/14 22:03

آموزش جامع ساخت فرم ورود کاربر در PHP (براساس استانداردهای گوگل و امنیت بالا)

مطالعه بیشتر
آموزش کار با Local Storage و Session Storage در جاوا اسکریپت: ذخیره‌سازی داده‌ها در مرورگر
1403/08/03 17:08

آموزش کار با Local Storage و Session Storage در جاوا اسکریپت: ذخیره‌سازی داده‌ها در مرورگر

مطالعه بیشتر
آموزش Emit در Vue.js | انتقال رویداد از کامپوننت فرزند به والد
1404/09/28 21:41

آموزش Emit در Vue.js | انتقال رویداد از کامپوننت فرزند به والد

مطالعه بیشتر
آموزش جامع مدیریت خطاها در PHP بر اساس استانداردهای گوگل
1405/05/01 20:23

آموزش جامع مدیریت خطاها در PHP بر اساس استانداردهای گوگل

مطالعه بیشتر
آشنایی با انواع انتخاب‌گرها و تغییر پس‌زمینه با CSS: راهنمای جامع
1402/06/04 23:55

آشنایی با انواع انتخاب‌گرها و تغییر پس‌زمینه با CSS: راهنمای جامع

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد