Magento: reindex & cronjob

14. September 2010 at 12:17

Den Indexierungsprozess per Cron bzw. aus der Bash oder Windows-Shell zu starten geht wie folgt (Auszug indexer.php doku):

Usage:  php -f  indexer.php -- [options]
--status <indexer>            Show Indexer(s) Status
--mode <indexer>              Show Indexer(s) Index Mode
--mode-realtime <indexer>     Set index mode type "Update on Save"
--mode-manual <indexer>       Set index mode type "Manual Update"
--reindex <indexer>           Reindex Data
info                          Show allowed indexers
reindexall                    Reindex Data by all indexers
help                          This help
<indexer>     Comma separated indexer codes or value "all" for all indexers

Mögliche Optionen sind (Ausgabe von „Info“):

catalog_product_attribute     Product Attributes
catalog_product_price         Product Prices
catalog_url                   Catalog URL Rewrites
catalog_product_flat          Product Flat Data
catalog_category_flat         Category Flat Data
catalog_category_product      Category Products
catalogsearch_fulltext        Catalog Search Index
tag_summary                   Tag Aggregation Data
cataloginventory_stock        Stock Status

Demnach ist ein Reindex einzelner Komponenten möglich über:

php /path/to/magento/shell/indexer.php --reindex catalog_product_flat

Tipp: Der  Script prüft ob Abhängigkeiten vorhanden sind, welche über die config.xml’s der einzelnen Module definiert werden. Diese sind in der Regel auch definiert, so kommt es ggf. zu einem ungewollten reindexall …

Quick & dirty (besser wäre die entsprechenden config.xml’s anzupassen) kann das umgangen werden durch auskommentieren der folgenden Zeilen in der function reindexEverything in der app/code/core/Mage/Index/Model/Process.php :

public function reindexEverything()
{
if ($this->getData('runed_reindexall')) {
return $this;
}
/*
if ($this->getDepends()) {
$indexer = Mage::getSingleton('index/indexer');
foreach ($this->getDepends() as $code) {
$process = $indexer->getProcessByCode($code);
if ($process) {
$process->reindexEverything();
}
}
}
*/
$this->setData('runed_reindexall', true);
return $this->reindexAll();
}
Usage:  php -f indexer.php — [options]

–status <indexer>            Show Indexer(s) Status
–mode <indexer>              Show Indexer(s) Index Mode
–mode-realtime <indexer>     Set index mode type „Update on Save“
–mode-manual <indexer>       Set index mode type „Manual Update“
–reindex <indexer>           Reindex Data
info                          Show allowed indexers
reindexall                    Reindex Data by all indexers
help                          This help

<indexer>     Comma separated indexer codes or value „all“ for all indexers

Aufbau der Datei robots.txt – Seiten für die Robots konfigurieren

29. Oktober 2009 at 14:04

Oft ist es sinnvoll bestimmte Seiten oder gar Bereiche einer Web-Seite vor der Indizierung von Suchmaschinen zu schützen. Zum Beispiel wenn es sich um Administrative, oder Seiten an denen noch gearbeitet wird, handelt.
Ggf. wollen Sie auch bestimmte Bilder, Logfiles oder Programmdateien vor der Indizierung der Suchmaschinen schützen damit diese nicht in den Suchergebnissen angezeigt werden.

Um dem gerecht zu werden wurde der Robots Exclusion Standard eingeführt, an den sich seriöse Suchmaschinen wie Google, Bing oder Yahoo! orientieren.

Nach diesem Standard muss eine Textdatei mit dem Namen robots.txt erstellt und diese im Stammverzeichnis der Domain platziert werden, so dass die Robots sie finden und beachten können.

<pre>http://www.beispiel.de/robots.txt
http://download.beispiel.de/robots.txt
http://beispiel.de:8080/robots.txt
</pre>

Der Aufbau der robots.txt erfolgt nach dem folgendem Shema. Zuerst gibt man an für welchen Crwaler eine Anweisung gelten soll, gefolgt von den einzelnen Anweisungen:

# robots.txt fuer http://www.beispiel.de/
User-agent: BeispielRobot
Disallow: /temp/       # Die Dateien sind nur Temporär und nicht von Bedeutung
Disallow: /logfiles/   # Sollen nicht allg. Verfügbar sein
Disallow: /bilder/     # Bilder sind teilweise geschützt und nicht zum download bestimmt
Disallow: /cgi-bin/    # CGI Ausgaben nicht indizieren
Disallow: /privat.html # Die pirivat.html soll nicht über die Suchmaschine gefunden werden

Mit User-agent: BeispielRobot bestimmt man, dass die Anweisungen nur für den genannten Crawler (BeispielRobot) gelten. Mit Hilfe der einzelnen Disallow Einträgen werden Verzeichnisse und Dateien bestimmt, welche nicht indiziert werden sollen. Mit Hilfe des Raute-Symbol (#)können Kommentare definiert werden, diese werden von den Robots ignoriert.

Ein Ausschluss aller Crawler ist mit Hilfe des sog. Wildchar * möglich:

# Alle Robots ausschließen
User-agent: *
Disallow: /temp/

Sollen nur bestimmte Crawler ausgeschlossen werden, sondern kann man diese wie folgt realisieren:

# Download-Tools vom CGI Verzeichnis fernhalten
User-agent: webmirror
User-agent: webzip
User-agent: webcopy
User-agent: wget
Disallow: /cgi-bin/

Eine Seite ganz von der Indizierung durch Suchmaschinen auszuschließen geht wie folgt:

# Komplette Webseite für alle Robots sperren
User-agent: *
Disallow: /

Durch entfernen des Slash (/) wird die Seite ganz für die Indizierung frei gegeben:

# Ganze Seite für Robots freigeben
User-agent: *
Disallow:

Die Groß- und Kleinschreibung wird bei Disallow Einträgen nicht durch die Robots berücksichtigt.

Sie Benötigen Unterstützung bei der Anpassung Ihrer robots.txt oder Optimierung (SEO) Ihrer Webseite bzw. Optimierung der Inhalte?

Fly2Mars-Media unterstützt Sie in diesen und vielen anderen Bereichen rund um das Thema Internet & IT!

Für ein individuelles Angebot nehmen Sie noch heute Kontakt mit uns auf.