SEO-vriendelijk overstappen op Wordpress: hoe doe je dat?
Ik ben om. WordPress is het beste en fijnste blogging platform dat er is.
Update: maar ik word wel schijtziek van die updates de hele tijd
Nu is het systeem achter MONLOG de vrucht van vijf jaar zelf coden in PHP en MySQL. Je kunt je voorstellen dat het allemaal een beetje houtje-touwtje is en dat een overgang naar WordPress niet al te soepel gaat...
Toch valt dat heel erg mee!
Net als in WordPress maakt mijn blog gebruik van logitems, comments, tags en uiteraard auteurs. De architectuur van de databases verschilt, maar er zijn dus ook genoeg overeenkomsten.
Nu kun je heel eenvoudig in WordPress een RSS feed importeren. Dus als je blog een RSS feed heeft (en welk blog heeft dat niet?), dan kun je al je logitems probleemloos importeren...
Maar die moet je dus NIET hebben!
In het geval van MONLOG, was er dus sprake van tegen de 800 blogposts, een stuk of vijftien auteurs en circa 5000-6000 comments. Daarnaast gebruikte ik ook allerlei tags en vaak ook meerdere tags per post. Ik had geen zin om dat allemaal opnieuw in te gaan voeren! Ook maakt WordPress een onderscheid tussen categorieën en tags. Het zou leuk zijn als ik dat meteen mee kon nemen...
WordPress WXR: Extended RSS
Om een lang verhaal kort(er) te maken: het antwoord op (bijna) al je problemen is het WordPress Extended RSS formaat.
Het idee is simpel: maak gewoon gebruik van de exportfunctionaliteit van WordPress zelf (zie de link voor uitleg). Bouw vervolgens het formaat van die export na en vul het in met je eigen data (zoiets heet 'reverse engineering' geloof ik :p).
Je kunt de data in een reeds bestaand blog van WordPress exporteren voor gebruik in een ander WordPress blog. Dat exportbestand lijkt heel erg op een RSS feed, plus wat extra velden, zoals comments, categorieën, tags... Dus als je een RSS feed kunt maken, kan dit ook.
Deze manier van werken is niet voor iedereen weggelegd. Je moet weten hoe je gegevens uit een database moet halen en hoe je dat omzet naar een RSS formaat. Maar dat is iets wat iedere webbouwer standaard in z'n portfolio zou moeten hebben...
Ik ga dat hier niet uitleggen, maar kan je wel een stukje code laten zien van dit WXR formaat. Je zult zien dat dat eigenlijk vrij simpel is (zie einde van deze post).
Finishing touch: 301 redirects
Maar we zijn er nog niet. Als je een site omzet naar een nieuwe architectuur is er meestal ook sprake van nieuwe urls. Bij MONLOG in ieder geval wel. Mijn oude urlstructuur was 'monlog/logs/titel/'. In die titel zat een datum en een omschrijving.
In m'n nieuwe architectuur (die overigens op korte termijn live gaat en qua lay-out veel lijkt op mijn Engelse site over SEO copywriting) wilde ik andere urls, namelijk 'monlog/categorienaam/titel.html'.
Ik moet dus 700 à 800 redirects aanmaken. Dè SEO redirect is de 301 redirect: dit kun je doorgaans met een .htaccess regel afhandelen. Maar 800 regels zijn er teveel om in een .htaccess bestand te stoppen (onnodig traag). Ik wilde eigenlijk zoiets als ik al eerder had gedaan met MONLOG: alleen maar redirecten wanneer het nodig is.
Daarvoor kun je de redirection plugin gebruiken. Daar kun je handmatig een redirect aanmaken en eventueel zelfs met een reguliere expressie (als je niet weet wat dat is, kun je dat beter aan je webbouwer overlaten ;)) uitvoeren.
Nadeel van deze plugin is dat iedere regel handmatig ingevoerd moet worden. Maar als je naar de serialized input kijkt die deze plugin in je database stopt, zie je hoe je deze ook zelf handmatig in kunt voeren. Ook dit kun je reverse engineeren.
In het geval van MONLOG kon ik een reguliere expressie gebruiken van één regel om alle posts te redirecten:

De oude url, bijvoorbeeld: '/logs/2008-05-20-kind-badwater-monlog/' wordt nu geredirect naar '/kind-badwater-monlog.html'. Het vakje [0-9] staat voor ieder afzonderlijk getal, het vakje (.*) voor de titel. Simpel.
Tot slot
Ik ben er zelf mee bezig voor MONLOG om over te gaan naar WP. Dit is dus waarschijnlijk het laatste logje dat ik in m'n eigengebakken systeempje schrijf. Snif, vaarwel MONLOG:CMS: je hebt het vijf jaar lang prima gedaan :)
Ow ja, ik zou hier nog een voorbeeld van de WXR output laten zien:
<item>
<title>17 ultieme link building tools</title>
<link>http://www.monlog.nl/webdesign/tools/zeventien-ultieme-link-building-tools.html</link>
<pubDate>Wed, 07 Feb 2007 22:37:25 +0000</pubDate>
<dc:creator><![CDATA[monchito]]></dc:creator>
<category><![CDATA[tools]]></category>
<category domain="category" nicename="tools"><![CDATA[tools]]></category>
<category domain="tag"><![CDATA[Leuke Proggels]]></category>
<category domain="tag" nicename="leuke-proggels"><![CDATA[Leuke Proggels]]></category>
<category domain="tag"><![CDATA[Linkbuilding]]></category>
<category domain="tag" nicename="linkbuilding"><![CDATA[Linkbuilding]]></category>
<category domain="tag"><![CDATA[SEO]]></category>
<category domain="tag" nicename="seo"><![CDATA[SEO]]></category>
<guid isPermaLink="false">http://www.monlog.nl/?p=727</guid>
<description></description>
<content:encoded><![CDATA[<p>Hier staat van alles aan HTML content</p>]]></content:encoded>
<wp:post_id>1533</wp:post_id>
<wp:post_date>2007-02-07 22:37:25</wp:post_date>
<wp:post_date_gmt>2007-02-07 22:37:25</wp:post_date_gmt>
<wp:comment_status>open</wp:comment_status>
<wp:ping_status>open</wp:ping_status>
<wp:post_name>zeventien-ultieme-link-building-tools</wp:post_name>
<wp:status>publish</wp:status>
<wp:post_parent>0</wp:post_parent>
<wp:menu_order>0</wp:menu_order>
<wp:post_type>post</wp:post_type>
<wp:post_password></wp:post_password>
<wp:postmeta>
<wp:meta_key>_edit_last</wp:meta_key>
<wp:meta_value>1</wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key>_headspace_page_title</wp:meta_key>
<wp:meta_value>17 ultieme link building tools</wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key>_headspace_description</wp:meta_key>
<wp:meta_value>hier de tekst van je meta-description</wp:meta_value>
</wp:postmeta>
<wp:comment>
<wp:comment_id>11295</wp:comment_id>
<wp:comment_author><![CDATA[Gerben]]></wp:comment_author>
<wp:comment_author_email></wp:comment_author_email>
<wp:comment_author_url>http://www.linkbuilder.nl</wp:comment_author_url>
<wp:comment_author_IP>82.72.36.55</wp:comment_author_IP>
<wp:comment_date>2007-07-26 22:45:44</wp:comment_date>
<wp:comment_date_gmt>2007-07-26 22:45:44</wp:comment_date_gmt>
<wp:comment_content><![CDATA[comment tekst]]></wp:comment_content>
<wp:comment_approved>1</wp:comment_approved>
<wp:comment_type>comment</wp:comment_type>
<wp:comment_parent>0</wp:comment_parent>
<wp:comment_user_id>0</wp:comment_user_id>
</wp:comment>
</item>Ik snap dat het een hele lap code is, maar als je niet bang bent voor RSS, zie je dat het best eenvoudig is :p
Interessant?
Lees dan ook eens meer artikelen over monlog, seo, weblog seo, weblogs, ...
Reacties
door Ramon Eijkemans, 2008 05 29
yup, daar zitten letterlijk honderden ontwikkeluren in. Ik heb er (enigszins) mee leren programmeren, maar die energie kan ik nu mooi richten op allerlei andere zaken, zoals mooie handige tools bouwen voor jou ;)
Hoi Ramon,Lijkt me een hele operatie, daar ben je wel weer een aantal uurtjes zoet mee. Is drupal je toch niet zo goed bevallen, aangezien je niet hierop overgaat? Zag dat je met www.searchwritten.com inmiddels ook bent overgestapt naar wordpress.
door Ramon Eijkemans, 2008 05 29
Hoi Thomas,ja ik vond Drupal teveel.. Ik was eerst heel erg onder de indruk van Drupal en ben dat nog steeds, maar ik denk dat ik een beetje verblind werd door alle mogelijkheden. Er was zoveel mogelijk, terwijl ik eigenlijk helemaal niet zo veel nodig had.Ik denk dat Drupal toch beter geschikt is voor de serieuzere, meer community actige sites. Mijn persoonlijke blog blijft toch altijd bescheiden van opzet. Daar past Wordpress prima bij :)p.s.: ik ben e rinderdaad een aantal uren zoet mee. Het kost tijd, maar het is iig niet moeilijk :p
"Wat je zelf doet doe je beter" ..uitgezonderd wordpress dan toch, je kan beter je tijd besteden aan de inhoud in dit geval.Veel plezier in de Wonderbaarlijke Wordpress Wereld ( www)
Rants/opmerkingen/suggesties?
Wat is MONLOG
Sinds 2002 is MONLOG het weblog van Ramon Eijkemans, freelance SEO-gun for hire.
Dit weblog bevat how-to's, mijmeringen, soms wat humor. Het gaat vrijwel altijd over SEO. Ik herhaal geen nieuws. Het doel van dit weblog is om jou van praktische en doordachte informatie te voorzien!
En dan nog dit: guestpostings zijn welkom! Mail me als je je ei kwijt wil op dit goed rankende podium.
Laatste comments
@Aartjan: ik heb hetzelfde met 'lekker kontje' :)...
25.11.2011 door Ramon Eijkemans op Ranken op Banaan
Bij mij is 'banaan' toevallig al jaren het zoekwoord waar ik...
23.11.2011 door Aartjan van Erkel op Ranken op Banaan
Gewoon maken waar vraag naar is. Dat is zo oud als de weg...
22.11.2011 door Thomas op Ranken op Banaan
Een banaan natuurlijk :)
09.11.2011 door Ramon Eijkemans op Ranken op Banaan
In welk tineu zien we jou terug binnenkort?
09.11.2011 door Emiel op Ranken op Banaan
@Simme @Navin proost! :)
07.09.2011 door Ramon Eijkemans op Vakantie!
Zo maak je mij wel erg jaloers :)
05.09.2011 door Navin Poeran op Vakantie!
12 bier geeft plezier.en veel succes gewenst tijdens de tw...
31.08.2011 door simme op Vakantie!
@Willem: ik denk op de manier zoals ik in dit artikel...
20.08.2011 door Ramon Eijkemans op Faceted search & SEO: vloek of zegen?
Goed en interessant artikel. Wat mij vooral bezighoudt, is...
20.08.2011 door Willem Hoekstra op Faceted search & SEO: vloek of zegen?


door Roy, 2008 05 28
hehehe. ik kan me voorstellen wat voor brok in de keel dat moet zijn voor je. Het is toch een beetje je kindje he ;)