איך לשפר את מהירות הטעינה של אתרי וורדפרס?

אופטימיזציה לשיפור מהירות אתר וורדפרס.

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

שיפור מהירות טעינה של אתר ב – 100ms מתורגם לעלייה של 1% במכירות על פי אמזון שהבינו זאת עוד ב 2006. תגובת גוגל כי האלגוריתם לדירוג האתרים שלהם יתחשב במהירות טעינת האתר לא איחרה לבוא.

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

אציין בתחילה, כי למהירות התגובה של שרת האחסון שלכם ובחירת תבנית או Framework נכונים חשיבות מכרעת. מנסיוני, מצאתי כי Thesis Framework היא המהירה והנוחה ביותר מבחינתי, עליה בנוי אתר זה.

1. הפעילו דחיסת GZIP בשרת

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

בכדי להפעיל Gzip בשרת לינוקס הוסיפו את הקוד הבא לקובץ htaccess אשר נמצא בספרייה הראשית של הדומיין שלכם:

# ----------------------------------------------------------------------
# | Compression                                                        |
# ----------------------------------------------------------------------



    # Force compression for mangled `Accept-Encoding` request headers
    # https://developer.yahoo.com/blogs/ydn/pushing-beyond-gzipping-25601.html



            SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
            RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding



    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    # Compress all output labeled with one of the following media types.
    #
    # (!) For Apache versions below version 2.3.7 you don't need to
    # enable `mod_filter` and can remove the ``
    # and `` lines as `AddOutputFilterByType` is still in
    # the core directives.
    #
    # https://httpd.apache.org/docs/current/mod/mod_filter.html#addoutputfilterbytype


        AddOutputFilterByType DEFLATE "application/atom+xml" \
                                      "application/javascript" \
                                      "application/json" \
                                      "application/ld+json" \
                                      "application/manifest+json" \
                                      "application/rdf+xml" \
                                      "application/rss+xml" \
                                      "application/schema+json" \
                                      "application/vnd.geo+json" \
                                      "application/vnd.ms-fontobject" \
                                      "application/x-font-ttf" \
                                      "application/x-javascript" \
                                      "application/x-web-app-manifest+json" \
                                      "application/xhtml+xml" \
                                      "application/xml" \
                                      "font/eot" \
                                      "font/opentype" \
                                      "image/bmp" \
                                      "image/svg+xml" \
                                      "image/vnd.microsoft.icon" \
                                      "image/x-icon" \
                                      "text/cache-manifest" \
                                      "text/css" \
                                      "text/html" \
                                      "text/javascript" \
                                      "text/plain" \
                                      "text/vcard" \
                                      "text/vnd.rim.location.xloc" \
                                      "text/vtt" \
                                      "text/x-component" \
                                      "text/x-cross-domain-policy" \
                                      "text/xml"



    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    # Map the following filename extensions to the specified
    # encoding type in order to make Apache serve the file types
    # with the appropriate `Content-Encoding` response header
    # (do note that this will NOT make Apache compress them!).
    #
    # If these files types would be served without an appropriate
    # `Content-Enable` response header, client applications (e.g.:
    # browsers) wouldn't know that they first need to uncompress
    # the response, and thus, wouldn't be able to understand the
    # content.
    #
    # https://httpd.apache.org/docs/current/mod/mod_mime.html#addencoding


        AddEncoding gzip              svgz



 

במידה והקוד המצויין מעלה אינו עובד לכם, השתמשו בקוד הבא:

<IfModule deflate_module>
    <IfModule filter_module>
        AddOutputFilterByType DEFLATE text/plain text/html
        AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml application/xml-dtd
        AddOutputFilterByType DEFLATE application/rdf+xml application/rss+xml application/atom+xml image/svg+xml
        AddOutputFilterByType DEFLATE text/css text/javascript application/javascript application/x-javascript
        AddOutputFilterByType DEFLATE font/otf font/opentype application/font-otf application/x-font-otf
        AddOutputFilterByType DEFLATE font/ttf font/truetype application/font-ttf application/x-font-ttf
    </IfModule>
</IfModule>

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

2. דחסו תמונות

מובן לכולם שככל שמשקל התמונה קטן יותר, היא תרד מהר יותר. לפני שאני מעלה תמונות לאתר, אני פותח אותן בפוטושופ ושומר אותן באיכות של 65 (במקרה של Jpegs) כ progressive image. לאחר מכן אני דוחס את התמונות על ידי Tinypng.

ישנם מספר תוספים שעושים את העבודה הזו בשבילכם ואחד הראויים לפי דעתי הוא EWWW Image Optimizer שוא חינמי ו Imagify שהוא בתשלום אבל עובד מצויין. כבר נתקלתי אגב בכמה חברות אחסון אשר מונעות מתוספים אלו לעשות את הפעולה (בעיקר בשרתים משותפים) מכיוון והיא מעמיסה על השרת.

במקרים שאני מקפיד במיוחד על מהירות האתר כמו באתר שלי עצמו, תמונות שמשקלן מתחת ל 3Kb אני ממיר ל base64 וחוסך עוד מספר HTTP Requests (קריאות לשרת). מעבר לכך, במידה וישנן תמונות אותן ניתן לאחד לתמונה אחת (Image Sprite), בצעו זאת גם כן על מנת להקטין את מספר הקריאות לשרת. הנה כלי נפלא שיחסוך לכם זמן ביצירת image sprites.

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

3. אפשרו לדפדפן להשתמש ב Cache הפנימי שלו

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

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

# ----------------------------------------------------------------------
# | Expires headers                                                    |
# ----------------------------------------------------------------------

# Serve resources with far-future expires headers.
#
# (!) If you don't control versioning with filename-based
# cache busting, you should consider lowering the cache times
# to something like one week.
#
# https://httpd.apache.org/docs/current/mod/mod_expires.html



    ExpiresActive on
    ExpiresDefault                                      "access plus 1 month"

  # CSS

    ExpiresByType text/css                              "access plus 1 year"


  # Data interchange

    ExpiresByType application/atom+xml                  "access plus 1 hour"
    ExpiresByType application/rdf+xml                   "access plus 1 hour"
    ExpiresByType application/rss+xml                   "access plus 1 hour"

    ExpiresByType application/json                      "access plus 0 seconds"
    ExpiresByType application/ld+json                   "access plus 0 seconds"
    ExpiresByType application/schema+json               "access plus 0 seconds"
    ExpiresByType application/vnd.geo+json              "access plus 0 seconds"
    ExpiresByType application/xml                       "access plus 0 seconds"
    ExpiresByType text/xml                              "access plus 0 seconds"


  # Favicon (cannot be renamed!) and cursor images

    ExpiresByType image/vnd.microsoft.icon              "access plus 1 week"
    ExpiresByType image/x-icon                          "access plus 1 week"

  # HTML

    ExpiresByType text/html                             "access plus 0 seconds"


  # JavaScript

    ExpiresByType application/javascript                "access plus 1 year"
    ExpiresByType application/x-javascript              "access plus 1 year"
    ExpiresByType text/javascript                       "access plus 1 year"


  # Manifest files

    ExpiresByType application/manifest+json             "access plus 1 week"
    ExpiresByType application/x-web-app-manifest+json   "access plus 0 seconds"
    ExpiresByType text/cache-manifest                   "access plus 0 seconds"


  # Media files

    ExpiresByType audio/ogg                             "access plus 1 month"
    ExpiresByType image/bmp                             "access plus 1 month"
    ExpiresByType image/gif                             "access plus 1 month"
    ExpiresByType image/jpeg                            "access plus 1 month"
    ExpiresByType image/png                             "access plus 1 month"
    ExpiresByType image/svg+xml                         "access plus 1 month"
    ExpiresByType image/webp                            "access plus 1 month"
    ExpiresByType video/mp4                             "access plus 1 month"
    ExpiresByType video/ogg                             "access plus 1 month"
    ExpiresByType video/webm                            "access plus 1 month"


  # Web fonts

    # Embedded OpenType (EOT)
    ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
    ExpiresByType font/eot                              "access plus 1 month"

    # OpenType
    ExpiresByType font/opentype                         "access plus 1 month"

    # TrueType
    ExpiresByType application/x-font-ttf                "access plus 1 month"

    # Web Open Font Format (WOFF) 1.0
    ExpiresByType application/font-woff                 "access plus 1 month"
    ExpiresByType application/x-font-woff               "access plus 1 month"
    ExpiresByType font/woff                             "access plus 1 month"

    # Web Open Font Format (WOFF) 2.0
    ExpiresByType application/font-woff2                "access plus 1 month"


  # Other

    ExpiresByType text/x-cross-domain-policy            "access plus 1 week"

4. הסירו ETags

ETags, או בשמם המלא Entity Tags, הם מכניזם בו שרתים ודפדפנים משתמשים בכדי להבין האם נכסים מסויימים בזיכרון המטמון של הדפדפן תואמים לאלו שנמצאים בשרת.

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

# ----------------------------------------------------------------------
# | ETags                                                              |
# ----------------------------------------------------------------------

# Remove `ETags` as resources are sent with far-future expires headers.
#
# https://developer.yahoo.com/performance/rules.html#etags
# https://tools.ietf.org/html/rfc7232#section-2.3

# `FileETag None` doesn't work in all cases.
<IfModule mod_headers.c>
    Header unset ETag
</IfModule>

FileETag None

5. אפשרו Keep Alive Connection

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

אם לא תאפשרו Keep Alive Connection החיבור לשרת אותו הזכרנו בפסקה הקודמת ייסגר לאחר כל קבלת תגובה. מכיוון ואנו מעוניינים לבצע מספר קריאות ותגובות על גבי חיבור TCP יחיד, נאפשר Keep Alive Connection… הוסיפו שורות אלה לקובץ htaccess:

<IfModule mod_headers.c>
    Header set Connection keep-alive
</IfModule>

6. בצעו אופטימיזציה למסד הנתונים

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

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

7. דחסו ואחדו קבצי Javascript ו CSS

פעולה זו תאחד (Concatenate) את קבצי ה Javascript וה CSS שלכם לקובץ אחד (אחד ל CSS ואחד ל JS כמובן) ובכך תצמצם את מספר הקריאות לשרת. מעבר לכך היא תבצע מיניפיקציה לאותם קבצים ובכך תקטין את משקלם.

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

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

שימו לב – פעולת איחוד הקבצים (בשונה מדחיסתם) אינה נדרשת במידה ואתר הוורדפרס שלכם על HTTPS ועובד בפרוטוקול HTTP/2. תנו מבט במאמר על אופטימיזציה בעידן ה HTTP/2.

8. שנו את מיקום תיקיית התמונות (Uploads Folder)

וורדפרס מאחסנת את כל התמונות והקבצים שאתם מעלים בתיקיית wp-content/uploads. העבירו את התיקייה מחוץ לתיקייה הראשית של וורדפרס לסאב דומיין (Sub-Domain).

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

זוהי פעולה מורכבת ועם פתח לבעיות, הייתי ממליץ לוותר על פעולה זו אם אינכם בטוחים ב 100% במה שאתם עושים. בנוסף, אם אתם משתמשים ב CDN פעולה זו אינה רלוונטית כלפיכם.

9. הסירו Query Strings מקבצים סטטים

קבצים אשר בכתובת שלהם קיימים הסימנים "?" או "&", אינם מוגשים דרך זיכרון מטמון (Cache) בדרך כלל. זה מתבטא בקבצי CSS, Javascript ותמונות. אם תסתכלו בקוד המקור של האתר תראו לדוגמא משהו כזה :

<script src="https://your-domain/static/js/loader.js?ver=3.5.4"></script>

הסרה של Query Strings וקידוד הפרמטרים שלהם בכתובת האתר תשפר את מהירות הטעינה אתר הוורדפרס שלכם. בכדי לבצע זאת, הוסיפו את הקוד הבא לקובץ functions.php :

function _remove_script_version( $src ){
	$parts = explode( '?ver', $src );
        return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );

שימו לב – אם אתם משתמשים בפעולות Cache Busting כאלו או אחרות,  הסרת ה Query Strings עלולה לגרום לאותו Cache Busting לא לעבוד כראוי.

10. עכבו פריסת Javascript

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

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

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

11. הסירו תוספים שאינם בשימוש

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

הנה תוסף שיאפשר לכם לבדוק אילו תוספים מאטים את האתר שלכם (זכרו לכבות אותו לאחר השימוש).

הצטרפו לרשימת התפוצה!

12. המנעו משגיאות 404

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

בנוסף, כל http response אשר מבצעת הפניית http תשפיע על מהירות האתר. להפניות 301, 302 וכדומה ישנה השפעה על ביצועי האתר שלכם. אתם נדרשים להזהר ולא לבצע הפניות אלו לקישורים ראשיים ולמשאבים חשובים כגון סקריפטים וקבצי עיצוב (css stylesheets).

13. וודאו טעינה סלקטיבית של תוספים

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

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

 14. השתמשו בתוסף זיכרון מטמון (Cache)

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

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

אופטימיזציה מהירות וזמן טעינה אתר וורדפרס

תוצאות המהירות של סאבי בלוג ב GTmetrix

 

תוצאות המהירות של סאבי בלוג ב Pingdom

תוצאות המהירות של סאבי בלוג ב Pingdom

מעוניינים בזמן טעינה נמוך יותר?

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

בצעו מעבר ל PHP7

גירסת PHP7 הוצגה כבר ב 2015 והליבה של וורדפרס בפני עצמה תומכת בגירסה זו. PHP7 מציגה מספר חידושים והנה כמה מהם:

  • צריכת זיכרון ומשאבים נמוכה יותר לעומת גירסאות קודמות
  • תמיכה קונסיסטנטית יותר ב 64bit
  • גירסה חדשה של מנוע Zend
  • מנוע חדש לטיפול בשגיאות (error handeling)
  • ביצועים ומהירות גבוהה יותר של אתרי וורדפרס (כמובן)

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

התקינו תעודת SSL ובצעו מעבר ל HTTP/2

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

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

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

לסיכום

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

כמובן שאשמח אם תשתפו, תגיבו ותתנו הערות בכדי שכולנו נלמד מהן… (ואם בא לכם להשיג עוד מספר נקודות בגוגל pagespeed תנו מבט במדריך כיצד להשיג עוד מספר נקודות בגוגל PageSpeed Insights… 🙂

רועי יוסף
רועי יוסף

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

{ 64 תגובות… הוסף אחת }
  • חזקי 23 באפריל 2015, 21:37

    ב-8. שנו את המיקום של תיקיית wp-content"
    1. עד כמה זה משמעותי?
    2. זה לא יכול להזיק בקידום?
    3. עד כמה זה טריקי לעשות את זה, ובעצם וורדפרס יוצר את הסאב לבד? אם לא, מה צריך בדיוק ליצור ומה לשים שם?

    • רועי יוסף 23 באפריל 2015, 23:50

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

      תודה לך 🙂

  • רותם שמואלי 24 באפריל 2015, 13:08

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

  • עידו 26 באפריל 2015, 22:39

    איפה שמים את תגיות expire?

  • דוטו מדיה 29 באפריל 2015, 19:49

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

    תודה
    דוטו

  • WP 14 במאי 2015, 18:46

    שלום, מה המיקום המדויק של הקובץ המוזכר בסעיף 9? האם השינוי הזה עובד בכל התבניות?

  • WP 14 במאי 2015, 19:15

    כן.

  • WP 14 במאי 2015, 21:39

    המקום היחיד שאני מוצא קובץ כזה הוא בתיקיית wp-includes (תבנית AVADA). כשאני מוסיף את שורות הקוד שציינת, האתר לא עולה.

  • מנהל מערכת 14 במאי 2015, 23:07

    ב Avada זה נמצא בתיקיה הראשית של התבנית…
    wp-content/themes/avada

  • נאור 17 ביוני 2015, 12:30

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

  • רוב 1 ביולי 2015, 10:59

    היי, איפה יש הסבר ל-zencache?

    • מנהל מערכת 1 ביולי 2015, 12:29

      היי רוב,

      zencache היא פשוטה לתפעול ואינה דורשת הגדרות מיוחדות. הפעל את הפלאגין ווודא כי מסומן על enabled בהגדרות הפלאגין תחת basic configuration. שים לב להפעיל gzip בשרת כמתואר בסעיף 1.

      • רוב 1 ביולי 2015, 12:57

        תודה, השתמשתי בסופו של דבר ב-W3 Total Cache והשארתי את רוב ההגדרות כמו שהם רק הוספתי כל מי אפשרויות שקראתי שצריך.
        עדיף מה שהבאת?
        כשנסיתי את מה שכתבת בסעיף 1 האתר נפל וה-gzip פעיל באתר לפי האתר שאמרת שאפשר לבדוק בו. שאלה דרך אגב, למה יש כזה הבדל גדול בין הבדיקה בגוגל לאתר השני?

        • מנהל מערכת 1 ביולי 2015, 13:12

          שניהם פלאגינים מאד טובים, WTC, מאפשר לך פונקציונליות רחבה יותר כמו הגדרות CDN, Minify וכו׳… לשיקולך במה להשתמש..

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

          • רוב 8 ביולי 2015, 11:56

            תודה על התשובה, הכוונה בשאלה היא שבדקתי באתר Google Analytics ובאתר Pingdom.
            באתר Pingdom קיבלתי 98 ובאתר Google Analytics קיבלתי 48, אני לא מבין למה יש כזה הבדל בתוצאות.
            מה יותר אמין?
            בגוגל קיבלתי את ההודעות האלה באדום:
            Enable compression
            Minify JavaScript
            Eliminate render-blocking JavaScript and CSS in above-the-fold content
            אפשר לסדר את זה עוד יותר עם התוסף שיש לי?

  • אסף קאל 8 ביולי 2015, 10:36

    היי,
    נהניתי לקרוא , בהחלט נראה שאתה בעניינים של מה שאתה עושה!

    לאחרונה אני נתקל בבעיות מהירות באתר שלי – או יותר נכון לאחרונה בעזרת page speed גילתי שישנה בעצם בעיה.רכשתי תבנית חדשה ומודרנית וכרגע אני בשלבי הבנייה.(אינני מתכנת מקצועי). איחסון השרת שלי חברת לייב די אנ אס אומרים כי השרתים שלהם אינם תומכים GZIP
    בשלבי הבניה כרגע התוצאות הן משהו כמו 39 42 נייד שולחני. שזה יותר גרוע מהתבנית הישנה ששם אני על 59/65. האם משהו פה רלונטי עבורי? האם עלי להחליף חברת אחסון ? האם ניתן להתייעץ איתך בנושא?

  • raziel 8 ביולי 2015, 11:58

    אני מאוחסן על HostGator
    אני לא מצליח למצוא את קובץ ה- htaccess
    אשמח לדעת איך אוכל ליצור קובץ כזה 🙂

  • עומר 14 ביולי 2015, 12:07

    אחלה מדריך!
    תודה, תודה, תודה 🙂

  • naomi 29 ביולי 2015, 11:24

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

  • מוטי אלמו 26 באוקטובר 2015, 16:31

    אולי תוכל לתת הסבר על אילו קונפיגורציות תוסף הקאשינג צריך … ? ב-WP וב-W3 יש המון קונפיגורציות … במה הם שונים ?? אשמח על תשובה

    • רועי יוסף 1 בנובמבר 2015, 10:09

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

  • אושרי 1 בנובמבר 2015, 6:24

    היי מדריך מעולה, רק יש בעיה בהסרת ה – Query Strings.
    אני משתמש בתבנית בת ושם את הקוד כמו שצריך אך לפי בדיקה ב- gtmetrix זה לא עושה דבר…
    ניסיתי בתבנית הראשית, שם זה נותן שגיאה..
    אז יש משהו לא בסדר בקוד אולי ? או שאני עושה משהו לא טוב ?

  • Rob 23 בפברואר 2016, 9:13

    מה אתה אומר על שימוש ב-CDN?
    זה כדאי?, במה כדאי להשתמש? בזה שאפשר לקבל מ wordpress.com?

  • מתן 9 במרץ 2016, 19:47

    היי תודה על המדריך!
    שאלה כי בחיים לא התעסקתי בקודים – איפה אני מזין את הקודים לכל אופציה שנתת? כולם בקובץ htaccess כמו שמצוין בראשון?
    תודה מראש

  • Rob 26 במאי 2016, 9:11

    מה צריך להגדיר ב-Better WordPress Minify?
    מספיק להתקין ולהפעיל ?

    • רועי יוסף 26 במאי 2016, 10:45

      היי רוב, בתור התחלה הפלאגין הוא סוג של plug & play, ברגע שתפעיל אותו הוא יבצע combine & minify לקבצי ה js וקבצי ה css. במידה וזה לא מספק אותך או שישנם שינויים ספציפים שאתה מעוניין לבצע, ישנה האפשרות לשחק עם המיקום של הסקריפטים וקבצי ה css הנטענים, כמו גם האופציה לבטל אותם..

      • Rob 26 במאי 2016, 12:01

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

  • Th3Max 18 בנובמבר 2016, 21:09

    תודה רבה!

  • שרון הוד 24 בינואר 2017, 11:42

    Better WordPress Minify הוא בעייתי. השחית לי את האתר לגמרי. תסתכל גם בדירוגים שנתנו לפלאגין, ישנם הרבה נפגעים.

  • רוב 1 בפברואר 2017, 11:00

    הפעלתי את Keep Alive Connection כמו בהסבר שלך אבל כשאני בודק ב-gtmetrix.com זה מופיע כלא פעיל מקבלים F.
    אני צריך להגדיר משהו באחסון או שלוקח לזה זמן?
    התקנתי את Comet Cache צריך להגדיר שם משהו בשביל זה?

    • רועי יוסף 1 בפברואר 2017, 11:15

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

      • רועי יוסף 1 בפברואר 2017, 11:16

        מה שכן, אשמח אם תשתף אם זה אכן המצב..

        • רוב 1 בפברואר 2017, 12:24

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

  • יאיר גונן 8 בפברואר 2017, 16:00

    היי חסר לי את הקובץ htaccess.
    לא מוצא אותו

  • שרגא 27 במרץ 2017, 12:55

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

  • אסף 23 באפריל 2017, 15:34

    מאמר מעולה. שמתי אותו במועדפים וחוזר אליו כל הזמן (:

  • רוב 26 בספטמבר 2017, 10:56

    מאמר מעולה שכבר מזמן במועדפים ואני חוזר אליו בכל פעם.
    יש לי בעיה עם אפשור של Keep Alive Connection
    שמתי את הקוד שהבאת בקובץ אבל כשאני בודק באתר של gtmetrix זה מראה שזה לא עובד.
    צריך להפעיל את זה דרך ה-cpanel או שזה עובד תמיד?
    עוד שאלה זה משנה איפה אני את הקודים של שיפור המהירות בתחילת הקובץ או סוף הקובץ?
    הבדיקות האלה מוזרות, בדקתי באתר של pingdom ושם האתר מקבל A
    ובאתר של gtmetrix הוא מקבל פחות.

  • Rubb 9 בנובמבר 2017, 12:18

    שאלה בקשר ל-הסרת Query Strings מקבצים סטטים. איך אני מוסיף עוד פרמטרים? יש לי מחרוזות כאלה עם version, רק עם האות V, ועם fit (בקשר ל-Gravatar אין לי מושג איפה שמים)

  • רומה טימו 18 בפברואר 2018, 17:57

    הי רועי, שאלה בנושא:

    יש לנו אתר חנות שהעלינו.המהירות שמראה בכל מיני אתרי של מהירות מאוד שונה, פעם 7.5 שניות ופעם 24 שניות.

    השאלה שלי אליך:

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

    תודה מלך

    • רועי יוסף 18 בפברואר 2018, 18:09

      היי רומה 🙂

      לגבי שאלותייך, זהו לא הפתרון.

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

  • אור שבצוק 27 בפברואר 2018, 21:40

    היי רועי, שאלה…

    בהמשך למאמר אחר שלך בנוגע למעבר ל HTTPS, רשמת שם להוסיף את הקוד לפני הבלוק של BEGIN WORDPRESS ו- END WORDPRESS.

    כשאתה אומר להוסיף בקובץ htaccess את הקודים במאמר הזה, זה אמור לבוא לפני הקוד של השינוי ל HTTPS או אחרי?

    תודה רבה!

  • אור שבצוק 27 בפברואר 2018, 21:47

    תודה!
    עוד שאלה קטנה אם אפשר, מה בנוגע להפניות 301?

  • אור שבצוק 27 בפברואר 2018, 21:49

    תודה רבה! עזרת לי מאוד

השאירו תגובה

פעימות
קראו גם את:
שיפור מנגנון החיפוש בוורדפרס עם Relevanssi
שיפור מנגנון החיפוש בוורדפרס עם Relevanssi

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