Configuration

Target group: Developers, Integrators

TypoScript Settings

There are a couple of TypoScript settings that can influence the output regarding SEO.

Site configuration

The configuration of sites is done with the Site Management > Sites module. As the settings for your websites are important for SEO purposes as well, please make sure you check the following fields.

example site

Example site

To get more in depth information about the site handling please refer to the Site handling docs.

Entry Point

Please ensure, that you have configured your sites so that they all have an entry point. This is used for properly generating the canonical tags, for example.

Languages

Ensure, that you setup the site languages correctly. All languages should have the right information in the Locale and other language-dependant input fields. When set correctly, TYPO3 will automatically connect your page in the different languages so that search engines understand their relations. This it to ensure that the search engine knows which page to show when someone is searching in a specific language.

See Adding Languages for more details.

Error Handling

Although TYPO3 will respond with a HTTP status code 404 (Not found) when a page is not found, it is best practice to have a proper content telling the user that the page they requested is not available. This can guide them to another page or for example to a search function of your website.

See Error handling for more details.

robots.txt

The robots.txt file is a powerful feature and should be used with care. It will deny or allow search engines to access your pages. By blocking access to your pages, search engines won't crawl these pages. You should make sure that this will not prevent the search engines from finding important pages.

It is best practice to keep your robots.txt as clean as possible. An example of a minimal version of your robots.txt:

# This space intentionally left blank. Only add entries when you know how powerful the robots.txt is.
User-agent: *
Copied!

On Static routes you can find more details on how to create a static route that will show this information when visiting https://www.example.com/robots.txt.

When you want to disallow specific URLs, you can use the Index this page option in the backend or set the robot HTTP header X-Robots-tag manually.

Static Routes and redirects

Having correct redirects and choosing the appropriate status code is a very important part of SEO.

It is possible to manage redirects via the TYPO3 redirects extension, but it is not the only option and from a performance perspective it may not be the best solution. Please also see Performance in the EXT:redirects documentation.

Tags

Canonical Tag

Just like the hreflang link-tags, the <link rel="canonical" href="" /> link-tag is also generated automatically. If you have a specific edge case, and you don't want TYPO3 to render the tag, you can disable rendering completely. You can put this line in the ext_localconf.php of an extension and also make sure your extension is loaded after EXT:seo:

unset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\CMS\Frontend\Page\PageGenerator']['generateMetaTags']['canonical']);
Copied!

TypoScript examples

This section will provide you with examples on how to configure several behaviours in the frontend.

Setting missing OpenGraph meta tags

Most of the OpenGraph meta tags are rendered automatically when EXT:seo is installed. If you want to add meta tags properties such as og:title, og:description and og:image, you can use TypoScript code like this:

page {
  meta {
    og:site_name = YOUR_SITE_NAME
    og:site_name.attribute = property

    og:locale = en_US
    og:locale.attribute = property
    og:locale:alternate {
      attribute = property
      value {
         1 = de_DE
      }
    }
  }
}
Copied!

Setting fallbacks for meta tags

As you can see on TypoScript and PHP the tags are first set by PHP and after that the TypoScript config is handled. As EXT:seo is only adding the meta tags for the SEO and Social media fields (if they are filled in the page properties), you have some possibilities to add fallbacks.

Because EXT:seo is handling the tags in PHP-scope, you are able to add those fallbacks using TypoScript. You can add those tags with TypoScript and those will only be rendered when EXT:seo has not rendered them.

An example to set a fallback description and og:description:

page {
  meta {
    description = Your fallback description tag
    og:description = Your fallback OG:description tag
  }
}
Copied!

Setting fallbacks for og:image and twitter:image

If you want to have a fallback og:image or twitter:image, you can use this little snippet.

page {
  meta {
    og:image.stdWrap.cObject = TEXT
    og:image.stdWrap.cObject {
      if.isFalse.field = og_image
      stdWrap.typolink {
        parameter.stdWrap.cObject = IMG_RESOURCE
        parameter.stdWrap.cObject.file = EXT:your_extension/Resources/Public/Backend/OgImage.svg
        returnLast = url
        forceAbsoluteUrl = 1
      }
    }
    twitter:image.stdWrap.cObject = TEXT
    twitter:image.stdWrap.cObject {
      if.isFalse.field = twitter_image
      stdWrap.typolink {
        parameter.stdWrap.cObject = IMG_RESOURCE
        parameter.stdWrap.cObject.file = EXT:your_extension/Resources/Public/Backend/TwitterCardImage.svg
        returnLast = url
        forceAbsoluteUrl = 1
      }
    }
  }
}
Copied!

More information about the Meta Tag API can be found on:

Setting defaults for the author on meta tags

This example shows how to set a default author based on the TypoScript constant {$my.default.author}:

page {
  meta {
    author = {$my.default.author}
  }
}
Copied!