Best practice for SEO-friendly urls?

Im looking for the simplest and most editor-friendly solution for SEO-friendly urls.

@bwaidelich in @dimaip post: SEO-friendly urls
With clever redirects it could be achieved w/o breaking links

I was looking in, in Packagist and with Google. Only found ««neos/redirecthandler-neosadapter» or outdated stuff and all for “old URL” that will redirect to the new page…


Nesting in Neos – This should still usable for menu-structure:


Tried with «neos/redirecthandler-neosadapter» (+ neos/redirecthandler-databasestorage).
But there are no additional fields in Page-Inspector. Most likely because the plugin is defined for a different target: «enables ***automatic*** redirects», or I did misunderstood something.

###Working solution:
Of corse, I can define PageNodes in root-level, from type «Shortcut» and redirect to «Select Target» "/Rivers/Germany/South/Rhein". This is working, but mess up the Page-tree with lot of non real existing pages.

- Is there a Plugin for this particular need: «enables ***definable*** urls-redirects to current page»?
- Is there a hidden or "to enable" solution in the neos/redirecthandler-Plugin?
- Have I overlooked some neos-build-in possibilities for seo-friendly url's?
1 Like

I’m afraid until we implement configurable routes, there is no real “best” practice:
Here is a Gist what I tried at first:

In the end I even used AOP to interfere with `\TYPO3\Neos\Routing\FrontendNodeRoutePartHandler`` which is VERY flaky and it could break even after minor release upgrades.

So if you think that this does not sound like a recommendation, it’s officially not :wink:

Heres a different approach, but not freely configurable for editors since the configuration is happening im YAML:

@gerhard_boden thanks for information, the top view and your hints.

###Shortcut is a bad idea
Unfortunately my «simple approach» with Type «Shortcut» for shorten-seo-friendly-url is a really bad solution. Internal it is solved with a «303 – See other» Search-Engine :construction: not love them.

###AOP is?

1 Question about – what means «AOP» to interfere withFrontendNodeRoutePartHandler: Is it Aspect Oriented Programming?

If yes, I guess «your interfere» will not be beginner-friendly :pensive:.Will choose your hint with OffRoad.

@wbehncke the package «PackageFactory.OffRoad» is not listed in Packagist nor in

I. Is the installation process by hand (copy to Application/Plugins-Folder). Would like to try in 2.3.x.

Would have to use also in 3.0.x.

II. @wbehncke: Do you guess, with find and replace the use TYPO3\Flow\Annotations as Flow and all the other Namespace-Stuff, it should work also in 3.0.x? Or is in 3.0.x some decisive changes in Neos, so the replaced Code could not work with?

You’re very welcome! :slight_smile:

Yes, AOP stands for Aspect Oriented Programming. But it’s not considered best pratice to just go ahead and override core methods, especially if they are not markes @api, because they could change at any time and break your application.

Hi @mad,

I’ll have a look into the compatibility with Neos 3.0.x. If it works out, I can publish two releases, (1.0 for Neos 2.3.x and 2.0 for Neos 3.0.x).

Until then, for Neos 2.3.x you can make use of the repository feature of composer.

Just add the following section to your composer.json (on distribution level, not in the site package):

    "repositories": [{
        "url": "",
        "type": "vcs"

Then you should be able to run composer require packagefactory/offroad dev-master.

I’ll give an update on the compatibility and releases soonish in this thread.

Best regards,