عملیات
سطح SEO
هر مسیر عمومی یک بلوک SEO به ازای هر صفحه منتشر میکند — عنوان، توضیحات، آدرس متعارف، کارت Open Graph، کارت توییتر و دادههای ساختاریافته JSON-LD — بدون نیاز به هیچ کار اضافی در لایه React. خریدارانی که یک نصب برچسبسفید اجرا میکنند، از همان ساختار بهرهمند میشوند؛ نام برند را در /settings/branding جایگزین کنید و بلوک متا نیز به دنبال آن تغییر میکند.
موارد ارسالشده بهصورت پیشفرض
-
عنوانها و توضیحات به ازای هر مسیر. در
App\Support\SeoMeta::ROUTE_DEFAULTSتعریف شدهاند. توکنهایی مانند{brand}در زمان نمایش درونیابی میشوند، بنابراین یک نصب تغییر نامیافته هرگز نام محصول اصلی را به بلوک متا نشت نمیدهد. -
آدرسهای متعارف. هر صفحه آدرس متعارف خود را از طریق
<link rel="canonical">اعلام میکند که براساسconfig('app.url')+ مسیر مسیر است. موتورهای جستجو هرگز مجبور نیستند حدس بزنند کدام نوع، نسخه اصلی است. -
کارتهای Open Graph + توییتر. پیشنمایشهای اشتراکگذاری اجتماعی شامل
og:type،og:site_name،og:title،og:description،og:url،og:imageبه همراهtwitter:card="summary_large_image"هستند. تصویر OG بهطور پیشفرضpublic/og-image.pngاست؛ تصویر خود را در آنجا قرار دهید تا لغو شود. -
دادههای ساختاریافته JSON-LD. سه بلوک بر روی متای استاندارد لایهبندی میشوند:
- سازمان — هر صفحه. نام برند، آدرس متعارف و (در صورت وجود) لوگو.
- نرمافزار کاربردی — فقط صفحه اصلی. به انتخابکننده نتایج غنی گوگل اجازه میدهد ما را بهعنوان یک برنامه با پیشنهاد + قیمت سطح رایگان نمایش میدهد.
- صفحه سوالات متداول — فقط صفحه اصلی، از سوالات متداول بازاریابی که مدیران در تنظیمات ← بازاریابی ویرایش میکنند، تأمین میشود. ویرایشها بهطور خودکار به دادههای ساختاریافته جریان مییابند — انتخابکننده نتایج غنی گوگل، پرسش و پاسخ را مستقیماً در زیر بخش جستجو برای پرسوجوهای منطبق نمایش میدهد.
- /sitemap.xml — هر صفحه بازاریابی، هر نامک مستندات و هر نسخه تاریخچه تغییرات منتشرشده. بهمدت ۱ ساعت در سطح کنترلکننده کش میشود، بنابراین یک ورودی تاریخچه تغییرات جدید در پنجره کش ظاهر میشود.
-
/robots.txt — سطوح عمومی را مجاز میداند.
/admin،/app،/api/،/settingsو جریانهای احراز هویت را غیرمجاز میداند. به نقشه سایت ارجاع میدهد تا خزندهها آن را در اولین بررسی پیدا کنند.
افزودن SEO به یک مسیر جدید
دو مکان برای لمس هنگام افزودن یک صفحه عمومی جدید:
-
یک پیشفرض در
SeoMeta::ROUTE_DEFAULTSباtitle/description/pathثبت کنید. از{brand}برای هر جایی که نام نصب باید ظاهر شود استفاده کنید. -
در کنترلکننده، payload SEO را به اینرسی ارسال کنید:
return Inertia::render('your/page', [ // ... propsهای شما 'seo' => SeoMeta::for('your-route-key'), ]);
چیدمان ریشه اینرسی (resources/views/app.blade.php) props.seo را میخواند و بلوک متا را بهطور خودکار منتشر میکند. نیازی به کار Blade به ازای هر صفحه نیست.
نیاز به تغییر توضیحات به ازای هر ردیف دارید (مثلاً یک صفحه تاریخچه تغییرات به ازای هر نسخه)؟ لغوها را ارسال کنید:
'seo' => SeoMeta::for('changelog.show', [
'title' => "v1.1.0 — چه خبر جدید در {brand}",
'description' => "منتشر شده در " . $entry->released_at_human . " — " . $entry->summary,
])
سفارشیسازی تصویر Open Graph
یک تصویر PNG (یا JPG) با ابعاد ۱۲۰۰×۶۳۰ در public/og-image.png قرار دهید. خریدارانی که نصب خود را اجرا میکنند، میتوانند فایل را مستقیماً از طریق SFTP یا مدیر فایل میزبان استقرار جایگزین کنند. حلکننده SeoMeta وجود فایل را در زمان نمایش بررسی میکند؛ در صورت عدم وجود، بلوک متا بهجای اشاره به خطای ۴۰۴، og:image و twitter:image را حذف میکند.
کش نقشه سایت
نقشه سایت بهمدت ۱ ساعت با کلید seo:sitemap.xml کش میشود. برای بازخوانی اجباری پس از انتشار یک ورودی تاریخچه تغییرات طولانیمدت:
php artisan tinker --execute 'cache()->forget("seo:sitemap.xml");'
در غیر این صورت، ترافیک خزنده در یک نصب شلوغ، معادل O(نرخ خزش) ضربه به پایگاه داده خواهد بود. کش آن را به یک بازسازی در ساعت به ازای هر گره کاهش میدهد.
مسیرهای مستثنی
| پیشوند مسیر | دلیل استثنا |
|---|---|
/admin/* |
سطح مدیریت پلتفرم. دادههای محدود به فضای کاری. |
/app/* |
داشبورد فضای کاری. نیاز به احراز هویت، محدود به فضای کاری. |
/api/* |
سطح API — JSON، برای خزندهها نیست. |
/login، /register، بازنشانی رمز عبور |
جریانهای احراز هویت — ارزش SEO ندارد، چیزی برای پردازش توسط خزنده نیست. |
/settings/* |
تنظیمات کاربر / پلتفرم نیاز به احراز هویت. |