הגדרת כתובות SEF (כתובות סמנטיות) ב-1C-Bitrix
לאחרונה פנה אלינו לקוח עם חנות מקוונת על Bitrix שפעלה עם כתובות סטנדרטיות כמו /catalog/?SECTION_ID=123&ELEMENT_ID=456. התנועה ירדה, המוצרים לא היו מאונדקסים היטב.
לאחר ביקורת גילינו: כתובות SEF לא הוגדרו לא בבלוקי המידע ולא ברכיבים. תוך 4 שעות העברנו את האתר לכתובות סמנטיות — ותוך חודש הנראות גדלה ב-40%, וה-CTR בתוצאות החיפוש — ב-25%. הנה איך לעשות את אותו הדבר כראוי.
כתובות SEF (כתובות קריאות לאדם) הן כתובות כמו /catalog/noutbuki/apple-macbook-pro-14/ במקום /catalog/?ID=1234&ELEMENT_ID=5678.
Bitrix תומך בכתובות SEF עבור בלוקי מידע באמצעות מנגנון URL_TEMPLATES בהגדרות בלוק המידע ובתבניות הרכיבים. ללא הגדרה נכונה, הרכיבים מייצרים כתובות מכוערות עם פרמטרים שאינן מאונדקסות היטב. במשך יותר מ-10 שנים הגדרנו כתובות SEF ביותר מ-200 אתרים — לא פספסנו אף דדליין.
מדוע כתובות SEF קריטיות ל-SEO?
מנועי חיפוש (Yandex, Google) מעדיפים כתובות קריאות שמכילות מילות מפתח. מחקרים מראים שכתובות SEF מקבלות 25% יותר קליקים מכתובות עם פרמטרים. בנוסף, כתובות SEF משפרות את חוויית המשתמש — המשתמש מבין מיד לאן הקישור מוביל.
בהקשר של Bitrix, כתובות נכונות משפיעות גם על הפעולה התקינה של מיקרו-דאטה ו-Open Graph. כתובות SEF יעילות לפי 1.5 יותר ל-SEO מאשר כתובות פרמטריות.
איך אנחנו מגדירים כתובות SEF: פרויקט טיפוסי
פעם פנתה אלינו רשת חנויות אלקטרוניקה: קטלוג של 50,000 מוצרים, כל הכתובות — עם ELEMENT_ID. ערכנו ביקורת וזיהינו את הבעיות: קודים סימבוליים ריקים ל-40% מהמוצרים, אין מצב SEF ברכיבים, קובץ .htaccess שגוי. תוך יומיים:
- הגדרנו תבניות כתובות ל-15 בלוקי מידע;
- יצרנו אוטומטית קודים סימבוליים לכל המוצרים;
- העברנו את הרכיבים למצב SEF;
- הגדרנו הפניות 301 מכתובות ישנות לחדשות.
התוצאה: תוך שבועיים האינדוקס גדל ב-60%, ה-CTR — ב-15%. הלקוח חסך בפרסום הודות לצמיחה אורגנית. חיסכון כזה הוא מקרה טיפוסי.
איך להגדיר כתובות SEF ב-Bitrix: הוראות שלב-אחר-שלב
שלב 1. הגדרת תבניות כתובות של בלוק המידע
בהגדרות בלוק המידע (תוכן → בלוקי מידע → [בלוק מידע] → עריכה), בלשונית "הגדרות SEF", מוגדרות ארבע תבניות:
| תבנית | דוגמה |
|---|---|
| עמוד רכיב | /catalog/#SECTION_CODE_PATH#/#CODE#/ |
| עמוד מדור | /catalog/#SECTION_CODE_PATH#/ |
| רשימת רכיבים | /catalog/ |
| עמוד מדור (סוג 2) | (אופציונלי) |
#CODE# — הקוד הסימבולי של הרכיב. #SECTION_CODE_PATH# — הנתיב המורכב מהקודים הסימבוליים של כל מדורי האב מופרדים ב-/. #ID# — ה-ID המספרי (גרוע יותר ל-SEO).
קודים סימבוליים (CODE) חייבים להיות מלאים לכל המדורים והרכיבים. בעת ייבוא מ-1C או Excel לעתים קרובות הם לא מועברים — יש להקפיד על יצירה אוטומטית של הקוד מהשם (תעתוק) או יצירה כפויה באמצעות סקריפט.
שלב 2. הגדרת רכיבים
הרכיבים bitrix:catalog, bitrix:news, bitrix:news.detail ורכיבי בלוק מידע אחרים מקבלים את הפרמטר SEF_MODE = Y וקבוצה של פרמטרים SEF_URL_TEMPLATES:
$APPLICATION->IncludeComponent('bitrix:catalog', '', [
'IBLOCK_ID' => 5,
'SEF_MODE' => 'Y',
'SEF_FOLDER' => '/catalog/',
'SEF_URL_TEMPLATES' => [
'section' => '#SECTION_CODE_PATH#/',
'element' => '#SECTION_CODE_PATH#/#CODE#/',
'compare' => 'compare/',
],
'VARIABLE_ALIASES' => [
'PAGEN_1' => 'page',
],
]);
SEF_FOLDER — הנתיב הבסיסי של הרכיב. כל הכתובות שהרכיב מייצר נבנות ביחס אליו. VARIABLE_ALIASES מאפשר להפוך את העימוד לקריא יותר: /catalog/noutbuki/page/2/ במקום /catalog/noutbuki/?PAGEN_1=2.
שלב 3. הגדרת .htaccess / nginx
כתובות SEF פועלות באמצעות כתיבה מחדש של הכתובת למטפל PHP. בשורש האתר, קובץ .htaccess חייב להכיל RewriteRule שמפנה את כל הבקשות לקבצים לא קיימים אל index.php:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L]
Bitrix מוסיף כלל זה אוטומטית במהלך ההתקנה, אבל אם קובץ .htaccess נדרס — יש לשחזר את הכלל. עבור nginx, התצורה המקבילה:
location / { try_files $uri $uri/ /index.php?$query_string; }
יצירה אוטומטית של קודים סימבוליים
בעת הוספת רכיב חדש דרך טופס הניהול, הקוד הסימבולי יכול להיווצר אוטומטית מהשם באמצעות תעתוק. בהגדרות בלוק המידע, לשונית "הגדרות SEF" → "יצירה אוטומטית של קוד סימבולי". כללי התעתוק מוגדרים בהגדרות → הגדרות מוצר → תעתוק.
דוגמת קוד ליצירה המונית של קודים ריקים
למילוי המוני של קודים ריקים עבור רכיבים קיימים:
$res = \CIBlockElement::GetList([], ['IBLOCK_ID' => 5, 'CODE' => false]);
$el = new \CIBlockElement();
while ($item = $res->Fetch()) {
$code = \CUtil::translit($item['NAME'], 'ru', [
'max_len' => 100,
'change_case' => 'L',
'replace_space' => '-',
'replace_other' => '-',
'delete_repeat' => true,
]);
$el->Update($item['ID'], ['CODE' => $code]);
}
השוואה: כתובת פרמטרית מול כתובת SEF
| קריטריון | כתובת פרמטרית | כתובת SEF |
|---|---|---|
| דוגמה | /catalog/?ID=1234 |
/catalog/noutbuki/apple-macbook-pro-14/ |
| בהירות למשתמש | נמוכה | גבוהה |
| השפעה על CTR | נמוך ב-25% | גבוה ב-25% |
| אינדוקס | גרוע יותר | טוב יותר |
| קלות ההעתקה | נמוכה | גבוהה |
טעויות טיפוסיות בהגדרת כתובות SEF
- שכחה להגדיר .htaccess או nginx — כתובות SEF לא עובדות, מופיע 404.
- קודים סימבוליים לרכיבים או למדורים לא מלאים — הכתובות יוצאות עם #ID# או ריקות.
- שימוש ב-#ID# במקום ב-#CODE# — פוגע ב-SEO.
- אי-הגדרת הפניה מכתובות ישנות — אובדן מיקומים.
- שינוי כתובות מבלי להתחשב בעמודים שכבר מאונדקסים — ירידה חדה בתנועה.
מה כלול בהגדרת כתובות SEF במפתח
אנחנו מציעים הגדרה מקיפה הכוללת:
- ביקורת של מבנה הכתובות הנוכחי וזיהוי בעיות;
- הגדרת תבניות כתובות SEF לכל בלוקי המידע;
- הגדרת מצב SEF לרכיבים;
- יצירה המונית של קודים סימבוליים (במידת הצורך);
- הגדרת הפניות 301 מכתובות ישנות לחדשות;
- אימות שההפניות עובדות ושאין שגיאות 404;
- עדכון sitemap.xml ו-robots.txt;
- הכנת דוח על העבודה שבוצעה.
אנחנו מתחייבים שלאחר העבודה שלנו האתר יאונדקס כראוי, והכתובות יהפכו לבהירות וסמנטיות.
לוחות זמנים ועלות
הגדרת כתובות SEF עבור בלוק מידע אחד (תבניות כתובות, פרמטרי רכיבים, .htaccess) אורכת 1–2 שעות. אם נדרשים בנוסף יצירה המונית של קודים סימבוליים והגדרת הפניות 301 מכתובות ישנות — 3–5 שעות.
העלות המדויקת מחושבת באופן אישי לאחר ביקורת. צרו קשר כדי לקבל ייעוץ והערכה ראשונית. הזמינו ביקורת — ואנחנו נראה לכם כמה תוכלו להרוויח.
קישורים שימושיים
קבלו ייעוץ בנושא הגדרת כתובות SEF ב-1C-Bitrix — נעזור לכם להביא את האתר שלכם לצמרת.

