קידום אתרים בוורדפרס: כיצד להשתמש ברג'אקס (regex) כדי לשנות *המון* קישורים בעלי מבנה דומה

רקע

במזל טוב, האתר "רשימות" התחילו לאפשר העברה של הבלוגים של הכותבים ברשימות למערכת וורדפרס (באיכסון עצמי, או באיכסון של wordpress.com).

לכבוד זאת, סייעתי לאחי שוקי להעביר את הבלוג שלו לבלוג עצמאי חדש ונוצץ: "שוקי 101".

האתגר: שימור קישורים פנימיים

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

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

הערה שחשוב להדגיש

לאחר פירסום הפוסט פנה אלי אורי ברוכין וכתב לי הערה שחשוב לי שתועבר הלאה (בתימצות – הכל יהיה טוב), ובאריכות:

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

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

הפתרון: החלפת לינקים באופן מובנה (בעזרת regex)

יש כמה שלבים לפתרון הנוכחי:
0) בצעו גיבוי מלא של הבלוג שלכם!!! (wp-dbmanager הוא פתרון טוב בעיני, כי הוא מאפשר לשחזר גיבויים בקלות רבה)
1) עליכם להתקין את תוסף הוורדפרס (הנהדר): Search Regex
2)
היות ושוקי הוא מקדם אתרים משכמו ומעלה, הוא חזה מראש את הבעיה הזו ודאג (כך הבנתי) שמספר הפוסט שהיה לו בבלוג ברשימות יהיה גם מספר הפוסט שלו בבלוג וורדפרס החדש שלו.
כך לדוגמא, הלינק של פרוייקט הטחינה הגדול (סדרת הפוסטים המיתולוגית שהובילה להקמה של בלוג החומוס), הייתה בבלוג ברשימות:
http://notes.co.il/shooky/8508.asp
ובבלוג החדש היא נהפכה להיות:
http://www.shooky101.com/?p=8508

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

כעת עליכם להכנס לתפריט ה "search regex" תחת "כלים" ולהתחיל לבצע החלפות. סמנו את תיבת ה – regex. ובחרו ב post content בתור ה source. כעת מלאו את הפרטים באופן הבא (החליפו את שם האתר של שוקי שמופיע בדוגמאות, לשם האתר שלכם)
שלב א: (החלפת כל פעם ששוקי נתן לינק לעמוד הבית שלו), מלאו את
חיפוש ב: @"http://(?:www\.)?notes\.co\.il/shooky/"@
החלפה ב: "http://www.shooky101.com/"

תלחצו על הכפתור "replace" כדי לראות מה התוצאות (כך שאין שום בעיות יוצאות דופן). אם הכל הולך כשורה לחצו על "replace and save" כדי לשמור את התוצאות לבסיס הנתונים.

שלב ב: (אותו הדבר אבל בלי סלש)
חיפוש ב: @"http://(?:www\.)?notes\.co\.il/shooky"@
החלפה ב: "http://www.shooky101.com/"

שלב ג: (להחליף את כל המקרים שיש בהם לינק עם מספר, ללינק החדש כאשר המספר נכנס למקום המתאים בלינק החדש = קסם!)
חיפוש ב: @"http://(?:www\.)?notes\.co\.il/shooky/(.*[0-9])\.asp"@
החלפה ב: "http://www.shooky101.com/?p=$1"

שלב ד: (אותו הדבר, אבל למקרים שבהם לא היה סיומת asp ללינק המקורי)
חיפוש ב: @"http://(?:www\.)?notes\.co\.il/shooky/(.*[0-9])"@
החלפה ב: "http://www.shooky101.com/?p=$1"

שלב ה: (פותר עוד כמה מקרים שלא ברור לי למה הם לא נתפסו קודם לכן)
חיפוש ב: @"http://(?:www\.)?notes\.co\.il/shooky/(.*?)\.asp"@
החלפה ב: "http://www.shooky101.com/?p=$1"

שלב ו: (לבדוק ללא סימן ה regex, האם פיספסנו משהו)
חיפוש של: http://notes.co.il/shooky
(בשלב הזה מצאתי כאלו מקרים כאשר היו פגמים בלינק)

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

החלפה של: @http://(?:www\.)?notes\.co\.il/shooky/(.*[0-9]).asp@
ב: http://www.shooky101.com/?p=$1

ואז –

החלפה של: @http://(?:www\.)?notes\.co\.il/shooky@
ב: http://www.shooky101.com/

3) תתקינו את התוסף Broken Link Checker – כדי למצוא ולתקן עוד כל מיני מקרים (מוזרים לרוב) של לינקים שבורים/לא-תיקניים.

מקווה שעזרתי לכם (אם כן, אני אוהב לקבל תגובות בבלוג, לינקים ומסאז' טוב…)

9 תגובות בנושא “קידום אתרים בוורדפרס: כיצד להשתמש ברג'אקס (regex) כדי לשנות *המון* קישורים בעלי מבנה דומה”

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

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

      בברכה,
      טל

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

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

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

    1. אהלן תומר,
      ראשית – השיקול שלך ל "הרמוניה ברשת" הוא מצויין, אנחנו מסכימים.

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

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

להגיב על יובל לבטל