Magento usability en SEO verbetering door categorie titel

Voor een webshop wat ik beheer en onderhoud moest ik vanuit SEO oogpunt verbeteringen aanbrengen. Ik ben begonnen met het analyseren van de pagina’s en hoe gebruikers hierop komen. Het bleek dat veel bezoekers binnen komen op een subcategorie pagina in de webshop. In de betreffende webshop worden iPhone accessoires aangeboden. Voor elk apparaat is een hoofdcategorie aangemaakt zoals iPhone 3G en iPhone 4. Daaronder hangen dan weer de sub categorieën. Het probleem echter is dat wanneer je via een deeplink binnenkomt op een subcategorie je niet direct kan zien tot welke apparaat de accessoires behoren. De naam van de subcategorie word namelijk ook gebruikt als titel in de H1-tag boven de categorie. Een goede oplossing zou zijn als je deze titel zelf kon ingeven in de backend. Dit is vanuit usibilty maar ook vanuit SEO perspectief een verbetering aangezien je voor bezoekers én zoekmachines duidelijk kan maken wat er op de pagina te vinden is. In deze post geef ik een beschrijving van hoe dit te realiseren is.

Na een zoektocht via Google kwam ik verschillende oplossingen tegen. Je kan zelf de Magento functionaliteit uitbreiden door rechtstreeks de database aan te passen. Maar er zijn betere oplossingen. Op een franse blog kwam ik een oplossing tegen voor het maken van een mini-module. Ik zal voor het gemak de gebruikte namen hetzelfde laten.

Maak de volgende bestanden aan:

app/code/local/Magentix/CategoriesAttributes/etc/config.xml
app/code/local/Magentix/CategoriesAttributes/sql/categoriesattributes_setup/mysql4-install-0.1.0.php
app/etc/modules/Magentix_CategoriesAttributes.xml

De inhoud van config.xml

<?xml version="1.0"?>
<config>
   <modules>
      <Magentix_CategoriesAttributes>
         <version>0.1.0</version>
      </Magentix_CategoriesAttributes>
   </modules>
   <global>
      <resources>
         <categoriesattributes_setup>
            <setup>
               <module>Magentix_CategoriesAttributes</module>
               <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
            </setup>
            <connection>
               <use>core_setup</use>
            </connection>
         </categoriesattributes_setup>
      </resources>
   </global>
</config>

De inhoud vanmysql4-install-0.1.0.php

<?php
 
$installer = $this;
 
$installer->startSetup();
 
$installer->addAttribute('catalog_category', 'category_title', array(
                        'type'              => 'text',
                        'backend'           => '',
                        'frontend'          => '',
                        'label'             => 'Category Title',
                        'input'             => 'text',
                        'class'             => '',
                        'source'            => '',
                        'global'            => 0,
                        'visible'           => 1,
                        'required'          => 0,
                        'user_defined'      => 0,
                        'default'           => '',
                        'searchable'        => 0,
                        'filterable'        => 0,
                        'comparable'        => 0,
                        'visible_on_front'  => 0,
                        'unique'            => 0,
                        'position'          => 1,
                    ));
 
$installer->endSetup();

De inhoud van Magentix_CategoriesAttributes.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Magentix_CategoriesAttributes>
            <active>true</active>
            <codePool>local</codePool>
        </Magentix_CategoriesAttributes>
    </modules>
</config>

Nadat je dit hebt gedaan kan je inloggen in de magento backend, en de cache legen als deze aanstaat. Er zijn nu een aantal records toegevoegd aan de database wat zorgt dat er een nieuwe veld bij gekomen is bij de categorie beheer pagina.

Dit veld kan nu ingevuld worden. Om er ook nog wat aan te hebben moet er natuurlijk ook iets aan de frontend kant iets gebeuren. Open nu het volgende bestand:

/app/design/frontend/default//template/catelog/category/view.phtml

Als deze niet bestaat maak deze dan aan, en haal de inhoud of het bestand zelf van de volgende locatie:

/app/design/frontend/base/default/template/catelog/category/view.phtml

Verwijder de volgende regel:

 <h1><?php echo $_helper->categoryAttribute($_category, $_category->getName(), 'name') ?></h1>

En vervang het door het volgende:

<?php if($_category->getShortDescription()) : ?>
        <h1><?php echo $_category->getShortDescription(); ?></h1>
<?php else: ?>
    	<h1><?php echo $_helper->categoryAttribute($_category, $_category->getName(), 'name') ?></h1>
<?php endif; ?>

Als er niets is ingevoerd in het nieuw aangemaakte veld in de backend veranderd er niets. Als er wel iets ingevuld is verschijnt dit in de H1 tag boven de categorie. Meer duidelijkheid voor de bezoekers en goed voor SEO. Twee vliegen in één klap. Test dit natuurlijk altijd op een test server voordat je het toepast op een productie server.

Door | 2011-04-06T12:30:27+00:00 maart 31st, 2011|Magento|