A | B | C | D | E | F | G | H | I | |
---|---|---|---|---|---|---|---|---|---|
1 | |||||||||
2 | π Ecommerce PLP Optimisation Checklist by Daniel K Cheung | ||||||||
3 | |||||||||
4 | ππΌ Follow me on LinkedIn for more awesome content like this | select a best answerππ½ | π‘ instead of pass/fail ππ½ | π‘ based on "best practices" ππ½ | π¨ "it depends" π€·π»ββοΈ | ||||
5 | |||||||||
6 | Thing to check | Tool (if required) | Response | Prompt | Daniel K Cheung's commentary/opinion | Preferred response | |||
7 | Preliminary questions | ||||||||
8 | 1 | Does the PLP's content match the SERP's 'search intent' for its intended head term keyword(s) | β | not started | If Google/Bing is showing informational content or mostly video content for the keyword, this is a strong indication that the search intent of your keyword is mismatched. If you see no commercial/money pages on the SERP, you may need to adjust your strategy. In most cases, you will see split/mixed intent displayed in the organic SERPs and this means you have a good chance of ranking (eventually). | yes | |||
9 | 2 | Does the PLP currently rank for its intended head term keyword(s)? | keyword tracker | β | not started | If it is already ranking, does the SERP show evidence that the PLP can rank even better? If yes, what other levers can you pull to influence this? If not, what other channels can you bring awareness of your product category to potential customers? | yes | ||
10 | 3 | Are there competing PLPs that rank for the same intended head term keyword(s)? | Search Console | β | not started | It is absolutely fine for more than one page to associated with the same keyword (eg, PLP + informational supporting content both targeting same head term keyword). This is NOT keyword cannibalization. However, what you want to look out for is "intent cannibalization". That is, having more than one page trying to achieve the same thing - especially when a sub-category listing page is competing with a PLP. | no | ||
11 | 4 | Is the category name obvious or logical to website visitors? | β | not started | Some brands and marketing teams get a bit too excited and start naming common categories with their own naming conventions. This can be problematic when the intended keyword(s) of the category page are excluded from the page title, filters and body content. | yes | |||
12 | 5 | Is the product category a brand new line to the business? | β | not started | There is no correct answer to this question. Rather, if the product category is a completely new product line to the website, search engines may not rank the PLP as quickly and as well as existing PLPs. This is because the website lacks topical relevance for the new product category. Eg, Your ecommerce site may rank very well for fishing-related PLPs. You decide to add a camping category to expand the business. While camping is adjacent to fishing, from a search engine's perspective, these are very different things and you will need to establish trust in this new product vertical. | - | |||
13 | 6 | Does the PLP have/require pagination? | β | not started | Inefficient pagination can introduce new crawling and indexing blockers. Meanwhile, not having pagination can overwhelm someone browsing your PLP. This is why both 'yes' and 'no' responses result in a "requires further investigation" prompt. | yes | |||
14 | 7 | Is there a faceted navigation crawling and indexing strategy in place? | β | not started | Once you introduce the ability for potential customers to apply one or more variant filters, you introduce a new level of crawling and indexing complexity. There are multiple ways to deal with faceted navigation - especially for ecommerce sites with 1M+ products. Hopefully there is a faceted navigation crawling and indexing strategy in place. Your next step is to verify if it is actually being implemented correctly! Recommended reading - 'Pagination best practices for ecommerce' and 'Faceted navigation: Definition, examples and SEO best practices'. | yes | |||
15 | 8 | Are there rules in the robots.txt that will impact the effectiveness of the PLP? | Robots.txt testing tool | β | not started | Make sure you review every Disallow entry in the robots.txt file. Learn to audit a robots.txt file in this blog post. | no | ||
16 | 9 | Are there SERP ads displayed for the head term keyword(s)? | β | not started | If there are ads, what type of ads are they and where are they placed? And is the brand bidding on its own brand terms? If there are no ads, why not? This seems odd for a commercial intent word .. | yes | |||
17 | 10 | Do you know who to contact to make changes to final URLs re: paid marketing activity? | β | not started | It always helps to have an open line of communication with paid marketing - especially if they're running campaigns to URL paths and strings that may change as a result of this checklist. | yes | |||
18 | Crawling | Can search engines effectively discover PDPs and sub-category pages? | ||||||||
19 | 1 | Does the homepage link to the PLP in the body content? | β | not started | Homepage links tell search engines that target URL is probably relevant and important to visitors. | yes | |||
20 | 2 | Does the primary navigation link to the PLP? | β | not started | Primary navigation links tell search engines that target URL is probably relevant and important to visitors. | yes | |||
21 | 3 | Do product detail pages link back to the PLP? | β | not started | Just as it is important for PLPs to link to PDPs, PDPs should link back to the PLP in the form of breadcrumbs or other means. | yes | |||
22 | 4 | Is the PLP part of the website's sitemap? | Search Console | β | not started | Provided the sitemap is clean (ie, only indexable URLs), this tells search engines the included URLs are important to the website and should be considered for indexing. Learn to audit a XML sitemap in this blog post. | yes | ||
23 | 5 | Are there spaces (%20) in the category slug? | β | not started | Changing URL slugs is often NOT a good idea and "%20" has zero impact on SEO (source). The purpose of this criteria is indicate whether or not you need to fix how slugs are generated from your inventory backend (ie, enable a logic so that spaces are converted into dashes). | no | |||
24 | 6 | Are there breadcrumbs on the PLP? | β | not started | Breadcrumbs are useful (source). | yes | |||
25 | 7 | Do links/buttons on the page use an <a> HTML element with an href attribute? | β | not started | Google clearly states onclick links are NOT crawlable (source). Similarly, Google cannot reliably extract URLs from <a> elements that do not have an href attribute or other tags that perform as links because of script events. | yes | |||
26 | 8 | Is there an interstitial (pop-up) rule/logic in place? (eg, timed pop-up, non-intrusive, exit intent) | β | not started | Generally speaking, interstitials are fine. However, Google does not like interstitials that are spammy, difficult to dismiss, or make your user's experience poor - and having these INTRUSIVE pop-ups or modals can impact the PLP's ranking (source). | yes | |||
27 | 9 | Do product filters append a "#" or "?" to the URL string? | β | not started | Google ignores everything in the URL after # - which is fine when used to ensure filters are ignored by search engines. If you see #!, AJAX content is at play and this means that everything after the hash is crawlable. | - | |||
28 | 10 | Do faceted links have nofollow tag? | β | not started | - | ||||
29 | Rendering | Can search engines efficiently "see" the content on the page? | ||||||||
30 | 1 | Does the on-page content require JavaScript rendering? | Wappalyzer | β | not started | While Google can render content using JavaScript, it is less efficient than serving the search engine with rendered HTML. You can verify Google's ability to render the content in mobile-friendly test or running a live test within Google Search Console. If your PLP is failing to index, consider prioritising this. Recommended reading: 'Understand the JavaScript SEO basics' | no | ||
31 | 2 | With JS disabled in Chrome, does any content show up? | Chrome Developer Tools | β | not started | If all you see is a blank white screen, chances are Googlebot sees the same thing when it lands on the page. | yes | ||
32 | 3 | Does important content on the PLP get rendered? | Fetch and Render simulator | β | not started | Google has some limitations with some APIs and JS features. With so many new JS frameworks available, make sure your code is compatible with Google. | yes | ||
33 | 4 | Does the original source match the rendered HTML? | View Rendered Source | β | not started | If the rendered HTML contains major differences to the source HTML, this may cause indexing issues (even though the root cause is a rendering one). Recommended watching: 'Source HTML vs Rendered HTML'. | yes | ||
34 | 5 | Does the URL pass Google's mobile friendly test? | Mobile-Friendly Test | β | not started | Google's Mobile-Friendly Test now shows rendered HTML for JavaScript webpages (source). In particular, the thing you're looking for are unloadable resources because these are the things that are preventing Google from seeing the entire page which means it cannot trust it completely and this affects indexing and ranking of the PLP. | yes | ||
35 | 6 | Does robots.txt block JS or CSS files? | Screaming Frog | β | not started | Recommended reading: 'A beginner's guide to auditing robots.txt file' | no | ||
36 | Indexing | Have you given good reasons search engines should show this page to its users? | ||||||||
37 | 1 | Is the webpage a static URL or is it parameterized? | β | not started | Static URLs are preferred because this generally means you have more control of page meta tags with your CMS. FYI, Google can and will index URLs with parameters (source). | static | |||
38 | 2 | Are there multiple versions of the same URL indexed? | Search Console | β | not started | Multiple versions of the same URL confuse search engines. It is best to serve a single version, canonicalize other variants, and 301 redirect them to the canonical. Fixing this will contribute to improving the PLP's ranking. | no | ||
39 | 3 | Do any 3XX redirect chains occur on the page? | httpstatus.io | β | not started | There may be previous 301 or 302 redirections in place causing unnecessary redirect hops. Sometimes this can be done via meta refresh because it was not possible to implement a redirect at the time. Eg, I worked on a site where a meta refresh would append "&pl=1" to the end of a PLP URL. At the time, we did not have functionality to roll out canonical tags. This was creating new indexable variants of the same content which impacted our ability to have our desired URLs indexed. | no | ||
40 | 4 | Do paginated series have different title tags? | β | not started | If your pagination strategy is to index all paginated series, having unique title tags help search engines disambiguate between the first page and the paginated series. Recommended reading - 'Pagination best practices for ecommerce'. | yes | |||
41 | 5 | Is faceted navigation executed with AJAX? | β | not started | Whether AJAX or not - any implementation of faceted navigation warrants further analysis to ensure it provides an optimal experience for both humans and search engines. The main benefit of using AJAX for faceted navigation (product filters) is that a new URL is not generated when a new filter is applied (including order sorting). What this means is that it is client-side with JavaScript - which has SEO downside if not managed properly. | no | |||
42 | 6 | Does applying product filters create a new indexable URL? | β | not started | Product filters can create a lot of new URLs - especially if they have not been canonicalized or if no disallow directives are communicated in the robots.txt file. Faceted navigation usually creates query strings, not new URL paths. | no | |||
43 | 7 | Do filters create paths or query strings? | β | not started | There is a place for paths and query strings. The trick is knowing what you are trying to achieve, which URLs you want crawled and indexed, and which ones can be canonicalized, and blocked using robots.txt. Recommended reading - 'Taming parameters'. | - | |||
44 | 8 | Does the PLP have infinite scrolling? | β | not started | Google may not be able to render all content on the page depending on how infinite scrolling is triggered and how long the page is (source). | no | |||
45 | 9 | Does the PLP have a canonical tag? | SEO Pro Extension | β | not started | Canonical tags can be used as a hint by search engines to index the correct URL. They are useful hints you should use to indicate which version of a URL you want shown to searchers on the SERPs. | yes | ||
46 | 10 | Is the canonical self-referencing or does it point to another URL? | SEO Pro Extension | β | not started | It is rare for a PLP to be canonicalized to another URL and a self-referencing canonical is normal to ensure any variants created by other marketing channels pass the right signals to the OG version (ie, the canonical). | self-referencing | ||
47 | 11 | Are paginated series indexable? | SEO Pro Extension | β | not started | If your pagination strategy is to index all paginated series, each page should be indexable. Recommended reading: 'Pagination best practices for ecommerce'. | - | ||
48 | 12 | Are paginated series canonicalised to the first page in the series or self-referencing? | β | not started | If your pagination strategy is to index only the first page, all subsequent paginated pages in the series should have a canonical pointed to the URL of the first page. Recommended reading - 'Pagination best practices for ecommerce'. | self-referencing | |||
49 | 13 | Is the FAQ accordion collapsed by default? | β | not started | While Google have said they can crawl all content in collapsed accordions, if your PLP is not indexed for keywords communicated in collapsed accordions, it may be worth a test to see if the situation changes if the accordions are open by default so that all text is visible to the crawler (source). | no | |||
50 | 14 | Is the primary keyword an associated query for the URL according to GSC? | Search Console | β | not started | If your primary keyword is not associated as a query on the PLP URL, you probably have a range of fundamental on-page, technical and off-page SEO to address - fix those first! | yes | ||
51 | 15 | Is the URL indexable? | SEO Pro Extension | β | not started | 99% of the time, you will want the product category page to be indexable. | yes | ||
52 | 16 | Is the URL indexed? | Search Console | β | not started | If the URL is not indexed, you will need to find the most likely reason(s) why Google has decided against indexing the PLP. | yes | ||
53 | 17 | Does the content appear AI generated? | OpenAI classifer | β | not started | Look, there's nothing inherently wrong with AI generated or AI-assisted content. The problem is that the information may be factually incorrect, may be plagiarized, and lacks depth. By all means, have AI generated text as a part of the workflow but ensure that a human has reviewed and edited it for accuracy and relevance for the intended audience. Recommend reading: 'Google Search's guidance about AI-generated content'. | no | ||
54 | 18 | Does the content appear written only for SEO purposes? | β | not started | You do not need to have extensive "SEO content" on PLPs (source). This is a common mistake I see on many websites - especially when the content adds little value to the potential customer. | no | |||
55 | Ranking | Have you given good reasons why this page deserves to be one of the top search results? | ||||||||
56 | 1 | What anchor text does the hompage link to the PLP? | SEO Pro Extension | β | not started | Relevant and descriptive anchor text help rankings (source). | descriptive | ||
57 | 2 | What anchor text does the primary navigation link to the PLP? | β | not started | Relevant and descriptive anchor text help rankings (source). | descriptive | |||
58 | 3 | Is there supporting content on the website related to the product category? | β | not started | PLPs are commercial pages and unless you work for a very established brand, ranking for commercial intent head term keywords is very difficult. One way to combat this difficulty is to publish helpful (top-of-the-funnel, middle-of-the-funnel, and bottom-of-the-funnel) across the website and on the PLP itself. | yes | |||
59 | 4 | Is there a <h1> tag? | SEO Pro Extension | β | not started | A keyword-optimised <h1> is a confirmed ranking factor (source). | yes | ||
60 | 5 | Is there more than one <h1> tag? | SEO Pro Extension | β | not started | A single keyword-optimised <h1> is a confirmed ranking factor (source). | no | ||
61 | 6 | Does the primary keyword occur in the <h1> tag? | SEO Pro Extension | β | not started | A keyword-optimised <h1> is a confirmed ranking factor (source). | yes | ||
62 | 7 | Are there internal/external links pointing to non-canonical versions of the PLP? | Ahrefs/Semrush | β | not started | Both internal links and inbound links from third-party webpages help with ranking. | yes | ||
63 | 8 | Do product tiles/cards have a "view product" CTA or is the entire card a clickable <a> link? | β | not started | Relevant and descriptive anchor text help rankings (source). | card is <a> href | |||
64 | 9 | Is there a FAQ accordion or a FAQ section in the body content? | β | not started | Having useful information on a PLP will give Google reason to index and rank it. One of the easiest ways to do this is with 'Frequently Asked Questions' either as an accordion element or a section of body content dedicated to ToFu, MoFu, and BoFu questions and answers. | yes | |||
65 | 10 | Does the content within the FAQ accordion(s) offer unique and helpful content? | β | not started | Many ecommerce sites get their product descriptions from manufacturers. This information is rarely unique and helpful. Instead, consider identifying what the most common conversion blockers are for the product category and answer these on the page. This type of content will give visitors the impression that you understand what they're trying to solve. | yes | |||
66 | 11 | Does the supporting content link to the PLP? | β | not started | Internal links help a search engines the relationship between two URLs. | yes | |||
67 | 12 | Does this supporting content exist on the PLP? | β | not started | You do not need to have extensive "SEO content" on PLPs - this is a common mistake I see on many websites. Instead, consider having a blog set up on the website that is dedicated at capturing search intent across the entire buyer's journey (ie, from discovery through to after-sale support). Then link to the PLP and relevant product pages (PDP) from this supporting content to help both search engines and users. | yes | |||
68 | 13 | Are there adequate questions and answers for the product category? | β | not started | An effective way to improve the ranking of a PDP is with on-page content. People landing on category pages often don't know what they're looking for. They require your assistance and guidance through product filters. And having useful and relevant questions and answers will lead them towards a deeper page and one step closer towards a successsful checkout. | yes | |||
69 | 14 | Are the questions ToFu, MoFu, or BoFu? | β | not started | Most ecommerce websites will target ToFu content because it is easy to research and write. MoFu + BoFu content is much harder as it requires the writer to research actual pain points a person has. MoFu/BoFu content will improve PLP's usefulness, and thus, ranking in the SERPs for both its head term keyword(s) and long tail question-based keywords. | ToFu + MoFu + BoFu | |||
70 | 15 | Is there adequate on-page content describing what the PLP is about? | β | not started | Having useful information on a PLP will give Google reason to index and rank it. | yes | |||
71 | 16 | Can any of published text have an author, editor, contributor or reviewer assigned to it? | β | not started | This will help immensely with EEAT (see semantic SEO section of the checklist) ππ½ | yes | |||
72 | Semantic SEO | Have you communicated all the important elements on the page via structured data? | ||||||||
73 | 1 | Is there schema markup on the webpage? | validator.schema.org | β | not started | Most of the web's schema markup is either missing, blatantly wrong, or incomplete. Recommended reading: 'Semantic SEO explained'. | yes | ||
74 | 2 | Have breadcrumbs been marked up with structured data? | validator.schema.org | β | not started | Marking up breadcrumbs with structured data is an easy win to help search engines crawl the PLP and its relation to the homepage. Recommended reading: 'What are breadcrumbs and why do they matter for SEO?'. | yes | ||
75 | 3 | Is CollectionPage schema type being used? | validator.schema.org | β | not started | CollectionPage is the most appropriate way to describe a PLP. You may also use WebPage or ItemPage. | yes | ||
76 | 4 | Is Product schema found on the page? | validator.schema.org | β | not started | Product schema should exist on a PLP but the correct way to do it with semantic SEO is to nest the product schema as part of the PLP. | yes | ||
77 | 5 | Is Product schema nested within CollectionPage? | validator.schema.org | β | not started | If products are being described, the schema markup should communicate that the products are part of the PLP (ie, CollectionPage). Eg, CollectionPage > mainEntity > itemList > Product(s) A common mistake is marking up all Product schemas as individual schema types. This communicates the wrong message to search engines. | nested | ||
78 | 6 | Is there FAQPage schema markup? | validator.schema.org | β | not started | FAQPage schema can do two things: (a) gain rich results when the PLP ranks on page 1, and (b) strengthen the unstructured data with structured data. | yes | ||
79 | 7 | Have any of answers in the FAQs link to a deeper URL (eg, PDP)? | β | not started | Answers in FAQPage schema allow for some HTML formatting. This includes bold text, italic text, bullet lists, ordered lists, AND, hyperlinks. Hyperlinks from your PLP's rich result can take a searcher from discovery directly to a product page! Recommended reading: 'Can you have links in FAQPage schema?' | yes | |||
80 | 8 | Has an author, editor, contributor or reviewer been marked up for the FAQ content? | validator.schema.org | β | not started | Marking up FAQ content with Person schema will give your PLP a significant EEAT competitive edge. Recommended watching: 'How to describe who someone is, what they know, who they work for and why they should be trusted as an authority with JSON-LD' | yes | ||
81 | 9 | Is ItemList schema type the mainEntity of the CollectionPage? | validator.schema.org | β | not started | This tells Google that the products described in the ItemList are the main focus (or primary content) of the product category page. | yes | ||
82 | 10 | Have the products been wrapped in an ItemList schema type? | validator.schema.org | β | not started | This is the way π€πΎ | yes | ||
83 | 11 | Is the FAQPage schema connected to the CollectionPage or WebPage schema? | validator.schema.org | β | not started | 99% of websites with FAQPage schema do not tell search engines how the content in the FAQs relate to the webpage. Using the "isPartOf" item property to nest FAQPage schema within CollectionPage will accomplish this. | yes | ||
84 | 12 | Have merchant policies (e.g., returns, shipping, terms & conditions) been marked up? | validator.schema.org | β | not started | If you care about EEAT and your eCommerce operates in YMYL, this is an easy win - especially if you can markup Person schema as the reviewer of the legal documents (ie, use structured data to tell who your legal people are). | yes | ||
85 | 13 | Has Organization schema been nested with CollectionPage schema as the publisher? | validator.schema.org | β | not started | It doesn't make sense to express the author of the PLP but it does make sense to communicate that direct relationship between the parent company and the PLP. Recommended reading: 'How to use Organization schema correctly' | yes | ||
86 | 14 | Have real customer product reviews been nested as part of Product schema? | validator.schema.org | β | not started | If you've gone to the effort of collecting customer reviews, the next step is to reflect this in schema markup not only on the product detail page but also on any page where the product is mentioned. | yes | ||
87 | 15 | Have you specified what the CollectionPage is about? | validator.schema.org | β | not started | The "about" item property is a powerful way to tell search engines what a thing is about. In this context, you will be describing what the PLP is about by referencing WikiData or other trusted source. | yes | ||
88 | Conversions | Have you removed reasons why visitors will NOT convert? | ||||||||
89 | 1 | Can the shipping, returns, and terms & conditions policy pages be easily accessible from the PLP? | β | not started | These are important pages that people will want to read if they are serious about checkout out on your website. | yes | |||
90 | 2 | Are the shipping, returns, and T&C pages indexable? | β | not started | There is no good reason to hide these pages from search engines. | yes | |||
91 | 3 | Does the header take up too much of the above-the-fold space? | β | not started | Hero images that take up the entire vertical viewport are unnecessary and forces your visitors to scroll/swipe to see what you have offer. "The above the fold area of a webpage should have at least some content which is unique to that page." (source) | no | |||
92 | 4 | Are there too many products per PLP? | β | not started | This is completely subjective and there is no right or wrong answer apart from what you feel is 'too much'. | no | |||
93 | 5 | Are prices of individual products displayed | β | not started | Don't trust that people will click through to an individual product detail page from your PLP to see the price. No one will do that anymore. Without clear pricing displayed, people will distrust you and leave your site. | yes | |||
94 | 6 | Can the user filter through the products on the PLP? | β | not started | yes | ||||
95 | 7 | Are product/category filters collapsed by default on mobile viewports? | β | not started | yes | ||||
96 | 8 | Are important filters presented towards the top of the PLP? | β | not started | yes | ||||
97 | 9 | Can the user add products directly to the cart from the PLP? | β | not started | yes | ||||
98 | 10 | Can the user compare products? | β | not started | yes | ||||
99 | 11 | Can users select the number of products on display per page? | β | not started | yes | ||||
100 | 12 | Can users sort by A-Z? | β | not started | yes |