robots.txt در Next.js — کنترل دسترسی خزنده‌های موتور جستجو به صفحات سایت

فایل robots.txt در Next.js مشخص می‌کند که خزنده‌های موتور جستجو به کدام مسیرهای سایت شما دسترسی دارند. این فایل را می‌توان به‌صورت استاتیک یا داینامیک با کد تولید کرد. همچنین می‌توان رفتار خزنده‌های خاص مانند Googlebot یا Bingbot را سفارشی‌سازی کرد. این مقاله نحوهٔ تعریف فایل، ساختار آن، و تنظیمات پیشرفته را توضیح می‌دهد.

robots.txtMetadataRoutecrawler rulessitemaprobots.txtMetadataRoutecrawler rulessitemap

~2 دقیقه مطالعه • بروزرسانی ۷ آبان ۱۴۰۴

۱. robots.txt چیست؟


فایل robots.txt طبق استاندارد Robots Exclusion Protocol مشخص می‌کند که خزنده‌های موتور جستجو (مانند Googlebot یا Bingbot) به کدام مسیرهای سایت شما اجازه دسترسی دارند یا ندارند. این فایل در ریشهٔ پوشه app قرار می‌گیرد.


۲. تعریف فایل استاتیک


می‌توانید فایل app/robots.txt را به‌صورت دستی ایجاد کنید:

User-Agent: *
Allow: /
Disallow: /private/
Sitemap: https://acme.com/sitemap.xml

۳. تولید فایل با کد


از Route Handler مخصوص robots.ts استفاده کنید:

// app/robots.ts
import type { MetadataRoute } from 'next'

export default function robots(): MetadataRoute.Robots {
  return {
    rules: {
      userAgent: '*',
      allow: '/',
      disallow: '/private/',
    },
    sitemap: 'https://acme.com/sitemap.xml',
  }
}

خروجی:

User-Agent: *
Allow: /
Disallow: /private/
Sitemap: https://acme.com/sitemap.xml

۴. سفارشی‌سازی خزنده‌های خاص


می‌توانید رفتار خزنده‌های خاص را با آرایه‌ای از قوانین تنظیم کنید:

export default function robots(): MetadataRoute.Robots {
  return {
    rules: [
      {
        userAgent: 'Googlebot',
        allow: ['/'],
        disallow: '/private/',
      },
      {
        userAgent: ['Applebot', 'Bingbot'],
        disallow: ['/'],
      },
    ],
    sitemap: 'https://acme.com/sitemap.xml',
  }
}

خروجی:

User-Agent: Googlebot
Allow: /
Disallow: /private/
User-Agent: Applebot
Disallow: /
User-Agent: Bingbot
Disallow: /
Sitemap: https://acme.com/sitemap.xml

۵. ساختار Robots object


نوع MetadataRoute.Robots شامل گزینه‌های زیر است:

  • rules: شامل userAgent، allow، disallow، crawlDelay
  • sitemap: آدرس فایل sitemap
  • host: دامنه اصلی (اختیاری)

جمع‌بندی


فایل robots.txt در Next.js ابزاری حیاتی برای کنترل رفتار خزنده‌های موتور جستجو است. با استفاده از روش‌های استاتیک یا داینامیک، می‌توانید مسیرهای قابل ایندکس را مشخص کنید، مسیرهای خصوصی را محدود کنید، و تجربه SEO بهتری برای سایت خود بسازید.


نوشته و پژوهش شده توسط دکتر شاهین صیامی