api/docs/SEO-RECOMMENDATIONS.md

9.4 KiB
Raw Permalink Blame History

پیشنهادات بهبود سئو - می‌مپس

این سند بر اساس بررسی قالب‌ها، کنترلرها، sitemap، robots.txt و متاتگ‌های فعلی تهیه شده است.


✅ مواردی که الان درست است

  • متاتگ‌های اصلی: عنوان، توضیحات و کلمات کلیدی در base.html.twig و در هر صفحه با بلاک‌های مناسب پر شده‌اند.
  • Open Graph و Twitter Card: برای شبکه‌های اجتماعی تنظیم شده است.
  • Canonical URL: برای جلوگیری از محتوای تکراری استفاده شده است.
  • ساختار هدینگ: در بیشتر صفحات یک h1 و سلسله‌مراتب h2/h3 رعایت شده است.
  • Structured Data: اسکیماهای WebSite و Organization در base و HowTo در صفحه ویرایش نقشه وجود دارد.
  • robots.txt و sitemap.xml موجود است و آدرس sitemap در robots درج شده است.
  • زبان و جهت: lang="fa" و dir="rtl" به‌درستی تنظیم شده است.

🔴 اصلاحات ضروری

1. تصاویر OG و Twitter موجود نیستند

در base.html.twig به این فایل‌ها اشاره شده است:

  • https://memaps.ir/assets/images/og-image.jpg (۱۲۰۰×۶۳۰)
  • https://memaps.ir/assets/images/twitter-image.jpg

وضعیت: در public/assets/images/ فقط splash.png، logo_side_white.png و favicon.txt وجود دارد.

اقدام پیشنهادی:
یک تصویر ۱۲۰۰×۶۳۰ پیکسل با لوگو و نام «می‌مپس» و یک خط توضیح کوتاه بسازید و با نام og-image.jpg ذخیره کنید. برای توییتر می‌توانید همان فایل را کپی و با نام twitter-image.jpg استفاده کنید (یا در صورت نیاز نسخه جداگانه بهینه برای توییتر).

بدون این تصاویر، هنگام اشتراک‌گذاری لینک در شبکه‌های اجتماعی، تصویر پیش‌فرض یا نامناسب نمایش داده می‌شود.


2. hreflang برای نسخه انگلیسی بدون صفحهٔ واقعی

در base.html.twig برای زبان انگلیسی لینک داده شده است:

<link rel="alternate" hreflang="en" href="https://memaps.ir/en{{ app.request.requestUri }}">

مشکل: مسیرهای /en/... در سایت تعریف نشده‌اند و این آدرس‌ها به ۴۰۴ یا صفحهٔ اشتباه می‌رسند. دادن hreflang به صفحه‌ای که وجود ندارد برای موتورهای جستجو مطلوب نیست.

اقدام پیشنهادی:

  • اگر نسخه انگلیسی ندارید: تگ‌های hreflang="en" و لینک به /en/... را حذف کنید و فقط hreflang="fa" و hreflang="x-default" را نگه دارید.
  • اگر قرار است نسخه انگلیسی اضافه شود: ابتدا صفحات انگلیسی را پیاده کنید، سپس همین hreflang را برای آن آدرس‌های واقعی فعال کنید.

3. ناقص بودن sitemap.xml

صفحات موجود در سایت که در sitemap نیستند:

  • /about
  • /search-api-guide
  • /google-earth-api-guide
  • /bing-api-guide

اقدام پیشنهادی:
این آدرس‌ها را به sitemap.xml اضافه کنید و برای هر URL مقدار lastmod را با تاریخ به‌روز واقعی (یا حداقل سال/ماه جاری) تنظیم کنید. در صورت تمایل می‌توانید changefreq و priority را هم برای هر نوع صفحه منطقی انتخاب کنید.


4. صفحهٔ نقشه بدون H1

صفحهٔ map.html.twig فقط نقشهٔ تمام‌صفحه و دکمه‌ها را دارد و هیچ تگ h1 برای موتور جستجو ندارد.

اقدام پیشنهادی:
یک h1 با متن مناسب (مثلاً «نقشه آنلاین ایران - سرویس می‌مپس») اضافه کنید و در صورت نیاز با CSS آن را به‌صورت بصری مخفی کنید (مثلاً کلاس visually-hidden یا sr-only) تا فقط برای سئو و خوانندگان صفحه خوان باشد.


🟡 پیشنهادات تکمیلی

5. یکپارچه‌سازی عنوان صفحات

الان ترکیب‌هایی مثل «تماس با ما - می‌مپس» و «می‌مپس - نقشه آنلاین» با هم استفاده شده‌اند.

پیشنهاد:
یک الگوی ثابت انتخاب کنید، مثلاً همیشه:
عنوان صفحه | می‌مپس
یا
عنوان صفحه - سرویس نقشه می‌مپس
و در همهٔ صفحات (از جمله کنترلرها و بلاک title) آن را رعایت کنید تا در نتایج جستجو منسجم‌تر دیده شود.


6. طول توضیحات (description)

توضیحات متا بهتر است در حد ۱۵۰–۱۶۰ کاراکتر باشد تا در گوگل کامل نمایش داده شود.
برخی توضیحات فعلی طولانی‌تر هستند؛ می‌توانید آن‌ها را کوتاه‌تر و متمرکزتر کنید و عبارت کلیدی اصلی را در ۸۰ کاراکتر اول بگذارید.


7. Structured Data اختصاصی هر صفحه

  • صفحه تماس: اضافه کردن اسکیمای ContactPage یا بخش تماس در اسکیمای Organization (با telephone, email, address در صورت وجود).
  • صفحات راهنما (مثلاً usage، search-api-guide، bing، google-earth): در صورت مناسب بودن، اسکیمای TechArticle یا Article با datePublished و dateModified برای بهبود نمایش در نتایج جستجو.
  • صفحه تماس در صورت داشتن سوالات متداول: اسکیمای FAQPage برای بخش سوالات متداول.

این کار به موتورهای جستجو کمک می‌کند نوع محتوا و اطلاعات تماس را بهتر درک کنند.


8. Breadcrumb در سمت سرور

الان breadcrumb به‌صورت JSON-LD در JavaScript در base.html.twig ساخته می‌شود.

پیشنهاد:
برای اطمینان بیشتر از خزش و ایندکس، می‌توانید برای هر صفحه در سمت سرور (مثلاً در کنترلر یا در قالب) آرایهٔ breadcrumb را بسازید و JSON-LD مربوط به BreadcrumbList را در خود HTML خروجی قرار دهید و در صورت تمایل، اسکریپت فعلی را حذف یا فقط برای نمایش بصری نگه دارید.


9. robots.txt

  • Crawl-delay: مقدار Crawl-delay: 1 توسط گوگل پشتیبانی نمی‌شود و نادیده گرفته می‌شود. اگر هدف فقط کاهش بار سرور است، می‌توانید این خط را حذف کنید تا هشدارهای غیرضروری در ابزارهای تست نداشته باشید.
  • Disallow برای مسیرهایی مثل /var/, /vendor/: این‌ها معمولاً مسیر فایل‌سیستم هستند و به‌صورت مستقیم از وب در دسترس نیستند. اگر مطمئن هستید این مسیرها هرگز از طریق وب قابل دسترسی نیستند، می‌توانید آن‌ها را از robots حذف کنید؛ در غیر این صورت نگه داشتن آن‌ها ضرری ندارد.

10. آیکون‌ها و PWA

در base.html.twig و site.webmanifest به فایل‌هایی اشاره شده است که در پوشهٔ تصاویر وجود ندارند، از جمله:

  • apple-touch-icon.png (۱۸۰×۱۸۰)
  • favicon-32x32.png, favicon-16x16.png
  • در manifest: icon-192x192.png, icon-512x512.png, icon-96x96.png, screenshot-wide.png, screenshot-narrow.png

اقدام پیشنهادی:
این آیکون‌ها و در صورت نیاز اسکرین‌شات‌ها را از روی لوگوی می‌مپس در سایزهای بالا تولید و در مسیرهای اشاره‌شده قرار دهید. اگر فعلاً PWA را فعال نمی‌کنید، می‌توانید در manifest فقط به فایل‌هایی اشاره کنید که واقعاً وجود دارند (مثلاً favicon.svg) تا خطای ۴۰۴ کاهش یابد.


خلاصه اولویت‌ها

اولویت کار
بالا اضافه کردن تصاویر og-image.jpg و twitter-image.jpg
بالا حذف یا اصلاح hreflang برای زبان انگلیسی
بالا تکمیل sitemap با about و سه راهنمای API و به‌روزرسانی lastmod
بالا اضافه کردن یک H1 (ترجیحاً مخفی) به صفحهٔ نقشه
متوسط یکنواخت کردن فرمت عنوان صفحات
متوسط کوتاه کردن و بهینه‌سازی descriptionها
متوسط اضافه کردن اسکیماهای ContactPage / Article / FAQ در صورت نیاز
پایین سرورساید کردن breadcrumb و آیکون‌های PWA

با انجام موارد با اولویت بالا، پایهٔ سئو و اشتراک‌گذاری اجتماعی سایت محکم‌تر می‌شود.