קידום אתרים בוורדפרס: כיצד להשתמש ברג’אקס (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])[email protected]
ב: http://www.shooky101.com/?p=$1

ואז –

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

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

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