I am getting myself a little confused and would appreciate some support.

Lets say I have the following nodes as Panel Pages:

example.com/food-types

example.com/meat

example.com/vegetables

And a quicktabs set called food_tabs containing two tabs; Meat, Vegetables, with Ajax set to 'No': Load all tabs.

I have them arranged as follows:

example.com/food-types has the food_tabs tab set placed at the top of the page in a Panel region. The two tabs display perfectly at this url.

Each tab now has a url as follows:

example.com/food-types?qt-food_tabs=0#qt-food_tabs

and

example.com/food-types?qt-food_tabs=1#qt-food_tabs

Problems/questions:

A. Neither tab actually contains the keyword meat or vegetables since they do not show the url of the page that is allocated to each tab respectively. The quicktabs urls are now actually quite meaningless.

B. Can I set up an alias for example.com/food-types?qt-food_tabs=0#qt-food_tabs so that it reads example.com/food-types/meat?

C. In another issue about canonical urls, I see people DISALLOWING the quicktab urls in Robots to avoid duplicate content. If I do that, they wont get indexed and the only pages indexed will be the original pages, which are not displayed correctly per the Panel Page that contains the tab set. In fact, if the original pages are indexed and a visitors clicks that search result, they will see a page with no tabs at all.

D. So, how do I get the original page, such as example.com/vegetables to display the page example.com/food-types?qt-food_tabs=1#qt-food_tabs (and consequently the tab set)? The only thing i can think of is a redirect to the quicktabs url... but this is the exact url that users recommend we disallow in Robots. And this is the url which looks so ugly for users and contain no keywords.

SOLUTION 1: It seems to me that I need to disallow the urls example.com/meat and example.com/vegetables in Robots and alias the long quicktab urls? This is every manual workaround though? I need to do that for every original node that will later be displayed in a tab?

SOLUTION 2: Perhaps I should leave the original urls to be indexed and then set up a redirect to the long quicktab urls and then alias those long quicktab urls into something more user friendly?

This seems so very complicated.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

damban’s picture

Turns out I can't alias the long quicktabs urls at all. "...either invalid or you do not have access to it."

The only option seems to be Solution 2, with no aliasing of the long url. And that means duplicate content.

damban’s picture

Title: tab urls: I need a little help. » tab urls and SEO problems: I need a little help

ok so I know my OP is rather long, but I really need some help. Quicktabs is making the way users and spiders interact with my site very confusing for me. And it should be simple.

I did this with a 301 redirect:

SOLUTION 2: Perhaps I should leave the original urls to be indexed and then set up a redirect to the long quicktab urls and then alias those long quicktab urls into something more user friendly?

Usng my above example:

example.com/vegetables 301 redirects to example.com/food-types?qt-food_tabs=1#qt-food_tabs. The reason this is mandatory is on my site is because example.com/vegetables must always be presented to google and users in a tab, not as an 'isolated' node with url /vegetables.

I have a brand new site and google has indexed every page EXCEPT the tabbed pages that have a 301 redirect to them as explained. Therefore all my content is ignored as all my content is on tab pages.

This is terrible for SEO.

Please help.

pipicom’s picture

Indeed there's a serious SEO issue. It's weird that this hasn't been addressed already.

crimsondryad’s picture

This issue seems like it is related to this one: http://drupal.org/node/1673532 Because if quicktab paths are cleaned up for SEO, it seems like it would be a fairly simple jump to also making them clean.

I'm also going to cross-post this in the other issue so the efforts are concentrated.

crimsondryad’s picture

Category: support » feature

Kicking this over to a feature request as so far as I can see, there isn't an existing way in the module to have it output clean urls.

We need this as well.

Rhino’s picture

I have been using Quicktabs for over a year on users pages to create blocks of their content. Search engines now carry several links to each node I post, with ?quicktab at the end of the URL, causing my site to be punished for duplicate content. I'm turning quicktabs off until this issue is resolved.

leanne9’s picture

I would also like to see this feature in the next release. Definitely need an easy way in the UI to be able to give the tab a "friendly" term to append to the URL.

For what it's worth, I did find this in the documentation... Add Direct Link to Quick Tab Using Javascript, which doesn't really answer our question but someone might be able to get something out of it...

rattusrattus’s picture

I'm interested in working on this issue. Has anyone even the beginnings of a patch?

damban’s picture

Almost a year later and I still can not solve this satisfactorily.

Using a 301 redirect appears mandatory, and in doing so, any node displayed on a tab is not indexed by Google.

kingfisher64’s picture

Title: tab urls and SEO problems: I need a little help » Clean quicktab urls required for SEO
Version: 7.x-3.4 » 7.x-3.6
Priority: Normal » Major

This is so essential to seo. There can be no underscores in url's either as bots read that as one continuous string.

Edit: There is a potential solution but it's not for quicktabs. https://drupal.org/project/field_jquery_tabs does pass the clean url test I ran with this module using http://www.seositecheckup.com.

kingfisher64’s picture

I've given up using quicktabs until this is fixed. Is there any chance any competent programmer can fix this as the mod is in essence unusable (from a seo standpoint) until it's fixed.

Many thanks.

HansKuiters’s picture

@ #10: I have just tried Field_jquery_tabs. The tabs have this kind of url: /node/6#tabs-0-45741100-1393615741-2
It might be right on clean url but surely not on SEO.

I too would like better seo support for tabs.

HansKuiters’s picture

This module may be is useful: Node Tab. Use it with panels or with this patch: #2005384: Make it usable without Panels

kingfisher64’s picture

Has any progress been made on this?

As far as I'm aware this is the only views based tabs module but as far as I'm aware it's still very seo unfriendly.

trailscout’s picture

Has anyone heard and answer to this. We have most of our content in Quicktabs.

damban’s picture

I'm ditching QT in my next site update. Bad for SEO and complicated for highly adaptable mobile sites.

kingfisher64’s picture

I found a very useful replacement for tabs being inserting into the body. https://www.drupal.org/project/jquery_ui_filter. Tabs, Dialog, Accordon.

Combine that with http://jqueryui.com/themeroller/

For a field based solution https://drupal.org/project/field_jquery_tabs

Thanks Capono #13, node tab without panels looks interesting as well.

RdeBoer’s picture

I too love Quicktabs, but am unhappy with the SEO-unfriendly hyperlinks generated for the quicktabs.

Ideally:
1) The tab hyperlinks should not contain underscores
2) The tab hyperlinks should retain the tab names

But we have bigger issues...

AJAX mode ON -- content loaded upon clicking the tab
To avoid "SEO "duplicate content penalties" (in AJAX mode), if the tabs refer to nodes, then the tab hyperlinks should be identical to the (canonical) node URL aliases, or...? However, not sure how this will work out programmatically.

AJAX mode OFF -- content for all tabs is loaded on the page, not visible to human, but visible to crawler!
Does that mean that in this mode we're stuffed when it comes to duplicate content penalties?

Unless we have
Disallow: /*?qt-*
in our robots.txt to not index Quicktab links of the form http://example.com/something?qt-catalog_tabs=1#qt-catalog_tabs

Canonical URL in <head> is part of core in D7.

Looks this may be the way to go? https://developers.google.com/webmasters/ajax-crawling/docs/getting-started

Related thread #354867: SEO: Add Canonical Tags to Quicktab Pages

PS: Thanks kingfisher64 for mentioning http://seositecheckup.com -- what a great tool !

RdeBoer’s picture

So digging a little deeper.
I'm finding that the query string (the bit after the ?) and the fragment (the bit after the #) aren't necessary at all for correct operation (provided javascript is enabled in the browser, but who hasn't these days?).
The Quicktabs module code registers what list element is clicked and then maps this to the right content.

So with the tiny patch below, I've suppressed query string and fragment. To the bots/crawlers the Quicktab links are simply links to the page you're on. So no need for "no follows" on links or "Disallows" in the robots.txt anymore.

The patch seems to work fine for both the "Yes: Load only the first tab on page view" and "No: Load all tabs on page view." options.

Don't have an official patch as I'm making some other changes too, but here's what you do: simply insert 2 pairs of double slashes:

File .../sites/all/modules/quicktabs/plugins/QuickQuicktabs.inc, function construct_link_options($tabkey):

To remove the query string:
line #149, insert // at the start of the line: //$query["qt-{$qt_name}"] = $tabkey;

To remove the fragment:
line #156, insert // at the start of the line //'fragment' => 'qt-' . $qt_name,

Now all your Quicktabs will still work, but display the current page in their hyperlink, which should be SEO-friendly.

anairamzap’s picture

Version: 7.x-3.6 » 7.x-3.x-dev
Component: Miscellaneous » Code
Status: Active » Needs work
FileSize
1022 bytes

Hi, I have created a patch including the changes @RdeBoer mentions in above comment.
Patch was created against 7.x-3.x-dev branch.

I haven't modified anything else, just applied those two commented out lines, in case someone else wants to apply it. With this patch quicktabs urls won't have a hash or fragment.

I tested it only with the views integrations, would be good to test it on nodes or blocks.

Cheers,
m

eFeS’s picture

Subscribing.

The supplied "patch" not working, or to be more precise, it does not address the situation.
SEO friendly URLs needs to be in a format something like this:
'qtname/tabtitle', where qtname would be the name of the quicktab instance (this would be the "category" of the given product or food) and tabtitle would be the sub-category, shown as made by the user on the quicktabs settings page.

anairamzap’s picture

Hey @eFeS, I agree that the patch it doesn't address the SEO friendly url thingy. As outlined in my above comment it just removes the hashed URLs.
Would be lovely to find time to actually "fix" the problem, but the provided patch is a workaround until that day arrives :)

Cheers!

m

kamy@cool’s picture

I tried this and it worked

File .../sites/all/modules/quicktabs/plugins/QuickQuicktabs.inc, function construct_link_options($tabkey):

To remove the query string:
line #149, insert // at the start of the line: //$query["qt-{$qt_name}"] = $tabkey;

To remove the fragment:
line #156, delete 'fragment' => 'qt-' . $qt_name, and replace it with 'fragment' => $suffix,

samaphp’s picture

Thank you @kamy@cool please submit that as a patch so everyone can review your solution.