Parameters, AJAX and SEO

bernard

BuSo Pro
Joined
Dec 31, 2016
Messages
2,601
Likes
2,305
Degree
6
I am in the process of implementing FacetWP and it creates urls that look like: site.com/?page2&search=widget&filter=subcat

It also uses AJAX to populate and repopulate divs with content.

I am not sure how this will work with SEO in 2018?

I found a blogpost from Google about how they're going to try to emulate a browser and read the AJAX, which I guess is ok, but would I want Google to index 1000 hidden products into a page that isn't a product category page?
More important, to avoid dupe content and the like with these paramters, it used to be a thing in my agency days, is it still a problem?
 
As long as there's a self referencing canonical tag on each page, URLs with parameters shouldn't be indexed. Big G should only index your main page.
 
Google does a good job of understanding ajax. You can do a fetch and render in Google Search Console or look at the cached pages for FacetWP's demo.

Do a search for
Code:
site:https://facetwp.com/demo/cars/
you can see that each parameter indexes by default. Canonical tag could work however, sometimes Google disregards them, I've seen this happen with facets before.

Canonical is a suggestion, where NOINDEX is a directive. If there is a way to apply NOINDEX on facets, google would crawl it but not index it. Where robots.txt google could index the link but will not crawl the content.

Take the FacetWP cars demo as an example. You could disallow certain parameters:
Disallow: /*_driven_wheels
Disallow: /*_base_msrp

Or block all of them:
Disallow: /cars/?_
 
For the long URLs, you could implement some URL rewriting in .htaccess or Nginx equivalent. Depending on how similar the URLs are it could simply be a matter of using some nifty Regex. Then again, you could set them to show a noindex meta tag with some PHP conditionals, and you should have a canonical back to the main page anyways.

For whether or not Google is crawling through and clicking the AJAX, it seems like that's the new solution, but they aren't including it all in one URL. You can test this with Search Console by doing a Fetch & Render and see what they spit back out. If you wanted to play it extra safe, you could nofollow any links leading to the AJAX loading. Not sure how that would work with a dropdown, which they won't interact with anyways I doubt.

Here's the most up-to-date statement from Google about AJAX Rendering, where it seems they're suggesting that they'll crawl through it and index the pages as individuals (ryandiscord beat me to it): https://webmasters.googleblog.com/2017/12/rendering-ajax-crawling-pages.html
 
Google does a good job of understanding ajax. You can do a fetch and render in Google Search Console or look at the cached pages for FacetWP's demo.

Do a search for
Code:
site:https://facetwp.com/demo/cars/
you can see that each parameter indexes by default. Canonical tag could work however, sometimes Google disregards them, I've seen this happen with facets before.

Canonical is a suggestion, where NOINDEX is a directive. If there is a way to apply NOINDEX on facets, google would crawl it but not index it. Where robots.txt google could index the link but will not crawl the content.

Take the FacetWP cars demo as an example. You could disallow certain parameters:
Disallow: /*_driven_wheels
Disallow: /*_base_msrp

Or block all of them:
Disallow: /cars/?_

Wow, that's shitty code from FacetWP, almost criminal to ship a product that will generate endless duplicate content.

I'm trying the Disallow method for now. I am testing on one page only to begin with.
 
Last edited:
Back