5

So here is a requirement:

  1. Client wants a page template where there is two level menu on left side of the page.
  2. That menu can link to any page, post, category or a section within same page.
  3. The menu which links to a section within same page should be slash linked and not # linked for the purpose of SEO.

And this is how we have implemented it:

  1. Based on one requirement I have developed a custom page template with sidebar on left.
  2. Using WordPress menu I registered multiple menus with menu items as per the requirement.
  3. I developed a custom widget which provides an option to select a menu to be assigned to that page. So far all good....

And here comes the question:

  1. How do I link the section within same page with / and not #?
  2. For example if the page is http://example.com/event-page/ and there is a section within page content say "Get Passes" and also a menu corresponding to it on left. Now what client wants is that the menu shall not be linked like http://example.com/event-page/#get-passes but rather http://example.com/event-page/get-passes/
  3. Needless to say that it should just scroll down to that particular section without reloading the page.
5
  • 4
    lol, is there an actual justification (ROI) for making all the effort that will be required to make it work? I mean actual article by google or some other authority? (need to tag this question under "crazy clients") Jan 13, 2017 at 14:22
  • Agree with Mark. You are going to end up in a combination of JS and .htaccess rewrites to do something that really doesn't need to be done and will be a maintenance nightmare. Page SEO is more than just URLs...
    – C C
    Jan 13, 2017 at 14:24
  • @MarkKaplun - Yeah its kind of funny and challenging. I do agree that it may not be worth putting so much of efforts. I searched if there is any article from google that # links are bad for SEO and you must go for / links or something like that. But did not find something like that, so thought to ask here :) Jan 13, 2017 at 14:33
  • 1
    there is just too many details to take care of - JS, duplicate content, browser history maybe, page caching if you use.... too many thing that might go wrong. Realy needs some huge proven benefit to even start coding such thing Jan 13, 2017 at 14:47
  • This works? /index.php#your-anchor
    – Nate
    Apr 19, 2017 at 14:41

1 Answer 1

1

You can use history.pushState to change the browser URL without reloading a page, and jQuery's scrollTop method to scroll to the top of a specific element (and there are VanillaJS equivalents too). This will mimic the functionality of # anchors.

However, like what Mark said, what your client wants is really weird. It is hard to maintain and keep working, and it might even hurt your client. Here's a case study that you might want to show him/her.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.