Hi,
I thought I'd share what I have done to try to control the SEO duplicate content issue. Please feel free to comment and tell me if I am way off or if I have overlooked anything.
Please see this article
support.google.com/webmasters/answer/139066?hl=en
. I figured I would do what I could.
First, I decided the preferred url string for all events since we cannot set the canonical url. In my case, I used a menu link,
3aaa.asia/schedule
Then for any menu links that might show the events by category, I instead built a menu for an external url that would show the results of a search for that category from the preferred menu link,
3aaa.asia/schedule/search-result?category_id=18&layout=timeline
**
** Note, I built my own "improved" search module so I could show a timeline layout for the results to match my timeline layout of the Schedule menu choice.
I used OSMap free for my site map,
www.joomlashack.com/joomla-extensions/osmap/
. Then I purchased the plugin for Event Booking,
beacart.co/store/eventbooking-plugin-for-osmap
. This way, all events are on the site map from the preferred menu/url that will be submitted to Google and Bing.
Lastly, I needed some .htaccess to clean up some urls to get rid of the category and language that precedes all urls, in my case it was the first category chosen within the event, "programs", and appended by the language, "-english" or "-german" or "-chinese" since I have a multi language site. And then direct the language to the appropriate url for that. These urls come from the "Details" button and within the link on the location if configured to show in a category list, as well as from within a module. For example, instead my-site.com/de/programs-german/my-event-link, it goes to my-site.com/de/schedule/my-event-link. This way the preferred link matches that site map. I used 302 instead of 301 in case a better way gets developed because it takes forever to get 301s removed. This part will be unique to everyone's site, but this is what worked for me:
RedirectMatch 302 ^(.*)(/programs-english/(.*)) $1/schedule/$3
RedirectMatch 302 ^(.*)(/zh/programs-chinese/(.*)) $1/zh/schedule/$3
RedirectMatch 302 ^(.*)(/de/programs-german/(.*)) $1/de/schedule/$3
I invite collaboration,
Helen