<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های میثم سلیمی</title>
        <link>https://virgool.io/feed/@meysam.salimi8</link>
        <description>علاقه مند به سئو و دنیای کسب کار آنلاین</description>
        <language>fa</language>
        <pubDate>2026-06-16 10:35:07</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/64183/avatar/dMghYk.jpg?height=120&amp;width=120</url>
            <title>میثم سلیمی</title>
            <link>https://virgool.io/@meysam.salimi8</link>
        </image>

                    <item>
                <title>خودکارسازی فرایند محاسبه SOV در سئو</title>
                <link>https://virgool.io/@meysam.salimi8/sov-automation-gxryllbfdmve</link>
                <description>Coverسلام، من میثمماگه متخصص سئو هستید، احتمالا تا حالا SOV یا Share of Voice به گوشتون خورده؛ اگه به گوشتون خورده احتمالا رفتید سمتش و برای بیزینسی که توش کار سئو انجام میدید SOV رو محاسبه کردید؛ اگه هیچ آشنایی باهاش ندارید به نظرم قبل از خوندن این مقاله برید یکم در موردش سرچ کنید. قبلا حجت مسگری توی یه ویدیوی آموزشی روش محاسبه SOV رو توضیح داده که از طریق این لینک می‌تونید ببینید.تا حالا به این فکر کردید که محسابه SOV رو اتومیت کنید و گزارش به صورت دوره‌ای آپدیت بشه؟ با این کار دیگه نیازی نیست بعد از یه مدت، دوباره این فرایند رو از اول انجام بدید.ما توی بیمه بازار بهش فکر کردیم و گفتیم خوب میشه اگه انجامش بدیم.پس توی این مقاله درباره اتومیت کردن فرایند محاسبه SOV صحبت می‌کنم.برای اتومیت کردن محاسبه SOV به چه چیزهای نیاز داریم؟یه ابزار Keyword Rank Tracker به همراه APIگوگل شیتاسکریپت اتصال گوگل شیت به Rank Trackerاکستنشن استخراج دیتای سرچ کنسول در گوگل شیتلوکر استودیودریافت پوزیشن کیوردها از ابزار Rank Trackerتو مرحله اول ما نیاز داریم که پوزیشن کیوردهای اون صنعت رو به دست بیاریم. پس به لیست کیوردهایی که قبلا از طریق کیورد ریسرچ به دست آوردیم نیاز داریم.فرض کنید ما 2000 کیورد داریم؛ حالا باید با استفاده از ابزارهای Rank Tracker، پوزیشن این کیوردها برای سایت خودمون و رقبامون رو به دست بیاریم.ابزارهای Rank Tracker ایرانی و خارجی زیادی وجود داره، مدل خارجی‌ای که من باهاش کار کردم و امکانات فوق‌العاده‌ای داشت Nightwatch بود، مدل ایرانی هم که استفاده کردم و توی این مقاله هم با اون پیش میریم KWrank هست که ابزار نسبتا خوبیه.کاری که باید بکنیم اینه که کیوردهامون رو توی این ابزار ایمپورت می‌کنیم و رقبامون رو هم وارد می‌کنیم. در نهایت این ابزار پوزیشن کلماتی که وارد کردیم رو به صورت روزانه آپدیت می‌کنه و بهمون نشون میده. هم برای سایت خودمون و هم رقبا.محیط ابزار kwrankحالا برای ادامه راه نیاز داریم که لیست کلمات و پوزیشن‌هاشون برای هر سایت رو توی گوگل شیت داشته باشیم. اینجا وقت استفاده از APIهستش.هر ابزار Rank Tracker ای که استفاده کنیم معمولا بهمون API هم اختصاص میده حالا ممکنه هزینه بیشتری دریافت کنن اما زیاد نیست.وقتی API رو دریافت کنیم وارد گوگل شیت میشیم و از قسمت Extensions به بخش Apps Script میریم.چیزی که خواهیم دید یه همچین فضایی هستش:محیط Apps Script گوگل شیتکاری که باید انجام بدیم اینه که اسکریپتی بنویسیم که بتونیم با استفاده از API ای که ابزار Rank Tracker در اختیارمون قرار داده، کیوردها به همراه پوزیشن اون‌ها رو توی گوگل شیت دریافت کنیم.اگه برنامه نویسی بلد نیستید الان ممکنه ادامه مقاله رو بیخیال شید و بگید سخته من که نمی‌تونم، ولی منم برنامه نویس نیستم! پس چیز وحشتناکی نیست.شما تشریف می‌برید ChatGPT و یه پرامپت خیلی ساده و شفاف بهش میدید و توضیح میدید که دقیقا چه اسکریپتی می‌خواید.خلاصه‌اش اینه که یه اسکریپت گوگل شیت می‌خوایم که با API ای که بهش می‌دیم کیوردها و پوزیشن اون‌ها رو توی گوگل شیت بهمون برگردونه.اسکریپت رو که نوشتیم یا به دست آوردیم Run رو می‌زنیم تا اجرا بشه.اگه خواستید به من پیام بدید تا اسکریپت رو براتون بفرستم.در نهایت باید دیتا رو به شکل زیر توی گوگل شیت دریافت کنیم:دیتای دریافتی از API سایت kwrankدقت کنید که خروجی نهایی باید به همین شکل باشه، توی یه ستون کیوردها و توی ستون های بعدی پوزیشن اون کیورها روی هر سایت. چون قراره با استفاده از فرمول این دیتا رو جای دیگه استفاده کنیم، اگه به شکل‌های مختلف دیگه‌ای باشه شاید توی استفاده از دیتا به مشکل بخوریم.خب حالا ما پوزیشن همه کیوردها رو داریم. اما یه سوال مهم:ما اگه هر روز یا هر هفته بخوایم پوزیشن‌های جدید رو توی گوگل شیت داشته باشیم هر دفعه باید بیایم Run رو بزنیم؟نخیر! :))توی Apps Script از منوی سمت چپ به بخش Triggers میریم و اونجا می‌تونیم تنظیم کنیم که اسکریپت به صورت دوره‌ای، مثلا روزانه یا هفتگی Run و دیتا آپدیت بشه.این قسمت رو دیگه زیاد توضیح نمیدم سوالی داشتید ازم بپرسید حتما.تنظیم Trigger در اسکریپت گوگل شیتخب تا اینجا ما کاری کردیم که پوزیشن کیوردهامون به صورت دوره ای و کاملا خودکار توی گوگل شیت بهمون نمایش داده بشه.بریم سراغ ادامه کار؛دریافت ایمپرشن (سرچ ماهانه) کیوردها از سرچ کنسولما برای محاسبه SOV به غیر از پوزیشن کیوردها به چیزهای دیگه ای هم نیاز داریم که یکیش میزان سرچ ماهانه کیوردها هست.برای دریافت میزان سرچ ماهانه کیوردها هم میشه از ابزارهای کیورد ریسرچ استفاده کرد هم از خود سرچ کنسول. اگه می‌خواید عددهای دقیق داشته باشید خب قاعدتا بهتره این دیتا رو از سرچ کنسول بگیرید.برای اینکه بتونیم دیتای دقیقی از سرچ کنسول روی گوگل شیت داشته باشیم باید از اکستنشن Search analytics for sheets توی گوگل شیت استفاده کنیم.وقتی این اکستنشن رو نصب کنیم می‌تونیم توی گوگل شیت از طریق منوی Extensions بهش دسترسی داشته باشیم و اطلاعات رو از سرچ کنسول خودمون دریافت کنیم.اکستنشن رو که باز کنیم چندتا گزینه می‌بینیم که ما با گزینه دوم یعنی Recurrent Requests کار داریم.با استفاده از این امکان، ما می‌تونیم اکستنشن رو طوری تنظیم کنیم که به صورت روزانه یا ماهانه به سرچ کنسول ما ریکوئست بزنه و دیتا رو استخراج کنه.اکستنشن یه سری ویژگی‌ها هم داره که می‌تونید تنظیم کنید اما با فرض اینکه شمایی که داری این مقاله رو میخونی متخصص سئو هستی و این‌ ویژگی‌ها چیزهای پیچیده ای نیستن من دیگه توضیح نمیدم.اکستنشن Search Analytics for sheetsدقت کنید که گزینه Results Sheet رو حتما روی یه شیت خاص بذاریم که هر سری دیتا خواست آپدیت بشه روی همون شیت آپدیت بشه، چون قراره فرمول بزنیم و از دیتا استفاده کنیم پس اگه هر سری که اکستنشن ریکوئست میزنه دیتا بره توی یه تب جدید، فرمول روش اعمال نمیشه و دیتا آپدیت نمیشه.در نهایت ما توی گوگل شیت دیتای زیر رو خواهیم داشت، که با ایمپرشن و پوزیشن کار داریم.دیتای دریافتی از سرچ کنسولاحتمالا الان 2 تا سوال توی ذهنتون پیش اومده:سوال اول: اصلا چرا ما برای دریافت پوزیشن از ابزار Rank Tracker استفاده کردیم؟ چرا از پوزیشنی که خود سرچ کنسول بهمون میده استفاده نکردیم؟جواب خیلی ساده‌اس، سرچ کنسول پوزیشن رقبا رو بهمون نمیده و ما برای محاسبه و مقایسه SOV پوزیشن رقبا رو هم نیاز داریم.سوال دوم: پس چرا الان گفتی از دیتای سرچ کنسول با ایمپرشن و پوزیشن کار داریم؟ پوزیشن رو چیکار داریم دیگه؟!جواب این سوال رو یکم جلوتر میدم :)خب یه مرور کنیم ببینیم تا اینجا چیکار کردیم؛تا اینجا ما کاری کردیم که دیتای 2 تا چیز رو به صورت خودکار توی گوگل شیت دریافت کنیم و طبق زمان بندی که خودمون تعیین کردیم دیتا آپدیت بشه ، اولی پوزیشن و دومی ایمپرشن کیوردها.پس ما الان این 3تا رو داریم:کیوردهاپوزیشن کیوردهاایمپرشن کیوردهاانجام محاسباتتوی همون گوگل شیتی که پوزیشن کیوردها و دیتای سرچ کنسول رو دریافت کردیم یه تب جدید باز میکنیم و اسمش رو می‌ذاریم SOV.حالا ما توی گوگل شیت 3 تا تب داریم، تب SOV که می‌خوایم محاسبات رو توش انجام بدیم، تب Search Console Data که دیتایی که از سرچ کنسول گرفتیم داخلشه و تب KWrank Data که دیتای پوزیشن کیوردهای خودمون و رقبامون داخلشه.میریم سراغ تب SOV که تازه ایجادش کردیم؛ توی ستون A کل کیوردهایی که داریم رو وارد می‌کنیم (دقیقا همون کیوردهایی که به ابزار KWrank دادیم تا پوزیشن خودمون و رقبامون رو توی اون ها بهمون بده).توی ستون B، باید سرچ ماهانه این کیوردها رو وارد کنیم، حالا اینو از کجا میاریم؟ آفرین از تب Search Console Data.اگه فکر کردید الان میریم دونه دونه سرچ ماهانه کیوردهارو برمیداریم میاریم می‌ذاریم جلوی کیوردها باید بگم که هنوز موضوع این مقاله رو درک نکردید.ما توی این فرایند تقریبا هیچ کاری رو دستی انجام نمیدیم و همه چی قراره اتومیت پیش بره.اگه قرار باشه سرچ ماهانه رو به صورت دستی برداریم و بذاریم جلوی کیوردها، سری بعدی که اکستنشن به سرچ کنسول ریکوسئت میزنه و دیتای جدید رو میگیریه، دیتای تب SOV دیگه آپدیت نمیشه چون ما دستی واردش کردیم!پس فکر اینکه چیزی رو دستی وارد کنیم رو بذارید کنار و بیاید ادامه بدیم.برای اینکه سرچ ماهانه کیوردهارو از تب اطلاعات سرچ کنسول دریافت کنیم باید از VLOOKUP استفاده کنیم.حالا یه سوالی اینجا پیش میاد:ما داریم سرچ ماهانه رو از سرچ کنسول میگیریم، اگه یه سری از کیوردها صفحه 2 باشن یعنی ایمپرشن دقیقشون رو نداریم و این باعث میشه دیتا اشتباه باشه، باید چیکار کنیم؟ما روی این موضوع فکر کردیم و دیدیم بهترین کار اینه که بیایم چندتا از کیوردهایی که الان صفحه 2 هستن و قبل صفحه 1 بودن رو انتخاب کنیم و ایمپرشن وقتی که صفحه 2 هستن رو با ایمپرشن وقتی که صفحه 1 بودن مقایسه کنیم.در نهایت با این مقایسه می‌فهمیم که باید یه ضریبی به ایمپرشن کیوردهایی که پوزیشنشون 10 و بالاتر هست بدیم تا دیتا به واقعیت نزدیک‌تر بشه؛ این پیشنهاد حجت مسگری بود و دمش گرم.پس ما با استفاده از VLOOKUP توی اولین سلول ستون B به گوگل شیت میگیم:برو توی تب Search Console data، کیوردهایی که برات تعیین کردم رو پیدا کن، ایمپرشن کیوردهارو از ستون های جلوییش بردار، بعد نگاه کن ببین پوزیشن کیوردها زیر 10 هستش یا بالای 10، اگه زیر 10 بود همون ایمپرشن رو برام بیار اما اگه بالای 10 بود ضربدر فلان عدد کن و عدد نهایی رو برام بیار و بنداز اینجا.یادتونه بالاتر گفتم بعدا میگم چرا از پوزیشن سرچ کنسول هم کار داریم؟ دقیقا همینجا بود.در نهایت فرمولش میشه یه همچین چیزی:=IF(&#039;GSC Data&#039;!E4&gt;10,VLOOKUP(A4,&#039;GSC Data&#039;!A:E,3,false)*10,VLOOKUP(A4,&#039;GSC Data&#039;!A:E,3,false))سعی کنید کار با VLOOKUP رو یاد بگیرید چون خیلی خفنه و راحتم هست،ولی اگه براتون سخته اصلا از فرمول بالا نترسید کافیه بازم به ChatGPT بگید همچین کاری می‌خواید کنید و فرمول رو براتون بنویسه و توضیح بده.وقتی فرمول رو اجرا کنیم سرچ ماهانه کیورد رو دریافت می‌کنیم و جلوی کیوردمون داریم، و همونطور که احتمالا می‌دونید با 2 تا کلیک سمت راست پایین سلول اول می‌تونیم این فرمول رو برای همه کیوردها تا آخرین کیورد اجرا کنیم.حالا با استفاده از همین فرمول VLOOKUP میریم و پوزیشن کیوردهارو هم، از تب KWrank برمیداریم و میاریم توی تب SOV توی ستون C قرار میدیم.اول از سایت خودمون شروع می‌کنیم، اسم ستون C رو می‌ذاریم مثلا Bimebazar Rankدر نهایت یه همچین شیتی خواهیم داشت:فراخوانی سرچ ماهانه و پوزیشن کیوردهاحالا ما با استفاده از ایمپرشن و پوزیشن هر کیورد، سهم سایتمون از سرچ اون کیورد رو به دست خواهیم آورد، اما قبلش باید یه چیز دیگه هم داشته باشیم، اونم CTR هر پوزیشن هستش. باید بدونیم هر پوزیشن توی صنعت ما داره چند درصد کلیک رو به خودش اختصاص میده تا بتونیم SOV رو محاسبه کنیم.یکی از راه‌ها برای به دست آوردن CTR حوزه خودمون اینه که بریم چندتا کیورد رو توی سرچ کنسول بررسی کنیم و میانگین CTRشون رو به دست بیاریم.ما میانگین CTR از پوزیشن 1 تا 12 رو به دست آوردیم.نظرمون این بود که پوزیشن 12 به بعد عملا کلیک خاصی نمی‌گیره یا اگه می‌گیره انقدری ناچیز هست که نبودنش دیتا رو خراب نمی‌کنه.در نهایت وقتی CTR هارو به دست آوردیم یه تب جدید توی شیت ایجاد می‌کنیم و اسمش رو می‌ذاریم CTR و تو ستون اول پوزیشن 1 تا 12 و تو ستون دوم CTRشون رو وارد می‌کنیم.تعیین کردن CTR هر پوزیشنالان دیگه وقتشه SOV رو برای هر کیورد محاسبه کنیم.توی تب SOV یه ستون جدید اضافه می‌کنیم و اسمش رو می‌ذاریم Bimebazar Trafficتوی ردیف 2 از این ستون شروع می‌کنیم به فرمول نوشتن و دوباره از VLOOKUP استفاده می‌کنیم.مثل فرمول قبلی اول بگم دقیقا با فرمول چیکار می‌کنیم بعد خود فرمول رو ببینیم.ما توی این فرمول به گوگل شیت میگیم برو از ستون C که من توش پوزیشن کیوردهام رو وارد کردم اولین عدد رو بردار، بعدش برو به تب CTR و اون عدد رو پیدا کن و از ستون جلوییش ببین چند درصد CTR داره؛ بعد عدد CTRاش رو بردار و برگرد به شیت SOV و از ستون سرچ ماهانه، ضربدر اولین عددی کن که اونجاس.توضیح خیلی ساده‌اش اینه که CTR رو در ایمپرشن ضرب می‌کنیم و ترافیک رو به دست میاریم.فرمولی که استفاده کردیم:=IFERROR(VLOOKUP(C2,CTR!A:B,2,false)*$B2,0)اون کلمه  IFERROR اول و عدد 0 آخر فرمول واسه اینه که اگه یه کیورد هیچ ترافیکی برامون نداشت عدد 0 رو براش بندازه و ارور نده.در نهایت شیت به این شکل میشه:محاسبه ترافیکحالا ما ترافیکی که از هر کیورد داریم می‌گیریم رو به دست آوردیم.مرحله آخر اینه که به درصد محاسبه اش کنیم و بفهمیم ما چند درصد از ترافیک رو داریم برای هر کیورد دریافت می‌کنیم. پس یه ستون دیگه به شیت اضافه می‌کنیم و اسمش رو می‌ذاریم Bimebazar SOVتوی ردیف دوم از این ستون یه فرمول خیلی ساده می‌زنیم. توی فرمول میگیم ترافیک رو تقسیم بر ایمپرشن کن. و فرمت اون ستون رو Percent میذاریم.فرمول ساده:=D2/B2در واقع D ستون ترافیک هست و B ستون ایمپرشن یا سرچ ماهانهنتیجه نهایی:محاسبه SOVحالا ما سهم بیمه بازار از سرچ این حوزه رو به تفکیک کیورد داریم و می‌تونیم با جمع کل همه این موارد سهم بازار خودمون رو به صورت کلی روی همه کیوردهای این صنعت داشته باشیم.کار آخر اینه که همین ستون هایی که برای بیمه بازار اضافه کردیم و فرمول هایی که زدیم رو برای سایت های رقیب هم انجام بدیم و SOV اونها رو هم محاسبه می‌کنیم. فقط کافیه ستون هارو بسازید و فرمول هارو کپی کنید.داکیومنت مربوط به SOV در نهایت این ستون هارو خواهد داشت:داکیومنت محاسبات SOVحالا طبق زمانبدی که روی اسکریپت و APIهامون مشخص کردیم هروقت دیتای جدید دریافت بشه همه این اعداد طبق فرمول هایی که زدیم عوض میشه و SOV کاملا اتومیت محاسبه میشه و سهممون از بازار رو می‌تونیم به صورت آنلاین ببینیم.یه سری دیتای دیگه هم میشه به دست آورد که من دیگه چون مقاله طولانی میشه توضیح ندادم. اما مثلا می‌تونید فرصت ها و پتانسیل رشد رو برای هر کیورد محاسبه کنید. به این صورت که ایمپرشن کلش رو برمیدارید و ترفیک فعلی رو ازش کم میکنید.32.1% از عدد نهایی میشه پتانسیل رشد یا ترافیکی که شما در بهترین حالت می‌تونید از اون کیورد دریافت کنید. 32.1% هم که همون CTR پوزیشن 1 توی این صنعت هستش.مرحله فینال اینه که برای این دیتا یه داشبورد لوکر استودیو داشته باشیم که خیلی شیک و خوشگل دیتا رو به صورت آنلاین و آپدیت ببینیم.اگه توی گوگل شیتی که ساختیم، تگ‌های مختلفی روی کیوردها بزنیم می‌تونیم توی لوکر استودیو خیلی زیبا بر اساس کیوردها و تگ های مختلف دیتا رو داشته باشیم و  آنالیز کنیم.3تا عکس زیر نمونه‌ای از بخش‌های داشبوردی هست که میشه توی لوکر استودیو ساخت و SOV رو دید. (نمودار و درصدها نمایشی هستند)لوکر استودیولوکر استودیوپتانسیل رشد در کتگوری‌ها و کیوردهای خاصکلام آخر اینکه، کلا نمیشه SOV یا سهم بازار رو خیلی دقیق محاسبه کرد چون ممکنه ابزارهای Rank Tracker خطا داشته باشن و پوزیشن رو دقیق بهتون ندن یا مثلا توی بخش‌های دیگه دیتا دقیق نباشه، اما در مجموع میشه با استفاده ازش یه دیدی از بازار پیدا کرد و حتی میشه ازش ایده گرفت و در تصمیم‌گیری ها استفاده کرد.امیدوارم این مقاله براتون مفید بوده باشه، من سعی کردم جاهایی که خیلی مهم هستند رو با جزئیات بیشتری توضیح بدم اما خیلی از جزئیات رو نمی‌تونستم در قالب مقاله بگم چون به شدت طولانی میشد.در کل سعی کردم طوری مقاله رو بنویسم که واقعا اگر کسی خواست بتونه طبق توضیحات پیش بره و محاسبه SOV رو اتومیت کنه.هر سوال یا نظری داشتید خوشحال میشم بشنوم.فعلا :)</description>
                <category>میثم سلیمی</category>
                <author>میثم سلیمی</author>
                <pubDate>Sun, 16 Feb 2025 18:17:04 +0330</pubDate>
            </item>
                    <item>
                <title>استخراج دیتای لایت‌هاوس (Google Lighthouse) به صورت انبوه</title>
                <link>https://virgool.io/@meysam.salimi8/extract-lighthouse-insights-in-bulk-qi1z36pp4sfv</link>
                <description>سلام من میثمم 😊اگه متخصص سئو هستید، احتمالا شما هم گاهی از اینکه دونه دونه لینک هارو بردارید ببرید توی ابزارها و وضعیت پرفورمنس‌شون رو چک کنید خسته می‌شید.توی این مقاله می‌خوام در مورد این صحبت کنم که چطور دیتای پرفورمنس صفحات سایت رو به صورت انبوه از Lighthouse استخراج کنیم و بتونیم تحلیل‌های دقیق‌تر و جذاب‌تری از وضعیت شاخص‌های Lighthouse در صفحات سایت داشته باشیم.چرا این کار لازمه؟تحلیل کلی وضعیت پرفورمنس صفحات سایتارائه به تیم محصول و فنی جهت بهبود وضعیتمقایسه وضعیت پرفورمنس صفحات سایت با رقباهمین اول لازمه بگم ما این کار رو با کمک Node JS و پکیج lighthouse-batch که توسط Mike Stead نوشته شده انجام می‌دیم، پس credit این کار می‌رسه به این داداشمون و ازش ممنونیم.خب دیگه مقدمه چینی بسه.تو مرحله اول نیازه که ما Node JS رو روی سیستم عامل نصب کنیم.اینجا ما مراحل رو روی سیستم عامل ویندوز پیش می‌بریم.دانلود و نصب Node JS:https://nodejs.org/en/download/package-managerبرای اطمینان از اینکه Node JS به درستی روی سیستم شما نصب شده باشه وارد Windows PowerShell بشید و دستور node -v رو وارد کنید. اگه ورژن رو به شما نشون داد یعنی با موفقیت نصب شده:Node JSحالا وقتشه که پکیج lighthouse-batch رو نصب کنیم.برای این کار دوباره توی محیط Windows PowerShell دستور زیر رو وارد کنید:npm install lighthouse-batch -gبرای اینکه مطمئن بشید  lighthouse-batch به درستی نصب شده باشه دستور زیر رو توی خط فرمان اجرا کنید:npm list -g | findstr lighthouse-batchبعدش می‌بینید چه npm ای روی سیستم شما نصب شده و اگه lighthouse-batch رو دیدید پس همه چی اوکیه:Lighthouse-batchحالا بیاید لیست صفحاتی که می‌خوایم گزارششون رو داشته باشیم رو درست کنیم.صفحاتی که می‌خواید گزارش Lighthouse اون‌ها رو داشته باشید رو داخل یک فایل notepad قرار بدید و اسم فایل رو urls بذارید:url listبعد از اینکه فایل notepad رو ایجاد کردید اون رو توی مسیر زیر کپی کنید:C:\Users\m.salimi\report\lighthouse\نکته:قاعدتا به جای قسمت m.salimi اسم اکانت خودتون باید باشه.خب یه مروری داشته باشیم؛ تا اینجا ما Node JS و پکیج lighthouse-batch رو نصب کردیم و اومدیم لیست URLهای سایتمون که می‌خوایم گزارش پرفورمنس اون‌ها رو داشته باشیم رو داخل یه فایل notepad وارد کردیم و اون فایل رو توی مسیری که گفتم قرار دادیم.بریم واسه ادامه کار:دوباره Windows PowerShell رو باز کنید و دستور زیر رو در اون اجرا کنید (توجه کنید که به جای m.salimi یوزرنیم خودتون رو بذارید):lighthouse-batch -f C:\Users\m.salimi\report\lighthouse\urls.txtکاری که با این دستور انجام می‌دیم اینه که پکیج lighthouse-batch رو فراخوانی می‌کنیم و می‌گیم برو این فایلی که مشخص کردم رو پیدا کن و وضعیت شاخص‌های پرفورمنس URLهای داخلش رو بررسی کن و بهمون گزارش بده.اونم شروع می‌کنه دونه دونه URLهای داخل فایل رو بررسی می‌کنه:Windows PowerShellنکته1: هرچقدر تعداد URLها بیشتر باشه مدت زمان بیشتری برای پردازش و دریافت گزارش نیازه.معمولا برای هر URL زمانی بین 15 تا 20 ثانیه نیازه.نکته2: بسته به تعداد URLها ، فضایی که از سیستم شما اشغال می‌شه هم متفاوت خواهد بود پس باید به اینم توجه کنید که سیستم شما به اندازه کافی فضا برای ذخیره گزارش‌ها داشته باشه.در نهایت وقتی پروسه تکمیل شد برای هر URL یک فایل JSON خواهید داشت. این فایل‌ها در مسیری که قبلا گفتیم ذخیره میشن:C:\Users\m.salimi\report\lighthouse\آیا لازمه بازم بگم که به جای m.salimi یوزرنیم خودتون میاد؟ :دیبعد از این پروسه، وقتی به این مسیر برید باید با یه همچین لیستی مواجه بشید:JSON Filesحالا ما گزارش Lighthouse تمامی URLهایی که می‌خواستیم رو با فرمت JSON داریم، وقتشه که این گزارش‌هارو ببریم روی گوگل شیت و خیلی شیک و منظم ازشون بهره برداری کنیم.قبلش بیاید مطمئن شیم که فایل‌هایی که گرفتیم درست کار میکنن؛ واسه این کار یکی از فایل‌های JSON رو توی لینک زیر آپلود کنید:https://googlechrome.github.io/lighthouse/viewerبعدش باید با همچین صحنه‌ای مواجه بشید و دیتای مربوط به اون فایل (در واقع اون صفحه) رو ببینید:Lighthouseخب حالا که مطمئن شدیم داریم مسیر رو درست می‌ریم بیاید ادامه بدیم.از اینجا به بعد به این موارد نیاز داریم:دسترسی به یک هاست برای آپلود گزارش‌هاگوگل شیت :))تمامی فایل های JSON که دریافت کردید رو به یک فایل فشرده (zip) تبدیل کنید و داخل یک ساب دامنه یا ساب فولدر آپلود کنید.(مهم نیست کجا آپلود می‌کنید ما فقط می‌خوایم اون فایل های JSON که گرفتیم رو بیاریم توی فضای وب تا هر کدوم از این فایل‌ها از طریق یک URL مشخص قابل دسترسی باشن، اما اگه این گزارش رو برای یه شرکت تهیه می‌کنید بهتره که از تیم فنی بخواید براتون توی سرور خود اون شرکت آپلود کنه)بعد از اینکه فایل zip رو روی هاست آپلود کردید از حالت فشرده خارج کنید.مثلا من برای تست توی هاست یکی از سایت‌های شخصی خودم آپلود کردم و اگه به مسیر زیر برید می‌تونید کاملا متوجه بشید داستان چیه:https://prymie.com/sitesپس کاری که انجام شده اینه که ما فایل‌های JSON رو آوردیم توی فضای وب و الان هرکدوم یه URL دارن و از طریق وب قابل دسترس هستن.حالا وقتشه بریم روی فضای گوگل شیت و دیتای استخراج شده رو ببینیم.روی لینک زیر کلیک کنید و از داکیومنتی که می‌بینید یه کپی بگیرید و توی اکانت خودتون داشته باشید:https://docs.google.com/spreadsheets/d/1BmkzIhROSD_7nY08iffmchfP3Alick7aYf9KE95BVgE/edit?usp=sharingبعد از اینکه کپی گرفتید فقط کافیه URL فایل هایی که آپلود کردید رو با مثال‌هایی که داخل ستون B هستند جایگزین کنید.وقتی این کارو کنید دیتای ستون C و همچنین اعداد و ارقام مربوط به شاخص‌ها در ستون‌های D-E-F-G-H-I تغییر می‌کنن و گزارش شما آماده میشه.(وقتی از sheet کپی بگیرید همه مقادیر ERROR نشون میدن چون لینکی توی شیت نیست ولی وقتی لینک هارو به درستی و طبق توضیحات وارد کنید ارورها رفع میشن و با همچین چیزی مواجه می‌شید):Lighthouse data in googlesheetبه به!حالا شما گزارش Lighthouse صفحات وبسایت رو به صورت انبوه به دست آوردید و می‌تونید تحلیل‌های دقیق و جالبی روشون انجام بدید.مثلا می‌تونید به این شیت ستون‌های دیگه‌ای مثل دسته بندی اضافه کنید (مثلا فلان URL محصول هستش یا دسته بندی) بعد این شیت رو به Looker Studio متصل کنید و دیتا رو خوشگل‌تر کنید.نکته تکمیلی: اگه تعداد URLهای شما از تعداد URLهای موجود در شیتی که کپی کردید بیشتر بود فقط کافیه ستون های D-E-F-G-H-I به مقدار مورد نیاز بگیرید و پایین بکشید تا فرمول روی بقیه URLهایی که وارد کردید هم اعمال بشه.سوال احتمالی: خب ما گزارش‌هارو آوردیم روی فضای وب آپلود کردیم حالا باید بریم دونه دونه URLهاشون رو برداریم توی شیت جایگزین کنیم؟جواب: نیازی نیست دستی این کارو بکنید. می‌تونید توی اکسل با استفاده از فرمول concatenate این کار رو انجام بدید و URLهارو به صورت یکجا کپی و توی شیت paste کنید.مثلا توی مثالی که من زدم گفتم فایل‌هارو توی آدرس https://prymie.com/sites آپلود کردم درسته؟ پس خیلی راحت با فرمول concatenate توی اکسل این آدرس رو به اول اسم فایل‌هام اضافه می‌کنم و حالا همه URLهارو یکجا دارم:Excelتمام.اگه تا اینجا اومدید دمتون گرم، امیدوارم مفید بوده باشه.احتمالا باید روش‌های دیگه‌ای هم برای این کار وجود داشته باشه.اگه شما می‌دونید بگید که یاد بگیریم.</description>
                <category>میثم سلیمی</category>
                <author>میثم سلیمی</author>
                <pubDate>Sun, 09 Jun 2024 20:34:32 +0330</pubDate>
            </item>
                    <item>
                <title>بررسی ارور Hostload exceeded در سرچ کنسول و نحوه رفع آن</title>
                <link>https://virgool.io/@meysam.salimi8/hostload-exceeded-q8fogxgob8vq</link>
                <description>سلام؛ من میثم سلیمی هستم و توی این مقاله قراره درباره ارور Hostload exceeded توی سرچ کنسول صحبت کنم.ممکنه توی سال‌هایی که سئو کار می‌کنید اصلا به این ارور برخورد نکنید و اگه هم برخورد کنید قطعا زیاد نخواهد بود، اما مهمه. توی این مقاله سعی کردم به طور جامع درباره این ارور صحبت کنم و یه سری نکات مرتبط رو بگم تا هرچیزی که بهش مربوط میشه و من می‌دونم رو گفته باشم.کِی و کجا ممکنه به این ارور برخورد کنیم؟وقتی که می‌خوایم یه URL رو توی سرچ کنسول fetch کنیم یا در واقع به گوگل request بدیم تا اون صفحه رو ایندکس کنه ممکنه به این ارور برخورد کنیم. عکس‌های زیر رو ببینید.تصویر 1: پیام ریجکت درخواست:تصویر 2: اطلاعات بیشتر و نمایش ارور (وقتی روی VIEW LIVE TEST بزنید صفحه زیر باز میشه):داستان چیه؟ اصلا این ارور چی میگه؟ارور Hostload exceeded میگه &quot;سرور شما نمی‌تونه درخواست‌های کراول گوگل رو پردازش کنه&quot;. این ارور ممکنه وقتی اتفاق بیوفته که سایت شما خیلی یهویی به یه ترافیک زیادی رسیده باشه و سرور شما قدرت کافی برای پردازش ریکوئست‌ها رو نداشته باشه.البته همین روزها (تاریخ انتشار این مقاله) این مشکل برای سایت‌های زیادی از جمله بعضی سایت‌های خارجی پیش اومده که در واقع این سری یه باگه و مشخص نیست دقیقا چه زمانی رفع بشه و گوگل هم اطلاعات دقیقی در موردش نداده متاسفانه.(آپدیت: این باگ در تاریخ 2 آبان رفع شد)اتفاقی که میوفته اینه که ریکوئست‌های گوگل به سایت شما محدود میشه و قاعدتا در ادامه سرعت ایندکس صفحات جدید سایت شما به شدت کم میشه و حتی ممکنه indexing صفحات شما به مشکل بخوره.این قطعا موضوع حیاتی‌ای هستش مخصوصا وقتی که حوزه فعالیت اون سایت چیزی باشه که نیازه حتما و به سرعت مطالب رو پوشش بدید.حالا ممکنه یه سوال پیش بیاد؛ گوگل چطوری ظرفیت سرور مارو تخمین میزنه؟ سوال خوبیه!توجه کنید که گوگل نمی‌تونه دقیقا ظرفیت سرور مارو تعیین کنه اما با استفاده از معیارهای زیر اون رو تخمین میزنه:مشخصات سخت‌افزاری سرور: RAM,CPU و ...بار سرور: گوگل میاد تعداد درخواست‌های همزمانی که سرور در حال حاضر داره پردازش میکنه رو میسنجه.بررسی عملکرد گذشته (Historical data): گوگل نحوه عملکرد سرور در گذشته رو بررسی می‌کنه تا اصطلاحا یه ذهنیتی از ظرفیتش بدست بیاره. مثلا اگه سایت در گذشته تونسته حجم بالایی از ریکوئست‌ها رو مدیریت کنه، گوگل احتمال میده که پس این سایت بازم میتونه تا اون میزان ریکوئست رو هندل کنه.بعد از بررسی این معیارها، گوگل ظرفیت سرور اون سایت رو تخمین میزنه و یه بودجه‌ برای کراول به اون سایت اختصاص میده. (بحث Crawl Budget و نحوه بهینه کردن اون پیچیده‌تر از این حرفاست که در این مقال نمی‌گنجد)خب حالا که این ارور اومده سراغمون، چیکار باید بکنیم؟برای رفع این ارور 3 تا کار میشه کرد:1: ترافیک سایت رو کم کنیم. (?)2: سرور رو ارتقاء بدیم و از یک سرور با منابع بیشتر و بهتر استفاده کنیم.3: اگه میزان ارسال ریکوئست‌هارو خودمون تنظیم کردیم، از این مورد صرف نظر کنیم.کاهش ترافیک سایتاین گزینه هم به هر حال قابل احترامه و داره زحمت میکشه (!) ولی خب احتمالا شما هم ترجیح میدید درباره گزینه اول صحبتی نکنیم.ارتقاء سرورچیزی که احتمالا به رفع این ارور خیلی کمک می‌کنه همین گزینه‌اس اما بعضی وقتا نیازی به این کار نیست.قبل از ارتقاء سرور، اگه سرور شما داخل ایران هست و از CDN استفاده نمی‌کنید این مورد رو تست کنید. یه سرویس CDN رو به سایت متصل کنید و تست بگیرید احتمال اینکه این ارور رفع بشه هست.دلیل اینکه میگم از CDN استفاده کنید اینه که طبق صحبتی که با متخصص‌های Devops داشتم گاهی اوقات سرورهای ایرانی به دلیل قطع ارتباط با سرورهای خارجی ممکنه به این مشکل برخورد کنن.اگه با استفاده از CDN این مشکل حل نشد یا اصلا شما با وجود استفاده از CDN به این مشکل برخورد کردید احتمالا نیازه که سرور رو ارتقاء بدید. اگه از هاست اشتراکی استفاده می‌کنید، اول منابع (فضا، پهنای باند، میزان CPU و RAM اختصاص یافته) سرویس خودتون رو افزایش بدید.اگه همچنان این ارور وجود داشت مرحله بعدی اینه که از سرور مجازی استفاده کنید.صرف نظر از دستکاری کردن ریکوئست‌های ارسالی از سمت گوگلخب مورد سوم هم می‌تونه اینجا بهمون کمک کنه.باید چیکار کنیم حالا؟به صفحه  Site Settings سرچ کنسول برید، تو این صفحه اگه چندتا سایت دارید، سایتی که با این ارور مواجه شده رو انتخاب کنید.(تصویر زیر)حالا توی این مرحله باید مطمئن بشید که گزینه “Let Google optimise for my site” انتخاب شده باشه.یعنی به خود گوگل اجازه بدید تا تعیین کنه چندتا ریکوئست در ثانیه به سایت شما بفرسته. (تصویر زیر)گزینه دوم (Limit Google&#x27;s maximum crawl rate) چیه؟اگه این گزینه رو انتخاب کنید می‌تونید تعداد ریکوئست‌هایی ارسالی از سمت گوگل رو کم کنید. توجه کنید که اینجا شما فقط می‌تونید ریکوئست‌هارو کم کنید، نمیتونید زیاد کنید و وقتی زیاد کنید گوگل اهمیتی بهش نمیده. توی این داکیومنت می‌تونید بیشتر درباره‌اش بخونید.اگه دیدید از همون اول گزینه &quot;Let Google optimise for my site&quot;  انتخاب شده بود، یه کاری که شاید کمک کنه اینه که از طریق گزینه دوم به صورت دستی تعداد ریکوئست‌هارو کمتر کنید.خود گوگل توصیه کرده اگه ریکوئست‌های زیاد ما باعث بروز مشکل برای شما شد این کارو انجام بدید.این مورد هم شاید کمک کنه به رفع مشکل.یعنی شاید گوگل خودش یه تخمینی زده اما بعدا دیده نه اینجوری نیست.پس از این طریق می‌تونید ریکوئست‌هارو کاهش بدید. (تصویر زیر)نکته: این قابلیت در تاریخ 17 ژانویه 2024 منقضی میشه و دیگه نمیشه ازش استفاده کرد.نمیدونم بعدش قراره چیزی مشابه این وجود داشته باشه یا نه.دیگه چیکار میشه کرد؟ارورهای سرور رو بررسی و رفع کنیدتوی سرچ کنسول به قسمت Settings &gt; Crawl stats &gt;  Host Status &gt; Server connectivity برید و ببینید اخیرا ریکوئست‌های از دست رفته بابت مشکلات سروری داشتید یا نه. (تصویر زیر)اگه ریکوئست‌های از دست رفته زیادی داشتید باید با تیم Devops یا شرکت میزبان سرور موضوع رو در میون بگذارید تا مشکل رو رفع کنن.نکته: ممکنه مشکلات مربوط به سرور فقط به صورت لحظه‌ای خودشون رو نشون بدن، مثلا موقعی که شما سایت رو باز می‌کنید یا از یه URL به صورت لایو تست می‌گیرید مشکلی نبینید اما بعضی اوقات که ریکوئست از سمت گوگل میاد به این ارورها برخورد کنه، پس اگه توی نمودار بالا مشکلی از دست رفتن ریکوئست دیدید حتما موضوع رو پیگیری کنید.تکمیلی:- سرعت وبسایت و مسائل مربوط به پرفورمنس هم توی میزان استفاده منابع در هر ریکوئست تاثیرگذار هستند و بهتره که تا جایی که می‌تونید پرفورمنس صفحات رو هم بهبود بدید.- این ارور ممکنه لحظه‌ای اتفاق بیوفته و بعدش مثلا تا چند روز دیگه این ارور رو نگیرید و باز بگیرید.به مواردی مثل وضعیت سرور و میزان استفاده منابع در اون لحظه داره.- اگه از هاست اشتراکی استفاده می‌کنید و با این ارور مواجه شدید موضوع رو حتما با شرکت میزبان سایت مطرح کنید، ممکنه از دلیل اصلی موضوع مطلع باشند و یا سرنخ‌های خوبی بهتون بدن.تمام :) امیدوارم مقاله مفیدی بوده باشه، اگه شما هم تجربه‌ای در مورد این ارور و رفع اون داشتید کامنت کنید که یاد بگیریم.</description>
                <category>میثم سلیمی</category>
                <author>میثم سلیمی</author>
                <pubDate>Fri, 20 Oct 2023 01:31:08 +0330</pubDate>
            </item>
                    <item>
                <title>مایگریشن سایت تخفیفان، داستان یک تغییر!</title>
                <link>https://virgool.io/@meysam.salimi8/takhfifan-migration-abpbmnyiajuv</link>
                <description>سلام، من میثم سلیمی هستم؛ از اردیبهشت 97 کارم رو توی دنیای SEO شروع کردم و در حال حاضر در شرکت تخفیفان مشغول به کارم.چند روز پیش بود که من درباره مایگریشن (site migration) تخفیفان پستی توی لیندکین منتشر کردم و بعد از اون تصمیم گرفتم یکم بیشتر راجع بهش صحبت کنم و این تجربه رو با دوستان به اشتراک بذارم به امید اینکه برای چند نفر مفید باشه، نتیجه این تصمیم شد این مقاله :)دوتا نکته رو بگم، اول اینکه که من اسم این مقاله رو مقاله آموزشی نمیذارم و بهش میگم مقاله انتقال تجربه و قراره از تجربه خودم صحبت کنم؛ پس ممکنه همه ابعاد مایگریشن اینجا گفته نشه، از طرفی هم برای اینکه بعضی جاها بتونم منظورم رو بهتر برسونم احتمالا نکاتی که به صورت کلی باید برای مایگریشن در نظر بگیریم رو هم بگم.نکته دوم اینکه سعی میکنم تا جایی که بشه ساده بنویسم و امیدوارم بتونم کمک کوچکی به دوستان بکنم که اگه توی مسیر کاری SEO نیاز به مایگریشن بود بتونن تجربه خوبی داشته باشن.خب، به صورت کلی مایگریشن انواع مختلفی داره، تغییر سرور، تغییر ساختار سایت، ریدیزاین، تغییرات محتوایی و ...که توی این ویدیو میتونید درباره‌اش بیشتر بدونید.توی مایگریشنی که برای تخفیفان انجام شد تغییر ساختار سایت، ریدیزاین و انتقال سرور وجود داشت اما موضوع خیلی مهمی که باعث این موارد شده بود &quot;تغییر نوع همکاری تخفیفان با شرکای تجاری و نحوه ارائه سرویس به کاربران&quot; بود که لازم بود ساختار سایت به میزان قابل توجهی تغییر پیدا کنه.خب تخفیفان تا چند ماه پیش یه سایت deal base بود و تخفیف‌های مختلفی روی اون قرار می‌گرفت و مردم استفاده می‌کردن، توی این مایگریشن تخفیفان به یه مارکت‌پلیس تبدیل شد و ساختار سایت به vendor base تغییر پیدا کرد.به این صورت که پیشنهادها و تخفیف‌هایی که توی سایت قرار میگیره توسط مالکین اون کسب و کار تعریف میشه که قبلا اینطوری نبود.این مایگریشن از زمان اولین ریلیز تا زمان تکمیل شدن حدود 4 ماه طول کشید اما تا جایی که من میدونم سمت بیزینس حدود 1 سال درگیر این تغییر و تحولات بودن.بریم سر اصل مطلب؛ما توی تیم SEO برای اینکه بتونیم وظایف خودمون رو به درستی انجام بدیم اومدیم یه road map برای خودمون ایجاد کردیم که شامل بخش های زیر بود :استخراج کامل دیتای سایت قبل از مایگریشنجایگذاری دیتای جدید برای انتقالبررسی تسک‌های انجام شده در استیج قبل از ریلیزریلیز release (انتشار روی سایت)مانیتورینگ و بررسی خطاها و تاثیرات احتمالیاین road map رو با سایر تیم ها به اشتراک گذاشتیم و بابت زمانبندی‌ها با هم صحبت کردیم و هماهنگ شدیم.بریم که یکم جزئی‌تر شیم و این مراحل رو با هم مرور کنیم.1: استخراج کامل دیتای سایت قبل از مایگریشنقبل از این که مایگریشن رو شروع کنیم باید اول صفحات و مشخصات کامل اون‌ها رو استخراج و دسته‌بندی می‌کردیم. ما شروع کردیم به کراول تمام بخش های سایت و دسته بندی کردن اطلاعات.این کار رو بسته به شرایط و ابعاد سایت به روش‌های مختلف می‌تونید انجام بدید، screaming frog, python , google sheet.برای سایت‌هایی که صفحات کمی دارن گوگل شیت گزینه خوبیه. می‌تونید توی این پست درباره اسکریپینگ با گوگل شیت بخونید.برای سایت‌های بزرگ‌تر باید از python یا screaming frog استفاده کنید. توی این پست از لینکدینِ علیرضا اسمی‌خانی می‌تونید روش کراول سایت با python رو ببینید و برای screaming frog هم که آموزش‌های مقدماتی و پیشرفته زیادی وجود داره.این رو هم اگه می‌خواهید از پایه کار باهاش رو یاد بگیرید از طریق این لینک اقدام کنید.ما بخش زیادی از این مرحله رو با screaming frog پیش بردیم.حقیقتش اینه اگه سایتتون صفحات زیادی داشته باشه همین مرحله اول تایم نسبتا زیادی رو ازتون می‌گیره.برای اینکه مراحل بعدی رو به خوبی پیش ببرید نیاز دارید که این مرحله رو با دقت بالایی انجام بدید.ما توی این مرحله دیتای صفحات‌مون رو استخراج کردیم که شامل URL, page title, meta title, meta description, canonical, content و یه سری دیتای دیگه از کتگوری‌ها و صفحات deal می‌شد.نکته: بعضی از ستون‌هایی که توی عکس زیر می‌بینید (مثلا parent - slug - category ids) توسط بچه‌های فنی پر شده بودند و اونها علاوه بر دیتای ما به یه سری دیتای دیگه برای پیشبرد کار نیاز داشتن.در نتیجه یه همچین داکیومنتی آماده کردیم:استخراج دیتای صفحات سایت قبل از مایگریشن2: جایگذاری دیتای جدید برای انتقالخب میشه گفت مهم‌ترین بخش مایگریشن یه سایت همین قسمته، اگه اشتباه بزرگی توی انتقال دیتا اتفاق بیوفته ممکنه کار به اخراج شما از اون سازمان کشیده بشه :)) باید یه نقشه خیلی کامل و تمیز داشته باشید از اتفاقی که قراره رقم بزنید.احتمالا برای بخش زیادی از اون چیزهایی که توی عکس بالا دیدید باید جایگزین مناسب داشته باشید.چالش برانگیزترین جای کار برای ما ساخت صفحات وندور و انتقال صفحات deal به وندورهای مرتبطشون بود.فکر کنم نیازه که اینجارو یکم بیشتر توضیح بدم:توی سایت تخفیفان چیزی حدود 100.000 صفحه deal وجود داشت. منظور از صفحه deal همون تخفیف هایی بود که ارائه می‌شد.مثلا یه صفحه برای &quot;تخفیف صبحانه رستوران گردان برج میلاد ویژه آخر هفته&quot; وجود داشت و یه صفحه هم برای &quot;تخفیف صبحانه رستوران گردان برج میلاد ویژه وسط هفته&quot; وجود داشت.یا مثلا اگه یه خواننده در سال 5 بار کنسرت اجرا می‌کرد هربار توی تخفیفان براش یه صفحه deal ایجاد می‌شد.اما وقتی داشتیم به سمت vendor base شدن می‌رفتیم باید اینطوری میشد که فقط یک صفحه برای اون خواننده ایجاد بشه و هروقت هر کنسرتی داره توی همون صفحه پیشنهادش نمایش داده بشه.اینارو گفتم که بگم گاهی اوقات دیده می‌شد که برای یک وندور بیشتر از 10 تا صفحه deal وجود داره و ما باید اول همه اون هارو پیدا می‌کردیم و براشون 1 صفحه وندور ایجاد می‌کردیم و بعد ریدایرکتشون می‌کردیم به صفحه وندور.یه اتفاق خوبی که توی این مرحله افتاد و باعث شد یه جون به جون‌های من اضافه بشه این بود که از چند سال پیش صفحات vendor توی پنل ساخته شده بودن و مشخص بود که کدوم deal مربوط به کدوم vendor می‌شه.یعنی از چند سال پیش مشخص بود که تخفیفان قراره یه روزی vendor base بشه و بعضی بستر هاش از همون چند سال پیش کم کم ایجاد شده بود.اما بیاید فرض کنیم که این اتفاق نیوفتاده بود، حالا بر چه اساسی باید صفحات وندور رو می‌ساختیم؟چیزی که به ذهن من می‌رسه استفاده از ریجکس (Regex) توی گوگل شیتِ ؛ مثلا اگه ما 10 تا صفحه deal داشتیم که توی عنوانشون از کلمه رستوران گردان برج میلاد استفاده شده بود، می‌شد با استفاده از ریجکس پیداشون کرد و براشون یک صفحه وندور به اسم رستوران گردان برج میلاد ساخت.خب، در نهایت ما اومدیم یه داکیومنت درست کردیم و توی اون مشخص کردیم که چه صفحاتی باید به چه صفحاتی ریدایرکت بشن.نتیجه:این وسط ما یه سری صفحات رو هم مشخص کردیم که باید حذف می‌شدن. بیشتر این‌ها صفحاتی بودن که مربوط به هیچ وندوری نمی‌شدن و بودنشون توی سایت هیچ منفعتی نداشت و ضرر هم داشت.پس ما:یه سری صفحات رو ریدایرکت کردیم به وندور مربوطه. یه سری از صفحات رو کلا 410 کردیم.و یه سری صفحات رو هم که به نظرمون نباید از اول تو گوگل ایندکس می‌شدن رو noindex کردیم.جالبه بدونید در نهایت حدود 35.000 صفحه رو از نتایج گوگل حذف کردیم و سعی کردیم crawl رو به سمت صفحات مهم تر ببریم.خب مهم ترین قسمت از مرحله 2 رو گذروندیم، می‌رسیم به موارد دیگه.طبیعتا ما توی این مرحله دیتاهای دیگه مثل تایتل، دیسکریپشن و ... رو هم جایگذاری کردیم. ما دوست داشتیم حالا که داریم وارد یه دوره‌ی پر ریسک میشیم، یه سری تست‌ها رو هم روی سایت انجام بدیم.چون همزمان با مایگریشن ما یه سری تارگت دیگه هم داشتیم که باید بهشون می‌رسیدیم :)) (البته توی مایگریشنی که ساختار سایت تغییرات اساسی داره نمیشه از یه تست خاص برداشت دقیقی کرد)صفحات وندور که قاعدتا باید تایتل و دیسکریپشن‌ جدید براشون نوشته میشد چون کانسپت صفحه تغییر کرده بود و از deal شده بود vendor.یه کار اجتناب ناپذیر بود و باید انجام میشد.پس ما اومدیم سراغ کتگوری ها و خواستیم روی تقریبا نصف کتگوری ها با تغییر تایتل و دیسکریپشن تست انجام بدیم و توی  مرحله جایگذاری دیتا، تایتل و دیسکریپشن نصف کتگوری هارو هم تغییر دادیم.(تقریبا 2000 کتگوری توی تخفیفان وجود داره که در حال حاضر فقط حدود 100 تا از اون ها از طریق منو قابل مشاهده هستن)3: بررسی تسک‌های انجام شده در استیج قبل از ریلیزخب همیشه همه تیم‌ها روی استیج در حال تست‌های خودشونن و تیم سئو هم قبل از ریلیز باید موارد مربوط به خودش رو چک کنه.من یه نکته خیلی مهم رو اینجا بگم، ما توی تخفیفان مایگریشن رو به صورت مرحله به مرحله انجام دادیم و توی هر ریلیز یکی از کتگوری های اصلی سایت رو پیش می‌بردیم.مثلا توی مرحله اول فقط کتگوری رستوران رو vendor base کردیم.توی این ابعاد اگه مایگریشن مرحله به مرحله انجام نشه ممکنه پشیمونی به بار بیاره پس بهتر بود خیلی محتاط پیش بریم و سعی کنیم توی هر مرحله مشکلات احتمالی رو بررسی کنیم تا توی مراحل بعدی اون اشتباهات تکرار نشن.توی استیج با توجه به اینکه دسترسی ها محدوده (هر سازمانی از روش خاصی استفاده می‌کنه) و اکشن‌ها فیدبک دقیقی نداره، شما نمی‌تونید مطمئن بشید که همه چیز داره به خوبی پیش میره، مثلا ریدایرکت‌ها تا وقتی انجام نشن شما متوجه نمی‌شید درست انجام شدن یا نه ( ریدایرکت هارو هم میشه روی استیج انجام داد اما معمولا تیم فنی زیر بارش نمیره)، اما یه سری چیزهارو حتما باید چک کنید.چیزهایی که باید روی استیج چک کنید معمولا تایتل، دیسکریپشن، کنونیکال، کانتنت صفحه، لینک های داخلی، داده‌های ساختار یافته، پرفورمنس صفحات و ... هستند.4: ریلیز release (انتشار روی سایت)ما توی مرحله اول ریلیز، کتگوری رستوران رو vendor base کردیم و علاوه بر اون تایتل و دیسکریپشن نصف کتگوری های سایت رو تغییر دادیم (همون تستی که گفتم).چند روز بعد از ریلیز هم ما sitemap رو آپدیت کردیم و اولین گروه از وندورها وارد sitemap شدن.فاصله بین ریلیز اول و ریلیز دوم حدود یک ماه بود چون این اولین کتگوری بود که vendor base می‌شد و هم تیم SEO و هم تیم های دیگه شدیدا درگیر رصد تاثیرات این جابجایی روی بیزینس بودیم.مراحل بعدی هم بعد از بررسی ریلیز قبلی و رفع ایرادات انجام می‌شدن و توی مراحل بعدی سرعت کار بالا می‌رفت، دیگه اومده بود دستمون :))5: مانیتورینگ و بررسی خطاها و تاثیرات احتمالیبعد از اینکه تغییرات مورد نظر روی سایت اعمال شد ما شروع کردیم به بررسی اتفاقاتی که داره میوفته و حقیقتش شخصا استرس زیادی هم داشتم.چه چیزهایی رو باید بررسی می‌کردیم؟اولین و در دسترس‌ترین چیزی که باید بررسی می‌کردیم، این بود که مطمئن بشیم ریدایرکت‌ها به درستی و بدون هیچ ایرادی انجام شدن.بعدش هم همون مواردی که چند خط بالاتر گفتم روی استیج باید چک بشن.پس ما دوباره رفتیم سراغ رفیق خوبمون screaming frog و شروع کردیم به بررسی این موارد، این بار کارمون راحت تر بود چون بررسی فقط شامل بخشی از سایت می‌شد.پس توی این مرحله باید مطمئن بشید که هرچی که توی استیج چک کردید درست منتشر شده و اگه مورد مهمی هست که درست انجام نشده سریعا به تیم فنی انتقال بدین.علاوه بر این موارد ما حدود 2 هفته منتظر موندیم تا اون کتگوری کاملا کراول شه و 2 مورد رو بررسی کنیم:1: خطاهای احتمالی در کراول، ایندکس و ...2: تغییر جایگاه ها و بررسی دراپ احتمالی کیوردها در SERPدر آخر دوست دارم یه سری نکاتی که به نظرم مهم هستن رو اینجا بگم:ارتباط با تیم های دیگه همیشه توی SEO مهم بوده و زمان مایگریشن هم یکی از مهم‌ترین مسائلی هست که باید خوب از پسش بر بیاید.موضوع ارتباط با تیم های دیگه خیلی گسترده‌اس؛ پیمان خلیلی یه مقاله به اسم &quot;چطور با سایر تیم ها در سئو ارتباط موثر ایجاد کنیم؟&quot; داره که به نظر من خیلی جذاب این موضوع رو بررسی کرده که پیشنهاد می‌کنم حتما بخونید.همونطور که گفتم ما مایگریشن رو مرحله به مرحله انجام دادیم و به نظرم این موضوع مخصوصا توی سایت‌های متوسط و بزرگ خیلی مهمه و می‌شه کار رو بهتر پیش برد.یه اتفاق مهمی که برای ما توی این مایگریشن افتاد تغییر سرور درست وسط تغییرات ساختاری سایت بود.تغییر سرور توی حالت عادی هم ممکنه تاثیراتی روی سئو داشته باشه. ما سعی کردیم جلوی این اتفاق رو بگیریم اما این چیزی نبود که زور ما بهش برسه و باید انجام می‌شد.به هر حال، بهتره که تغییر سرور وسط تغییرات ساختاری سایت اتفاق نیوفته اما اگه مجبور به این کار شدید و سایت برای چند ساعت down بود برای اینکه مشکلی توی سئو پیش نیاد از تیم فنی بخواهید که status code 503 رو به مرورگر برگردونن.هرچی ابعاد تغییراتی که داره انجام میشه بزرگ‌تر باشه اگه اُفتی برای سایت اتفاق بیوفته تشخیص اینکه دلیلش چی بوده هم سخت‌تر میشه، پس بازم اینجا یکی از راهکارها مایگریشن مرحله به مرحله هستش.اگه مایگریشن رو به صورت مرحله به مرحله انجام دادید بهتره sitemap رو هم به صورت مرحله‌ای آپدیت کنید.پ.ن: می‌شد توی خیلی از بخش‌های این مقاله بیشتر وارد جزئیات شد اما من دوست داشتم مقاله توی چارچوب مایگریشن و تجربه ای که ازش داشتم باقی بمونه و تبدیل به چیز دیگه ای نشه چون هر کدوم از مراحل جزئیات و پیچیدگی‌های خودشون رو دارن.یه سری بخش‌ها رو خودم معرفی کردم از کجا مطالعه کنید یا ببینید و بخش‌های دیگه رو هم اگه آشنایی کافی ندارید پیشنهاد می‌کنم سرچ کنید و در موردشون بخونید.امیدوارم با این مقاله تونسته باشم نکات به درد بخوری رو منتقل کنم :) شما هم اگه تجربه ای توی مایگریشن دارید لطفا توی کامنت ها باهامون به اشتراک بگذارید تا استفاده کنیم.</description>
                <category>میثم سلیمی</category>
                <author>میثم سلیمی</author>
                <pubDate>Tue, 12 Jul 2022 11:20:34 +0430</pubDate>
            </item>
            </channel>
</rss>