Author: bohm
Publication Date: 7/9/2010 12:20
Hinweis:
Es existiert eine aktualisierte Version dieses Artikels. Bitte besuchen Sie die Seite
Creating Sitemaps for Search Engines in unserem Inside FirstSpirit blog.
In vielen Projekten besteht die Notwendigkeit, eine Google-Sitemap vorzuhalten.
Nachstehend ein Beispiel dafür, wie man mit der Navigationsfunktion eine solche Sitemap erstellen kann. Hierbei werden auch die Einzelseiten einer Contentprojektion berücksichtigt:
<CMS_HEADER>
<CMS_FUNCTION name="Navigation" resultname="googleSitemap">
<CMS_PARAM name="expansionVisibility" value="all"/>
<CMS_PARAM name="wholePathSelected" value="0"/>
<CMS_PARAM name="siteMap" value="1" />
<CMS_ARRAY_PARAM name="unselectedHTML">
<CMS_ARRAY_ELEMENT index="0..10"><![CDATA[
<url>
<loc>http://www.domain.de/$CMS_REF(#nav.ref,abs:2)$</loc>
</url>
]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
<CMS_ARRAY_PARAM name="pageRefRendering">
<CMS_ARRAY_ELEMENT index="0..10"><![CDATA[
$CMS_IF(#nav.ref.getMultiPageParams(#global.language,#global.templateSet).getPageCount() > 1)$
$CMS_IF(!#nav.ref.getMultiPageParams(#global.language,#global.templateSet).getData().isEmpty)$
$CMS_FOR(#csPages,#nav.ref.getMultiPageParams(#global.language,#global.templateSet).getData())$
<url>
<loc>http://www.domain.de/$CMS_REF(#nav.ref,abs:2,contentId:#csPages.getId())$</loc>
</url>
$CMS_END_FOR$
$CMS_ELSE$
<url>
<loc>http://www.domain.de/$CMS_REF(#nav.ref,abs:2)$</loc>
</url>
$CMS_END_IF$
$CMS_ELSE$
<url>
<loc>http://www.domain.de/$CMS_REF(#nav.ref,abs:2)$</loc>
</url>
$CMS_END_IF$
]]></CMS_ARRAY_ELEMENT>
</CMS_ARRAY_PARAM>
</CMS_FUNCTION>
</CMS_HEADER><?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
$CMS_VALUE(googleSitemap)$
</urlset>
Die Spezifikation für eine solche Sitemap findet man hier.
Tags: firstspirit, Google, knowledgebase, links, sitemap, template, xml
Kommentare
12 Kommentare
Ist der Teil "unselectedHTML" nicht überflüssig? Die Inhaltsseiten werden doch schon durch "pageRefRendering" berücksichtigt, so hat man dann doch doppelte URLs im Dokument.
Und der "pageRefRendering" Teil lässt sich auch noch weiter vereinfachen:
Innerhalb des <url>-Elements ist es sinnvoll, zusätzlich das letzte Änderungsdatum der Seite auszugeben. Die kürzlich geänderten Seiten werden von Google dann - hoffentlich! - bevorzugt gecrawlt. Bei HTML-Content geht das über die zu ergänzende Zeile
Bei dynamischen Seiten kann das letzte Änderungsdatum entweder aus der Datenbank geholt werden oder (bei permanent wechselndem Content) auf #global.now.format("yyyy-MM-dd") gesetzt werden.
Hallo,
wir benutzen das Schema http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd, in dem auch die Tags <changefreq> und <priority> innerhalb des <url> verwendet werden können.
Kann man über FS-Mittel diese Werte auch ermitteln und generieren lassen? Bisher wüßte ich nicht, wie ich an diese Daten in FS rankomme.
Danke für eine Idee oder gar konkrete Antwort.
Viele Grüße,
Matthias
Die Daten können Sie z.B. über Metadaten pflegen und dann entsprechend in der Navigationsfunktion mit ausgeben. Per se sind die Informationen nicht in FirstSpirit vorhanden, da sie vom konkreten Projekt abhängen.
Vielen Dank für die Antwort!
Viele Grüße...
Hi all,
I have translated this into English :smileyhappy: and I too would like to know how you add the tags
<changefreq> <priority> works within the code above.
These tags help further with SEO performance.
Any ideas?
I look forward to the response.
Thanks.
Michael.
Can't see it :smileywink:
Thanks pjodeleit. :smileygrin:
Where is the "mata-data" tab?
Please refer to our online documentation (ODFS). Here is the deep link to the chapter: http://www.e-spirit.com/odfs42/en/vorlagenentwicklung/variablen/metadatenvariablen/metadatenvariablen.html
Mittlerweile ist das Schema
http://www.google.com/schemas/sitemap/0.84
deprecated und man sollte lieber auf dieses Schema hier aufsetzen:
http://www.sitemaps.org/schemas/sitemap/0.9
So hat es Matthias ja auch geschrieben, dass er es schon verwendet. Grüße übrigens ;-)
Das Template ist echt nützlich. Danke dafür! Content-Projektionen werden ja ebenfalls aufgelistet. Wir haben z.B. News-Beiträge die on- bzw. offline gesetzt werden können und werden dann mit $CMS_SET(#global.stopGenerate,true)$ nicht generiert. Kann man Content-Projektionen, die nicht generiert werden hier in der Sitemap abfangen?
Please see the article Creating Sitemaps for Search Engines on the Inside FirstSpirit blog for an updated version and more sophisticaed approach.
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.