Je cache vullen via Shell is handig wanneer je caching (zoals Redis ) voor jouw website net geactiveerd is. Op dat moment is de cache nog leeg. Een pagina wordt namelijk pas aan de cache toegevoegd op het moment dat deze opgevraagd wordt. Je kunt het proces versnellen door ervoor te zorgen dat al jouw pagina’s al in de cache zijn opgenomen.

Je kunt al je pagina’s toevoegen aan de cache met behulp van je sitemap (voor een lijst van de te bezoeken pagina’s) en de Shell (om het proces te automatiseren). In dit artikel leggen we uit hoe je dat doet met een Magento site. Maar hetzelfde kan natuurlijk ook toegepast worden voor een ander CMS.

Sitemap

Een Magento Sitemap in een default Magento installatie maak je via Catalog >> Google Sitemap. De sitemap.xml die gegenereerd wordt zal er als volgt uit zien:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9 "> 
<url>  
<loc>http://tweetosties.nl/apparel/shirts.html </loc>  
<lastmod>2013-09-23</lastmod>  
<changefreq>daily</changefreq>  
<priority>0.5</priority>  
</url> 
<url>  
<loc>http://tweetosties.nl/electronics/cell-phones.html </loc>  
<lastmod>2013-09-23</lastmod>  
<changefreq>daily</changefreq>  
<priority>0.5</priority> 
</url>

Bekijk je de bron weergave van de getoonde pagina, dan zie je dat alles op één regel staat.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9 ">
<url>
<loc>http://tweetosties.nl/apparel/shirts.html </loc>
<lastmod>2013-09-23</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://tweetosties.nl/electronics/cell-phones.html</loc>
<lastmod>2013-09-23</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>

Weblinks uit de sitemap.xml extraheren

Normaliter wordt het bestand sitemap.xml in de root van de site opgeslagen. Dat is voor zoekmachines de meest normale plek om ze op te zoeken. In onze blog post Sitemap maken in een multistore Magento staat beschreven hoe je sitemap.xml in de root van je multistore Magento site kunt laten staan en toch een unieke sitemap.xml oplevert.

cat sitemap.xml

Met deze opdracht wordt de inhoud van sitemap.xml getoond.

cat sitemap.xml|awk '{gsub("</url>","</url>")}1'

De output van de vorige opdracht wordt gebruikt voor de nieuwe opdracht, namelijk het plaatsen van regeleindes achter het einde van elke sitemap item

cat sitemap.xml |awk '{gsub("</url>","</url>")}1'|awk -F'<loc>|</loc>' '{print $1}'

De output van de vorige opdracht wordt gebruikt voor de nieuwe opdracht, namelijk het extraheren van de weblink. Die staat tussen <loc> en </loc>

cat sitemap.xml |awk '{gsub("</url>","</url>")}1'|awk -F'<loc>|</loc>' '{print $1}' > list

De output van de vorige opdracht wordt weggeschreven naar het bestand list.

Cache vullen met de geëxtraheerde weblinks uit de sitemap.xml

Met het laatste commando van de vorige paragraaf wordt een bestand gemaakt met daarin de weblinks van de website. Onderstaand commando kun je gebruiken om middels curl alle weblinks uit het lijstje te bezoeken.

for url in $(cat list);do curl $url;done
24