35 lines
3.9 KiB
Markdown
35 lines
3.9 KiB
Markdown
# وبسایت بیمارستان مهر پرند
|
|
|
|
پروژه با 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).
|