آموزش رایگان 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 بسیار کارآمد است. همیشه اطمینان حاصل کنید که پارامترهای صفحه‌بندی منجر به تولید کوئری‌های تکراری و ارجاع نامعتبر نشوند.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

تفاوت متد GET و POST در PHP؛ راهنمای جامع و استاندارد گوگل
1405/04/27 22:13

تفاوت متد GET و POST در PHP؛ راهنمای جامع و استاندارد گوگل

مطالعه بیشتر
کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر
1403/08/16 22:45

کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر

مطالعه بیشتر
تفاوت Data و Computed Properties در Vue.js | آموزش کاربردی و مثال‌محور
1404/09/21 23:58

تفاوت Data و Computed Properties در Vue.js | آموزش کاربردی و مثال‌محور

مطالعه بیشتر
آموزش کار با Webpack و Bundlers برای مدیریت پروژه‌ها: راهنمای جامع و کاربردی
1403/08/05 20:43

آموزش کار با Webpack و Bundlers برای مدیریت پروژه‌ها: راهنمای جامع و کاربردی

مطالعه بیشتر
استفاده از visibility و opacity در CSS برای مخفی‌سازی عناصر: راهنمای کامل و کاربردی
1403/08/11 20:31

استفاده از visibility و opacity در CSS برای مخفی‌سازی عناصر: راهنمای کامل و کاربردی

مطالعه بیشتر
آموزش ساخت Toggle Switch با CSS: طراحی دکمه‌های تغییر وضعیت جذاب و واکنش‌گرا
1403/08/16 22:20

آموزش ساخت Toggle Switch با CSS: طراحی دکمه‌های تغییر وضعیت جذاب و واکنش‌گرا

مطالعه بیشتر
آموزش CSS Transform و Transition: تبدیل‌ها و ایجاد تغییرات ظاهری پویا
1402/06/10 18:32

آموزش CSS Transform و Transition: تبدیل‌ها و ایجاد تغییرات ظاهری پویا

مطالعه بیشتر
آموزش جامع و اصولی جستجو در دیتابیس با PHP و MySQL (مطابق استانداردهای گوگل)
1405/05/13 21:26

آموزش جامع و اصولی جستجو در دیتابیس با PHP و MySQL (مطابق استانداردهای گوگل)

مطالعه بیشتر
کار با فیلترهای CSS: آموزش استفاده از blur، brightness و contrast برای افکت‌های تصویری جذاب
1403/08/11 21:08

کار با فیلترهای CSS: آموزش استفاده از blur، brightness و contrast برای افکت‌های تصویری جذاب

مطالعه بیشتر
آموزش استفاده از تگ‌های تصویری در HTML: نمایش و مدیریت تصاویر در صفحات وب
1402/05/29 20:53

آموزش استفاده از تگ‌های تصویری در HTML: نمایش و مدیریت تصاویر در صفحات وب

مطالعه بیشتر
آموزش جامع کار با فرم‌ها در PHP (امنیت و اعتبارسنجی طبق استاندارد گوگل)
1405/04/27 22:01

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

مطالعه بیشتر
آموزش ایجاد Transitions و انیمیشن‌های صفحه بارگذاری (Loader) در CSS: طراحی لودرهای جذاب
1403/08/16 23:05

آموزش ایجاد Transitions و انیمیشن‌های صفحه بارگذاری (Loader) در CSS: طراحی لودرهای جذاب

مطالعه بیشتر

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