رفع مشکل seo صفحات angularjs در nginx

در این مطلب به آموزش رفع مشکل seo صفحات angularjs در nginx می پردازیم.

AngularJS_logo

توضیح مشکلی که در seo صفحات angularjs بوجود می آید

موتورهای جستجو برای اینکه بتوانند سایت­های موجود در اینترنت را پیدا کرده و با توجه به محتویات آنها در نتیجه جستجوی کاربرنشان نشان دهند از crawlerها و یا bot های مخصوص به خود استفاده می­کنند. این crawler و bot ها با توجه به طراحی که دارند می­توانند صفحات و محتویاتی را که با HTML در سطح وب هستند را بررسی کرده و در پایگاه داده خود نگهداری کنند.

اما با توجه به پیشرف تکنولوژی و مطرح شدن زبان­های اسکریپت نویسی مانند AngularJS برای نوشتن صفحات وب و همچنین با توجه به اینکه این صفحات وب بسته به درخواست­های کاربران اجرا شده و در مرورگر کاربر به HTML تبدیل می­شوند مشکلاتی را برای crawler و bot های موتورهای جستجو ایجاد می­کنند، که این مشکل بصورت نمایش محتویات نامشخص در بخش perview سایت در نتایج جستجو نمود پیدا خواهد کرد.

در زیر تصویر نمونه این مشکل در کوکل را میبینید.

angularjs-seo

توضیح چگونگی حل مشکل ایجاد شده

با توجه به اینکه گوگل و اکثر موتورهای جستجو قابلیت index کردن صفحات وب نوشته شده با متد AJAX و برنامه های کاربردی تحت وب نوشته شده با AngularJS را ندارند، راه حلی که مطرح می­شوند این است که سرویس دهنده وب خود را بگونه ای تنظیم کنیم که درصورتی که درخواستی از سمت موتورهای جستجو برای index کردن سایت دریافت کرد بجای اینکه محتویات اسکریپت­های AngularJS را برای آنها ارسال کند، یک کد HTML ثابت از قبل تولید شده را بسمت crawler و botهای موتور جستجوگر ارسال کند تا مشکل نمایش محتویات نامفهوم که در تصویر قسمت قبل مشاهده کردید رفع گردد.

 

حل مشکل ایجاد شده با استفاده از nginx

توجه: برای خواندن آموزش نصب nginx به اینجا مراجعه کنید.

توجه: برای خواندن مقالات ایمن سازی nginx به اینجا و اینجا مراجعه کنید.

برای حل این مشکل با استفاده از صفحات استاتیک HTML باید خطوط زیر را در تنظیمات مربوط به وبسایت angularjs خود در nginx قرار دهیم.

if ($http_user_agent ~ “baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator”) {
    return 301 https://nowlearn.ir;
}

در توضیح خطوط بالا اینکه این تنظیمات به nginx می گوید که در صورتی که user agent درخواست دهنده صفحات وب angularjs ما از طرف موتورهای جستجویی مانند گوگل با نام Googlebot بود بجای صفحات angularjs، صفحات استاتیک HTML را که از قبل آمده کرده ایم را به آن نشان دهد یا اینکه به آدرس خواستی ریدایرکت شود.

در زیر نمونه ای از تنظیماتی که شما باید در فایل تنظیمات nginx خود قرار دهید آورده شده است.

location / {
    if ($http_user_agent ~ “baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator”) {
        return 301 https://nowlearn.ir;
    }
    root /path/to/root;
    try_files $uri $uri/ /index.html;
}

و در آخر برای اینکه تنظیمات بر روی nginx اعمال شود باید سرویس دهنده آن را restart کنیم.

systemctl restart nginx

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *