feat(blog): جدول — ستون‌ها قابل تغییر اندازه/افزودن و حذف؛ لینک کپشن تصویر؛ هدینگ‌های نسخه انگلیسی بزرگ‌تر

This commit is contained in:
aramesh-site deploy
2026-10-06 10:57:01 +00:00
parent 61a2e95278
commit 1b491357ab
45 changed files with 2341 additions and 81 deletions
+70
View File
@@ -0,0 +1,70 @@
# چک‌لیست انتشار عمومی (روز «همه‌سنگ») 🚀
سایت تا قبل از انتشار در **حالت پیش‌نمایش خصوصی** است: همه‌چیز پشت Basic Auth با
`X-Robots-Tag: noindex` و `robots.txt: Disallow: /` و sitemap خالی. همهٔ کارهای سئو
(متا، JSON-LD، llms.txt، sitemap) همین حالا ساخته و تست شده‌اند و با برداشتن گیت
به‌صورت خودکار فعال می‌شوند — هیچ تغییر کدی برای انتشار لازم نیست.
## ۱. پیش از انتشار — بازبینی محتوا
- [ ] ترجمهٔ انگلیسی صفحه‌های اصلی کامل است (متای سئوی انگلیسی هر صفحه در پنل → «سئوی صفحه» ثبت شده باشد — فقط صفحاتی که متای انگلیسی دارند به‌عنوان alternate معرفی می‌شوند)
- [ ] توضیحات سئو (Meta Description) مقاله‌های مهم در پنل نوشته شده است (۱۵۰–۱۶۰ نویسه)
- [ ] نام نویسندهٔ مقاله‌ها در پنل ثبت شده (در اسکیمای Article می‌آید)
- [ ] تصویر پیش‌فرض OG (`frontend/public/og-default.jpg`) در بیلد هست
- [ ] شماره تلفن و ایمیل برند در پنل درست است (در JSON-LD تماس می‌آید)
- [ ] آدرس دفاتر در پنل کامل است (اسکیمای LocalBusiness از همان می‌سازد)
## ۲. برداشتن گیت و استقرار
```bash
bash scripts/preview-mode.sh off # حذف Basic Auth + اجازهٔ ایندکس + llms.txt فعال
bash scripts/stack.sh deploy-prod # استقرار مجدد
```
## ۳. راستی‌آزمایی پس از انتشار (بدون احراز هویت)
```bash
DOMAIN=your-domain.ir
# هدر noindex نباید باشد:
curl -sI https://$DOMAIN/ | grep -i x-robots-tag # ← باید خالی باشد
# robots.txt واقعی با سیاست خزنده‌های AI و خط Sitemap:
curl -s https://$DOMAIN/robots.txt
# sitemap پُر با alternates دو زبانه:
curl -s https://$DOMAIN/sitemap.xml | head -30
# llms.txt باید ۲۰۰ بدهد:
curl -sI https://$DOMAIN/llms.txt | head -1
# متای تزریقی در HTML خام صفحهٔ اصلی (بدون جاوااسکریپت):
curl -s https://$DOMAIN/ | grep -E 'canonical|og:image|hreflang|ld\+json' | head
# صفحهٔ ناموجود باید ۴۰۴ بدهد (نه soft-404):
curl -s -o /dev/null -w '%{http_code}\n' https://$DOMAIN/blog/does-not-exist
# گیت حذف شده باشد (انتظار: 200، نه 401):
curl -s -o /dev/null -w '%{http_code}\n' https://$DOMAIN/
```
## ۴. دامنهٔ دوم
- [ ] در `.env`: `ALIAS_REDIRECT=on` (ریدایرکت ۳۰۱ دامنهٔ دوم به اصلی — جلوگیری از محتوای تکراری) و deploy مجدد
## ۵. ثبت در موتورهای جست‌وجو
- [ ] **Google Search Console**: مالکیت دامنه، ارسال `https://DOMAIN/sitemap.xml`
- [ ] **Bing Webmaster Tools**: ایمپورت از GSC، ارسال sitemap (ایندکس Bing = منبع ChatGPT و Copilot)
- [ ] اختیاری — **IndexNow** برای ایندکس سریع‌تر Bing
## ۶. آمار (اختیاری ولی توصیه‌شده)
- [ ] در `.env`: `VITE_UMAMI_SRC` و `VITE_UMAMI_WEBSITE_ID` را تنظیم و فرانت‌اند را بیلد کنید (تحلیل رفتار در حال حاضر خاموش است)
- [ ] کانال «AI Assistants» در GA4/Umami برای دیدن ترافیک ارجاعی از دستیارها
## ۷. خط پایه برای پایش بعدی
- [ ] یک ممیز کامل سئو بگیرید (مثلاً پلاگین `claude-seo`: `/seo audit`) و امتیاز پایه را ثبت کنید
- [ ] اسنپ‌شات drift بگیرید تا تغییرات آیندهٔ تایتل/متا/اسکیما قابل رهگیری باشد (`/seo drift baseline`)
- [ ] هر ۲ هفته: ۵ پرسش برند + ۵ پرسش دسته‌ای در ChatGPT/Claude/Perplexity تست کنید — «آیا به آرامش ارجاع می‌دهند؟» و نرخ ارجاع را یادداشت کنید
## برگشت به عقب (اگر لازم شد)
```bash
bash scripts/preview-mode.sh on # برگشت به حالت خصوصی
bash scripts/stack.sh deploy-prod
```