من فیلدهای عنوان (varchar)، توضیحات (متن)، کلمات کلیدی (varchar) را در جدول mysql خود دارم.
من فیلد کلمات کلیدی را حفظ کردم زیرا فکر می کردم فقط در این زمینه جستجو می کنم. اما من اکنون نیاز به جستجو در بین هر سه فیلد دارم. بنابراین برای کلمات کلیدی "word1 word2 word3" درخواست من تبدیل می شود
انتخاب * از myTable WHERE (نام مانند "%word1%" یا توضیحات مانند "%word1%" یا کلمات کلیدی مانند "%word1%" یا نام مانند "%word2%" یا توضیحات مانند "%word2%" یا کلمات کلیدی مانند "%" word2%" یا نام مانند "%word3%" یا توضیحات مانند "%word3%" یا کلمات کلیدی مانند "%word3%") AND status = "live"
کمی کثیف به نظر می رسد اما این کار می کند. اما اکنون باید جستجوی مترادف را پیاده سازی کنم. بنابراین برای یک کلمه معین با فرض وجود چند مترادف در دسترس، این پرس و جو کثیف تر می شود، زیرا تمام کلمات را مرور می کنم. همانطور که الزامات واضح تر می شوند، باید این myTable را به برخی جداول دیگر نیز بپیوندم.
- آیا روش/تکنیک دیگری وجود دارد که بتوانید به من توصیه کنید؟
آیا فکر می کنید روش بالا نامرتب است و با رشد داده ها مشکل ایجاد می کند؟
چگونه می توانم از آشفتگی بالا جلوگیری کنم؟ آیا راه حل تمیزتری وجود دارد که بتوانم از آن استفاده کنم؟ هر مثالی به من کمک خواهد کرد.
ویرایش کنید
@Peter Stuifzand به من پیشنهاد کرد که می توانم یک جدول search_index ایجاد کنم و اطلاعات هر 3 فیلد (عنوان، کلمه کلیدی، توصیف) را در آن ذخیره کنم و جستجوی متن کامل را انجام دهم. من می دانم که علاوه بر این، این جدول به کلید اصلی myTable نیز اشاره خواهد کرد.
اما جستجوی پیشرفته من ممکن است شامل پیوستن به mytable با جدول Category، جدول geographic_location (برای جستجو در 10، 20 مایل و غیره)، فیلتر کردن بر اساس معیارهای دیگر و البته مرتبسازی نتایج جستجو باشد. آیا فکر می کنید استفاده از متن کامل mysql باعث کاهش سرعت آن نمی شود؟
توسط ابراهیم دیالو
منتشر شده در 2 ژوئیه 2014 ~ 16 دقیقه خواندنجستجو یک ویژگی مهم در وب سایت است. وقتی تعداد معدودی از خوانندگان من می خواهند به دنبال متن خاصی در وبلاگ من بگردند، از کادر جستجو استفاده می کنند. قبلاً توسط جستجوی Google پشتیبانی می شد، اما از آن زمان به بعد آن را به نسخه خانگی خودم تغییر دادم نه به این دلیل که می توانم بهتر انجام دهم، بلکه به این دلیل که چالش جالبی بود.
اگر عجله دارید و فقط می خواهید سایت شما قابل جستجو باشد، خوب همان کاری را که قبلا انجام دادم انجام دهید، از گوگل استفاده کنید.
// در فایل search.php $term = isset($_GET["query"])؟$_GET["query"]: ""; $term = urlencode ($term); $website = urlencode ("www.yourwebsite.com"); $redirect = "https://www.google.com/search?q=site%3A($website)+($term)"; header("مکان: $redirect"); خروج؛
کاری که انجام می دهد بسیار ساده است. عبارت مورد نظر توسط کاربر را دریافت کنید و آن را به صفحه جستجوی Google ارسال کنید. با استفاده از سایت: کلمه کلیدی در عبارت جستجو، نتیجه جستجو را به دامنه فعلی ما محدود کنید. تمام صفحات شما که توسط گوگل ایندکس شده اند، اکنون از طریق جستجو در دسترس خواهند بود. اگر میخواهید جستجوی خود را در خانه انجام دهید، به خواندن ادامه دهید.
راه حل جستجوی خانگی
قبل از اینکه ادامه دهیم، سعی کنید از کادر جستجو در این وبلاگ استفاده کنید. از همان فرآیندی استفاده می کند که در زیر توضیح خواهم داد. اگر احساس می کنید که این همان چیزی است که می خواهید، لطفا به خواندن ادامه دهید.
این راه حل برای وب سایت های کوچک ارائه می شود. من از LIKE با کارت های وحشی در هر دو طرف استفاده می کنم، به این معنی که جستجوی شما نمی تواند ایندکس شود. این بدان معنی است که راه حل برای وبلاگ یا وب سایت شخصی شما که حاوی داده های زیادی نیست به خوبی کار می کند. آن را به یک وب سایت بزرگتر منتقل کنید و ممکن است بسیار کند شود. MySQL جستجوی متن کامل را ارائه می دهد که این چیزی نیست که ما اینجا انجام می دهیم.
توجه داشته باشید:اگر 5000 پست وبلاگ دارید، هنوز خوب هستید. .
ما ساختار این وبلاگ را به عنوان مرجع در نظر خواهیم گرفت. هر پست وبلاگ دارای:
- عنوان p_title
- یک آدرس اینترنتی p_url
- خلاصه p_summary
- محتوای پست p_content
- و دسته بندی ها category.tagname
برای هر فیلدی که با عبارت جستجوی ما مطابقت دارد، به آن امتیاز می دهیم. امتیاز بر اساس اهمیت مسابقه خواهد بود:
// عبارت دقیق منطبق در عنوان یافت می شود $scoreFullTitle = 6; // عنوان را در قسمت مطابقت دهید $scoreTitleKeyword = 5; // عبارت دقیق منطبق در خلاصه موجود است $scoreFullSummary = 5; // مطابق با خلاصه در قسمت $scoreSummaryKeyword = 4; // عبارت دقیق مطابقت در محتوا یافت می شود $scoreFullDocument = 4; // مطابقت با سند در قسمت $scoreDocumentKeyword = 3; // با یک دسته مطابقت دارد $scoreCategoryKeyword = 2; // با url مطابقت دارد $scoreUrlKeyword = 1;
قبل از شروع، چند کلمه وجود دارد که کمک زیادی به جستجو نمی کنند و باید حذف شوند. مثال "در"، "آن"، "الف"، "از"، "از" ... . ما آنها را فیلتر میکنیم و هر کلمهای که فکر میکنید نامربوط است اضافه کنید. چیز دیگر این است که ما می خواهیم طول پرس و جو خود را محدود کنیم. ما نمی خواهیم کاربر در قسمت جستجو رمان بنویسد و سرور MySQL ما را خراب کند.
// کلمات غیر ضروری را از عبارت جستجو حذف کنید و آنها را به عنوان تابع آرایه برگردانید filterSearchKeys($query)($query = trim(preg_replace("/(\s+)+/», " ", $query)); $words = array(); // این لیست را با کلمات خود گسترش دهید. $list = آرایه("in"، "it"، "a"، "the"، "of"، "یا"، "من"، "شما"، «او»، «من»، «ما»، «آنها»، «او»، «به»، «اما»، «آن»، «این»، «آنها»، «سپس»؛ $c = 0; foreach(explode(" ", $query) به عنوان $key)( if (in_array($key, $list))( continue; ) $words = $key; if ($c >= 15)( break; ) $c++ ; ) بازگشت $words; ) // محدود کردن کلمات تعداد کاراکترها تابع limitChars($query, $limit = 200)( return substr($query, 0,$limit); )
توابع کمکی ما اکنون می توانند تعداد کاراکترها را محدود کرده و کلمات بی فایده را فیلتر کنند. روشی که ما الگوریتم خود را پیادهسازی میکنیم این است که هر بار که یک تطابق پیدا میکنیم، یک امتیاز میدهیم. کلمات را با استفاده از دستور if مطابقت می دهیم و با تطبیق کلمات بیشتر امتیاز جمع می کنیم. در پایان می توانیم از آن امتیاز برای مرتب سازی نتایج خود استفاده کنیم
توجه داشته باشید:من نحوه اتصال به پایگاه داده MySQL را نشان نمی دهم. اگر برای اتصال موثر به پایگاه داده مشکل دارید، توصیه می کنم این را بخوانید.
بیایید ابتدا یک ساختار به تابع خود بدهیم.توجه داشته باشید که من متغیرهایی را گذاشتم تا بتوانیم بخش ها را جداگانه پیاده سازی کنیم.
جستجوی تابع($query)($query = trim($query); if (mb_strlen($query)===0)( // نیازی به جستجوی خالی نیست درست است؟ بازگشت نادرست؛ ) $query = limitChars($query) ؛ // نمرات وزن $scoreFullTitle = 6؛ $scoreTitleKeyword = 5؛ $scoreFullSummary = 5؛ $scoreSummaryKeyword = 4؛ $scoreFullSummaryS = 4؛ $scoreDocumentKeyword = 3؛ $scoreDocumentKeyword = 3؛ $scoreDocumentKeyword = 3؛ $scoreDocumentKeyword = 3; کلیدها ( $query؛ $escQuery = DB::escape($query)؛ // برای دریافت شی db به یادداشت بالا مراجعه کنید $titleSQL = array(); $sumSQL = array(); $docSQL = array(); $categorySQL = آرایه ()؛ $urlSQL = آرایه()؛ /** تطبیق رخدادهای کامل PLACE HOLDER **/ /** تطبیق کلمات کلیدی PLACE HOLDER **/ $sql = "SELECT p.p_id,p.p_title,p.p_date_published,p. p_url, p.p_summary,p.p_content,p.thumbnail, ((-- امتیاز عنوان ".implode(" + ", $titleSQL).")+ (-- خلاصه ".implode(" + ", $sumSQL) .")+ (-- سند ".implode(" + "، $docSQL).")+ (-- tag/category ".implode(" + ", $categorySQL).")+ (-- url ". implode(" + ", $urlSQL).")) به عنوان ارتباط از پست p WHERE p.status = "منتشر شده" HAVING ارتباط >
در پرس و جو، تمام امتیازات به عنوان متغیر مرتبط خلاصه می شود و می توانیم از آن برای مرتب سازی نتایج استفاده کنیم.
تطبیق وقوع کامل
ابتدا مطمئن می شویم که چند کلمه کلیدی داریم و سپس درخواست خود را اضافه می کنیم.
If (count($keywords) > 1)($titleSQL = "if (p_title LIKE "%".$escQuery."%",($scoreFullTitle),0)"؛ $sumSQL = "if (p_summary LIKE "%" .$escQuery."%",($scoreFullSummary),0)"; $docSQL = "اگر (p_content مانند "%".$escQuery."%",($scoreFullDocument),0)"؛ )
این مسابقات با امتیاز بالاتر است. اگر عبارت جستجو با مقاله ای که حاوی این موارد است مطابقت داشته باشد، شانس بیشتری برای ظاهر شدن در بالا خواهند داشت.
تطبیق کلمات کلیدی
ما همه کلمات کلیدی را حلقه می کنیم و بررسی می کنیم که آیا آنها با هر یک از فیلدها مطابقت دارند یا خیر. برای تطابق دسته، از یک جستار فرعی استفاده کردم زیرا یک پست می تواند چندین دسته داشته باشد.
Foreach($keywords به عنوان $key)( $titleSQL = "if (p_title LIKE "%.DB::escape($key)."%",($scoreTitleKeyword),0)"؛ $sumSQL = "if (p_summary LIKE "%".DB::escape($key).."%",($scoreSummaryKeyword),0)"; $docSQL = "if (p_content LIKE "%".DB::escape($key)."% ",($scoreDocumentKeyword),0)"؛ $urlSQL = "if (p_url LIKE "%".DB::escape($key)."%",($scoreUrlKeyword),0)"؛ $categorySQL = "اگر ((انتخاب تعداد(category.tag_id) FROM دسته بپیوندید post_category ON post_category.tag_id = category.tag_id WHERE post_category.post_id = p.post_id AND category.name = "".DB::escape($key).") > 0 ,($scoreCategoryKeyword),0)"؛)
همچنین همانطور که توسط یک نظر دهنده در زیر اشاره شده است، ما باید مطمئن شویم که این متغیرها آرایه های خالی نیستند یا پرس و جو با شکست مواجه می شود.
// فقط آن را خالی قرار دهید، اگر (خالی($titleSQL))($titleSQL = 0; ) اگر (خالی($sumSQL))($sumSQL = 0;) 0 اضافه کنید اگر (خالی($docSQL))( $docSQL = 0; ) if (خالی($urlSQL))($urlSQL = 0; ) اگر (خالی($tagSQL))($tagSQL = 0; )
در پایان، پرسشها به هم پیوسته و با هم جمع میشوند تا ارتباط پست با عبارت جستجو مشخص شود.
// کلمات غیر ضروری را از عبارت جستجو حذف کنید و آنها را به عنوان تابع آرایه برگردانید filterSearchKeys($query)($query = trim(preg_replace("/(\s+)+/», " ", $query)); $words = array(); // این لیست را با کلمات خود گسترش دهید. $list = آرایه("in"، "it"، "a"، "the"، "of"، "یا"، "من"، "شما"، «او»، «من»، «ما»، «آنها»، «او»، «به»، «اما»، «آن»، «این»، «آنها»، «سپس»؛ $c = 0; foreach(explode(" ", $query) به عنوان $key)( if (in_array($key, $list))( continue; ) $words = $key; if ($c >= 15)( break; ) $c++ ; ) بازگشت $words; ) // محدود کردن کلمات تعداد کاراکترها تابع limitChars($query, $limit = 200)( return substr($query, 0,$limit); ) تابع جستجو($query)($query = trim ($query)؛ if (mb_strlen($query)===0)( // بدون نیاز به جستجوی خالی درست است؟ بازگشت نادرست؛ ) $query = limitChars($query)؛ // نمرات وزنی $scoreFullTitle = 6؛ $ scoreTitleKeyword = 5؛ $scoreFullSummary = 5؛ $scoreSummaryKeyword = 4؛ $scoreFullDocument = 4؛ $scoreDocumentKeyword = 3؛ $scoreCategoryKeyword = 2؛ $scoreUrlKeyword = 1. $keywords = filterSearchKeys($query); $escQuery = DB::escape($query); // برای دریافت شی db به یادداشت بالا مراجعه کنید $titleSQL = array(); $sumSQL = array(); $docSQL = array(); $categorySQL = array(); $urlSQL = array(); /** تطبیق موارد کامل **/ if (count($keywords) > 1)( $titleSQL = "if (p_title LIKE "%".$escQuery."%",($scoreFullTitle),0)"; $sumSQL = "if (p_summary LIKE "%".$escQuery."%",($scoreFullSummary),0)"; $docSQL = "if (p_content LIKE "%".$escQuery."%",($scoreFullDocument)، 0)"؛ ) /** کلمات کلیدی مطابق **/ foreach($keywords به عنوان $key)( $titleSQL = "if (p_title LIKE "%".DB::escape($key)."%",($scoreTitleKeyword ),0)"؛ $sumSQL = "if (p_summary LIKE "%".DB::escape($key)."%"،($scoreSummaryKeyword),0)"؛ $docSQL = "if (p_content LIKE "% ".DB::escape($key)."%",($scoreDocumentKeyword),0)"; $urlSQL = "if (p_url LIKE "%".DB::escape($key).."%، ($scoreUrlKeyword),0)"؛ $categorySQL = "اگر ((انتخاب تعداد(category.tag_id) از دسته بندی JOIN post_category ON post_category.tag_id = category.tag_id WHERE post_category.post_id = p.post_id "AND category.name" DB::escape($key)."") > 0,($scoreCategoryKeyword),0)"؛ ) // فقط خالی است، 0 اضافه کنید اگر (خالی($titleSQL))($titleSQL = 0 ; ) اگر (خالی($sumSQL))($sumSQL = 0; ) if (خالی($docSQL))($docSQL = 0; ) if (خالی($urlSQL))($urlSQL = 0; ) اگر (خالی($tagSQL))($tagSQL = 0; ) $sql = " p.p_id,p.p_title,p.p_date_published,p.p_url, p.p_summary,p.p_content,p.thumbnail, (-- امتیاز عنوان ".implode(" + ", $titleSQL) را انتخاب کنید. ")+ (-- خلاصه ".implode(" + "، $sumSQL).")+ (-- سند ".implode(" + "، $docSQL).")+ (-- tag/category ".implode (" + "، $categorySQL).")+ (-- url ".implode(" + ", $urlSQL).")) به عنوان ارتباط از پست p WHERE p.status = "منتشر شده" HAVING مرتبط > 0 ORDER BY ارتباط DESC,p.page_views DESC LIMIT 25"; $نتایج = DB::query($sql); if (!$results)( return false; ) return $results; )
حالا فایل search.php شما می تواند به شکل زیر باشد:
$term = isset($_GET["پرسش"])؟$_GET["پرسش"]: ""; $search_results = جستجو ($term); if (!$search_results) ( echo "بدون نتیجه"؛ خروج؛ ) // صفحه را با نتایج در اینجا چاپ کنید.
ما یک الگوریتم جستجوی ساده ایجاد کردیم که می تواند حجم مناسبی از محتوا را مدیریت کند. من خودسرانه امتیاز هر مسابقه را انتخاب کردم، در صورت تمایل آن را به چیزی تغییر دهید که برای شما بهترین کار را دارد. و همیشه جای پیشرفت وجود دارد.
این ایده خوبی است که عبارت جستجو شده از کاربران خود را ردیابی کنید، به این ترتیب می توانید ببینید که آیا اکثر کاربران همان مورد را جستجو می کنند یا خیر. اگر الگوی وجود دارد، میتوانید سفری را برای آنها ذخیره کنید و فقط نتایج را با استفاده از حافظه پنهان ذخیره کنید Memcached.
اگر میخواهید این الگوریتم جستجو را در عمل ببینید، به دنبال مقالهای در کادر جستجو در بالای صفحه باشید. من ویژگی های اضافی مانند برگرداندن بخشی که مطابقت در متن پیدا شده است اضافه کرده ام. با خیال راحت به امکانات خود اضافه کنید.
آیا این مقاله را پسندیدید؟ برای خواندن مطالب عالی تر می توانید مشترک شوید. .
در یک یادداشت مرتبط، در اینجا چند مقاله جالب وجود دارد.
وقت آن است که یک بار برای همیشه با توابع mysql_* مقابله کنیم. این روش ها منسوخ و کند هستند. زمان ارتقا خیلی گذشته است، اما هنوز آن را در همه جا می بینیم. از آنجایی که نمی توانم هر نویسنده ای را مجبور کنم که آموزش و وبلاگ خود را به روز کند، تصمیم گرفتم یک پست بنویسم تا امیدوارم رتبه بهتری داشته باشم و اطلاعات ضروری را برای کمک به تازه واردان ارائه دهم.
ساختن وب سایت خود نباید خیلی سخت باشد. شرکت های میزبانی مانند Godaddy یا Hostgator شروع کار را برای همه آسان می کنند؛ آنها به شما این امکان را می دهند که یک وب سایت کامل بدون نوشتن کد ایجاد کنید. برای اکثر مردم، اجرای یک وب سایت کافی است. وبلاگ وردپرس. اگر این چیزی است که به دنبال آن هستید، باید همین الان به Godaddy.com سر بزنید. کار ما در اینجا تمام شده است. اما از طرف دیگر، اگر می خواهید کنترل داشته باشید و در کوتاه مدت یک هاست اشتراکی محدود نشوید. بدون شکستن کیف پول خود، به جای مناسب آمده اید.
Vim ویرایشگر متن مورد علاقه من در ترمینال است. بعد از مدتی بازی با nano و emacs، در نهایت با vim به دلیل سادگی آن (لطفاً با من صحبت کنید) راضی شدم. اگرچه می توان آن را سفارشی کرد و مانند یک IDE کامل از آن استفاده کرد، من بیشتر از آن برای ویرایش فایل ها در سرورهایم و ایجاد تغییرات کوچک اما حیاتی استفاده می کنم. بیایید وارد جنگ ویرایشگر نشویم و شروع کنیم.
نظرات (45)
زریل 12 اوت 2015:
ایان مصطفی 26 سپتامبر 2015:
غارت 29 سپتامبر 2015:
ادم 11 فوریه 2016:
ایوان وندیکتوف 9 آوریل 2016.
البته، هر کسی که حداقل ایده ای از ارتقاء موتور جستجو دارد، از معنای متا تگ ها می داند. همه از اهمیت عنوان، توضیحات، h1-h6، alt و سایر برچسب ها آگاه هستند. هیچ کس انکار نمی کند که آنها بر بهینه سازی وب سایت تأثیر می گذارند. اما موتورهای جستجو نسبت به یکی از برچسب ها - برچسب کلمات کلیدی - نگرش دوسویه دارند.
در سال های اخیر، بحث داغی در اینترنت وجود داشته است که تا به امروز ادامه دارد: آیا اصلاً ارزش استفاده از متا تگ کلمات کلیدی را دارد؟ متاسفانه هنوز کسی نمی تواند پاسخ دقیقی بدهد. بیایید دیدگاه های مختلف را در نظر بگیریم و سعی کنیم این موضوع را درک کنیم.
کلمات کلیدی چیست؟
کلمات کلیدی کلمات کلیدی هستند (بیش از 20 برای یک صفحه از سایت) متناظر با محتوای صفحه.
در کد صفحه، این متا تگ به شکل زیر است:
در ابتدا، تگ تأثیر قابل توجهی بر مرتبط بودن صفحات سایت و در نتیجه در رتبه بندی سایت در رتبه های برتر موتورهای جستجو داشت.
با دانستن این موضوع، صاحبان سایت شروع به تقلب کردند - از کلمات کلیدی سوء استفاده کردند یا تعداد زیادی کلمات نامناسب را به این برچسب اضافه کردند. و موتورهای جستجو به سرعت این را کشف کردند.
چه اتفاقی دارد می افتد؟
همانطور که می گویند، از یک افراط به دیگری: در نتیجه، موتورهای جستجو به هیچ وجه معنایی را به این برچسب نمی چسبانند.
Yandex
نمایندگان Yandex در مورد کلمات کلیدی موارد زیر را بیان کردند: «...ممکن است هنگام تعیین اینکه آیا یک صفحه با جستارهای جستجو مرتبط است، در نظر گرفته شود».
لطفا توجه داشته باشید که کلمه کلیدی اینجاست شاید. گذشته از همه اینها شایداصلا به این معنی نیست در نظر گرفته شده است.
گوگل
این سیستم هیچ شک و تردیدی باقی نمی گذارد و هیچ زمینه ای برای فکر کردن نمی دهد. اینجا همه چیز مختصر و واضح است: "ما از متا تگ کلمات کلیدی در رتبه بندی جستجو استفاده نمی کنیم"، "گوگل سال ها متا تگ کلمات کلیدی را نادیده می گیرد و در حال حاضر نیازی به تغییر آن خط مشی نمی بینیم.".
"ما از متا تگ کلمات کلیدی در رتبه بندی جستجو استفاده نمی کنیم"، "گوگل سال ها متا تگ کلمات کلیدی را نادیده می گیرد و در حال حاضر نیازی به تغییر این سیاست نیست".
Rambler، Yahoo، Mail.ru
آنها هم نظر گوگل را دارند و معتقدند که متا تگ کلمات کلیدی کاربرد خود را تمام کرده است. بنابراین اصلاً مورد توجه این موتورهای جستجو قرار نمی گیرد.
اما چرا بسیاری از افراد هنوز از کلمات کلیدی استفاده می کنند؟
به احتمال زیاد، این به دلیل عبارت مبهم Yandex در مورد برچسب است. منطق صاحبان سایت این است: اگر امید وجود داشته باشد که Yandex برچسب را در نظر بگیرد و Google، Rambler، Yahoo و Mail.ru در مورد متا تگ بی طرف باشند، پس پر کردن آن اوضاع را بدتر نمی کند.
اگر انجام دهد چه؟
نظری در بین بهینه سازان وجود دارد که پر کردن تگ کلمات کلیدی می تواند مضر باشد. اگر موتورهای جستجو یک برچسب را به عنوان برچسب در نظر نگیرند، متن موجود در آن به عنوان متن معمولی سایت خوانده می شود. و اگر قبلاً از این کلیدها در سایر برچسب ها و در متن متن استفاده کرده اید، در این صورت خطر "بیش از حد اسپم" صفحه با کلیدها وجود دارد. خب، بیش از حد اسپم (تهوع بیش از حد) می تواند شما را تحت فیلتر قرار دهد.
دیدگاه 1PS
تا اینجا وضعیت کلی و نظرات متفاوت در این مورد را شرح دادیم. هر کس دیدگاه خود را دارد. حرف ما این است که بهتر است تگ کلمات کلیدی را پر نکنید. قطعا هیچ سودی از آن وجود ندارد، اما همچنان خطر افتادن زیر فیلتر وجود دارد.
بهتر است وب سایت خود را با محتوا و برچسب های مناسب تبلیغ کنید
P.S. در تبلیغ منبع خود موفق باشید.
ما به مشتریان مختلفی در بازاریابی اینترنتی و وبسایتهایشان کمک میکنیم، و یک سؤال اغلب این است که «چگونه کلمات کلیدی را به یک وبسایت اضافه میکنید؟» ممکن است تصور کنید که ما فرمول ها و کدهای بسیار پیچیده را به صفحه کامپیوتر اضافه می کنیم.
اما حقیقت این است که اصول اولیه ساده تر از آن چیزی است که فکر می کنید. ما حتی به مشتریان خود که وبلاگهای تجاری خود را مدیریت میکنند، یاد میدهیم که چگونه صفحات وبسایت خود را با کلمات کلیدی بنویسند تا راحتتر در موتورهای جستجو پیدا شوند. هدف از این مقاله وبلاگ آموزش اصولی در مورد نحوه افزودن کلمات کلیدی به وب سایت است. مطمئن نیستید که نمی خواهید وقت بگذارید؟ به خدمات SEO ما در اینجا نگاهی بیندازید، خوشحال می شویم به شما کمک کنیم.
چرا باید بدانید چگونه کلمات کلیدی را به وب سایت اضافه کنید؟
با یادگیری نحوه افزودن کلمات کلیدی به یک وب سایت، می توانید وبلاگ ها، صفحات وب سایت و سایر مطالب بازاریابی اینترنتی خود را کلمه کلیدی کنید. شما همچنین زمینه ای برای اینکه چرا سئو برای کسب و کار شما بسیار مهم است به دست خواهید آورد.
چگونه افزودن کلمات کلیدی به وب سایت من می تواند به کسب و کار من کمک کند؟
افزودن کلمات کلیدی به وبسایتتان به موتورهای جستجو کمک میکند تا بفهمند وبسایت شما چه چیزی را میتواند به افراد جستجوگر ارائه دهد، و در نهایت ترافیک واجد شرایط بیشتری را برای شما به ارمغان میآورد. چگونه؟ با شناسه ها، مانند کلمات کلیدی. بدون کلمات کلیدی در صفحات وب سایت شما، هیچ راهی برای موتور جستجو وجود ندارد که وب سایت شما را دسته بندی کند و آن را به افرادی که جستجو می کنند نشان دهد.اینگونه فکر کنید، یک مقاله خوب نوشته شده دارای یک پایان نامه، و استدلال های پشتیبانی کننده است که به پایان نامه مربوط می شود. خوانندگان مقالات به خوبی نوشته شده درک روشنی از موضوع چیست و مقاله در مورد چیست. این همان نظریه پشت گوگل و سایر موتورهای جستجو است. در واقع دو دانشجو از استانفورد گوگل را با همین ایده در ذهن ایجاد کردند.
یک وب سایت خوب دارای یک موضوع اصلی است و اغلب دارای دسته های فرعی است که به موضوع اصلی مربوط می شود و با کلیدواژه گذاری هر یک از این زمینه ها می توانیم تصویر واضحی به موتورهای جستجو ارائه دهیم و افرادی که جستجو می کنند می توانند راحت تر شما را پیدا کنند. . مثلا:
موضوع اصلی شما ممکن است این باشد:دونات
زیرمجموعه ها یا موضوعات شما می تواند:کیک، سوراخ دونات، میله،…
انتخاب کلمات کلیدی برای وب سایت شما
اکنون که چارچوب یک سایت و اهمیت آن را فهمیدید، زمان انتخاب کلمات کلیدی است. چگونه؟ ما از تعدادی ابزار استفاده می کنیم و تحقیقات گسترده ای برای کلمات کلیدی خود انجام می دهیم. با این حال یکی از ابزارهایی که رایگان است ابزار کلمات کلیدی گوگل است. به سادگی اطلاعات مکان و دسته بندی خود را وارد کنید، سپس موضوع اصلی وب سایت خود را تایپ کنید. این ابزار تعدادی کلمات کلیدی تولید می کند و آماری مانند این را به شما می دهد:
رقابت:(کم، متوسط، زیاد) این به شما می گوید که چند نفر در تلاش هستند برای آن کلمه یا عبارت کلمه کلیدی را وارد کنند. هر چه رقابت بالاتر باشد، کسب رتبه بالا در گوگل برای آن عبارت جستجو دشوارتر است.
حجم ماهانه جهانی: چند جستجو در ماه در سطح جهان برای آن عبارت انجام می شود.
ماهنامه محلی:با اطلاعاتی که در جستجوی خود قرار می دهید تعیین می شود. اگر مکان خود را ایالات متحده مشخص کرده اید. سپس تعداد جستجوهای ماهانه برای آن عبارت در ایالات متحده خواهد بود.
در حالی که استفاده از این ابزار آسان است، با همه کلمات کلیدی یکسان رفتار نمی شود. در واقع برخی از کلمات کلیدی ترافیک بیشتری را نسبت به دیگران برای شما به ارمغان می آورند و برخی ممکن است ترافیک زیادی را برای شما به ارمغان بیاورند که هرگز تبدیل نمی شود. به همین دلیل است که ما به صاحبان مشاغل به شدت توصیه می کنیم آژانسی را استخدام کنند که در زمینه SEO و کلمات کلیدی آموزش دیده است تا به آنها در بازاریابی اینترنتی کمک کند.
چند کلمه کلیدی در هر صفحه باید اضافه کنم؟
پس از انجام تحقیقات کلمه کلیدی خود باید انتخاب کنید یک کلمه کلیدیبرای هر یک از صفحات وب سایت یا وبلاگ شما. کلمات کلیدی باید مختص موضوع صفحه باشند و با موضوع کلی وب سایت شما مرتبط باشند.
نمونه ای از انتخاب کلمه کلیدی خوب:
موضوع اصلی وب سایت:دونات
صفحه وب سایت:دونات افرا
کلمه کلیدی اختصاص داده شده:بهترین دونات افرا
مثالی از انتخاب بد کلمه کلیدی:
موضوع اصلی وب سایت:دونات
صفحه وب سایت:دونات افرا
کلمه کلیدی اختصاص داده شده:دستور العمل های دونات
چگونه کلمات کلیدی را به صفحه وب سایت خود اضافه کنید:
هنگام افزودن کلمات کلیدی به وب سایت خود، مهم است که کلمه کلیدی خود را در 6 مکان در هر صفحه وب سایت خود قرار دهید. گنجاندن کلمه کلیدی خود در این 6 زمینه به موتورهای جستجو کمک می کند تا موضوع صفحه شما را شناسایی کرده و صفحه شما را در نتایج جستجو رتبه بندی کنند.
- عنوان صفحه
- توضیحات متا
- سرتیتر
- عنوان فرعی
- پاراگراف های بدن
- تگ های جایگزین تصویر
عنوان صفحه و توضیحات متا:
عنوان صفحه و توضیحات متا بخش فنی تری از کلمات کلیدی وب سایت شما هستند. با این حال، مهم است که بدانید آنها چقدر می توانند برای تلاش های بازاریابی اینترنتی شما ارزشمند باشند. عنوان صفحه و توضیحات متا چیست؟ این بخشهای صفحه وبسایت شما در واقع در نتایج جستجو نشان داده میشوند، این اولین برداشتی است که جستجوگر از صفحه وبسایت شما میگیرد.
اگر به عنوان صفحه یا توضیحات متا وب سایت خود دسترسی ندارید، مهم است که با شرکت مدیریت وب سایت خود بررسی کنید که این قسمت ها به درستی برای SEO پر شده اند.
سرصفحه ها:
هدرها بسیار شبیه بیلبوردهای موتورهای جستجو هستند. آنها یکی از بزرگترین راه ها برای نشان دادن موضوع اصلی صفحه شما به موتورهای جستجو هستند. مهم است که کل کلمه کلیدی خود را در هدر خود قرار دهید.
سرفصل های فرعی:
سرفصلهای فرعی قسمت دیگری هستند که به موتورهای جستجو میگویند که میخواهید صفحه وبسایت برای چه چیزی پیدا شود. این منطقه را به عنوان املاک و مستغلات در نظر بگیرید، اگر سعی نکنید کلمات کلیدی خود را در عنوان فرعی قرار دهید، آن را از دست داده اید.
پاراگراف اصلی:
هنگام نوشتن محتوای بدنه برای صفحه وب سایت خود، باید سعی کنید کلمه کلیدی خود یا حداقل بخشی از کلمه کلیدی خود را درج کنید. به یاد داشته باشید که نوشتار خود را طبیعی نگه دارید، موتورهای جستجو در واقع شما را جریمه می کنند اگر نوشته شما با کلمات کلیدی پر شده و غیرطبیعی به نظر برسد. وقتی برای اولین بار سعی می کنید با کلمات کلیدی بنویسید ممکن است برایتان مشکل باشد، اما به تمرین ادامه دهید! این واقعا آسان تر می شود و شما در شکل دادن به محتوای خود برای افزودن کلمات کلیدی بهتر خواهید بود.
برچسبهای جایگزین تصویر:
تصاویر افزودنی عالی برای هر صفحه وب هستند، در واقع آنها حتی می توانند به موتورهای جستجو در رتبه بندی شما کمک کنند. تگ های Alt اساساً برچسبی هستند که به تصویر خود اختصاص می دهید تا موتورهای جستجو بتوانند تصویر را بخوانند. اگر از تگ های Alt برای تصاویر استفاده نمی کنید، موتورهای جستجو آن را نمی بینند. با کلمه کلیدی این تصاویر Alt Tags شما به موتورهای جستجو می گویید "من از یک عکس استفاده کردم و به موضوع صفحه من مربوط می شود."
در اینجا شما آن را دارید، اکنون اصول اولیه نحوه افزودن کلمات کلیدی به یک وب سایت را می دانید. ما می دانیم که به نظر دلهره آور است، اما اگر زمان کافی برای نوشتن وبلاگ یا محتوای وب سایت خود را دارید، توصیه می کنیم از برخی از نکات ذکر شده در بالا استفاده کنید. این تاکتیکها میتوانند ترافیک بیشتری را به وبسایت شما وارد کنند و به واجد شرایط بودن سرنخهای وبسایت شما کمک کنند. این بدان معناست که بازدیدهای بیهوده و مشتریان بیشتری برای کسب و کار شما وجود ندارد.
اگر این مقاله را در هر صورت مفید یافتید، لطفاً آن را با یک دوست "به اشتراک بگذارید".
قبلاً چندین بار از من خواسته شده است که مقاله ای در مورد آن بنویسم نحوه پیاده سازی جستجو در وب سایت با استفاده از PHP. این کار آسانی نیست، حتی می توانم بگویم بسیار دشوار است، زیرا تعداد زیادی از تفاوت های ظریف و موانع وجود دارد. در این مقاله به تجزیه و تحلیل خواهم پرداخت الگوریتم جستجوی وب سایت.
بیایید فرض کنیم که وب سایت ما دارای بسیاری از مطالب مختلف (مقالات، اخبار، یادداشت ها و غیره) است. همه این موارد در پایگاه داده است. و وظیفه ما این است اجرای جستجو در سایت. ساده ترین الگوریتم به شرح زیر است:
- ايجاد كردن فرم HTMLبا نوار جستجو و همچنین دکمه " ارسال". کاربران یک عبارت جستجو را در قسمت متن وارد می کنند و سپس روی دکمه کلیک می کنند.
- عبارت جستجو را دریافت کنید (معمولاً با روش ارسال می شود گرفتن، اما گاهی اوقات نیز استفاده می کنند پست) و همچنین به منظور محافظت در برابر XSS، آن را از تابع عبور دهید htmlspecialchars().
- از جداول مربوطه (با مقالات، اخبار، یادداشت ها و غیره) از آن دسته از رکوردهایی که شامل عبارت جستجو هستند، انتخاب کنید. من نمونه ای از پرس و جوی SQL را برای چنین مواردی نشان می دهم: SELECT * FROM articles WHERE `text_article` LIKE %search% بر این اساس، به جای جستجو کردنرشته جستجو جایگزین شده است.
- پس از دریافت سوابق، آنها را به شکل مورد نیاز، ترجیحا بر اساس ارتباط، نمایش می دهیم. به عنوان مثال، من این کار را در وب سایت خود انجام دادم: جایی که بیشترین تطابق وجود دارد، آن مقاله مرتبط ترین است، بنابراین، آن را در ابتدا قرار دادم. به احتمال زیاد، این روش ارزیابی ارتباط نیز برای شما مناسب خواهد بود.
بسیاری از شما خواهید گفت که در اینجا هیچ چیز پیچیده ای وجود ندارد. و آنها تا حدی درست خواهند بود، با این حال، بیایید به این مثال از یک رشته جستجو نگاه کنیم: من دنبال این متن هستم". این سوال پیش می آید: " دقیقا "دنبال چه چیزی هستید.". یا وقوع دقیق متن در حال جستجو است" من دنبال این متن هستمیا شاید متنی جستجو شود که هر سه کلمه در آن وجود دارد، اما ممکن است به دنبال یکدیگر نباشند. یا شاید، متنی جستجو شود که حداقل یکی از این کلمات وجود داشته باشد.
و اینجاست که کار به طور قابل توجهی پیچیده تر می شود. شما می توانید یک سیستم نحو پیچیده ایجاد کنید (مانند موتورهای جستجو)، به عنوان مثال، اگر پرس و جو در نقل قول مشخص شده باشد، یک رخداد دقیق جستجو می شود. و می توانید به کاربران حق انتخاب دقیق نحوه جستجو را بدهید (با استفاده از دکمه های رادیویی). این روش در وب سایت من انجام شد. بنابراین یک نکته دیگر به الگوریتم قبلی اضافه می شود: کامپایل یک پرس و جو SQL. در اینجا نمونه ای از یک پرس و جوی SQL است، زمانی که شما نیاز دارید همه مطالبی را که حاوی حداقل یک کلمه از پرس و جو هستند بیرون بکشید. من دنبال این متن هستم":
SELECT * از مقالات WHERE (`text_article` LIKE "% به دنبال%" یا `text_article` LIKE "%this%" OR `text_article` LIKE "%text%")
بر این اساس، در اسکریپت جستجو باید مشابه ایجاد کنید پرس و جوهای SQL، ارسال به پایگاه داده، دریافت پاسخ و خروجی آن. اگر پستها را بر اساس ربط نمایش میدهید، این موضوع حتی پیچیدهتر میشود، زیرا تشخیص اینکه کدام یک باید مرتبطتر باشد، دشوار است: 3 وقوع دقیق درخواست، یا 10 وقوع قطعات پرس و جو در سایت من، اولویت همیشه به رخدادهای دقیق داده می شود، اما این نکته در حال حاضر کاملاً بحث برانگیز است. البته این کار سختی است و اگر برای اولین بار است که این کار را انجام می دهید، قطعا چندین ساعت وقت خواهید گذاشت. امیدوارم مال منه الگوریتم پیاده سازی جستجوی وب سایت از طریق PHPاین به شما کمک خواهد کرد.