2

I have a site with products, which can be searched using a convoluted search form, with quite a few input fields. I send the data by POST, to the same page, so I can list all products in the URL: /products/ and the search stays in the same page /products/. For SEO purposes, indexing and Google Analytics review, should I use GET instead, so I would have a quite lengthy URL :

/products/?category=book&search_title=Andromeda%20Strain&Author=Mich%20Chric%&order_by=price&sort=desc

Also, it is obvious that the URL above could surpass the magic 256 characters, even more with Unicode strings.

My SEO consultant says that I could put a code inside the form and still retain the POST method, but I have been reading a little and I am very confused.

  • 2
    The reason for using GET is a usability feature, not SEO. It simply allows users to bookmark and share results. – MrWhite Nov 6 '15 at 10:38
  • Your search result items should be accessible by filtering through your categories manually. So I should be able to visit your site's homepage and follow a click pattern such as Products->Books->Biography->Click on book I am interested->Bring me to book-details page. If your Biography section contains books which would not show up in a search or is missing books which would otherwise show up in a search then that needs to be fixed. Hierarchy is key for SEO – MonkeyZeus Nov 6 '15 at 17:32
3

While all internal search result urls contain no unique information, they are for SEO purposes irrelevant and harmful.

Making internal search with GET you produce search result urls, which you later should exclude from indexing (and from crawling, because of overspending of crawl budget for useless urls).

But using POST on internal search you a single search url like, example.com/search.html and don't get any of SEO-related troubles with gazillions of search result pages.

PS: Actually it isn't a big deal to exclude search result urls from indexing and crawling - you will need just a few hints:

  • create additional search console property for the /search/?q=term directory
  • apply the slowest possible crawl intensity for it
  • place in the root directory robots.txt with Disallow:/q=*
  • place in the /search/ directory a htaccess file containing Header set X-Robots-Tag "noindex, nofollow"

But using POST you don't need this at all.

Conclusion: Use GET, only if you can't use POST.

PPS: in the meanwhile i think, that after weighed the advantages of POST and GET i would for now prefer GET. In many undergone cases i realized, how valuable, specially for e-businesses, is the existence of unique URLs of search result pages, which can be bookmarked, shared and are gone with the POST approach. And all negative SEO issues of the GET approach can be (not easily, but pretty clearly) divided by zero

  • Did you mean: "Use GET, only if you can't use it, then use POST"? – user11153 Nov 6 '15 at 17:13
  • @user11153 I mean, POST is better. – Evgeniy Nov 6 '15 at 17:24
  • POST prevents bookmarking and messes with the back button in many browsers. So POST is worse for users and equal for SEO, making it the clearly inferior choice. – CodesInChaos Nov 6 '15 at 19:19
  • @CodesInChaos it isn't necessary to make bookmarks of search results, specially for SEO purposes is it not good - on this way you produce urls without SEO value. If talking about user experience, what is a different thing as a SEO, so there is a post-redirect-get pattern, which is indeed good, but only theoretically. In the real web there are no good working implementations of post-redirect-get, specially in ecommerce, where it would have the most sense. – Evgeniy Nov 9 '15 at 8:04
  • @Evgeniy As I said, for SEO it's irrelevant (you can easily exclude search results from being indexed) and for the user it's annoying. I for one occasionally bookmark searches and frequently use the back button to go back to a search. So the only reason for using POST, I can think of, is because the query is too big (e.g. because it contains an image upload). – CodesInChaos Nov 9 '15 at 8:08
3

Internal search results shouldn't actually be indexed. Google's Webmaster Guidelines state:

Use robots.txt to prevent crawling of search results pages or other auto-generated pages that don't add much value for users coming from search engines.

Matt Cutts weighed in when this was previously discussed on Google’s webmaster help group.

I quite like the point made in this Webmaster World thread:

The issue isn't the "friendliness" of the URL, the issue is the content on those search results pages. Many a site has tanked their traffic by exposing a large number of site search results to Google. Duplicate content galore, including a lot of "no results" pages, can swamp your good content.

So try and stick to easily-crawled category & product pages. Leave out internal searches from indexing entirely.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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