.. You may want to use the usual include line. Uncomment and adjust the path. .. include:: ../Includes.txt ============================== EXT: TEQneers SEO Enhancements ============================== :Author: Kasper Skårhøj :Created: 2002-11-01T00:32:00 :Changed by: Markus Blaschke :Changed: 2012-09-13T15:20:51 :Classification: tq_seo :Keywords: SEO, Sitemap, Pagetitle, Metatags, Google, Yahoo, Bing, Google Analytics, Piwik, P3P :Author: Markus Blaschke :Email: blaschke@teqneers.de :Info 4: :Language: en |img-1| |img-2| EXT: TEQneers SEO Enhancements - tq\_seo .. _EXT-TEQneers-SEO-Enhancements: EXT: TEQneers SEO Enhancements ============================== Extension Key: tq\_seo Language: en Keywords: SEO, Sitemap, Pagetitle, Metatags, Google, Yahoo, Bing, Google Analytics, Piwik, P3P Copyright 2000-2012, Markus Blaschke, (TEQneers GmbH & Co. KG) This document is published under the Open Content License available from http://www.opencontent.org/opl.shtml The content of this document is related to TYPO3 \- a GNU/GPL CMS/Framework available from www.typo3.org .. _Table-of-Contents: Table of Contents ----------------- `EXT: TEQneers SEO Enhancements 1 <#__RefHeading__2098_1227984897>`_ **`Introduction 3 <#__RefHeading__2100_1227984897>`_** `What does it do? 3 <#__RefHeading__5194_791679674>`_ `Screenshots 5 <#__RefHeading__2104_1227984897>`_ **`Users manual 13 <#__RefHeading__2106_1227984897>`_** `Installation 13 <#__RefHeading__2108_1227984897>`_ `Indexed Sitemap 13 <#__RefHeading__2110_1227984897>`_ `Robots.txt 13 <#__RefHeading__2102_1848268466>`_ `Metatags 14 <#__RefHeading__2132_1227984897>`_ `UserAgent 15 <#__RefHeading__2134_1227984897>`_ `Crawler 15 <#__RefHeading__2136_1227984897>`_ `Services 15 <#__RefHeading__2138_1227984897>`_ `Social 16 <#__RefHeading__2453_1454160854>`_ `Pagetitle 16 <#__RefHeading__2140_1227984897>`_ `Sitemap 16 <#__RefHeading__1112_791679674>`_ **`Backend Modules 18 <#__RefHeading__2680_249562930>`_** `SEO Page Module (Website → SEO) 18 <#__RefHeading__2682_249562930>`_ `SEO Control Center (SEO → Control Center) 18 <#__RefHeading__2783_249562930>`_ `SEO Sitemap (SEO → Sitemap) 19 <#__RefHeading__2785_249562930>`_ **`Advanced manipulations (stdWrap support) 20 <#__RefHeading__1406_1455840893>`_** `Metatags 20 <#__RefHeading__1414_1455840893>`_ `Pagetitle 20 <#__RefHeading__1412_1455840893>`_ **`Google Analyitics / Piwik customizations 21 <#__RefHeading__2795_10825925>`_** `Customization codes (fast/simple) 21 <#__RefHeading__2797_10825925>`_ **`Example for Google Analytics in TypoScript-Setup: 21 <#__RefHeading__2801_10825925>`_** `Template customization (advanced) 21 <#__RefHeading__2803_10825925>`_ **`It's quite easy, for more information read: 21 <#__RefHeading__2807_10825925>`_** **`Scheduler tasks 22 <#__RefHeading__1681_2008300930>`_** **`FAQ 23 <#__RefHeading__2142_1227984897>`_** `General 23 <#__RefHeading__1594_1487891005>`_ `Indexed Sitemap 23 <#__RefHeading__2144_1227984897>`_ `Others 24 <#__RefHeading__3011_1455840893>`_ **`RealURL configuration 25 <#__RefHeading__3079_202915244>`_** **`Hooks 27 <#__RefHeading__1812_685650465>`_** **`Beta-Features 28 <#__RefHeading__1619_1783233314>`_** **`Suggested Extensions 29 <#__RefHeading__2146_1227984897>`_** **`Known problems 30 <#__RefHeading__1737_849775136>`_** **`To-Do list 31 <#__RefHeading__2148_1227984897>`_** **`Found a bug? Problems? 32 <#__RefHeading__3107_202915244>`_** **`ChangeLog 33 <#__RefHeading__2150_1227984897>`_** `Version 5.0 33 <#__RefHeading__2605_663977645>`_ `Version 4.0 33 <#__RefHeading__2437_663977645>`_ .. _Introduction: Introduction ------------ Problems while reading this document? Try the PDF-Version → `http://static.teqneers.com/storage/opensource/tq\_seo\_manual.pdf `_ .. _What-does-it-do: What does it do? ^^^^^^^^^^^^^^^^ This extensions will handle multiple page metatags and pagetitle manipulations in TYPO3. It's a replacement and major improvement for the “metatags” extension. The following features are supported: - Indexed XML sitemap for Google and other search engines (with support for ALL extensions, pibase and extbase, not only tt\_news) - Real sitemap builder via TYPO3 scheduler - Metatags - Manipulation of Metatags via stdWrap (Beta) - Automatic fetching metatags from tt\_news (single-display module) - Pagetitle manipulations Manipulation of pagetitle via stdWrap (Beta) - Multi-language and/or multi-tree TYPO3 installations - Backend modules: - SEO page module - SEO control center module - SEO sitemap module The following metatags are supported: - Language (auto-detected) - Description - Keyword - Copyright information - Reply-To E-Mail-Address - Author and publisher - Rating and distribution - Revisit - Geo-location information - Searchengine Crawler orders - Google Analytics (with anonymize IP and download link tracking, asynchronous implementation since 4.0) - Piwik integration (asynchronous implementation since 4.0) - Google, MSN, Yahoo and WebOfTrust Verification - Google+ Direct Connect - Canonical URL (Custom URL or autogenerated to current page) - IE Compatibility-Mode - Google Expire Date - Index, up, prev und next link-metatags - P3P-HTTP-Headers The following pagetitle transformations are supported: - Prefix and suffix (inheritable) - Absolute pagetitle without any prefix and suffix - Sitetitle glue options - Sitetile positon .. _Screenshots: Screenshots ^^^^^^^^^^^ |img-3| *Illustration 1: TYPO3 Metatag-Constants* |img-4| *Illustration 2: TYPO3 Crawler-Constants* |img-5| *Illustration 3: SEO Services (eg. verification codes)* |img-6| *Illustration 4: SEO-pagesettings in TYPO3* |img-7| *Illustration 5: SEO-page module in TYPO3* |img-8| *Illustration 6: SEO-page module in TYPO3* |img-9| *Illustration 7: SEO-page module in TYPO3* |img-10| *Illustration 8: SEO-sitemap module in TYPO3* .. _Users-manual: Users manual ------------ .. _Installation: Installation ^^^^^^^^^^^^ - Install Extension via Extension Manager. - Include “static extension template” (Template → Info/Modify → Edit the whole template record → “Include static (from extensions):” and select “TEQneers SEO”) - Modify your metatags via constants editor .. _Indexed-Sitemap: Indexed Sitemap ^^^^^^^^^^^^^^^ The sitemap will automatically collect all cacheable sites and provides a xml- and plaintext-output – that's why it is “indexed”. The XML-Sitemap (eg. for Google) is available with: index.php?type=841132 The TXT-Sitemap is available with: index.php?type=841131 If you have more than one tree in your TYPO3 you will have to add the root-PID to your Sitemap, eg: Tree #1 with PID 123: index.php?id=123&type=841132 Tree #2 with PID 234: index.php?id=234&type=841132 If you have also enabled “sitemap\_ObeySysLanguage” in the extension configuration you also have to add the language-id for your Sitemap - eg. for seperated language-domain eg. example.com (only english sites) and example.de (only german sites). The sitemap will index ALL cacheable pages with full extension support (like tt\_news and all other “clean” extensions). If your extension doesn't use cHash or use no\_cache the outwill WILL NOT included in the sitemap (and also will not be indexed by index\_search). Also the sitemap indexes all generated “typolink” (BETA). **Warning:** The TQ Seo Sitemap relies on the TYPO3 caching system. If any extension (or configuration – eg. RealURL configuration) break the caching system and makes TSFE non-cacheable (TSFE->no\_cache) the sites will NOT INDEXED! Make sure no extension will set no\_cache and the cHash of your link is valid. This is the only way to get only valid URLs into your sitemap. This sitemap supports both, pibase- and extbase-Extensions without problems. However the developer must take care of the cHash-handling. .. _Robots-txt: Robots.txt ^^^^^^^^^^ The robots.txt can be gerated with type 841133, eg.: index.php?type=841133 If possible and enabled the robots.txt buidler will automatically add the link to the sitemap generator or the static sitemap files (will require TYPO3 Scheduler task to generate the static sitemap). .. _Metatags: Metatags ^^^^^^^^ .. ### BEGIN~OF~TABLE ### .. _Last-Update-time: Last Update time """""""""""""""" .. container:: table-row Constant Last Update time Description Publish the update time of the current page Default enabled .. _Detect-Language: Detect Language """"""""""""""" .. container:: table-row Constant Detect Language Description Publish the current TYPO3-FE-language as metatag Default enabled .. _Canonical-Tag: Canonical Tag """"""""""""" .. container:: table-row Constant Canonical Tag Description Publish canonical link if possible (TYPO3-Cache is enabled and cHash is valid) or if user entered canonical tag into page options. Default enabled .. _Canonical-Tag-Strict-mode: Canonical Tag (Strict mode) """"""""""""""""""""""""""" .. container:: table-row Constant Canonical Tag (Strict mode) Description Enable strict mode (all wrong GET-parameters will generate a canonical-tag to the self without GET-params). eg. /index.php?id=123&foo=bar would generate a Canonical-Tag poiting to /index.php?id=123 if the cHash is wrong or caching is disabled Default disabled .. _Publish-Page-Expire-Time: Publish Page Expire Time """""""""""""""""""""""" .. container:: table-row Constant Publish Page Expire Time Description Publish expire date from the “End Date” of the page.Currently only used for Google. Default enabled .. _Link-generation: Link generation """"""""""""""" .. container:: table-row Constant Link generation Description Automatic generate index and up-links. Next/Prev wil follow in the next version. Default enabled .. _Enable-Dublin-Core-DC-metatags: Enable Dublin Core (DC.) metatags """"""""""""""""""""""""""""""""" .. container:: table-row Constant Enable Dublin Core (DC.) metatags Description Enable/Disable output of dublin core (DC) metatags Default enabled .. _Description: Description """"""""""" .. container:: table-row Constant Description Description Default description of your pages. Overwritten by description of page Default .. _Keywords: Keywords """""""" .. container:: table-row Constant Keywords Description Default list of keywords Overwritten by keywords of page Default .. _Copyright-info: Copyright info """""""""""""" .. container:: table-row Constant Copyright info Description Copyright information of your page Default .. _Reply-to-email: Reply-to email """""""""""""" .. container:: table-row Constant Reply-to email Description E-Mail address for contact Default .. _Author: Author """""" .. container:: table-row Constant Author Description Default author Overwritten by author of page Default .. _Publisher: Publisher """"""""" .. container:: table-row Constant Publisher Description Publisher of the website Default .. _Language: Language """""""" .. container:: table-row Constant Language Description Overwrite language detection Default .. _Rating: Rating """""" .. container:: table-row Constant Rating Description Rating of the website Default .. _Distribution: Distribution """""""""""" .. container:: table-row Constant Distribution Description Distribution of your website Default .. _Revisit-after: Revisit after """"""""""""" .. container:: table-row Constant Revisit after Description Number of days between search engine visits Default .. _Geo-Location: Geo Location """""""""""" .. container:: table-row Constant Geo Location Description Geo-Location of your webpage with latitude, longitude, region and placename Default .. _PICS-label: PICS-label """""""""" .. container:: table-row Constant PICS-label Description Platform for Internet Content Selection see `http://www.w3.org/PICS/labels.html `_ Default .. _P3P-Compact-Policy: P3P Compact Policy """""""""""""""""" .. container:: table-row Constant P3P Compact Policy Description Your P3P Compact Policy. More informations about P3P: `http://www.w3.org/P3P/ `_ `http://www.w3.org/TR/P3P/ `_ `http://en.wikipedia.org/wiki/P3P `_ `http://www.p3pwriter.com/LRN\_111.asp `_ Default .. _P3P-Policy-Url: P3P Policy Url """""""""""""" .. container:: table-row Constant P3P Policy Url Description Link (full URL) to your P3P Policy File Default .. ###### END~OF~TABLE ###### Some metatags also have markers which could be build in, following metatags supports markers: - Title - Description - Keywords - Copyright - Publisher Following Markers are available: .. ### BEGIN~OF~TABLE ### .. _YEAR: %YEAR% """""" .. container:: table-row Marker %YEAR% Description Current year Example 2011 .. ###### END~OF~TABLE ###### .. _UserAgent: UserAgent ^^^^^^^^^ .. ### BEGIN~OF~TABLE ### .. _IE-Compatibility-Mode: IE Compatibility Mode """"""""""""""""""""" .. container:: table-row Constant IE Compatibility Mode Description Compatibility mode for Microsoft Internet Explorer Default .. ###### END~OF~TABLE ###### .. _Crawler: Crawler ^^^^^^^ .. ### BEGIN~OF~TABLE ### .. _Index: Index """"" .. container:: table-row Constant Index Description Should the crawler index your website? Default enabled .. _Follow: Follow """""" .. container:: table-row Constant Follow Description Should the crawler follow links on your website? Default enabled .. _Archive: Archive """"""" .. container:: table-row Constant Archive Description Is the crawler allowed to archive the page (eg. google cache) Default enabled .. _Snippet: Snippet """"""" .. container:: table-row Constant Snippet Description Should the crawler use the snippet/description in search results Default enabled .. _ODP: ODP """ .. container:: table-row Constant ODP Description Should the crawler use the OpenDirectoryProject to display the description in search results Default enabled .. _YDir: YDir """" .. container:: table-row Constant YDir Description Should the crawler use the YahooDirectory to display the description in search results Default enabled .. ###### END~OF~TABLE ###### .. _Services: Services ^^^^^^^^ .. ### BEGIN~OF~TABLE ### .. _Crawler-Verification: Crawler Verification """""""""""""""""""" .. container:: table-row Metatag Crawler Verification Description Verification code for Google, MSN and Yahoo webmaster tools and Web of trust Default .. _Google-Analytics: Google Analytics """""""""""""""" .. container:: table-row Metatag Google Analytics Description The google analytics code for using on your site(Will not be shown in frontend if BE-user is logged in, can be re-enabled in BE-Login-Mode: plugin.tq\_seo.services.googleAnalytics.showIfBeLogin = 1 ) Default .. _Google-Analytics-Cookie-Domain-Name: Google Analytics Cookie Domain Name """"""""""""""""""""""""""""""""""" .. container:: table-row Metatag Google Analytics Cookie Domain Name Description If you want to limit the current google analytics to one domain (or subdomain) set the domain name here, eg.: \- “auto” (default in google analytics)- “none” \- single domain (eg. “example.com”) \- subdomain (eg. “.example.com”) Fore more informations visit: `http://code.google.com/intl/de-DE/apis/ analytics/docs/gaJS/gaJSApiDomainDirectory.html#\_gat.GA\_Tracker\_.\_ setDomainName `_ Default .. _Google-Analytics-Anonymize-IP: Google Analytics Anonymize IP """"""""""""""""""""""""""""" .. container:: table-row Metatag Google Analytics Anonymize IP Description Anonymize the last part of the IP (may be required in some countries) Default disabled .. _Google-Analytics-Track-Downloads-BETA: Google Analytics Track Downloads (BETA) """"""""""""""""""""""""""""""""""""""" .. container:: table-row Metatag Google Analytics Track Downloads (BETA) Description Try to track downloads with google analytics. See res/ga-track-download.js for more details Currently supported files: doc,docx,xls,ppt,odt,ods,pdf,zip,tar,gz,txt,vsd,vxd,rar,exe,wma,mov,av i,ogg,ogm,mkv,wmv,mp3,webm Default disabled .. _Piwik-URL: Piwik URL """"""""" .. container:: table-row Metatag Piwik URL Description Url to your Piwik installation (without http:// and https://) Default .. _Piwik-ID: Piwik ID """""""" .. container:: table-row Metatag Piwik ID Description Tracking id of your website in your piwik Default .. _Piwik-Download-Click-Domain-Name: Piwik Download & Click Domain Name """""""""""""""""""""""""""""""""" .. container:: table-row Metatag Piwik Download & Click Domain Name Description Specifies which domains are internal domains: \- single domain (eg. “example.com”) \- subdomain (eg. “.example.com”) For more informations visit: `http://piwik.org/docs/javascript-tracking/ `_ Default .. _Piwik-Cookie-Domain-Name: Piwik Cookie Domain Name """""""""""""""""""""""" .. container:: table-row Metatag Piwik Cookie Domain Name Description Specifies the domain name for the tracking cookie: \- single domain (eg. “example.com”) \- subdomain (eg. “.example.com”) For more informations visit: `http://piwik.org/docs/javascript-tracking/ `_ Default .. _Piwik-DoNotTrack: Piwik DoNotTrack """""""""""""""" .. container:: table-row Metatag Piwik DoNotTrack Description Opt Out users with Mozilla's DoNotTrack browser setting Default enabled(since 4.0) .. ###### END~OF~TABLE ###### .. _Social: Social ^^^^^^ .. ### BEGIN~OF~TABLE ### .. _Google-Direct-Connect: Google+ Direct Connect """""""""""""""""""""" .. container:: table-row Service Google+ Direct Connect Description Your Google+ Profile Page IDsee `https://developers.google.com/+/plugins/badge/ `_ Default (since 5.0.0) .. ###### END~OF~TABLE ###### .. _Pagetitle: Pagetitle ^^^^^^^^^ .. ### BEGIN~OF~TABLE ### .. _Apply-tmpl-sitetitle-to-absolute-title: Apply tmpl-sitetitle to absolute """""""""""""""""""""""""""""""""""""""" .. container:: table-row Metatag Apply tmpl-sitetitle to absolute <title> Description There is a prefix/suffix for your pagetitle defined in your root template settings. If you use the SEO-Absolute-Pagetitle settings you can disable this suffix/prefix here. Default disabled(since 1.1.0) .. _Apply-tmpl-sitetitle-to-prefix-suffix-title: Apply tmpl-sitetitle to prefix/suffix <title> """"""""""""""""""""""""""""""""""""""""""""" .. container:: table-row Metatag Apply tmpl-sitetitle to prefix/suffix <title> Description There is a prefix/suffix for your pagetitle defined in your root template settings. If you use the SEO-Pagetitle-Suffix/Prefix settings you can disable this suffix/prefix here. Default enabled .. _Sitetitle-glue: Sitetitle glue """""""""""""" .. container:: table-row Metatag Sitetitle glue Description Glue between Pagetitle (from Page) and Sitetitle (from template) Default : .. _Sitetitle-glue-spacer-before: Sitetitle glue spacer (before) """""""""""""""""""""""""""""" .. container:: table-row Metatag Sitetitle glue spacer (before) Description Add spacer before glue string Default disabled .. _Sitetitle-glue-spacer-after: Sitetitle glue spacer (after) """"""""""""""""""""""""""""" .. container:: table-row Metatag Sitetitle glue spacer (after) Description Add spacer after glue string Default enabled .. _Sitetitle-position: Sitetitle position """""""""""""""""" .. container:: table-row Metatag Sitetitle position Description Position of Sitetitle (from template) Possible options: Sitetitle-Pagetitle (eg. Example Company: About us) Pagetitle-Sitle (eg. About us: Example Company) Default Sitetitle-Pagetitle(0) .. _Sitetitle: Sitetitle """"""""" .. container:: table-row Metatag Sitetitle Description Overwrite the template sitetitle with a custom one Default .. ###### END~OF~TABLE ###### .. _Sitemap: Sitemap ^^^^^^^ .. ### BEGIN~OF~TABLE ### .. _Enable: Enable """""" .. container:: table-row Metatag Enable Description Enables output (if set on root-pid of tree) and indexing for the whole subtree Default enabled .. _Page-limit: Page limit """""""""" .. container:: table-row Metatag Page limit Description Limit pages on sitemap-xml-pages Default 10000 .. _Limit-to-current-language: Limit to current language """"""""""""""""""""""""" .. container:: table-row Metatag Limit to current language Description Limit output of the sitemap to the current language.This will enable multi-language-domain sitemaps. eg: `www.example.com <http://www.example.com/>`_ (FE-Language is english) will output only english pages `www.example. <http://www.example.com/>`_ de (FE- Language is german) will output only german pagesThis option was ported from the extension configuration and will replace this configuration. Default disabled .. _Default-change-frequency: Default change frequency """""""""""""""""""""""" .. container:: table-row Metatag Default change frequency Description Default change frequency for sitemap cache (will be cached!) Default .. _Page-priority: Page priority """"""""""""" .. container:: table-row Metatag Page priority Description Default page priority if the page have no own priority setPage priority will be calculated by: ( [page priority] – [priority modificator] ) \* ( 1/[page depth] \* [page multiplier] ) Default 1 .. _Page-priority-depth-multiplier: Page priority depth multiplier """""""""""""""""""""""""""""" .. container:: table-row Metatag Page priority depth multiplier Description Page depth multiplier, see formula in page priority Default 1 .. _Page-priority-depth-modificator: Page priority depth modificator """"""""""""""""""""""""""""""" .. container:: table-row Metatag Page priority depth modificator Description Page depth modificator, see formula in page priority Default 1 .. ###### END~OF~TABLE ###### .. _Backend-Modules: Backend Modules --------------- .. _SEO-Page-Module-Website-SEO: SEO Page Module (Website → SEO) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The SEO page module provies an overview for all seo relevant informations (including possibility to edit this informations on click). .. ### BEGIN~OF~TABLE ### .. _Metatags: Metatags """""""" .. container:: table-row Module Metatags Description Overview for all relevant metatags .. _Geo-position: Geo position """""""""""" .. container:: table-row Module Geo position Description Overview for geo positioning .. _SearchEngines: SearchEngines """"""""""""" .. container:: table-row Module SearchEngines Description Overview for all relevant search engine settings including sitemap stuff .. _URL-Handling: URL Handling """""""""""" .. container:: table-row Module URL Handling Description Overview for all relevant url handling stuff including RealURL support and possibility to simulate the url. .. _Pagetitle: Pagetitle """"""""" .. container:: table-row Module Pagetitle Description Overview for all relevant pagetitle informations and possibility to simulate the pagetitle. .. _Pagetitle-simulator-Slow: Pagetitle simulator (Slow!) """"""""""""""""""""""""""" .. container:: table-row Module Pagetitle simulator (Slow!) Description Simulates the pagetitle generation for the current selected tree.The generation time depends of the number of TypoScript-Setup Templates in the selected tree. Don't use this features if you have more than ~5 templates. .. ###### END~OF~TABLE ###### .. _SEO-Control-Center-SEO-Control-Center: SEO Control Center (SEO → Control Center) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The SEO control center lists all your root-pages in your TYPO3 installation. For each root page you can control specific sitemap and robots.txt settings. |img-11| .. _SEO-Sitemap-SEO-Sitemap: SEO Sitemap (SEO → Sitemap) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The SEO sitemap module provides access to the indexed sitemap list. |img-12| .. _Advanced-manipulations-stdWrap-support: Advanced manipulations (stdWrap support) ---------------------------------------- If you want to modify some things you can use stdWraps .. _Metatags: Metatags ^^^^^^^^ .. ### BEGIN~OF~TABLE ### .. _plugin-tq-seo-metaTags-stdWrap-title: plugin.tq\_seo.metaTags.stdWrap.title """"""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.metaTags.stdWrap.title Description Manipulation for title Type stdWrap .. _plugin-tq-seo-metaTags-stdWrap-description: plugin.tq\_seo.metaTags.stdWrap.description """"""""""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.metaTags.stdWrap.description Description Manipulation for description Type stdWrap .. _plugin-tq-seo-metaTags-stdWrap-keywords: plugin.tq\_seo.metaTags.stdWrap.keywords """""""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.metaTags.stdWrap.keywords Description Manipulation for keywords Type stdWrap .. _plugin-tq-seo-metaTags-stdWrap-copyright: plugin.tq\_seo.metaTags.stdWrap.copyright """"""""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.metaTags.stdWrap.copyright Description Manipulation for copyright Type stdWrap .. _plugin-tq-seo-metaTags-stdWrap-language: plugin.tq\_seo.metaTags.stdWrap.language """""""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.metaTags.stdWrap.language Description Manipulation for language Type stdWrap .. _plugin-tq-seo-metaTags-stdWrap-email: plugin.tq\_seo.metaTags.stdWrap.email """"""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.metaTags.stdWrap.email Description Manipulation for email Type stdWrap .. _plugin-tq-seo-metaTags-stdWrap-author: plugin.tq\_seo.metaTags.stdWrap.author """""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.metaTags.stdWrap.author Description Manipulation for author Type stdWrap .. _plugin-tq-seo-metaTags-stdWrap-publisher: plugin.tq\_seo.metaTags.stdWrap.publisher """"""""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.metaTags.stdWrap.publisher Description Manipulation for publisher Type stdWrap .. _plugin-tq-seo-metaTags-stdWrap-distribution: plugin.tq\_seo.metaTags.stdWrap.distribution """""""""""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.metaTags.stdWrap.distribution Description Manipulation for distribution Type stdWrap .. _plugin-tq-seo-metaTags-stdWrap-rating: plugin.tq\_seo.metaTags.stdWrap.rating """""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.metaTags.stdWrap.rating Description Manipulation for rating Type stdWrap .. _plugin-tq-seo-metaTags-stdWrap-lastUpdate: plugin.tq\_seo.metaTags.stdWrap.lastUpdate """""""""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.metaTags.stdWrap.lastUpdate Description Manipulation for last update (date) Type stdWrap .. ###### END~OF~TABLE ###### .. _Pagetitle: Pagetitle ^^^^^^^^^ .. ### BEGIN~OF~TABLE ### .. _plugin-tq-seo-pageTitle-stdWrap-before: plugin.tq\_seo.pageTitle.stdWrap.before """"""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.pageTitle.stdWrap.before Description Manipulation of the raw page title (before TQ-Seo processing) Type stdWrap .. _plugin-tq-seo-pageTitle-stdWrap-after: plugin.tq\_seo.pageTitle.stdWrap.after """""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.pageTitle.stdWrap.after Description Manipulation of the processed page title (after TQ-Seo processing) Type stdWrap .. _plugin-tq-seo-pageTitle-stdWrap-sitetitle: plugin.tq\_seo.pageTitle.stdWrap.sitetitle """""""""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.pageTitle.stdWrap.sitetitle Description Manipulation of the sitetitle (from the TS-Setup-Template) Type stdWrap .. ###### END~OF~TABLE ###### .. _Google-Analyitics-Piwik-customizations: Google Analyitics / Piwik customizations ---------------------------------------- .. _Customization-codes-fast-simple: Customization codes (fast/simple) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You can add additional javascript code to the default Google Analytics and/or Piwik integration. .. ### BEGIN~OF~TABLE ### .. _plugin-tq-seo-services-googleAnalytics-customizationCode: plugin.tq\_seo.services.googleAnalytics.customizationCode """"""""""""""""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.services.googleAnalytics.customizationCode Description Customization Code for Google Analytics Type TS-Content Object(TEXT, COA, ...) .. _plugin-tq-seo-services-piwik-customizationCode: plugin.tq\_seo.services.piwik.customizationCode """"""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.services.piwik.customizationCode Description Customization Code for Piwik Type TS-Content Object(TEXT, COA, …) .. ###### END~OF~TABLE ###### Example for Google Analytics in TypoScript-Setup: plugin.tq\_seo.services.googleAnalytics.customizationCode = COAplugin.tq\_seo.services.googleAnalytics.customizationCode {10 = TEXT 10.value ( \_gaq.push(['\_setClientInfo', false]); \_gaq.push(['\_setAllowHash', false]); \_gaq.push(['\_setDetectFlash', false]); \_gaq.push(['\_setDetectTitle', false]); )} .. _Template-customization-advanced: Template customization (advanced) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Google Analytics and Piwik integration is done by using a FLUIDTEMPLATE object in TypoScript. If you don't like the integration and want to modify the integration feel free to use your own templates and pass your own variables to FLUIDTEMPLATE. .. ### BEGIN~OF~TABLE ### .. _plugin-tq-seo-services-googleAnalytics-template: plugin.tq\_seo.services.googleAnalytics.template """""""""""""""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.services.googleAnalytics.template Description Template rendering object for Google Analytics(contains a FLUIDTEMPLATE) Type COA .. _plugin-tq-seo-services-piwik-template: plugin.tq\_seo.services.piwik.template """""""""""""""""""""""""""""""""""""" .. container:: table-row TypoScript Node plugin.tq\_seo.services.piwik.template Description Template rendering object for Piwik(contains a FLUIDTEMPLATE) Type COA .. ###### END~OF~TABLE ###### It's quite easy, for more information read: - `http://forge.typo3.org/projects/typo3v4-mvc/wiki/FLUIDTEMPLATE%20Cont ent%20Object <http://forge.typo3.org/projects/typo3v4-mvc/wiki/FLUIDTE MPLATE%20Content%20Object>`_ - `http://typo3.org/development/articles/the-fluidtemplate-cobject/ <http://typo3.org/development/articles/the-fluidtemplate-cobject/>`_ Example for your own Google Analytics Template: ## Google Analytics template plugin.tq\_seo.services.googleAnalytics.template.10.file = fileadmin/templates/service-ga.html ## if you need some variables you also can set these: plugin.tq\_seo.services.googleAnalytics.template.10.variables { myOwnStuff = TEXT myOwnStuff.value = foobar } .. _Scheduler-tasks: Scheduler tasks --------------- .. ### BEGIN~OF~TABLE ### .. _TQ-SEO-Cleanup: TQ SEO Cleanup ^^^^^^^^^^^^^^ .. container:: table-row Task TQ SEO Cleanup Description This task cleans up old database entries in the tx\_tqseo\_sitemap table. Frequency One run per day .. _TQ-SEO-sitemap-txt-builder: TQ SEO sitemap.txt builder ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. container:: table-row Task TQ SEO sitemap.txt builder Description This task builds a real sitemap.txt file in the upload directory.Directory: uploads/tx\_tqseo/sitemap\_txt/Sitemap: sitemap-r{ROOTPID}.txt.gz If language domain support is active: Sitemap: sitemap-r{ROOTPID}-l{LANG}.txt.gz {ROOTPID} is the Page-UID from the root pages in your TYPO3 installations.{LANG} is the language id (only active if language domains are active). Hint: These files are already gziped. Frequency One run per day .. _TQ-SEO-sitemap-xml-builder: TQ SEO sitemap.xml builder ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. container:: table-row Task TQ SEO sitemap.xml builder Description This task builds a real sitemap.xml files in the upload directory.Directory: uploads/tx\_tqseo/sitemap\_xml/Sitemap-Index: index-r{ROOTPID}.xml.gzSitemap-Page: sitemap-r{ROOTPID}-p{PAGE}.xml.gz If language domain support is active:Sitemap-Index: index-r{ROOTPID}-l{LANG}.xml.gzSitemap-Page: sitemap-r{ROOTPID}-l{LANG}-p{PAGE}.xml.gz {ROOTPID} is the Page-UID from the root pages in your TYPO3 installations. {PAGE} is the current page of the sitemap. {LANG} is the language id (only active if language domains are active).The index will refer to all page sitemaps so you only have to reference to the sitemap index. Hint: These files are already gziped. Frequency One run per day .. ###### END~OF~TABLE ###### .. _FAQ: FAQ --- .. _General: General ^^^^^^^ **Problem:** Is this extension mutli-language and/or multi-tree ready? **Solution:** Check it out, there should be no problems at all with multi-language multi-tree TYPO3-installations. **Problem:** In my TYPO3 the feature XYZ of this extension doesn't work. What's wrong? **Solution:** The tq\_seo-Extension was carefully written. We're at TEQneers what to deliver correct pages and extensions will the power of the TYPO3 caching system (and those extensions are the fastest). For some features (eg. sitemap, canonical-tag) we have to trust in the caching-system – it's the only way to make sure that we don't deliver wrong informations to our search engines. If our extension doesn't work correct in your TYPO3 installation maybe there is something wrong – maybe the configuration, your setupTS or one of your extension. .. _Indexed-Sitemap: Indexed Sitemap ^^^^^^^^^^^^^^^ **Problem:** The sitemap is empy. **Solution:** Check if you created the “tx\_tqseo\_sitemap\_pages” database-table! We're using InnoDB as MySQL-Engine so you have to make sure that you have InnoDB-Support in your Hosting-Account (if not you should switch your hoster, InnoDB is a Standard-Feature in MySQL). As with 2.0.1 there is an error-message if the table doesn't exist. **Problem:** My sitemap is still empty, but the database is ok. **Solution:** Maybe you disabled the whole TYPO3 cache (config.no\_cache=1 or somehthing else)? Enable the cache – this will also speed up your TYPO3 installation. **Problem:** The generated pages from my extension are not included in the sitemap! **Solution:** You have to make sure that all generated pages are cacheable. The extension has to pass a valid cHash-token! **Problem:** There is only one site in my XML-Sitemap, what's wrong? In the sitemap-database are thousands of pages. Solution: That's correct. TQ\_Seo always uses “Sitemap Groups” (as defined in http://www.sitemaps.org/protocol.php#index), each group can contain about 50.000 pages/urls so if we have more than 50.000 urls we have to use sitemap groups. Visit the url defined in the LOC-tag and you will see that the sub-sitemap will contain all your stored URLs. **Problem:** The generated pages from my extension still are not included in the sitemap! **Solution:** You've enabled RealURL? Please check the RealURL configuration if you have specified values that are not passed with your url. All variables that are not passed with the url will result in a NO-CACHE. **Problem:** The sitemap is still not working! No page is indexed and the table tx\_tqseo\_sitemap\_pages is empty! **Solution:** Double check your installation and disable all third- party extensions, make sure that no extension disables the TYPO3-cache! RealUrl (if properly configured) and TemplaVoila are working wonderfull with TQ Seo Sitemap but some old extensions might break the TYPO3 caching system and you will not notice it. Our sitemap indexer relies on the indexing system to make sure that only valid urls are stored and delivered to the search engines like google. **Problem:** I want to limit each sitemap to it's domain (eg. example.com for english pages, example.de for german pages). Is this possible? **Solution:** Yes, just enable the “Enable language-domain support” in seo control center in your website/rootpage settings.(replaces the old extension configuration sitemap\_ObeySysLanguage and TypoScript constants setting). **Problem:** My tt\_news entries are not indexed, what's wrong? **Solution:** You're using realurl? Then check your realurl\_conf.php. Errors (or misconfiguration) in the realurl-configuration will produce uncacheable sites (and you will not notice it). The most common issue is the configuration of the parameter “tx\_ttnews[swords]” in the postVarSets-area. Remove it, you don't need it. .. _Others: Others ^^^^^^ **Problem:** I want to customize my google Analytics and/or piwik integration. **Solution:** You can modify the code of the google analytics and piwiki integration with typoscript. Feel free to use *plugin.tq\_seo.services.googleAnalytics.customizationCode* (STDWRAP) or *plugin.tq\_seo.services.piwik.customizationCode* (STDWRAP). Also you can modify the FLUIDTEMPLATE and assign custom variables. .. _RealURL-configuration: RealURL configuration --------------------- If you want to activiate “real” sitemap.xml feature (eg. `http://example.com/sitemap.xml <http://example.com/sitemap.xml>`_ ), configure realurl like this: <?php $TYPO3\_CONF\_VARS['EXTCONF']['realurl']['\_DEFAULT'] = array( 'init' => array( // ... ), 'preVars' => array( // ... ), 'fixedPostVars' => array( // ... ), 'postVarSets' => array( '\_DEFAULT' => array( // TT-NEWS (example configuration) 'date' => array( array( 'GETvar' => 'tx\_ttnews[year]' , ), array( 'GETvar' => 'tx\_ttnews[month]' , 'valueMap' => array( 'january' => '01', 'february' => '02', 'march' => '03', 'april' => '04', 'may' => '05', 'june' => '06', 'july' => '07', 'august' => '08', 'september' => '09', 'october' => '10', 'november' => '11', 'december' => '12', ), ), array( 'GETvar' => 'tx\_ttnews[day]', ), ), // news pagebrowser 'browse' => array( array( 'GETvar' => 'tx\_ttnews[pointer]', ), ), // news categories 'news-category' => array ( array( 'GETvar' => 'tx\_ttnews[cat]', 'lookUpTable' => array( 'table' => 'tt\_news\_cat', 'id\_field' => 'uid', 'alias\_field' => 'title', 'addWhereClause' => ' AND NOT deleted', 'useUniqueCache' => 1, 'useUniqueCache\_conf' => array( 'strtolower' => 1, 'spaceCharacter' => '-', ), ), ), ), // news articles 'article' => array( array( 'GETvar' => 'tx\_ttnews[tt\_news]', 'lookUpTable' => array( 'table' => 'tt\_news', 'id\_field' => 'uid', 'alias\_field' => 'title', 'addWhereClause' => ' AND NOT deleted', 'useUniqueCache' => 1, 'useUniqueCache\_conf' => array( 'strtolower' => 1, 'spaceCharacter' => '-', ), ), ), ), // ... other extensions ... ), ), 'fileName' => array( 'defaultToHTMLsuffixOnPrev' => 1, 'index' => array( // ... 'sitemap.xml' => array( 'keyValues' => array( 'type' => 841132, ), ), 'sitemap.txt' => array( 'keyValues' => array( 'type' => 841131, ), ), 'robots.txt' => array( 'keyValues' => array( 'type' => 841133, ), ), '\_DEFAULT' => array( 'keyValues' => array( 'type' => 0, ) ), ), ), 'pagePath' => array( 'type' => 'user', 'userFunc' => 'EXT:realurl/class.tx\_realurl\_advanced.php:&tx\_realur l\_advanced->main', 'spaceCharacter' => '-', 'segTitleFieldList' => 'tx\_realurl\_pathsegment,alias,nav\_title,title', 'languageGetVar' => 'L', 'expireDays' => 30, 'rootpage\_id' => 1, ), ); ?> .. _Hooks: Hooks ----- All hooks are defined in docs/examples/hooks.php (available with short description). .. _Beta-Features: Beta-Features ------------- \- TypoLink Sitemap parser .. _Suggested-Extensions: Suggested Extensions -------------------- - sourceopt: HTML sourcecode optimization - realurl/cooluri: Link SEO optimization .. _Known-problems: Known problems -------------- - Don't use another SEO-extension like metatags - Sourceopt might break sitemap-txt output, xml is still fine (Sourceopt 0.5.17 fixes this, please update) .. _To-Do-list: To-Do list ---------- - RealURL autoconfiguration - SEO page module with language support .. _Found-a-bug-Problems: Found a bug? Problems? ---------------------- The bugtracker can be found on TYPO3-forge: http://forge.typo3.org/projects/extension-tq\_seo .. or contact us at `blaschke@teqneers.de <mailto:blaschke@teqneers.de>`_ or `info@teqneers.de <mailto:info@teqneers.de>`_ . .. _ChangeLog: ChangeLog --------- .. _Version-5-0: Version 5.0 ^^^^^^^^^^^ - Added possibility to manipulate/overwrite “sitetitle” (from TS-Setup- Template) - Implemented seo page-module - Added support for Google+ Direct Connect - Impoved ui (backend modules) - Fixed several bugs .. _Version-4-0: Version 4.0 ^^^^^^^^^^^ - Google Analytics and Piwik uses now asynchronous implementation - Some settings (eg. language-lock for sitemap) are moved to SEO → “Contol Center” - Implemented sitemap and control center as backend module - Implemented robots.txt-support 33 .. ######CUTTER_MARK_IMAGES###### .. |img-1| image:: img-1.png .. :align: left .. |img-2| image:: img-2.png .. :border: 0 .. :height: 21 .. :hspace: 9 .. :id: Grafik2 .. :name: Grafik2 .. :width: 87 .. |img-3| image:: img-3.png .. :align: left .. :border: 0 .. :height: 540 .. :id: graphics2 .. :name: graphics2 .. :width: 540 .. |img-4| image:: img-4.png .. :align: left .. :border: 0 .. :height: 570 .. :id: graphics1 .. :name: graphics1 .. :width: 591 .. |img-5| image:: img-5.png .. :align: left .. :border: 0 .. :height: 458 .. :id: graphics5 .. :name: graphics5 .. :width: 537 .. |img-6| image:: img-6.png .. :align: left .. :border: 0 .. :height: 471 .. :id: graphics3 .. :name: graphics3 .. :width: 593 .. |img-7| image:: img-7.png .. :align: left .. :border: 0 .. :height: 471 .. :id: graphics4 .. :name: graphics4 .. :width: 593 .. |img-8| image:: img-8.png .. :align: left .. :border: 0 .. :height: 471 .. :id: graphics6 .. :name: graphics6 .. :width: 593 .. |img-9| image:: img-9.png .. :align: left .. :border: 0 .. :height: 471 .. :id: graphics7 .. :name: graphics7 .. :width: 593 .. |img-10| image:: img-10.png .. :align: left .. :border: 0 .. :height: 454 .. :id: graphics8 .. :name: graphics8 .. :width: 571 .. |img-11| image:: img-11.png .. :align: left .. :border: 0 .. :height: 499 .. :id: graphics9 .. :name: graphics9 .. :width: 669 .. |img-12| image:: img-12.png .. :align: left .. :border: 0 .. :height: 489 .. :id: graphics10 .. :name: graphics10 .. :width: 669