Expand my Community achievements bar.

July 31st AEM Gems Webinar: Elevate your AEM development to master the integration of private GitHub repositories within AEM Cloud Manager.
SOLVED

Vanity URLs: a lot of them may turn to a performance problem?

Avatar

Level 2

Hi all.

I need to have different products exposed in a format like the following:

/products/<code>.html

Products are stored on repository with this format:

/products/<code_letter1>/<code_letter2>/<code_letter3>/<code>

We don't want to have the 3 extra paths in the final URL.

So first idea would be to define a vanity URL for every product. Having up to 10.000 products I mind if this can be a performance issue.

Then... is there a smarter approach, for example some sling mapping rule that can convert an incoming URL  in the format  /products/code.html  in --->   products/c/o/d/code?

Clearaly also generated URLs should be rewritten with the same rule, but this can be handled at application layer if necessary,

We are using CQ 5.6.1

Any help will be appreciated.

thanks

Ignazio

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

Vanity URLs could be an option, but ensure, that you run CQ 5.6.1 for it. in the last few months some performance issues have been fixed when you have a large number of vanity URLs, so make sure, that you have these fixes, please raise a Daycare ticket for this and ask there.

Regarding your content structure: Why have you choosen this approach? Do your editors need to edit the product pages or are they just imported and don't get authored at all? I would like to confirm Daniel Kloco's statement, that should familiarize with David Model.

Jörg

View solution in original post

2 Replies

Avatar

Level 2

It sounds like this even could be handled through Apache's Mod Rewrite which would be available to you from the Dispatcher.  

I would question though, why your nodes are arranged as they are.  If you have a whole bunch of individual products, rather than just sharding the name to get around the performance problems with having a large number of child nodes, it would be better to arrange them in a taxonomy which organized by some logical model.  Remember David Nuescheler's Rule #2 of Data Modeling.

I'd also be concerned about your use of the term code.  By that do you mean some encoded version of a decent title of the product?  Or some sort of ID.  ID's Are Evil. They don't provide the user's any benefit from reading the URL and they have a negative SEO impact verses using a textual name.  This may not actually be an issue in your case, I was just concerned with the term 'code'.

Avatar

Correct answer by
Employee Advisor

Vanity URLs could be an option, but ensure, that you run CQ 5.6.1 for it. in the last few months some performance issues have been fixed when you have a large number of vanity URLs, so make sure, that you have these fixes, please raise a Daycare ticket for this and ask there.

Regarding your content structure: Why have you choosen this approach? Do your editors need to edit the product pages or are they just imported and don't get authored at all? I would like to confirm Daniel Kloco's statement, that should familiarize with David Model.

Jörg