Category Archives: מדרכי בניית אתרים

SEO קידום אתרים למתחילים – מה זה ואיך עושים את זה

אז השקעת שעות, ימים ולילות, השקעת מחשבה, רשמת איפיון מסודר, השקעת כסף וזמן. בסופו של דבר הקמת את אתר האינטרנט שלך – אבל הגולשים לא באים! מה עושים?!
במאמר זה, נסקור את המושג SEO, ולמה זה טוב לנו. האם זה משהו הכרחי או שאפשר לחיות בלי זה, וזהו סתם עוד גימיק של האינטרנט שיחלוף בקרוב.
לאחר שנבין מה זה SEO, נבדוק איך עושים את זה נכון ומה אסור לעשות.
לבסוף, נבחן ביחד דוגמא חיה ל-SEO באתר ברשת (case study).

 

מבוא

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

SEO הינו קיצור של Search Engine Optimization ובעברית אופטימיזציה למנועי חיפוש או מיטוב למנועי חיפוש.

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

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

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

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

נבחן דוגמא פשוטה:

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

 
צעדים פשוטים ל-SEO מוצלח
1) יצירת תוכן ממוקד תעבורה

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

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

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

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

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

 

לסיכום

 

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

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

שתהיה לך אופטימיזציה למנועי חיפוש מוצלחת

מספר אתרים ללימוד Asp

מספר אתרים ללימוד Asp
שפת ASP

אתרי לימוד בעברית:
http://www.builder.co.il/tutorials/?cat=ASP – אתר תוצרת builder הישראלי, המלמד בכמה שיעורים בודדים ASP.
http://www.sigall.co.il/asp.asp – מדריך ASP הכולל 17 עמודים מפורטים על השפה. מומלץ למי שרוצה בעברית.
http://www.underwar.co.il/library.as…ramming#cat803 – מדריך ישראלי הניתן להורדה. (האתר כולל יותר עזרים ותוכניות ממדריכים).
http://www.webmaster.org.il/guide.asp?subject=asp – המדריך של webmaster הישראלי המוכר. מומלץ למתחילים.

אתרי לימוד באנגלית:
http://www.hotscripts.com/ASP/index.html – עזרים רבים ל-ASP.
http://www.w3schools.com/asp/default.asp – מדריך מצויין של האתר

מדריך | קידום אורגני בשיטת עשה זאת בעצמך

קידום אורגני

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

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

שלב שני: אופטימיזציה
לערוך את הקוד של אתרכם (HTML, CSS, PHP, ASP …) על מנת שיהיה יותר "קריא" וטוב בעיני מנועי חיפוש על מנת שתוכלו לקודם במקומות יותר גבוהים במילות המפתח שלכם, כמובן שצריך לדעת קודם כל מה המילות חיפוש שאתם רוצים לקדם, כל אתר במילותיו שלו לפי קהל היעד שלו.
הפכו את אתרכם שיעמוד כמה שיותר בתקן של W3C.com מבחינת CSS, HTML.
בכותרת האתר שלבו את שמו של אתרכם ואת מילות המפתח שלכם
שימו שני תגי META אחד של תיאור (DESCRIPTION) שיהיה באורך בין שניים לשלושה משפטים הגיוניים עםמילות המפתח, ואחד של מילות מפתח (KEYWORDS) שיציג את כל מילות המפתח עם פסיקים ביניהם
שימו את הכותרת שמוצגת בעמוד הראשי של האתר בתגית H1
שימו שלושה כותרות משניות תחת התגית H2
שלבו כמה שיותר בטקסטים של האתר את מילות המפתח, חשוב מאוד שכל מילת מפתח תהיה מודגשת (BOLD) במיוחד בעמוד הראשי
סדרו את הדף שיהיה מסודר וקריא (הקוד)
דאגו לתפריט ניווט נוח ומעבר קל ושימושי בין דפי האתר

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

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

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

מה זה למעשה מפת אתר SITEMAP?

מה זה למעשה מפת אתר SITEMAP?

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

שלב ראשון הוא יצירת קובץ המפה:

בשלב הראשון עלינו ליצור מפת אתר עבור אתר האינטרנט ולקרוא לו sitemap.xml בתיקיית public_html / wwwroot / httpdocs הראשית שלנו

שלב שני הוא לפתוח ולערוך את מפת האתר שלנו:

עכשיו, פתחו את הטקסט הבא בתוך עורך טקסט (או סביבת עבודה שאתם אוהבים לעבוד בה) ובסיום אל תשכחו לקרוא לו sitemap ולשמור אותו בסיומת xml.
לפניכם הקוד לבניית מפת האתר , פשוט העתיקו והדביקו אותו על סביבת העבודה המועדפת עליכם

CODE >
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.     <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  3.       <url>
  4.         <loc>http://www.relog.co.il/</loc>
  5.         <lastmod>2014-11-07</lastmod>
  6.         <changefreq>monthly</changefreq>
  7.         <priority>1.0</priority>
  8.       </url>
  9.       <url>
  10.         <loc>http://www.relog.co.il/forum.html</loc>
  11.         <changefreq>yearly</changefreq>
  12.         <priority>0.4</priority>
  13.       </url>
  14.     </urlset>

שינוי הגדרות ה "changefreq" , מה זה?

בטח תהיתם למה בכל changefreq יש פרק זמן אחר, כמו "חודשי" שנתי" וכו'.. הנה לפניכם הפריטים:

– always (משתנה בכל רגע נתון שבו העמוד ניתן לגישה על ידי הגולש הסטנדרטי / דפדפן)
– hourly (משתנה כל שעה בו העמוד ניתן לגישה)
– daily (אתם מנחשים יפה, משתנה כל יום)
– monthly (לא צריך לפאר במילים מיותרות)
– yearly (בתדירות שנתית)
– never (אף פעם)

* פרט נוסף הוא החוק של ה changefreg שיקל עליכם לבחור מה אמורים לשים בכל עמודה ב xml שלפנינו.

never מיועד עבור סיפורים ישנים, דברים שקרו לפני המון זמן.
yearly כל עמודי צור קשר, אודותינו, דפי הרשמה והתחברות לאתר
monthly כל כמה זמן אתם משנים את העמוד של שאלות ותשובות? הוראות? חוקי הפורום, מאמרים שהתעדכנו לאחרונה בנושא מסויים?
weekly דף פרטי המוצר ו/או תיאור הפורום וספריות של האתר (תיקיות וכדומה)
daily – אינדקס הבלוג הראשי שלכם, אתר הבית בו אין שינוי, הודעות קטנות של המערכת כמו חג שמח וכאלה
hourly – כל העדכונים העיקריים באתר, עדכוני מזג האוויר, מניות שירדו או עלו, ופורום שכל שעה מומלץ לדעת מה חדש בו
always – לאתר שלא מפסיק להתעדכן, קטגוריות ספרים, מלונאות, מכירות, סופרמרקט ברשת, קניות ברשת וכדומה..

על מה ה priority (סדר החשיבות) אחראי ואיך להשתמש בו?

קבעו מה ערך החשיבות (priority) של העמוד ביחס לשאר הדפים באתר שלכם. תוכלו לקבוע ערך מ 0.0 עד 1.0 עם נקודת התחלת ברירת מחדל עבורכם של 0.5 במרבית האתרים.

0.0 – עדיף שלא
0.1
0.2
0.3
0.4
0.5 – ברירת מחדל
0.6
0.7
0.8
0.9
1.0 – לבחירתכם בלבד

מה חשוב הפריוריטי (priority רמת החשיבות) לגוגל ומה מתאים לכל זה?

0.8 עד 1.0 מתאים עבור: דפי הבית, תת דומיינים(סאב דומיין), פרטי המוצר, פריטים עיקריים באתר
0.4 עד 0.7 מותאם עבור: מאמרים, רשומות בלוג מסויימות, גליצ'ים, דפי קטגוריה, שאלות נפוצות
0.0 עד 0.3 מותאם עבור: עדכונים ישנים, מידע שהפך לא רלוונטי ושהציבור לא מתעניין בו בתדירות גבוהה.

סטטיסטיקה לאתרכם בחינם

 

clicktracks – תוכנה לניתוח לוג השרת. ניתוח מזווית מאוד מעניינת.
opentracker – מערכת סטטיסטיקה מסוג אונליין עם יכולות מרשימות ביותר.
site pulse – סטטיסטיקה לאתרים – מערכת סטטיסטיקה מתקדמת פרי פיתוח ישראלי!
PPhlogger – מערכת סטטיסטיקה חופשית.
גוגל אנליטיק – מערכת סטטיסטיקה מעולה המוצעת בחינם.

 

מדריך | כמה טיפים לקידום אתר איכותי ובמהירות

כתובות העמודים
מומלץ לעשות לכתובות האתרים מבנה שיראה טוב
כלומר לא לעשות דבר כזה:

קוד:
http://***.co.il/page.php?id=1&pram1=akdjhaskdj&pram2=asjhkjhk

אלה להקפיד לעשות מבנה כזה:

קוד:
http://***.co.il/topic/pagename/id/

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

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

קוד:
<b>נעלי ספורט</b> הם מוצר חשוב לכל ספורטאי
<strong>כמעט לכל ספורטאי יש כאלו.</strong>

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

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

הצפנת HTML שאף אחד לא יכול לגנוב לכם את הקודים

הצפנת html

כנסו לכאן הצפינו את הקוד html שלכם .

http://www.iwebtool.com/html_encrypter

Hide all your HTML source code simply with this html encrypter. Prevent your code from being stolen by other webmasters.

קידום אתרים שלילי – 8 פעולות שיכולים לפגוע בדירוג האתר שלך

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

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

כותרות ארוכות ולא ממוקדות

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

תוכן דל ולא מעניין

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

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

נפילות בשרת ושגיאות באתר

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

בעיה בהפניות

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

חוסר עקביות בקישורים נכנסים

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

אבל שוב, תתמקדו על איכות ולא על כמות. קישור איכותי אחד יכול להיות שווה ליותר מ- 100 קישורי זבל.

מגבלה של מבנה קישורים באתר

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

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

 

צפיפות מילות מפתח יכול להוות לתקלה חמורה באתר

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

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

 

מהירות טעינת האתר גבוהה

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

לסיכום

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

מדריך| פיתוח ב ASP.NET – מיפוי מידע מבסיס נתונים לאובייקטים

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

ניקח לדוגמא את טבלת המשתמשים מהמדריך הקודם.
נניח ואנו רוצים למפות את כל המידע לתוך פקד (ASP.NET Repeater), נוכל לרשום דבר כזה:

קוד:
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["conString"].ConnectionString); string sql = "SELECT * FROM Users"; SqlCommand cmd = new SqlCommand(sql, connection); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); adapter.Fill(ds); repeater.DataSource = ds; repeater.DataBind();

כמו במדריך קודם, אנחנו שולפים את הנתונים ל DataSet אבל הפעם אנחנו לא פולטים את ה DataSet שורה שורה אלא שולחים אותו ל Repeater.
בקוד HTML אנחנו רושמים:

קוד:
<asp:Repeater ID="repeater" runat="server"> <ItemTemplate> <tr> <td><%# Eval("ID") %></td> <td><%# Eval("Username") %></td> <td><%# Eval("Password") %></td> </tr> </ItemTemplate> </asp:Repeater>

שימו לב שבערת הפונקציה Eval אנחנו יכולים לגשת לעמודות ב DataSet.
ה ASP.NET Repeater יודע אוטומית מה לעשות כאשר הוא מקבל DataSet.

אובייקט של משתמש

ניצור תיקייה חדשה בשם App_Code (לחיצה ימינית על הפרוייקט -> Add -> Add ASP.NET Folder -> App_Code)
בתוך App_Code ניצור תיקייה בשם Entities וניצור שם מחלקה חדשה בשם User.cs

נירצה לעצב את המחלקה User כך שהיא תכיל את כל התכונות שיש ל User בבסיס הנתונים (ID, Username, Password):

קוד:
class User { public int ID { get; set; } public string Username { get; set; } public string Password { get; set; } }

כעת, בעמוד שלנו (Default.aspx) נוכל ליצור מופעים של המחלקה User ולמלא אותם במשתמשים:

קוד:
User userA = new User(); userA.ID = 1; userA.Username = "arik312"; userA.Password = "32ddsf"; User userB = new User(); userB.ID = 2; userB.Username = "xpc234"; userB.Password = "5sdfsd3";

נוסיף את המופעים לרשימה:

קוד:
List<User> users = new List<User>(); users.Add(userA); users.Add(userB);

כעת נראה שנוכל לשלוח ל Repeater את רשימת המשתמשים כמו שיכולנו לשלוח את ה DataSet:

קוד:
repeater.DataSource = users; repeater.DataBind();


DataSet מול אובייקטים

אז מהם למעשה ההבדלים בין DataSet לבין מה שעשינו פה?

DataSet היא מחלקה כללית ללא אובייקט (מטרה) מסויים.
DataSet היא מאד גמישה, הרשומות נשמרות בתוך טבלה שהעמודות שלה יכולות להשתנות בהתאם לאיך שהן מסודרות בבסיס הנתונים.
DataSet נקרא לפעמים Loosly typed object, אין ל DataSet מטרה ספציפית.

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

החיסרונות של DataSet:

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

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

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

שליפה מבסיס הנתונים

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

נניח ואנחנו רוצים את כל המשתמשים מבסיס הנתונים אל רשימה של המחלקה User שנקראת users.
נפתח חיבור לבסיס נתונים ואז ניצור DataReader:

קוד:
string sql = "SELECT * FROM Users"; SqlCommand cmd = new SqlCommand(sql, connection); connection.Open(); SqlDataReader reader = cmd.ExecuteReader();

כעת נקרא את כל השורות בטבלה של המשתמשים ועבור כל שורה ניצור אובייקט של משתמש שנמלא אותו בערכים של השדות ונכניס אותו לרשימה של המשתמשים:

קוד:
while(reader.Read()) { User user = new User(); user.ID = (int)reader["ID"]; user.Username = reader["Username"].ToString(); user.Password = reader["Password"].ToString(); users.Add(user); }

(שימו לב ש DataReader הוא רשימה של משתנים מסוג object ולכן יש צורך בהמרה לסוג הרצוי).
וכמובן שבסוף נסגור את החיבור לבסיס הנתונים ע"י connection.Close().

DataSet מול DataReader

אתם כנראה שואלים את עצמכם למה לא שלפתי קודם כל את המידע אל אובייקט של DataSet ורק אז מ DataSet למלא את הרשימה של האובייקטים של המשתמשים.
בשביל זה כדאי שתיקראו את הדוקומנטציה באתר של מיקרוסופט על שימוש ב DataAdapter כדי למלא DataSet:
http://msdn.microsoft.com/en-us/libr…vs.110%29.aspx

The Fill method uses the DataReader object implicitly to return the column names and types that are used to create the tables in the DataSet, and the data to populate the rows of the tables in the DataSet.

כלומר, מאחורי הקלעים DataAdapter משתמש ב DataReader כדי למלא את ה DataSet הנתון.
DataAdapter היא מחלקה ממש מורכבת ו DataAdapter.Fill היא פונקציה מאד מורכבת אך כדי להעביר את הנקודה, ננסה להמחיש את אופן הפעולה שלה:

קוד:
void Fill(DateTable dt) { connection.Open(); SqlDataReader reader = cmd.ExecuteReader(); while(reader.Read()) { foreach(Key key in reader.Keys) dt[key] = reader[key]; } connection.Close(); }

(ל DataAdapter.Fill יש גירסה שמקבלת DataTable ולא DataSet, מאחר ו DataSet יכול להכיל מספר רב של טבלאות חשבתי שיהיה יותר פשוט להמחיש את אופן הפעולה של DataAdapter.Fill על טבלה יחידה).

פה אני מנסה להמחיש לכם את אופן הפעולה של DataAdapter.Fill. כמובן שלא מדובר בקוד האמיתי, הקוד האמיתי הרבה יותר מורכב אבל אני רק רוצה להמחיש לכם את האופן שבו DataAdapter משתמש כבר ב DataReader כדי למלא את ה DataSet.

אז במה עדיף להשתמש, ב DataReader או ב DataSet?
השאלה הזאת תלויה מאד במטרה של התוכנית.

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

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

1. שליפת נתונים מבסיס נתונים אל DataSet
2. שליפת נתונים מ DataSet אל רשימה של אובייקטים

במקום:

1. שליפת נתונים מבסיס הנתונים אל רשימה של אובייקטים
2. זהו.

קישורים בין טבלאות

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

ניזכר במערכת הפשוטה של המשתמשים והחיות:

פיתוח ב ASP.NET - מיפוי מידע מבסיס נתונים לאובייקטים

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

נוכל ליצור מחלקה כזו:

קוד:
class Pet { public int ID { get; set; } public string PetName { get; set; } public string Type { get; set; } public int Owner { get; set; } }

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

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

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

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

לכן במקום הקוד למעלה, יותר נכון לרשום מחלקה כזו:

קוד:
class Pet { public int ID { get; set; } public string PetName { get; set; } public string Type { get; set; } public User Owner { get; set; } }

קוד ליצירת רשימה של משתמשים:

קוד:
List<User> PopulateUsers(string Sql) { List<User> list = new List<User>(); SqlConnection connection = new SqlConnection("Connection string…"); SqlCommand cmd = new SqlCommand(Sql, connection); connection.Open(); SqlDataReader reader = cmd.ExecuteReader(); while(reader.Read()) { User user = new User(); user.ID = (int)reader["ID"]; user.Username = reader["Username"].ToString(); user.Password = reader["Password"].ToString(); list.Add(user); } connection.Close(); return list; }

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

קוד ליצירת רשימה של חיות:

קוד:
List<Pet> PopulatePets(string Sql) { List<Pet> list = new List<Pet>(); SqlConnection connection = new SqlConnection("Connection string…"); SqlCommand cmd = new SqlCommand(Sql, connection); connection.Open(); SqlDataReader reader = cmd.ExecuteReader(); while(reader.Read()) { Pet pet = new Pet(); pet.ID = (int)reader["ID"]; pet.PetName = reader["PetName"].ToString(); pet.Type = reader["Type"].ToString(); User owner = PopulateUsers("SELECT * FROM Users WHERE ID = " + reader["Owner"])[0]; pet.Owner = owner; list.Add(pet); } connection.Close(); return list; }

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

במדריך הבא נדבר יותר על הפרדת חלקי קוד ומשימות

כלי חינמי שיכול למצוא לי שגיאות בקוד שפוגעות או טיפים לקידום בגוגל

כלי חינמי שיכול למצוא לי שגיאות בקוד שפוגעות או טיפים לקידום בגוגל

http://www.woorank.com/
או
http://seositecheckup.com/
או
http://www.microsystools.com/products/website-analyzer/
או
http://www.screamingfrog.co.uk/seo-spider/