25 דרכים ליצור תוכן איכותי ומדהים באמת

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

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

מאמר זה יחולק לשני נושאים:

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

יצירת תוכן

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

צרו רשימת מילות מפתח

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

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

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

בצעו סיעור מוחות על נושאים ברמות שונות

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

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

בדקו מה עושים המתחרים שלכם

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

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

זהה את הצורך של המשתמש

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

חפרו עמוק יותר וחפשו נושאים מעניינים נוספים

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

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

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

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

תהיו פרקליטו של השטן

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

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

יצירת רשימות

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

תוכן מהתעשייה

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

צרו הדרכות

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

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

להפריך מיתוסים בתעשייה

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

התאמת תוכן לפורמטים חדשים

אחד המקורות הטובים ביותר לתוכן חדש עבור האתר שלכם יכול להיות התוכן הקיים שלכם.

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

קידום אתרים מכני

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

הקפידו על דקדוק ואיות נכון

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

כתבו מאמרים ארוכים

אורך אידיאלי למאמר באינטרנט הוא איפשהו בין 2,000 ל -3,000 מילים.

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

מיטוב כותרת מטא

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

מיטוב תיאור מטא

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

השתמשו במילות המפתח באופן טבעי

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

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

מיטוב תיאור וכותרת

הימנעו מטכניקות כובע שחור

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

קישור פנימי

ודא שיש לכם קישורים פנימיים  מעמודי תוכן לעמודי תוכן אחרים באתר שלכם

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

כפתור שיתוף

קישור למקורות

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

השתמשו בתמונות וכותרות משנה

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

רספונסביות

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

כך לדוגמא נראה האתר כאשר גולשים במכשיר גלקסי S5

אתר רספונסיבי

השתמשו ברשתות חברתיות

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

יצרו ריכוז בעל סמכות לנושא מסוים

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

יובל לגשטיין

יובל לגשטיין

בעלים של חברת "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