SEO לאתר Astro צעד אחר צעד: רינדור סטטי או בשרת, תגיות head, מפת אתר, hreflang, תמונות, JSON-LD והפניות, כולל בדיקה מול התיעוד הרשמי של Astro.

בעמוד זה
בקצרה
Astro היא אחת ממסגרות הפיתוח הידידותיות ביותר ל-SEO, כי היא מרנדרת מראש את הדפים ל-HTML נקי ולא שולחת JavaScript לדפדפן אלא אם ביקשתם זאת. כך גוגל והסורקים של מערכות ה-AI מקבלים את התוכן המלא כבר בבקשה הראשונה. עם זאת, Astro לא עושה את ה-SEO במקומכם: כותרות, תיאורי מטא, קנוניקלים, hreflang, נתונים מובנים והפניות נשארים באחריותכם, בעיקר ברכיב head משותף ובאינטגרציית מפת האתר הרשמית.
רוצים להעמיק? שאלו את
שאלון קצר
האם SEO מתאים לכם, ואיך להתחיל?
Sorank מתאים לתשובות שלכם
נסו אותו 3 ימים באתר שלכם וראו איפה אתם עומדים ב-Google, ב-ChatGPT ובשאר מערכות הבינה המלאכותית.
התחילו ניסיון חינם ל-3 ימים3 ימים חינם, ואז מפסיקים מתי שרוצים. אחריות לתוצאות או החזר כספי למשך 90 יום.
SEO ב-Astro הוא העבודה שהופכת את ה-HTML הנקי הזה לדפים שמדורגים. המדריך של גוגל ליסודות SEO ל-JavaScript מסביר שאתרי JavaScript מעובדים בשלושה שלבים (סריקה, רינדור, הוספה לאינדקס) וקובע שרינדור בצד השרת או רינדור מראש הם עדיין רעיון מצוין, כי לא כל הבוטים מריצים JavaScript. Astro מתחילה מהנקודה הזו כברירת מחדל. המדריך הזה מכסה את השאר, הגדרה אחר הגדרה, וכל התנהגות נבדקה מול התיעוד הרשמי של Astro. אגב, האתר sorank.com שאתם קוראים עכשיו רץ על Astro.
כן, מהצד הטכני. Astro מרנדרת רכיבים ל-HTML בזמן הבנייה ומסירה את ה-JavaScript שמסגרות כמו React או Vue היו שולחות בדרך כלל לדפדפן. כך נמנעות הבעיות הקלאסיות שמתוארות במדריך שלנו לSEO ל-JavaScript: מעטפות HTML ריקות, תוכן שמופיע רק אחרי הרינדור, קישורים שאינם תגיות עוגן אמיתיות. נמנעות גם מלכודות הניתוב של אפליקציית עמוד יחיד, כי כל נתיב ב-Astro הוא כתובת URL אמיתית עם קובץ HTML משלה.
מה ש-Astro לא עושה חשוב באותה מידה. אין תוסף SEO מובנה, אין תיאור מטא אוטומטי, אין תגית קנוניקל אוטומטית ואין נתונים מובנים. הטבלה מפרידה בין מה שמקבלים בחינם לבין מה שצריך לבנות.
| רכיב SEO | מה Astro נותנת | מה אתם מוסיפים |
|---|---|---|
| HTML שניתן לסריקה | HTML מרונדר מראש כברירת מחדל | כלום, אלא אם תוכן מרונדר רק בצד הלקוח |
| כותרת ותיאור מטא | head שאתם שולטים בו בכל תבנית | רכיב SEO משותף שכל דף מזין |
| תגית קנוניקל | Astro.site ו-Astro.url לבניית כתובות מוחלטות | תגית ה-link עצמה, עם לוכסן סופי עקבי |
| מפת אתר XML | האינטגרציה הרשמית @astrojs/sitemap | להתקין, להגדיר את site, לסנן דפים פרטיים |
| hreflang | ניתוב i18n ואפשרות i18n במפת האתר | קישורי alternate ב-head של כל דף |
| תמונות | הרכיבים Image ו-Picture שמבצעים אופטימיזציה | טקסט חלופי תיאורי, גדלים מתאימים |
| נתונים מובנים | שום דבר ייעודי | סקריפטים של JSON-LD לכל סוג דף |
| הפניות | אפשרות redirects בהגדרות | הפניות 301 אמיתיות אצל ספק האחסון לאתר סטטי |
התיעוד של Astro על רינדור לפי דרישה ברור: כברירת מחדל, דפים, נתיבים ונקודות קצה של API מרונדרים מראש בזמן הבנייה כדפים סטטיים. מבחינת SEO, פלט סטטי הוא הבחירה הבטוחה ביותר: כל URL הוא קובץ HTML מוכן, שמוגש מרשת CDN, מהיר וזהה לכל מבקר ולכל בוט.
רינדור לפי דרישה (בשרת) מחייב מתאם (adapter) לספק האחסון שלכם (למשל Node, Netlify, Vercel או Cloudflare). לאחר מכן מוציאים נתיב בודד מהרינדור המוקדם עם export const prerender = false, או מעבירים את כל הפרויקט ל-output: 'server' ומחזירים דפים סטטיים אחד אחד. שני המצבים מפיקים HTML מלא, כך שגוגל רואה את אותו הדבר. ההבדלים נמצאים במקום אחר:
כלל האצבע: השאירו סטטיים את דפי השיווק, מאמרי הבלוג והתיעוד, ורנדרו לפי דרישה רק נתיבים שזקוקים לנתונים חיים. התיעוד של Astro ממליץ אותו דבר: להישאר במצב הסטטי שהוא ברירת המחדל עד שרוב הדפים יזדקקו לרינדור לפי דרישה.
צרו רכיב SEO אחד (לרוב בשם BaseHead או Seo) ושלבו אותו ב-head של כל תבנית. הוא מקבל כותרת, תיאור, תמונה אופציונלית ודגל noindex אופציונלי, ומפיק:
הגדירו קודם את האפשרות site בקובץ astro.config.mjs: הקנוניקל, מפת האתר והתגיות החברתיות תלויים בה. אחר כך בחרו מדיניות trailingSlash ('always' או 'never') ודבקו בה, כדי ש-/blog/post ו-/blog/post/ לא יתחרו לעולם כשתי גרסאות של אותו דף. הסירו פרמטרים של שאילתה מהקנוניקל, כדי שפרמטרי מעקב לא ייצרו כפילויות.
טיפ
אם המאמרים שלכם נמצאים ב-content collections, הפכו את הכותרת והתיאור לשדות חובה בסכמה של האוסף. כך הבנייה נכשלת כשכותב שוכח תיאור מטא, במקום לשלוח לגוגל קטע ריק.
השתמשו באינטגרציה הרשמית שמתועדת בדף של @astrojs/sitemap. הפקודה npx astro add sitemap מתקינה אותה ומוסיפה אותה להגדרות. היא מחייבת את האפשרות site, ובזמן הבנייה כותבת קובץ sitemap-index.xml שמפנה לקבצים ממוספרים (sitemap-0.xml, ועוד באתרים גדולים). כל קובץ מכיל עד 45,000 רשומות כברירת מחדל, ערך שנקבע באפשרות entryLimit. אם הפורמט חדש לכם, ערך המילון שלנו על מפת אתר XML מסביר מה גוגל עושה איתה.
שלוש הגדרות חשובות ל-SEO:
שימו לב
לפי התיעוד, האינטגרציה לא יכולה לייצר רשומות במפת האתר עבור נתיבים דינמיים במצב SSR. אם דפי המוצר או המאמרים שלכם מרונדרים לפי דרישה, הם יחסרו במפת האתר, אלא אם תרנדרו אותם מראש או תוסיפו אותם בעצמכם.
ל-robots.txt מספיק ברוב האתרים קובץ סטטי בתיקייה public. אם התוכן שונה בין סביבת הבדיקות לייצור, עדיף לייצר אותו מנקודת קצה (src/pages/robots.txt.ts). בשני המקרים הוסיפו שורת Sitemap שמפנה ל-sitemap-index.xml, ובדקו את התוצאה עם בודק robots.txt לפני העלייה לאוויר. באותה טכניקה מייצרים גם קובץ llms.txt; המדריך שלנו להתקנת קובץ llms.txt מפרט את תוכנו.
ניתוב ה-i18n המובנה של Astro מטפל בצד של הכתובות. בהגדרות מצהירים על defaultLocale ועל רשימת locales, ובוחרים אם גם שפת ברירת המחדל תקבל קידומת (prefixDefaultLocale). פונקציות עזר כמו getRelativeLocaleUrl בונות קישורים מתורגמים, ו-Astro.currentLocale מגלה לכל דף באיזו שפה הוא.
מדריך הניתוב לא עוסק בתגיות hreflang ב-head, ולכן תכננו לכתוב אותן בעצמכם ברכיב ה-SEO: לכל דף, קישור alternate אחד לכל גרסת שפה ועוד x-default, הכול ככתובות מוחלטות, וכל גרסה חייבת לציין את כל האחרות (קישורים חוזרים). יצירה שלהן מאותה רשימת שפות של הניתוב מונעת את הטעות הנפוצה ביותר: חלופה שמפנה לדף שלא קיים. כדי לבדוק את הלוגיקה על כמה כתובות, מחולל ה-hreflang שלנו מפיק את סט התגיות המלא לדף. אחר כך הפעילו את אפשרות ה-i18n של מפת האתר כאות נוסף.
מהירות היא התחום שבו Astro מרוויחה הכי הרבה, וזה ניכר בCore Web Vitals. מדריך התמונות של Astro מתאר את הרכיב Image מתוך astro:assets: הוא מבצע אופטימיזציה לתמונות מקומיות, ממיר את הפורמט שלהן, מוסיף טעינה עצלה ופענוח אסינכרוני, ומסיק את מידות התמונה כדי למנוע Cumulative Layout Shift. מאפיין ה-alt הוא חובה ברכיב, מה שאוכף כלל בסיסי של SEO לתמונות. הרכיב Picture הולך רחוק יותר ומגיש AVIF או WebP עם גיבוי.
שני הרגלים משלימים את התמונה. שמרו ב-src את התמונות שצריכות אופטימיזציה (קבצים ב-public מוגשים כמו שהם, בלי עיבוד). ואל תטענו בטעינה עצלה את התמונה הראשית בראש הדף: טענו אותה מיד כדי שלא תעכב את Largest Contentful Paint.
ארכיטקטורת האיים שומרת על ה-JavaScript בשליטה. רכיב נשאר HTML סטטי עד שמוסיפים לו הנחיית לקוח: client:load מפעיל אותו מיד, client:idle כשהדפדפן פנוי, client:visible רק כשהוא נכנס לאזור הנראה. שמירת client:load למה שחייב להגיב מיד (תפריט, עגלת קניות) היא הדרך הפשוטה ביותר להגן על Interaction to Next Paint. איי שרת (server:defer) טוענים בלוק מותאם אישית אחרי הדף השמור במטמון, בלי להאט את התוכן הראשי.
לידיעתכם
אי מעכב רק את האינטראקטיביות שלו, לא את הטקסט שלו, כל עוד הרכיב מרונדר קודם בשרת. תוכן שנטען בדפדפן מאוחר יותר הוא מקרה אחר: סורקים שלא מריצים JavaScript, ובהם סורקי AI רבים, לא יראו אותו.
ל-Astro אין פונקציית schema, וזה משאיר לכם שליטה מלאה. בנו אובייקט JavaScript לכל סוג דף (Article, Product, Organization, BreadcrumbList, FAQPage) והציגו אותו בתגית script מסוג application/ld+json, עם ההנחיה set:html ו-JSON.stringify כדי שה-JSON לא יעבור escape. הזינו אותו מאותם נתוני frontmatter או אוסף כמו הדף הגלוי: כך הסימון תמיד תואם למה שהמשתמשים רואים, דרישה בהנחיות של גוגל על סימון schema.
כדי לנסח את ה-JSON לסוג דף חדש, מחולל ה-schema החינמי שלנו נותן בלוק פתיחה תקין שאותו הופכים לתבנית. אמתו מדגם של דפים בנויים בבדיקת התוצאות העשירות של גוגל אחרי כל שינוי בתבנית.
מעבר מ-WordPress או מ-Next.js הוא הרגע המסוכן ביותר לאתר Astro. שמרו כל URL שיש לו תנועה או קישורים נכנסים, והתאימו את השאר אחד אחד למקבילה הקרובה ביותר עם הפניות קבועות, כפי שמוסבר במדריך שלנו להפניות SEO.
ההגדרות של Astro מקבלות אובייקט redirects שממפה נתיבים ישנים לחדשים. עם מתאם הם הופכים להפניות HTTP אמיתיות. בבנייה סטטית לחלוטין, Astro כותבת במקומם דף HTML עם meta refresh, שגוגל אמנם עוקב אחריו אבל מתייחס אליו כאות חלש יותר מ-301 בצד השרת. באתר סטטי, הצהירו על ההפניות בפורמט של ספק האחסון (קובץ _redirects ב-Netlify או ב-Cloudflare Pages, קובץ vercel.json ב-Vercel) כדי שהסורקים יקבלו 301 אמיתי.
ציטוט על ידי ChatGPT, Perplexity או Gemini מתחיל בקריאוּת. סורקי AI רבים מורידים את ה-HTML הגולמי בלי להריץ JavaScript, כך שאתר שמספק את כל הטקסט כבר בתגובה הראשונה, כמו Astro כברירת מחדל, מסיר מכשול שאתרים שמרונדרים בצד הלקוח עדיין מתמודדים איתו. כותרות ביניים ברורות, פסקאות שעונות מיד, נתונים מובנים וקובץ llms.txt הופכים כל דף לקל יותר לציטוט.
אחרי העלייה לאוויר, מדדו במקום לנחש. לוח הבקרה GEO ו-SEO של Sorank מרכז את נתוני Search Console ואת הביקורים שמגיעים מעוזרי AI, כדי שתראו אם האתר החדש שומר על המיקומים שלו.

איכות טכנית משתלמת רק כשיש תוכן לדרג. מחולל מאמרי הבלוג מבוסס ה-AI של Sorank כותב ומפרסם מאמרים שמותאמים לגוגל ולמערכות ה-AI, ומתחבר באמצעות webhook לאתר שנבנה בהתאמה אישית, כמו פרויקט Astro.
Astro נותנת כברירת מחדל HTML מהיר שניתן לסריקה; הדירוג עדיין תלוי בתגיות ה-head, מפת האתר, hreflang, הנתונים המובנים וההפניות שאתם מוסיפים. הקימו קודם את רכיב ה-SEO המשותף ואת מפת האתר, ואז עברו על הטבלה שלמעלה לפני העלייה לאוויר.
לא. ל-Astro אין תוסף SEO רשמי מקיף: את הכותרת, תיאור המטא, הקנוניקל והתגיות החברתיות כותבים ברכיב head משותף. האינטגרציה הרשמית @astrojs/sitemap מטפלת במפת האתר. קיימות חבילות קהילה, אבל רכיב קטן משלכם קל לתחזוקה ונשאר כולו בשליטתכם.
שתיהן יכולות להפיק HTML מרונדר במלואו, כך שגוגל יכול להוסיף לאינדקס היטב כל אחת מהן. Astro שולחת כברירת מחדל הרבה פחות JavaScript, מה שבדרך כלל הופך אתרי תוכן למהירים יותר ומסייע ל-Core Web Vitals. Next.js מתאימה יותר לאפליקציות אינטראקטיביות מאוד; לבלוגים, לאתרי תדמית ולתיעוד, Astro היא הבחירה הפשוטה יותר ל-SEO.
כן. דף שמרונדר לפי דרישה מחזיר ל-Googlebot גם הוא HTML מלא, בדיוק כמו דף מרונדר מראש. הנקודות שצריך לבדוק הן זמן התגובה של השרת, שמשפיע על מהירות הטעינה, ואינטגרציית מפת האתר, שלא מציגה נתיבים דינמיים במצב שרת אלא אם תוסיפו אותם בעצמכם.
הם ניסו את Sorank לפניכם
