External empty links in sitemap break the whole international site structure

Permalink Browser Info Environment
We have used empty external (href=”#”) links in our sitemap in order to group pages together in categories to enable drop-down of them in the site navigation when you hovered over the link. This enabled us to maintain proper seo structure of the site, i.e. home (tier1) –> sub page (tier2) –> sub sub page (tier3) and group pages together for visual representation to the users in the site navigation. The external link was not seen as a page.

This worked perfectly when our site was monolingual, i.e. the empty external link was ignored in the sitemap.

We have recently added two extra languages using the international language module (see screenshots). The structure of the site is:

Home
-/us/external link/sub pages
-/us/contact-us
-/de/external link/sub pages
-/de/contact-us
-/fr/external link/sub pages
-/fr/contact-us

Unfortunately, the empty external links mess up the site structure. Pages not grouped under external links are not affected though.

Sitemap structure:
mysite.com/us/external-link/sub-page
mysite.com/us/contact-us

mysite.com/de/external-link/sub-page
mysite.com/de/contact-us

mysite.com/fr/external-link/sub-page
mysite.com/fr/contact-us

Becomes:
mysite.com/sub-page
mysite.com/us/contact-us

mysite.com/sub-page1
mysite.com/de/contact-us

mysite.com/sub-page2
mysite.com/fr/contact-us

The language locale is drop from the path and same sub pages get sequence numbers added to their path.

4 Attachments

Type: Discussion
Status: Resolved
BirgirGisla
View Replies:
andrew replied on at Permalink Reply
andrew
In general, external links are not meant to have sub-pages beneath them. They can behave unpredictably in certain contexts. It would be better to create real pages instead of external pages, and make them of a certain page type, and use a custom navigation that replaces the link to pages of those type with a "#" link, rather than using external links.

concrete5 Environment Information

# concrete5 Version
5.6.2.1

# concrete5 Packages
Cube Testimonials (1.0.6), Designer Content (3.1.1), Designer Gallery (1.0), Flex Slider (1.0), indulgence (0.9.5), Internationalization (1.3), Open Graph Tags Lite (1.5), OWL Carousel (2.1.1), Page Selector Attribute (1.1), Social Share Lite (1.2), Social Sharing (1.0).

# concrete5 Overrides
blocks/sidebar_ad, blocks/page_list, blocks/autonav, blocks/social_header, blocks/whale_owl_carousel, blocks/social_share_lite, blocks/social_icons_content, blocks/testimonials, themes/indulgence_custom-old, themes/indulgence_live

# Server Software
Apache

# Server API
cgi-fcgi

# PHP Version
5.3.29

# PHP Extensions
bcmath, bz2, calendar, cgi-fcgi, Core, ctype, curl, date, dom, ereg, exif, filter, ftp, gd, gettext, hash, htscanner, iconv, imap, intl, ionCube Loader, json, libxml, mbstring, mcrypt, mhash, mysql, mysqli, mysqlnd, openssl, pcre, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, Reflection, session, SimpleXML, soap, sockets, SPL, SQLite, sqlite3, standard, tidy, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend Guard Loader, zip, zlib.

# PHP Settings
max_execution_time - 30
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 4000
memory_limit - 512M
post_max_size - 128M
safe_mode - Off
safe_mode_exec_dir - <i>no value</i>
safe_mode_gid - Off
safe_mode_include_dir - <i>no value</i>
sql.safe_mode - Off
upload_max_filesize - 128M
mysql.max_links - Unlimited
mysql.max_persistent - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
pgsql.max_links - Unlimited
pgsql.max_persistent - Unlimited
session.cache_limiter - nocache
session.gc_maxlifetime - 7200
soap.wsdl_cache_limit - 5
safe_mode_allowed_env_vars - PHP_
safe_mode_protected_env_vars - LD_LIBRARY_PATH

Browser User-Agent String

Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36

Hide Post Content

This will replace the post content with the message: "Content has been removed by an Administrator"

Hide Content

Request Refund

You may not request a refund that is not currently owned by you.