Developer forum

Forum » Swift » SEO in product lists

SEO in product lists

Anders Ebdrup
Anders Ebdrup
Reply

Hello,

 

Has anyone tested that the search engines are able to index other than the first page on a product list like this: http://swiftdemo.dynamicweb-cms.com/bikes as you have to submit a form to navigate to page 2?

 

Best regards, Anders


Replies

 
Anders Ebdrup
Anders Ebdrup
Reply

Dear all,

 

Any thoughts on this one?

 

Best regards,

Anders

 
Anders Ebdrup
Anders Ebdrup
Reply

bump...

 
Nicolai Pedersen
Reply

Hi Anders

We have not tested it specifically. Search engines should be able to navigate the load more button like they can with headless solutions. Also there is the sitemap.xml that will expose the products them selves. 

I can see it would make sense to change the implementation of the button so it is a link to the full page - and then we can hi-jack that in js to load async as it does now.

Are you looking for a page 2-n kind of approach or similar? Have you any specific issues related to this way of implementing - or alternatives that would help on its discoverability?

BR Nicolai

 
Anders Ebdrup
Anders Ebdrup
Reply

Dear Nicolai,

 

For what we have seen in Rapido, we experience that Google can only index the first page of the product lists, and even though products are in the sitemap, then we see that these products are not indexed as Google cannot see then referenced on the website.

We have testet Swift with Screaming Frog and Screaming Frog are not able to index page 2... So please try to also make it work with a normal link.

This is a converted load more button from one of our Rapido-solutions which now are able to be indexed by Google:

<a href="/da-dk/produkter?PageNum=2" id="LoadMoreButton" class="btn btn--primary btn--full  dw-mod" data-current="1" data-page-size="20" data-total="180" data-container="ProductsContainer" data-feed-url="/Default.aspx?ID=2525&amp;feed=true&amp;DoNotShowVariantsAsSingleProducts=True&amp;groupid=&amp;SortBy=&amp;SortOrder=&amp;redirect=false" onclick="LoadMore.Next(event, this)">Load more</a>

 

Best regards,

Anders

 
Nicolai Pedersen
Reply

Hi Anders

Ok, we will have a look at that.

I will talk to QA to add SEO test, i.e. Screaming Frog, as part of the testing to improve the SEO capabilties of Swift.

Thank you for sharing!

BR Nicolai

 
Anders Ebdrup
Anders Ebdrup
Reply

Dear Nicolai,

 

I am a bit curious here as this is an important feature, so has this reached the Swift backlog?

 

Best regards, Anders

 
Karsten Thuen Dynamicweb Employee
Karsten Thuen
Reply

Hi Anders 

Thank you for bringing this up. I have created and solved this on bug #7695 - I just need QA to confirm that it performs as it should, and then it will be in the next hotfix. The new code for the Load more button looks like this:

@{ 
string nextPageLink = "/Default.aspx?ID=" + Pageview.Page.ID + "&PageSize=" + pageSize + "&SortBy=" + sortBySelection;
foreach (FacetGroupViewModel facetGroup in productList.FacetGroups)
 {
foreach (FacetViewModel facetItem in facetGroup.Facets)
{
foreach (FacetOptionViewModel facetOption in facetItem.Options)
{
if (facetOption.Selected)
{
nextPageLink += "&" + facetItem.QueryParameter + "=[" + facetOption.Value + "]";
}
}
}
}
nextPageLink += productList?.Group?.Id != null ? "&GroupID=" + productList.Group.Id : "";
nextPageLink += !string.IsNullOrEmpty(searchQuery) ? "&q=" + searchQuery : "";
}
 
<a href="@nextPageLink" class="btn btn-primary" type="button" onclick="swift.ProductList.Update(event)" id="LoadMoreButton_@Model.ID">@Translate("Load more products")</a>


And there is a small update needed in "_productlist.js", inside the Update method:
 
if (e.currentTarget != undefined) {
e.preventDefault(); 
}


I hope this suits the needs.
 

Best regards
Karsten Thuen
 
Anders Ebdrup
Anders Ebdrup
Reply

Dear Karsten,

 

That looks awesome! I am looking very much forward to try it out.

 

Best regards, Anders

 

You must be logged in to post in the forum