Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Shopify SEO Principles
What you can and can't work with on a limited platform
By Peter Macinkovic, Digital Marketing Manag...
Hi, I’m Peter
https://peter.macinkovic.id.au
What I am all about
● I do Digital Marketing for an online beauty
retailer ca...
What this talk covers
Shopify SEO Principles:
What you can and can't work with
on a limited platform
● What is Shopify
● H...
What is Shopify
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
What is Shopify?
● Developed in 2004 to hel...
How Shopify's CMS Works
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
Shopify’s Components
● Page: Basic content ...
Pages
● Admin: Manage all Pages in the admin
under /admin/articles/
● Visibility: Manage visibility of page. Can be
hidden...
Pages (cont.)
● Search Engine Title: Edits the <title> of the
page. 70 char limit. This is referenced in
the {{page_title}...
Products
● Admin: Manage all Products in the admin
under /admin/products/
● Visibility: Manage visibility of products.Can
...
Products (cont)
● Images: Sets the primary image of the page
and up to 50 images for the main product.
Can set ALT Descrip...
Products (cont)
● Tags: Flexible way to categorise products in
collections for filters and facets. Gets
converted as handl...
URL:
https://www.kianabeauty.com.au/collections/chanel/products/le-vernis-longwear-nail-
colour?variant=999264747532
Canon...
Collections
● Admin: Manage all Products in the admin
under /admin/collections/
● Visibility: Manage visibility of collect...
URL:
https://www.kianabeauty.com.au/collections/chanel/
Variations of collections URLs are:
https://www.kianabeauty.com.au...
Blogs
● Blogs are basically ‘Blog Categories’. The
are the collection of articles. URL structure
is /blogs/blog-name/
● Pr...
Articles
● Tags: Categorise blogs by a tag. Unlike
products, there is no mechanism for
narrowing by multiple tags
● URLs: ...
Menus
● Menus (nee Linkslist) organise links into
ordered lists
● These days, they can have subcategories
● They have hand...
Metafields
● Metafields are invisible fields that can be
attached to an object
● They are useful in referencing, adding
ad...
Limitations of Shopify
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
Robots.txt
● Robots.txt file is locked in
● Certain natively generated URL like multi-
word vendors are blocked by default...
Robots.txt
● Robots.txt file is locked in
● Certain natively generated URL like multi-
word vendors are blocked by default...
Sitemap
● Sitemap is locked-in...kinda
● Sitemap.xml is a Sitemap Index references
4 separate sitemaps
○ /sitemap_products...
Sitemap
● You may omit published from the sitemaps
using metafields.
○ Namespace: SEO
○ Key: Hidden
○ Value: 1
● You may n...
Sitemap
● You may omit published from the sitemaps
using metafields.
○ Namespace: SEO
○ Key: Hidden
○ Value: 1
● You may n...
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
Canonical URLs
● Canonical URLs are hard se...
301 Redirects
● Redirects on Shopify are one-to-one only
● Redirects only work on URLs that produce a
404 response
● Using...
HTTP Responses
● Also published pages respond with a 200
Status
● All legal URLs of a collection return a 200
status
○ Thi...
HTTP Response Vanity Page Example
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
Liquid Templating
● Liquid is a templating langauge for theming
Shopify
● Includes basic logic like IF, UNLESS
● Includes ...
Working with Shopify
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
ShopifyFD
● Created by Jason Bowman - former
freelancer, now with Shopify APAC team
● Chrome Extension OR JS Bookmark
● MU...
Bulk Editor
● Tricky to find in admin natively, recommend
to bookmark them
● Edit metafields, page_title,
meta_description...
App Ecosystem
● There are external apps that can make
management of SEO tasks easier
● JSON-LD is done by Eric Davis. One ...
Customising Liquid
● Refer to a cheat sheet what you can and
cannot reference:
https://cheat.markdunkley.com/
● Use reques...
Keep Shopify SEO Simple
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
Example: Subcategory Pages
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
Example: Contextual Content
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
Example:
Contextual Content
By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
Noindex
● Include some kind of code to add noindex
to your page
● An easy check would be to see if the
template name conta...
What happens when you do push Shopify
beyond its intentions →
Work within the strict limitations of Shopify
when possible
...
Peter Macinkovic
https://peter.macinkovic.id.au
Twitter, instagram, LinkedIn as @inkovic
Questions?
● Try the Shopify Foru...
Upcoming SlideShare
Loading in …5
×

1

Share

Download to read offline

Shopify SEO Principles - What You Can and Can't Work with on a Limited Platform

Download to read offline

Shopify has exploded in popularity in the past 6 years into one of the go-to platforms to start your ecommerce business. But as a hosted system, it has strict limitations on what you can and cannot control for SEO.

Peter Macinkovic will go over Shopify as a CMS, how it works and common issues that plague SEO Specialists when working with the platform for the first time.

He will also go over best practice, tricks and how to push the Liquid templating language to make the platform more versatile on scale.

Peter Macinkovic (https://peter.macinkovic.id.au/) is a Digital Marketer and eCommerce Specialist based in Melbourne, Australia. A Former Digital Project Manager, Peter found his true calling in Digital Marketing and SEO working in-house for Kiana Beauty in the online retail sector.

Related Books

Free with a 30 day trial from Scribd

See all

Shopify SEO Principles - What You Can and Can't Work with on a Limited Platform

  1. 1. Shopify SEO Principles What you can and can't work with on a limited platform By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  2. 2. Hi, I’m Peter https://peter.macinkovic.id.au What I am all about ● I do Digital Marketing for an online beauty retailer called Kiana Beauty ● Been working on the web since 2011 ● I have been a regular at the SEO Melbourne Meetup for 5+ years By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  3. 3. What this talk covers Shopify SEO Principles: What you can and can't work with on a limited platform ● What is Shopify ● How Shopify's CMS Works ● Limitations of Shopify ● Working with Shopify By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  4. 4. What is Shopify By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  5. 5. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019 What is Shopify? ● Developed in 2004 to help sell snowboards online ● Released in 2006 ● Built on Ruby on Rails ● Exploded in popularity in the last 6 years ● Robust API and Rich Marketplace of Apps and Integrations
  6. 6. How Shopify's CMS Works By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  7. 7. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019 Shopify’s Components ● Page: Basic content type for pages. ● Products: Stores Product, Vendor, Variant and Pricing Information ● Collections: Organises products into filterable categories ● Articles: An article belong to a ‘blog’ ● Blogs: A blog category. Poorly named. ● Menus: (nee Link Lists) Categorisation of URLs. ● Metafields: Hidden fields that can be attached to an object. (Useful for hacks and SEO)
  8. 8. Pages ● Admin: Manage all Pages in the admin under /admin/articles/ ● Visibility: Manage visibility of page. Can be hidden, published or scheduled to be published. ● Title: The Title of the Page. Stored as {{page.title}} in your theme. Typically your H1 element. ● Content: The content of your page. Edited with a WYSIWYG. Stored as {{page.content}} in your theme. ● Template: Selects the template of your page. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  9. 9. Pages (cont.) ● Search Engine Title: Edits the <title> of the page. 70 char limit. This is referenced in the {{page_title}} object, which is a helper function to reference {{page.metafields.global.title_tag}} ● Search Engine Description: Edits the <meta name=”description”> of the page. Ref. in {{page_description}} object, which is a helper for {{page.metafields.global.description_tag}} ● URL and Handle: Objects have set URL structures. The handle is a slug that uniquely identifies that object. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  10. 10. Products ● Admin: Manage all Products in the admin under /admin/products/ ● Visibility: Manage visibility of products.Can have multiple channels - Online Store is the main area of focus ● Title, Content, Template, SEO Title, SEO Description, URL and Handle : As with pages. URL structure for products is /products/product-handle by default canonical, but can vary with collections /collections/collection/handle/products/pr oducts and variants (appending ?id=XXX) By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  11. 11. Products (cont) ● Images: Sets the primary image of the page and up to 50 images for the main product. Can set ALT Description for each image. Individual variants may have 1 image per variant. ● Product Type: Categorises products by a string. On the front-end, renders it using the ?constraint=XXXX query. DO NOT RECOMMEND ● Vendor : Sets the Brand of the product. On the front-end uses ?vendor=vendor+name query. Recommend for reference, use Smart Collections instead for Brands. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  12. 12. Products (cont) ● Tags: Flexible way to categorise products in collections for filters and facets. Gets converted as handles, with spaces or illegal characters converted to - or deleted. ● Collections: The collections it belongs to. Automatically assigned with Smart Collections. Can be managed in either the product or collection. ● Price, Cost, SKU, QTY, Inv Policy : Useful mechanisms managing the price, sales price and stock of a product and their variants. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  13. 13. URL: https://www.kianabeauty.com.au/collections/chanel/products/le-vernis-longwear-nail- colour?variant=999264747532 Canonical URL: https://www.kianabeauty.com.au/collections/chanel/products/le-vernis- longwear-nail-colour (default is /products/le-vernis-longwear-nail-colour - this is overwritten in our use case)
  14. 14. Collections ● Admin: Manage all Products in the admin under /admin/collections/ ● Visibility: Manage visibility of collections. Multiple channels - Online Store is visible on front-end ● Title, Content, Template, SEO Title, SEO Description, URL and Handle : As with pages. URL structure for products is /collections/collection-handle by default canonical, but can vary with pagination, tags (/tag-1+tag-2), sorting and constraints. ● Conditions: The parameters to display products in the collection By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  15. 15. URL: https://www.kianabeauty.com.au/collections/chanel/ Variations of collections URLs are: https://www.kianabeauty.com.au/collections/chanel?sort_by=title-ascending https://www.kianabeauty.com.au/collections/chanel/allure https://www.kianabeauty.com.au/collections/chanel?page=2
  16. 16. Blogs ● Blogs are basically ‘Blog Categories’. The are the collection of articles. URL structure is /blogs/blog-name/ ● Provides a field to add feedburner URL ● Comments Management can be set per ‘blog’ ● Very ‘Ruby on Rails’ gem install feel to it. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  17. 17. Articles ● Tags: Categorise blogs by a tag. Unlike products, there is no mechanism for narrowing by multiple tags ● URLs: Handle is set to its parent ‘blog’ ○ When references in code, URL include the blog name. ○ Prior to 2016-ish, slugs were AUTOGENERATED with numbers in the beginning and handles could not be referenced in code ● Can manage comments on a per article basis By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  18. 18. Menus ● Menus (nee Linkslist) organise links into ordered lists ● These days, they can have subcategories ● They have handles, which can be referenced in code ● The links can be URLs, Objects, Search Pages etc. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  19. 19. Metafields ● Metafields are invisible fields that can be attached to an object ● They are useful in referencing, adding additional content, schema etc ● They store things like SEO Title, SEO Description, and are used to hide elements in the sitemap ● They contain a namespace, key and value ● The value can be either a string or integer By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  20. 20. Limitations of Shopify By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  21. 21. Robots.txt ● Robots.txt file is locked in ● Certain natively generated URL like multi- word vendors are blocked by default ○ Anything with a + in the URL is basically blocked ○ Anything with a encoded space is blocked ● Be sure to monitor your Robots.txt file. If it goes Haywire and your site is unindexable (i.e. Disallow / ), YOU will need to contact Shopify support. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  22. 22. Robots.txt ● Robots.txt file is locked in ● Certain natively generated URL like multi- word vendors are blocked by default ○ Anything with a + in the URL is basically blocked ○ Anything with a encoded space is blocked ● Be sure to monitor your Robots.txt file. If it goes Haywire and your site is unindexable (i.e. Disallow / ), YOU will need to contact Shopify support. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  23. 23. Sitemap ● Sitemap is locked-in...kinda ● Sitemap.xml is a Sitemap Index references 4 separate sitemaps ○ /sitemap_products_1.xml?from=XXX X&to=XXX is all published products ○ /sitemap_pages_1.xml is all published pages ○ /sitemap_collections_1.xml is all published collections ○ /sitemap_blogs_1.xml is all published ‘blogs’ (categories) AND articles By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  24. 24. Sitemap ● You may omit published from the sitemaps using metafields. ○ Namespace: SEO ○ Key: Hidden ○ Value: 1 ● You may not add arbitrary URLs to the sitemap that are outside of the objects of Shopify. ○ You will need a special trick to do this i.e. redirect to externally hosted sitemap By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  25. 25. Sitemap ● You may omit published from the sitemaps using metafields. ○ Namespace: SEO ○ Key: Hidden ○ Value: 1 ● You may not add arbitrary URLs to the sitemap that are outside of the objects of Shopify. ○ You will need a special trick to do this i.e. redirect to externally hosted sitemap By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  26. 26. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019 Canonical URLs ● Canonical URLs are hard set in the canonical url object URL in Shopify ● For flexibility, recommend setting a global canonical metafield to overwrite Shopify ● Include logic for edge cases. i.e. ?page=1 Vanity Canonical URL: https://www.kianabeauty.com.au/estee-lauder- gift-with-purchase
  27. 27. 301 Redirects ● Redirects on Shopify are one-to-one only ● Redirects only work on URLs that produce a 404 response ● Using a tool like ShopifyFD, URLs can be done in bulk with a comma-separated syntax ● Redirects can be edited and deleted ● No redirecting to redirects using relative URLs ● Republishing a 404 may remove the 301 redirect By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  28. 28. HTTP Responses ● Also published pages respond with a 200 Status ● All legal URLs of a collection return a 200 status ○ This includes invalid tags. I.e. /collection/collection-name/asdfg ○ You cannot redirect invalid tags or parameters since they return 200 ● You can use this to your advantage Create Vanity Landing Page URLs like /collection/chanel/afterpay to create versailite IA By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019 This URL is valid 200 and CANNOT be redirect: https://www.kianabeauty.com.au/collections/chanel/no-5rerfe You would have to unpublish the collection, perform redirects, then republish to fix it
  29. 29. HTTP Response Vanity Page Example By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  30. 30. Liquid Templating ● Liquid is a templating langauge for theming Shopify ● Includes basic logic like IF, UNLESS ● Includes string manipulation, including the interesting ‘CAPTURE’ feature to get strings (useful for matching handles) ● Limited - not real code, no more than 50 items in a loop unless you do pagination which…. Is difficult to explain By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  31. 31. Working with Shopify By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  32. 32. ShopifyFD ● Created by Jason Bowman - former freelancer, now with Shopify APAC team ● Chrome Extension OR JS Bookmark ● MUST HAVE for bulk operations like redirects, adding metafield,s duplicating things like menus ● Currently a broken tool - since the Shopify admin change, many features don’t work as they used too i.e. cannot edit metafields for collections. Still useful, but awaiting new version when Jason gets to it. http://shopifyfd.com/ By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  33. 33. Bulk Editor ● Tricky to find in admin natively, recommend to bookmark them ● Edit metafields, page_title, meta_description in bulk interface ● Seperate sections for each object (pages, products, collections ● Admin URLs are messy, like /admin/bulk?resource_name=Product&limit =1000&order=asc&edit=metafields.seo.hid den%3Astring%2Ctitle%2Cmetafields_globa l_title_tag%2Cmetafields_global_descriptio n_tag%2Chandle&s By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  34. 34. App Ecosystem ● There are external apps that can make management of SEO tasks easier ● JSON-LD is done by Eric Davis. One time feed, handles a lot of JSON-LD for you. One time fee, never worry about it again https://apps.shopify.com/json-ld-for-seo ● Traffic Control helps manage 404, do bulk redirects. https://apps.shopify.com/traffic-control-bulk- redirects ● Metafields Editor - provides an interface to manage Metafields https://apps.shopify.com/metafields-editor By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  35. 35. Customising Liquid ● Refer to a cheat sheet what you can and cannot reference: https://cheat.markdunkley.com/ ● Use request.path to find the current URL you are in: https://help.shopify.com/en/themes/liquid/objects/re quest ● Hard loop limits of 50. Handle Matching. Nested Link Lists. Fun By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  36. 36. Keep Shopify SEO Simple By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  37. 37. Example: Subcategory Pages By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  38. 38. Example: Contextual Content By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  39. 39. Example: Contextual Content By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  40. 40. Noindex ● Include some kind of code to add noindex to your page ● An easy check would be to see if the template name contains ‘no-index’. I.e. Product.no-index to apply a no-index ● Canonical URLs must exist if {{page_for- header}} is included…. So you will always send mixed signals to Google, but they respect it pretty well... By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  41. 41. What happens when you do push Shopify beyond its intentions → Work within the strict limitations of Shopify when possible Use Collections whenever possible in lieu of the native way filters work unless you have a gameplan Be sure to include custom features for canonical URL overrides and noindex Keep Shopify SEO Simple By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  42. 42. Peter Macinkovic https://peter.macinkovic.id.au Twitter, instagram, LinkedIn as @inkovic Questions? ● Try the Shopify Forums. Jason Bowman is a very helpful member of the community ● Read the Documentation ● StackExchange, Slack (#eCommTalk) etc. By Peter Macinkovic, Digital Marketing ManagerSEO Melbourne Meetup | July 2019
  • chris-burgess

    Aug. 4, 2020

Shopify has exploded in popularity in the past 6 years into one of the go-to platforms to start your ecommerce business. But as a hosted system, it has strict limitations on what you can and cannot control for SEO. Peter Macinkovic will go over Shopify as a CMS, how it works and common issues that plague SEO Specialists when working with the platform for the first time. He will also go over best practice, tricks and how to push the Liquid templating language to make the platform more versatile on scale. Peter Macinkovic (https://peter.macinkovic.id.au/) is a Digital Marketer and eCommerce Specialist based in Melbourne, Australia. A Former Digital Project Manager, Peter found his true calling in Digital Marketing and SEO working in-house for Kiana Beauty in the online retail sector.

Views

Total views

387

On Slideshare

0

From embeds

0

Number of embeds

16

Actions

Downloads

4

Shares

0

Comments

0

Likes

1

×