fix: seo friendly
This commit is contained in:
@@ -1 +1,34 @@
|
||||
This is a starter template for [Learn Next.js](https://nextjs.org/learn).
|
||||
# وبسایت بیمارستان مهر پرند
|
||||
|
||||
پروژه با Next.js 11 و Pages Router اجرا میشود.
|
||||
|
||||
## اجرا و بررسی
|
||||
|
||||
```sh
|
||||
npm run dev
|
||||
npm run build
|
||||
npm run start
|
||||
npm test
|
||||
```
|
||||
|
||||
تستها با test runner داخلی Node.js اجرا میشوند و به Node.js 20 یا جدیدتر نیاز دارند. بیلد فعلی با Node.js 14.21.3 بررسی شده است؛ ارتقای نسخههای قدیمی Next.js و Node.js باید جداگانه انجام شود. تنظیمات و نسخه ESLint موجود با فرایند lint این نسخه Next.js سازگار نیست و بیلد هشدار میدهد؛ موفقیت بیلد به معنی موفقیت lint نیست.
|
||||
|
||||
## تنظیمات سئو
|
||||
|
||||
- عنوان و توضیحات صفحات عمومی و آدرس اصلی سایت در `lib/seo.js` تعریف شدهاند. هنگام افزودن صفحه عمومی، آن را به `PUBLIC_PAGES` اضافه کنید؛ این فهرست منبع صفحات ثابت sitemap نیز هست.
|
||||
- `src/components/Seo.jsx` از طریق `_app.js` متادیتا، canonical، Open Graph، Twitter Card و JSON-LD را در HTML سرور تولید میکند. متادیتای محتوای پویا را با `props.seo` از `getServerSideProps` ارسال کنید.
|
||||
- canonical از دامنه ثابت HTTPS ساخته میشود و query string و fragment را حذف میکند. عنوان سفارشی صفحات را در registry یا `props.seo` تنظیم کنید؛ prop قدیمی `AppContainer.title` دیگر منبع متادیتا نیست.
|
||||
- صفحات فنی، کامپوننتهای مستقل، فرمهای درخواست و پیگیری و نمودارهایی که محتوایشان صرفاً سمت مرورگر است، بهصورت پیشفرض `noindex, follow` هستند. صفحه عمومی بخشها در `/components/service` استثنا است. `noindex` جایگزین کنترل دسترسی نیست.
|
||||
- سند HTML دارای `lang="fa"` و `dir="rtl"` است. داده ساختاریافته بیمارستان از اطلاعات تماس موجود سایت ساخته شده؛ ساعت کاری یا تاریخ افتتاح فرضی درج نشده است.
|
||||
|
||||
## نقشه سایت و اخبار
|
||||
|
||||
آدرس عمومی نقشه سایت `https://miphospital.ir/sitemap.xml` است و به handler موجود `/api/my-sitemap` بازنویسی میشود. robots.txt همین آدرس HTTPS را معرفی میکند.
|
||||
|
||||
نقشه سایت صفحات عمومی و شناسههای معتبر اخبار برگشتی از `AppUrl('news')` را شامل میشود. اگر API اخبار در دسترس نباشد، صفحات ثابت همچنان برگردانده میشوند و زمان cache به ۶۰ ثانیه کاهش مییابد. API فعلی باید آرایه اخبار یا آبجکت دارای آرایه `data` برگرداند؛ در صورت اضافه شدن pagination، پیمایش صفحههای API نیز باید اضافه شود.
|
||||
|
||||
خبر ناموجود پاسخ ۴۰۴ دارد؛ خرابی موقت API جزئیات خبر به خطای سرور منجر میشود. فهرست اخبار هنگام خرابی API پاسخ ۵۰۳ با `Retry-After` میدهد تا خطا بهعنوان محتوای خالی موفق ثبت نشود.
|
||||
|
||||
در بررسی محلی، API فعلی اخبار (`https://mehrara-api.iran.liara.run/api/news`) پاسخ ۴۰۴ داد؛ در نتیجه مسیرهای واقعی اخبار و محتوای زنده آنها تا رفع API قابل بررسی نیستند. بعد از انتشار، sitemap را در Google Search Console ثبت و صفحات اصلی را با URL Inspection بررسی کنید.
|
||||
|
||||
مرجع: [راهنمای فنی سئو برای توسعهدهندگان در Google Search Central](https://developers.google.com/search/docs/fundamentals/get-started-developers).
|
||||
|
||||
Reference in New Issue
Block a user