نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

۷ مطلب با کلمه‌ی کلیدی «بهینه‌سازی» ثبت شده است

گزارش سایت‌های فروشنده بک لینک

امیرمسعود ایرانی | چهارشنبه, ۱۷ شهریور ۱۳۹۵، ۰۷:۱۰ ب.ظ | ۰ نظر

سئو کلاه سیاه با استفاده از روش‌هایی تلاش می‌کند نتایج جستجوی گوگل را دستکاری کند.

اغلب روش‌های تقلب در سئو یا بهینه‌سازی با قدرت گرفتن موتورهای جستجو در شناسایی تقلب‌های متداول به سمت خرید بک لینک هدایت شده است.

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

به همین دلیل گوگل بخشی برای گزارش این گونه سایت‌ها که اقدام به خرید یا فروش بک‌لینک می‌کنند ایجاد کرده است.

برای مشاهده‌ی بخش گزارش Paid Link گوگل، اینجا کلیک کنید.


پیش از اقدام به گزارش سایت‌هایی که با تقلب قصد موفقیت در سئو را دارند می‌بایست لینک‌های غیرمجاز را شناسایی کرد.

تمامی انواع لینک‌ها از سایتی به سایت دیگر غیرمجاز نیستند. لینک‌های غیرمجاز در سایت‌های مختلف معمولا دارای عنوان «تبلیغات متنی» هستند و می‌بایست دو ویژگی را داشته باشند. نخست اینکه در جهت تبلیغات به کار رفته باشند( با دریافت وجه یا با روش‌های دیگر تبادل لینک یا سایر روش‌ها )

همچنین این لینک‌ها می‌بایست فاقد ویژگی rel=nofollow باشند. قرار گرفتن این ویژگی در یک لینک به موتور جستجو می‌گوید که سایت لینک داده شده، مورد تایید برای انتقال اعتبار نیست و برای تبلیغات و یا سایر اهداف مشابه در سایت درج شده است.


گزارش سایت‌های متخلف در خرید بک لینک

بخش گزارش Paid Links در گوگل شامل سه فیلد است. فیلد اول نام سایتی است که بک‌لینک را فروخته است. فیلد دوم سایتی که بک‌لینک را خریداری کرده است و فیلد سوم، توضیحات اختیاری و اضافه است.

شیوه‌ی رسیدگی به گزارش‌ها

گزارش‌های رسیده در این بخش، بر اساس اهمیت و اثری که ممکن است روی رتبه‌بندی سایت‌ها داشته باشند بررسی می‌شوند. ارسال چندین گزارش اثری در رسیدگی یا عدم رسیدگی به گزارش‌ها ندارد و تنها یک بار ارسال هر سایت کافی است.

چرا باید سایت‌های متقلب را گزارش کنیم؟

سایت‌هایی که با این روش‌ها اقدام به تقلب و بالا آمدن در گوگل می‌کنند، باعث می‌شوند سایت‌های با کیفیت بیشتر که با روش‌های اصولی به این جایگاه رسیده‌اند از دید پنهان شوند و در نتیجه کیفیت نتایج جستجوی گوگل کاهش می‌یابد.

کاهش کیفیت نتایج سبب می‌شود کاربران زمان بیشتری را صرف یافتن مطالب مورد نظر خود کنند یا ممکن است سبب فریب و ایجاد خسارت مادی و معنوی به آنان شود.

به همین دلیل با مشارکت همگانی و حس مسئولیت می‌توان در افزایش کیفیت نتایج جستجوی گوگل و نمایش سایت‌هایی که بر اساس کیفیت محتوا و خدمات توانسته‌اند به رتبه‌های نخست دست پیدا کنند، سهیم گردید.

  • امیرمسعود ایرانی

کاهش حجم دیتابیس جوملا

امیرمسعود ایرانی | پنجشنبه, ۲۶ شهریور ۱۳۹۴، ۱۱:۴۹ ق.ظ | ۱ نظر

افزایش حجم پایگاه داده‌ی جوملا به دلایل گوناگون و وابسته به تنظیمات مختلف ممکن است رخ دهد.

در ادامه به سه دلیل متداول و راه برطرف کردن آن‌ها می‌پردازیم.


۱- افزایش حجم جدول کاربران

یکی از آسیب‌پذیری‌های جوملا، هدف قرار گرفتن توسط ربات‌های ثبت نام است. این ربات‌ها چنانچه ثبت نام در سایت شما باز باشد، هزاران کاربر در سایت شما ایجاد می‌کنند و پس از تایید، در صفحات شخصی هر کاربر مطالب مورد نظر خود را می‌نویسند.

این مطالب علاوه بر پر کردن حجم پایگاه‌داده‌ی شما، در رتبه‌ی SEO سایت شما نیز ممکن است اثر منفی داشته باشند.

برای برطرف کردن این اشکال، به بخش کاربران جوملا مراجعه کنید و چنانچه مشاهده کردید که صدها و هزارها کاربر در این بخش وجود دارد، ابتدا به بخش تنظیمات مراجعه کنید و ثبت نام را غیرفعال کنید. در صورتی که کاربران عادی باید بتوانند در سایت شما ثبت نام کنند، حتما از یک سیستم Captcha قدرتمند برای جلوگیری از عملکرد ربات‌ها استفاده کنید.

برای امنیت بیشتر می‌توانید فعال‌سازی کاربران را توسط مدیر انجام دهید تا جلوی ورود ربات‌های مزاحم گرفته شود

مرحله‌ی بعدی، حذف کاربران ثبت شده است که بسته به تعداد آن ممکن است لازم شود از روش‌های خاصی استفاده کنید که شرح آن در این مطلب نمی‌گنجد.


۲- افزایش حجم جدول Session ها

جدول Session ها یک جدول اتوماتیک است. به این معنی که محتویات آن به صورت خودکار ایجاد و حذف می‌شود. چنانچه ورودی سایت شما زیاد باشد یا زمان نگهداری اطلاعات کاربران وارد شده به سایت طولانی باشد، حجم این جدول افزایش پیدا می‌کند.

در حالتی که ورودی سایت شما زیاد است. کار خاصی قابل انجام نیست. ولی اگر مدت زمان نگهداری Session به صورت اتفاقی یا عمدی طولانی تعریف شود، حجم این جدول افزایش پیدا می‌کند.

برای اصلاح این اشکال به بخش تنظیمات جوملا و سربرگ اصلی مراجعه کنید. سپس بررسی کنید که مقدار Session Lifetime روی عددی منطقی مثل ۶۰ تنظیم شده باشد.

تنظیم Session Lifetime روی ۶۰ به این معنی است که هر کاربر چنانچه در فاصله‌ای بیش از ۶۰ دقیقه به سایت سربزند، مانند این است که یک کاربر جدید است و کمتر از این مدت، در سایت شناخته شده باقی می‌ماند.


۳- افزایش حجم جدول Advanced Search

جوملا برای افزایش سرعت جستجو داخل متن‌های شما، هر محتوای وارد شده را به صورت کلمه به کلمه در جداولی فرعی ذخیره می‌کند تا در هنگام جستجو، پیدا کردن کلمات مورد نظر کاربر در کمترین زمان ممکن به انجام برسد. در صورتی که حجم مطالب سایت شما زیاد و متنوع باشد، حجم این جدول‌ها افزایش چشمگیری پیدا می‌کند.

اگر می‌خواهید از مزیت جستجوی سریع و کاهش بار سرور در هنگام جستجو بهرمند شوید، کار خاصی برای کاهش حجم این جدول‌ها نمی‌توان انچام داد.

ولی چنانچه جستجو از امکانات حاشیه‌ای سایت شما به حساب می‌آید، می‌توانید با مراجعه به منوی کامپوننت‌ها، سپس Advanced Search سپس کلیک روی دکمه‌ی Purge اطلاعات ذخیره شده در این جدول‌ها را حذف کنید.

  • امیرمسعود ایرانی

ایندکس چند ستونی( Multi-Column Index ) در MySQL

امیرمسعود ایرانی | يكشنبه, ۲۰ ارديبهشت ۱۳۹۴، ۰۵:۴۰ ب.ظ | ۰ نظر

استفاده از ایندکس‌ها در پایگاه داده به دو منظور، جستجوی سریع و مرتب‌سازی سریع به انجام می‌رسد.

برای مثال اگر بخواهیم، در جدول کاربران، کاربری با شماره ملی 1234567890 را بیابیم، با ایندکس گذاری روی ستون کد ملی، این جستجو در زمانی بسیار کوتاه به نتیجه می‌رسد.

یا چنانچه بخواهیم دانش‌آموزان را بر اساس معدل مرتب کنیم و سه نفر نخست را جدا کنیم، استفاده از ایندکس روی ستون معدل سبب به نتیجه‌رسیدن سریع خواهد شد.

نبودن ایندکس در حالت‌های بالا سبب می‌شود، پایگاه داده تمام ردیف‌های پایگاه را برای یافتن ردیف‌های مورد نظر ما جستجو کند و هر چه حجم اطلاعات در جدول مورد نظر بیشتر باشد، زمان بیشتری صرف این کار خواهد شد.


نوع دیگری از ایندکس‌ها، ایندکس‌های چند ستونی یا Multi-Column Index ها هستند.

این نوع ایندکس به صورت ترکیبی از چند ستون ساخته می‌شود. برای مثال «شماره ملی و معدل». یا «شناسه و نام خانوادگی».

مورد استفاده از ایندکس‌های چند ستونی هنگامی است که بخواهیم، اطلاعات را از پایگاه داده با شرط‌های ترکیبی بازخوانی کنیم. برای مثال تمام کاربرانی که سال تولدشان کمتر از ۱۳۸۰ است و معدلشان بیش از ۱۹ است.

مزیت ایندکس‌های ترکیبی در استفاده از چپ به راست است. در مثال بالا، چنانچه روی ستون‌های «سال تولد» و «معدل» ایندکس ترکیبی ثبت کنیم، جستجوی ستون «معدل» به تنهایی افزایش سرعتی نخواهد داشت ولی جستجوی ستون «سال تولد» به دلیل اینکه در ابتدا آمده با سرعت زیاد به انجام خواهد رسید.

ایندکس‌های چند ستونی علاوه بر مزیت‌های ایندکس‌های تک ستونی، مزیت‌دیگری نیز می‌توانند داشته باشند.

این مزیت هنگامی است که تنها اطلاعات موجود در ایندکس چند ستونی را SELECT کنیم.

برای مثال، جستجو برای دانش‌آموزانی که سال تولد ۱۳۸۰ دارند و SELECT کردن تنها ستون معدل آن‌ها، با سرعت بسیار زیاد به انجام می‌رسد. زیرا نیازی به مراجعه به دیسک سخت برای پیدا کردن تک تک ردیف‌های دارای شرط نیست و اطلاعات مورد نیاز قبلا در ایندکس موجود است

  • امیرمسعود ایرانی

درج حجم اطلاعات زیاد در جدول کاربران لاراول

امیرمسعود ایرانی | دوشنبه, ۲۷ بهمن ۱۳۹۳، ۰۵:۱۶ ب.ظ | ۰ نظر

یکی از شیوه‌های امنیتی برای حفاظت از اطلاعات شخصی کاربران، نگهداری رمزهای آنان به صورت کدشده است. در گذشته الگوریتم‌هایی مانند md5 و sha1 برای این منظور استفاده می‌شدند.

با افزایش سرعت و قدرت سخت‌افزارها، این الگوریتم‌ها جای خود را به الگوریتم‌هایی پیچیده‌تر دادند تا امکان بازیابی رمزها با استفاده از آزمون و خطا دشوارتر از گذشته شود.

در فریم‌ورک لاراول به صورت پیش‌فرض از الگوریتم Bcrypt استفاده می‌شود که الگوریتمی ایمن و با توجه به قدرت سخت‌افزارهای امروزی، تقریبا غیرقابل بازیابی است.

دستیابی به این امنیت بالا، معایبی نیز در کنار خود دارد. یکی از این معایب، هنگامی است که می‌خواهیم، فهرستی طولانی از کاربران را در بانک اطلاعاتی ذخیره کنید و رمزهای هر کاربر را نیز با استفاده از الگوریتم سنگین Bcrypt کدگذاری یا Hash کنیم.

چنانچه تعداد کاربران به حدود چند هزار کاربر برسد، به احتمال زیاد با خطاهای timeout و بار سنگین روی سرور متوقف خواهیم شد.

در ادامه قصد داریم یک راه حل برای این مشکل معرفی کنیم که علاوه بر افزایش سرعت، امنیت کاربران را نیز در خطر قرار ندهیم.

برای حل مشکل بالا، در هنگام رمزگزاری گذرواژه‌ها، به جای استفاده از الگوریتم Bcrypt از الگوریتم قدیمی sha1 که سرعت زیادی دارد و نسبت به md5 نیز امنیت بیشتری برای ما فراهم می‌کند استفاده می‌کنیم.

پس از انجام این کار لازم است تا در بخش ورود به سایت نیز تغییراتی اعمال کنیم. چنانچه ورود کاربر موفقیت‌آمیز نباشد، این احتمال وجود دارد که رمز او هنوز به Bcrypt تبدیل نشده باشد. بنابراین، یک مرحله به الگوریتم قبلی اضافه می‌کنیم تا در صورت عدم موفقیت ورود، رمز کاربر به صورت sha1 نیز با پایگاه داده مقایسه شود، این کار با یک Query ساده قابل انجام است. چنانچه این مرحله با موفقیت به انجام برسد، رمز دریافت شده از کاربر با الگوریتم Bcrypt کد می‌شود و به جای sha1 قبلی ذخیره می‌شود.

مرحله‌ی بعدی نیز تلاش مجدد برای ورود به سایت با الگوریتم Bcrypt خواهد بود که این بار به درستی انجام خواهد شد.

با این روش، بار سنگین پردازش Bcrypt به اولین ورود کاربر موکول می‌شود.

روش‌های دیگری نیز برای انجام این کار وجود دارد که هر یک مزایا و معایب خود را دارند. روش فوق یکی از بهترین روش‌ها است که برای کاربران و برنامه‌نویسان سایت کمترین مشکل را ایجاد می‌کند.

  • امیرمسعود ایرانی

فعال کردن نشانی‌های seo به زبان فارسی در جوملا

امیرمسعود ایرانی | يكشنبه, ۱۴ دی ۱۳۹۳، ۱۲:۴۴ ب.ظ | ۰ نظر

نشانی‌های seo friendly در جوملا به صورت پیش‌فرض غیرفعال هستند. با انجام دو تنظیم می‌توانید نشانی صفحات خود را به صورت فارسی درج کنید تا از مزایای بهینه‌سازی موتورجستجو در urlها بهره‌مند شوید

برای انجام این کار مراحل زیر را دنبال کنید

در قسمت مدیریت جوملا روی منوی «سیستم» و سپس «تنظیمات کلی» کلیک کنید

در سربرگ «سایت» دو گزینه‌ی «آدرس های بهینه برای موتورهای جستجو» و «نام مستعار یونیکد» را فعال کنید تا این قابلیت در سایت شما فعال شود.

پس از فعال‌سازی این گزینه، نشانی‌های SEO Friendly در منوها نیز باید بازنویسی شوند تا مطابق خواسته‌ی شما به نمایش درآیند.

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


سئو چیست؟

  • امیرمسعود ایرانی

صفحات حذف شده و اثر آن روی SEO

امیرمسعود ایرانی | چهارشنبه, ۵ آذر ۱۳۹۳، ۰۷:۲۲ ب.ظ | ۰ نظر

به دلایل مختلف ممکن است قصد داشته باشیم یک صفحه را از سایت خود حذف کنیم. دلایلی مانند، عدم پشتیبانی از یک محصول، قدیمی بودن محتوا، اشتباه بودن محتوا یا هر دلیل دیگر.

در این مواقع برای اینکه بتوانیم از اثرات منفی حذف صفحه به دور بمانیم کافی است متنی مناسب برای کاربران این صفحه به نمایش در بیاوریم و از طرف دیگر، کد مناسب را نیز برای موتورهای جستجو در سرآمد پاسخ بگنجانیم.

کد 410 در سرآمد پاسخ به همین منظور تعیین شده است. این کد به موتورهای جستجو می‌گوید که محتوای این صفحه حذف شده و در آینده هم باز نخواهد گشت. این کد به موتور جستجو می‌گوید که محتوا را از بانک اطلاعاتی خود حذف کند.

ممکن است به دلایل مختلف از جمله اینکه ممکن است در آینده محتوایی با این نشانی دوباره ایجاد شود، به جای کد 410 کد 404 را ارسال کنیم.


استفاده از هر کد می‌تواند موارد استفاده و مزایا و معایب خود را داشته باشد.


سئوی سایت

  • امیرمسعود ایرانی

بهینه‌سازی شیوه‌نامه‌های( CSS ) موجود در یک صفحه‌ی وب

امیرمسعود ایرانی | جمعه, ۱۶ خرداد ۱۳۹۳، ۱۱:۱۱ ب.ظ | ۰ نظر

 با زیاد شدن رقابت در تولید سایت‌های باکیفیت و بهینه، دانستن چندین نکته در هنگام تولید شیوه‌نامه‌ها(‌CSS) جزء ضروریات به حساب می‌آیند
در این مطلب، موارد مورد نیاز به صورت فهرست درج خواهند شد

یکی کردن شیوه‌نامه‌ها
درخواست هر فایل از سرور، نیازمند صرف زمان و سبب ایجاد تاخیر در بارگزاری و نمایش سایت است. بنابراین بهتر است این فایل‌ها تا حد امکان با یکدیگر ادغام شوند و در یک درخواست به مشتری ارسال گردند

محل قرارگیری شیوه‌نامه‌ها
بهترین محل برای قراردادن این فایل‌ها، ابتدای فایل html و در بخش head است
چنانچه مرورگر پیش از مشاهده‌ی محتوا، شکل قالب‌بندی آن‌ها را بداند، فرآیند‌های تکراری برای نمایش html به حداقل می‌رسند و کاربر در زمان کوتاه‌تری اطلاعات مورد نیاز را به شکل مناسب مشاهده خواهد کرد.

حذف قانون‌های اضافی
معمولا در طول طراحی یک سایت، قانون‌های زیادی برای بخش ظاهری یک سایت ایجاد می‌شوند. به دلایل مختلف ممکن است این قانون‌ها حذف یا تغییر کنند. ولی تعریف قانون در فایل css باقی مانده باشد.
مرورگرهای مدرن امروزی، ابزارهای برای شناسایی این قانون‌ها در اختیار برنامه‌نویس قرار می‌دهند که با استفاده از آن می‌توان حجم فایل‌های css را به حداقل ممکن رساند و سرعت بارگزاری سایت را تا جایی که ممکن است افزایش داد.

ساده‌سازی قانون‌ها
برای انتخاب یک عنصر در html روش‌های مختلفی وجود دارد. سعی کنید همیشه، کوتاه‌ترین و ساده‌ترین روش را برای انتخاب یک عنصر مشخص کنید.

شیوه‌نامه‌های درون‌خطی
اگرچه قراردادن شیوه‌نامه‌ها داخل فایل html و مقابل ویژگی style باعث بی‌نظمی در فایل html می‌شود. ولی در بعضی مواقع، درج شیوه‌نامه‌های کوتاه در محل‌های خاص می‌تواند در کارایی سایت اثر قابل توجهی داشته باشد.
برای مثال جستجوی تصویر سایت گوگل، چند تصویر ابتدایی را با استفاده از شیوه‌نامه‌های درون خطی درون مرورگر نمایش می‌دهد. در نتیجه، در همان زمان که کاربر تصاویر را جستجو می‌کند، تصویرهای ابتدایی هم فورا برای او به نمایش در می‌آیند.

بارگزاری شیوه‌نامه‌ها از دامنه‌های دیگر
به دلیل محدودیت‌های موجود در تعداد درخواست‌ها از یک دامنه، چنانچه تمامی فایل‌های شما از یک دامنه بارگزاری شوند، ممکن است تاخیرهایی ناخواسته در دریافت اطلاعات به وجود آید.
علاوه بر تاخیرهای احتمالی، استفاده از دامنه‌های جایگزین می‌تواند یک ویژگی مثبت دیگر هم داشته باشد. و آن عدم ارسال cookieها به دامنه‌های جایگزین است. مرورگرها، تمامی cookieهای متعلق به سایت فعلی را همراه هر درخواست به سرور ارسال می‌کنند. چنانچه فایل‌های css از یک دامنه‌ی دیگر فراخوانی شوند، cookieهای دامنه‌ی فعلی همراه درخواست فرستاده نمی‌شوند و با کاهش حجم درخواست‌ها، سرعت افزایش پیدا خواهد کرد.
سایت‌های بزرگ مثل گوگل از این تکنیک استفاده‌ی زیادی می‌کنند.

  • امیرمسعود ایرانی