קידום אתרים עשה זאת בעצמך – 10 טיפים מומלצים

יש לכם זמן בשפע ואתם קצרים בכסף? יש לנו כמה טיפים בסיסיים שיעזרו לכם לשפר את הדירוג האורגני של האתרים שלכם במנועי החיפוש.

אופטימיזציה למנועי חיפוש היא חלק חשוב וקריטי לקידום האתר שלכם, ולמרות שהיא אינה נחשבת בדיוק לתהליך של פרסום – היא עדיין עולה לכם זמן וכסף. אם אתם קצרים בזמן אבל יש לכם כסף, תשלום עבור שירות של חברת קידום אתרים שתעשה את העבודה בשבילכם היא אופציה נהדרת.

  1. מחקר מילות מפתח

לפני הכל – צריך להתחיל עם מחקר מילות מפתח. אז נכון, יכול להיות שאתם מכירים לא רע את הלקוחות שלכם, אבל אל תחשבו שאתם יודעים בדיוק מה הם רוצים ומחפשים.

סיבה נוספת לבצע מחקר מילות מפתח היא שכנראה שהלקוחות שלכם לא מדברים באותה השפה שלכם. אתם משתמשים בשפה המקצועית, אבל הלקוחות הפוטנציאליים שלכם עשויים להשתמש במונחים שונים מאשר העמיתים לעבודה שלכם כאשר הם מחפשים מוצר או שירות מסויים. מחקר מילות מפתח מאפשר לכם לגלות מה המילים והביטויים בהם הלקוחות הפוטנציאליים שלכם משתמשים כדי למצוא את המוצרים והשירותים שגם אתם מספקים. מחקר כזה גם יעזור לך למדוד את הביקוש והתחרות על מילות המפתח. וגם מזהה את הביטויים המדויקים בהם משתמשים לקוחות אמיתיים בשאילתות החיפוש שלהם.

כלי מילות המפתח הטובים ביותר מאפשרים לכם לראות מה הציון של כל מילה מבחינת ביקוש, מה שיסייע לכם לקבוע את הערך היחסי של כל ביטוי בנושא הספציפי שלכם. הכלי לתכנון מילות מפתח של Google הוא כלי המחקר למילות מפתח, אם כי תצטרכו קמפיין פרסום פעיל של Google AdWords כדי לקבל את הנתונים השימושיים ביותר.

כלי מחקר נוספים (במידה ואין לכם גישה לזה של Google) כוללים את Übersuggest (מגרד השלמה אוטומטית של Google) ו- Semrush ו- Wordtracker (שתי חלופות בתשלום).

  1. הכירו את התחרות

חפשו בגוגל את המוצרים והשירותים המרכזיים שאתם מציעים, רוב האתרים שתמצאו זהים או דומים למודל העסקי שלכם, וחלק מהאתרים לא יהיו בדיוק כמו שלכם, אבל גם הם המתחרים שלכם על מילות המפתח שאתם רוצים לקדם. עכשיו, עברו על האתרים הבולטים בתוצאות החיפוש ותנסו להבין:

  • מה הם עושים טוב?
  • איזו תוכן יש להם שלכם אין?
  • האם הם בונים את האתר שלהם בצורה שונה כדי להתמקד במילות מפתח בעלות ערך גבוה יותר?
  • האם יש לאתר שלהם תכונות מעניינות שיכולות לכבוש את הלקוחות הפוטנציאליים שלהם?
  • חקרו את פעילות המדיה החברתית שלהם כדי ללמוד מי הלקוחות שלהם ומה הם חושבים ומרגישים. אל תשכחו, קהל היעד שלהם הוא גם קהל היעד שלכם.
  1. תכננו את האתר שלכם

עכשיו יש לכם הבנה של מה הלקוחות הפוטנציאלים שלכם רוצים ומה הן מילות המפתח בהן הם משתמשים כדי למצוא את המוצרים והשירותים שלכם. הגיע הזמן להתחיל לקדם את עצמכם בתחומים האלו. מצאו את הדפים באתר האינטרנט שלכם שעונים על הצרכים הכי נפוצים של הלקוחות שלכם על פי מנועי החיפוש.

תכננו רשימה מסודרת על נייר או באמצעות אקסל של כל דף שחשוב לכם לקדם, חשבו על כך לפי תעדוף וכך תצליחו להתמקד בארכיטקטורה של האתר שלכם. לכל מילת מפתח גבוהה ועדיפות בינונית ממחקר מילות המפתח שלכם צריך להיות דף מקביל כדי לבצע אופטימיזציה באתר שלך.

בנוסף, שלבו בטקסטים שלכם מילות מפתח ארוכות זנב. מילות מפתח ארוכות זנב (longtail) הן ביטויי חיפוש ארוכים יותר שאולי מופיעים בפחות חיפושים, אך החיפושים שכן כוללים אותם הם ספציפיים ורלוונטיים יותר כמו "אינסטלטור בתל אביב 24 שעות " או "מסעדה כשרה בשישי ללא תעודה". השתמשו בביטויים האלו בפוסטים בבלוגים ובדפי שאלות נפוצות כדי לקדם גם את הביטויים האלו.

  1. מיטוב האתר שלכם

עכשיו מגיע החלק הקשה – השלב הבא הוא ליצור את הדפים. בניית הדפים תהיה בהתאם לפלטפורמה עליה בנוי האתר שלכם, בין אם זה וורדפרס, ג'ומלה, WIX או כל מערכת ניהול כזו או אחרת. ברוב הפלטפורמות דרוש ידע מקצועי של מפתחים ומעצבים, וייתכן שיהיה עליכם לפנות למקור חיצוני בשביל זה. נראות האתר והאופטימיזיציה שלו היא חלק משמעותי בהליך הקידום.

ב-2019 כל אתר אינטרנט צריך להיות רספונסיבי (מותאם למובייל). כיום יותר ויותר גולשים מבלים זמן רב בטלפונים חכמים וטאבלטים ואף גולשים בו יותר מאשר במחשב הביתי.

למעשה, אתר שמותאם לסלולרי חשוב משתי סיבות עיקריות.

הסיבה הראשונה היא שעל פי גוגל, יותר ממחצית החיפושים מגיעים מטלפונים חכמים. אתם חייבים לוודא שהחוויה של המשתמשים האלו חלקה, נוחה ואינטואיטיבית כדי להבטיח שהלקוחות האלו לא ילכו לאיבוד.

הסיבה השניה היא שגוגל מדרג כיום את תוצאות החיפוש האורגני, גם עבור מחשבים שולחניים וניידים, בהתבסס על חווית הנייד של האתר זה כולל מהירות הדף, נוחות הממשק וההתאמה למובייל.

  1. יצירת תוכן מקורי ומעניין

הקמת בלוג חשובה מאין כמותה באתרים, היא מניעה את הגולש להתעדכן במה חדש באתר ובעסק שלכם ובשירותים והמוצרים שלכם. עבור רוב האתרים, מדובר במטרה רחוקה לפרסם מדי יום מאמר חדש, אבל כן חשוב שתפרסמו תוכן באופן קבוע ועקבי. זמנו עדכונים שבועיים או לפחות חודשיים כדי לשמור על רצף של תכנים שעולים לאתר ומשאירים אותו רלוונטי וחי. זכרו, בתוכן עקביות היא המפתח.

התוכן גם ממש לא חייב בהכרח להיות טקסט. לדוגמה, משרד אדריכלי שרוצה להעלות תכנים באופן עקבי יכול לפרסם תמונות של הפרויקטים שלו עם תיאורים טקסטואליים קצרים. מתווכים יכול לפרסם סרטוני וידאו שבועיים עם תמלילי פרסום המותאמים להרגלי הצריכה של קהל היעד שלהם.

לא משנה באיזה תוכן תבחרו, בין אם זה מאמרים, סרטוני וידאו, תמונות או כל דבר אחר – חשוב להתאים את התוכן לקהל היעד שלכם, בסופו של דבר המטרה שלכם היא למשוך את הקהל הזה.

  1. יחסי ציבור

קישורי סמכות הם מרכיב מרכזי של SEO, אבל רכישת קישורים אסורה על ידי גוגל, בינג, ומנועי חיפוש אחרים. זה המקום שבו קמפיין שמורכב מיחסי ציבור נכנס לשחק. אם יש לכם נציגי יחסי ציבור, דברו איתם ותאמו איתם הליכים כדי לקדם את האתר וחשבו ביחד כיצד אפשר "לקפוץ מדרגה" בתהליך זה. אם בכל זאת החלטתם לעשות זאת בעצמכם, המשיכו לקרוא.

גוגל מייעצת לבעלי אתרים לבנות אתרים שמשתמשים ירצו לספר לחברים שלהם עליהם. מסוג האתרים שמבקרים בהם שוב ושוב. הגישה הזו מציעה לבנות אתר כבד-תוכן, והיא התשובה של גוגל לשאלה הנצחית של "כיצד אוכל לקבל קישורים נוספים בצורה חוקית, הוגנת ואתית?"

אז איך הופכים אתר לכזה שרוצים לדבר עליו? שומרים על התוכן שאתם מייצרים ממוקד ובעל ערך. אפשר גם להציג סוג של טיזר כדי להיכנס לשאר הכתבה או המאמר, כאשר הגולש רואה שההתחלה מעניינת, הסקרנות שלו כבר תעשה את שאר העבודה. עם זאת, חשוב לא לעשות "קליקבייטים" שיגרמו לקוראים ללחוץ על מאמרים בגלל כותרת מושכת, ולהתאכזב מתוכן המאמר. האתר שלכם צריך להיות אמין והגון בשביל שגולשים יחזרו אליו בעתיד.

מחקר התחרות שמופיע בסעיף 2 שימושי כאן כי אתם יודעים בדיוק איך נראים האתרים המשפיעים ביותר בתחום שלכם ואתם יכולים ללמוד מהם איך גם אתם תוכלו להתברג בראש תוצאות החיפוש של גוגל.

  1. בניית רשת המדיה החברתית שלכם

היום יש כבר לא מעט רשתות חברתיות- פייסבוק, LinkedIn, Instagram, Pinterest, Twitter. המדיות החברתיות מאפשרות לכם להתחבר לגולשים וללקוחות הפוטנציאליים שלכם. בנוסף, הן מאפשרות לכם לבנות זהות למותג שלכם וגם קהילה של המותג, המוצר או העסק שלכם ולהציע לקהל שלכם את התוכן אשר רלוונטי ביותר עבורם.

לקוחות מחפשים חיבור למוצר או למותג, הם מחפשים להרגיש שייכות לקהילה מסויימת של אנשים שחושבים כמוהם, עם ערכים דומים לשלהם ועם תחומי עניין משותפים – בעזרת המדיות החברתיות תוכלו לבנות לכם בסיס של לקוחות נאמנים.

טיפוח היחסים האלו יגביר את קידום האתר שלכם בטווח הארוך והגדלת החשיפה של התוכן שלכם מעלה את הסבירות שחלק מהגולשים האלו יכנסו דרך הרשת החברתית לאתר שלכם באמצעות קישור הפנייה או פשוט כי המידע שפרסמתם עניין אותם והם רוצים לראות עוד ממה שיש לכם להציע.

  1. תלמדו איך להשתמש בגוגל אנליטיקס

אתם לא יכול לייעל את מה שאתם לא יכולים למדוד. חשיבותה של האנליזה בשיווק הדיגיטלי דומה לדו"חות הכספיים בעסקים, ושניהם חיוניים כדי לעקוב אחר הביצועים.

אם יש לכם אתר, אתם חייבים לקבל הבנה בסיסית על איך עובד גוגל אנליטיקס. ב- גוגל אנליטיקס, ניתן לעיין בדוחות לדוג' Acquisition > All Traffic > Channels . על ידי לחיצה על "חיפוש אורגני", תוכלו לנתח את הביצועים עבור הקידום האורגני של האתר שלכם ולהבין איפה אתם עומדים, ומה עובד לכם טוב יותר וטוב פחות וכך תדעו לדעת בדיוק מה אתם צריכים לשפר.

  1. חפשו בלוג שמתעסק בקידום אתרים

ברשת יש המון מידע על קידום אתרים, יש לכם זמן פנוי? השקיעו בלמידה, הירשמו לסדנה או קחו קורס בנושא.. עם זאת, חשוב לדעת למה נכנסים – אם החלטתם לקדם את האתר שלכם בעצמכם, אתם תצטרכו ללמוד כל הזמן ולתת את 100% שלכם. עולם הקידום האורגני מתעדכן באופן שוטף וגוגל מבצעת עדכונים תכופים באלגוריתמים ובשיטות הדירוג שלה.

  1. אל תפחדו לשאול שאלות

אם אתם תקועים או שיש לכם שאלות בתהליך הקידום האורגני, חפשו פורומים וקהילות בתחום קידום האתר ואל תחששו לשאול שאלות בנושא, רוב הסיכויים שתמצאו כבר את התשובה לשאלה שלכם מחיפוש קצר בדיונים קודמים. ואם לא, תהססו לשאול, לבדוק, לחקור ולקבל תשובות על כל נושא בתהליך הקידום – אין מי שלא התחיל ככה וקהילת קידום האתרים היא קהילה תומכת ועוזרת.

יובל לגשטיין

יובל לגשטיין

בעלים של חברת "SEO FIX" - קידום אתרים לעסקים שרעבים באמת לתוצאות, עוסק בתחום הדיגיטל כ-13 שנים. כותב תוכן, וקופירייטר, בעל ניסיון אדיר בקידום אתרי מסחר ותדמית עם חשיבה מחוץ לקופסא.

ניתן להשתמש בחצי המקלדת בכדי לנווט בין כפתורי הרכיב
",e=e.removeChild(e.firstChild)):"string"==typeof o.is?e=l.createElement(a,{is:o.is}):(e=l.createElement(a),"select"===a&&(l=e,o.multiple?l.multiple=!0:o.size&&(l.size=o.size))):e=l.createElementNS(e,a),e[Ni]=t,e[Pi]=o,Pl(e,t,!1,!1),t.stateNode=e,l=Ae(a,o),a){case"iframe":case"object":case"embed":Te("load",e),u=o;break;case"video":case"audio":for(u=0;u<$a.length;u++)Te($a[u],e);u=o;break;case"source":Te("error",e),u=o;break;case"img":case"image":case"link":Te("error",e),Te("load",e),u=o;break;case"form":Te("reset",e),Te("submit",e),u=o;break;case"details":Te("toggle",e),u=o;break;case"input":A(e,o),u=M(e,o),Te("invalid",e),Ie(n,"onChange");break;case"option":u=B(e,o);break;case"select":e._wrapperState={wasMultiple:!!o.multiple},u=Uo({},o,{value:void 0}),Te("invalid",e),Ie(n,"onChange");break;case"textarea":V(e,o),u=H(e,o),Te("invalid",e),Ie(n,"onChange");break;default:u=o}Me(a,u);var s=u;for(i in s)if(s.hasOwnProperty(i)){var c=s[i];"style"===i?ze(e,c):"dangerouslySetInnerHTML"===i?(c=c?c.__html:void 0,null!=c&&Aa(e,c)):"children"===i?"string"==typeof c?("textarea"!==a||""!==c)&&X(e,c):"number"==typeof c&&X(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(ea.hasOwnProperty(i)?null!=c&&Ie(n,i):null!=c&&x(e,i,c,l))}switch(a){case"input":L(e),j(e,o,!1);break;case"textarea":L(e),$(e);break;case"option":null!=o.value&&e.setAttribute("value",""+P(o.value));break;case"select":e.multiple=!!o.multiple,n=o.value,null!=n?q(e,!!o.multiple,n,!1):null!=o.defaultValue&&q(e,!!o.multiple,o.defaultValue,!0);break;default:"function"==typeof u.onClick&&(e.onclick=Fe)}Ve(a,o)&&(t.effectTag|=4)}null!==t.ref&&(t.effectTag|=128)}return null;case 6:if(e&&null!=t.stateNode)Ll(e,t,e.memoizedProps,o);else{if("string"!=typeof o&&null===t.stateNode)throw Error(r(166));n=yn(yu.current),yn(bu.current),Jn(t)?(n=t.stateNode,o=t.memoizedProps,n[Ni]=t,n.nodeValue!==o&&(t.effectTag|=4)):(n=(9===n.nodeType?n:n.ownerDocument).createTextNode(o),n[Ni]=t,t.stateNode=n)}return null;case 13:return zt(vu),o=t.memoizedState,0!==(64&t.effectTag)?(t.expirationTime=n,t):(n=null!==o,o=!1,null===e?void 0!==t.memoizedProps.fallback&&Jn(t):(a=e.memoizedState,o=null!==a,n||null===a||(a=e.child.sibling,null!==a&&(i=t.firstEffect,null!==i?(t.firstEffect=a,a.nextEffect=i):(t.firstEffect=t.lastEffect=a,a.nextEffect=null),a.effectTag=8))),n&&!o&&0!==(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!==(1&vu.current)?rs===Qu&&(rs=Yu):(rs!==Qu&&rs!==Yu||(rs=Gu),0!==us&&null!==es&&(To(es,ns),Co(es,us)))),(n||o)&&(t.effectTag|=4),null);case 4:return wn(),Ol(t),null;case 10:return Zt(t),null;case 17:return It(t.type)&&Ft(),null;case 19:if(zt(vu),o=t.memoizedState,null===o)return null;if(a=0!==(64&t.effectTag),i=o.rendering,null===i){if(a)mr(o,!1);else if(rs!==Qu||null!==e&&0!==(64&e.effectTag))for(i=t.child;null!==i;){if(e=_n(i),null!==e){for(t.effectTag|=64,mr(o,!1),a=e.updateQueue,null!==a&&(t.updateQueue=a,t.effectTag|=4),null===o.lastEffect&&(t.firstEffect=null),t.lastEffect=o.lastEffect,o=t.child;null!==o;)a=o,i=n,a.effectTag&=2,a.nextEffect=null,a.firstEffect=null,a.lastEffect=null,e=a.alternate,null===e?(a.childExpirationTime=0,a.expirationTime=i,a.child=null,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null):(a.childExpirationTime=e.childExpirationTime,a.expirationTime=e.expirationTime,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,i=e.dependencies,a.dependencies=null===i?null:{expirationTime:i.expirationTime,firstContext:i.firstContext,responders:i.responders}),o=o.sibling;return Mt(vu,1&vu.current|2),t.child}i=i.sibling}}else{if(!a)if(e=_n(i),null!==e){if(t.effectTag|=64,a=!0,n=e.updateQueue,null!==n&&(t.updateQueue=n,t.effectTag|=4),mr(o,!0),null===o.tail&&"hidden"===o.tailMode&&!i.alternate)return t=t.lastEffect=o.lastEffect,null!==t&&(t.nextEffect=null),null}else 2*ru()-o.renderingStartTime>o.tailExpiration&&1t)&&vs.set(e,t)))}}function Ur(e,t){e.expirationTimee?n:e,2>=e&&t!==e?0:e}function qr(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=$t(Vr.bind(null,e));else{var t=Br(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=Fr();if(1073741823===t?r=99:1===t||2===t?r=95:(r=10*(1073741821-t)-10*(1073741821-r),r=0>=r?99:250>=r?98:5250>=r?97:95),null!==n){var o=e.callbackPriority;if(e.callbackExpirationTime===t&&o>=r)return;n!==Yl&&Bl(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?$t(Vr.bind(null,e)):Wt(r,Hr.bind(null,e),{timeout:10*(1073741821-t)-ru()}),e.callbackNode=t}}}function Hr(e,t){if(ks=0,t)return t=Fr(),No(e,t),qr(e),null;var n=Br(e);if(0!==n){if(t=e.callbackNode,(Ju&(Wu|$u))!==Hu)throw Error(r(327));if(lo(),e===es&&n===ns||Kr(e,n),null!==ts){var o=Ju;Ju|=Wu;for(var a=Yr();;)try{eo();break}catch(t){Xr(e,t)}if(Gt(),Ju=o,Bu.current=a,rs===Ku)throw t=os,Kr(e,n),To(e,n),qr(e),t;if(null===ts)switch(a=e.finishedWork=e.current.alternate,e.finishedExpirationTime=n,o=rs,es=null,o){case Qu:case Ku:throw Error(r(345));case Xu:No(e,2=n){e.lastPingedTime=n,Kr(e,n);break}}if(i=Br(e),0!==i&&i!==n)break;if(0!==o&&o!==n){e.lastPingedTime=o;break}e.timeoutHandle=Si(oo.bind(null,e),a);break}oo(e);break;case Gu:if(To(e,n),o=e.lastSuspendedTime,n===o&&(e.nextKnownPendingLevel=ro(a)),ss&&(a=e.lastPingedTime,0===a||a>=n)){e.lastPingedTime=n,Kr(e,n);break}if(a=Br(e),0!==a&&a!==n)break;if(0!==o&&o!==n){e.lastPingedTime=o;break}if(1073741823!==is?o=10*(1073741821-is)-ru():1073741823===as?o=0:(o=10*(1073741821-as)-5e3,a=ru(),n=10*(1073741821-n)-a,o=a-o,0>o&&(o=0),o=(120>o?120:480>o?480:1080>o?1080:1920>o?1920:3e3>o?3e3:4320>o?4320:1960*Uu(o/1960))-o,n=o?o=0:(a=0|l.busyDelayMs,i=ru()-(10*(1073741821-i)-(0|l.timeoutMs||5e3)),o=i<=a?0:a+o-i),10 component higher in the tree to provide a loading indicator or placeholder to display."+N(i))}rs!==Zu&&(rs=Xu),l=yr(l,i),f=a;do{switch(f.tag){case 3:u=l,f.effectTag|=4096,f.expirationTime=t;var w=Ar(f,u,t);ln(f,w); break e;case 1:u=l;var E=f.type,k=f.stateNode;if(0===(64&f.effectTag)&&("function"==typeof E.getDerivedStateFromError||null!==k&&"function"==typeof k.componentDidCatch&&(null===ms||!ms.has(k)))){f.effectTag|=4096,f.expirationTime=t;var _=Ir(f,u,t);ln(f,_);break e}}f=f.return}while(null!==f)}ts=no(ts)}catch(e){t=e;continue}break}}function Yr(){var e=Bu.current;return Bu.current=Cu,null===e?Cu:e}function Gr(e,t){eus&&(us=e)}function Jr(){for(;null!==ts;)ts=to(ts)}function eo(){for(;null!==ts&&!Gl();)ts=to(ts)}function to(e){var t=Fu(e.alternate,e,ns);return e.memoizedProps=e.pendingProps,null===t&&(t=no(e)),qu.current=null,t}function no(e){ts=e;do{var t=ts.alternate;if(e=ts.return,0===(2048&ts.effectTag)){if(t=br(t,ts,ns),1===ns||1!==ts.childExpirationTime){for(var n=0,r=ts.child;null!==r;){var o=r.expirationTime,a=r.childExpirationTime;o>n&&(n=o),a>n&&(n=a),r=r.sibling}ts.childExpirationTime=n}if(null!==t)return t;null!==e&&0===(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=ts.firstEffect),null!==ts.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=ts.firstEffect),e.lastEffect=ts.lastEffect),1e?t:e}function oo(e){var t=qt();return Vt(99,ao.bind(null,e,t)),null}function ao(e,t){do lo();while(null!==gs);if((Ju&(Wu|$u))!==Hu)throw Error(r(327));var n=e.finishedWork,o=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error(r(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var a=ro(n);if(e.firstPendingTime=a,o<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:o<=e.firstSuspendedTime&&(e.firstSuspendedTime=o-1),o<=e.lastPingedTime&&(e.lastPingedTime=0),o<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===es&&(ts=es=null,ns=0),1u&&(c=u,u=l,l=c),c=Ue(w,l),f=Ue(w,u),c&&f&&(1!==k.rangeCount||k.anchorNode!==c.node||k.anchorOffset!==c.offset||k.focusNode!==f.node||k.focusOffset!==f.offset)&&(E=E.createRange(),E.setStart(c.node,c.offset),k.removeAllRanges(),l>u?(k.addRange(E),k.extend(f.node,f.offset)):(E.setEnd(f.node,f.offset),k.addRange(E)))))),E=[];for(k=w;k=k.parentNode;)1===k.nodeType&&E.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof w.focus&&w.focus(),w=0;w=t&&e<=t}function To(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;nt||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function Co(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function No(e,t){var n=e.lastExpiredTime;(0===n||n>t)&&(e.lastExpiredTime=t)}function Po(e,t,n,o){var a=t.current,i=Fr(),l=su.suspense;i=jr(i,a,l);e:if(n){n=n._reactInternalFiber;t:{if(J(n)!==n||1!==n.tag)throw Error(r(170));var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(It(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);throw Error(r(171))}if(1===n.tag){var s=n.type;if(It(s)){n=Dt(n,s,u);break e}}n=u}else n=Al;return null===t.context?t.context=n:t.pendingContext=n,t=on(i,l),t.payload={element:e},o=void 0===o?null:o,null!==o&&(t.callback=o),an(a,t),Dr(a,i),i}function Oo(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Ro(e,t){e=e.memoizedState,null!==e&&null!==e.dehydrated&&e.retryTime