Sitecore Item Audit Tool

We have come across many times when we were asked to audit the Sitecore application, which includes Sitecore content audit and solution audit and provide a summary of the complete implementation and see if everything is done as per Sitecore best practices or some compromises has been done.

This article is focused towards item audit which includes checking the templates/renderings/placeholders/content and many other aspects of the Sitecore content tree and item management.

As i got this request quite few of times now- so i thought let’s try to build a tool which can help us is understanding the Sitecore content(item) side of it and give us some actionable items to look and see if there is any scope to improve.

The main idea behind building this tool is to at least get some details from different Sitecore content  types and check if everything is well in place, normally when we review the existing Sitecore implementation these are some of the things which comes to our mind, which includes:

  1. How many page templates exists and how many of them are actually used.
  2. How many data/features templates exists and again how many of them are actually used.
  3. If standard values has been set or not.
  4. If insert options are set
  5. If template icon is set
  6. Different rendering available and if datasource-location and datasource template has been set if it’s a global rendering.
  7. If placeholders allowed controls are set to make sure we can add the components from Experience Editor and etc.

The tool is aligned to solve above points only and it’s just a start, i will continue to make updates to the tool to make it more useful.

Git-hubhttps://github.com/ankitjoshi/Sitecore-Item-Audit-Tool

Sitecore Marketplace-  https://marketplace.sitecore.net/en/Modules/S/Sitecore_Item_Audit_Tool.aspx

How to use:

AuditToolHome

There are different parameters on which you can generate the report, as i mentioned above report is based on:

  1. Page templates
  2. Data templates
  3. Feature templates
  4. Renderings
  5. Placeholders

Fields description:

  • Root path/ID(Page Items)- This field is to specify Path or ID under which your page items(which has presentation) exists. For example- If you site structure is Sitecore->content->home (under which you have all your page items) then you would have to set the ID of home item or path of home item to this field.
  • Page template folder path/ID- This field is to specify the folder path or ID under which you have your page templates created, for example- if your template structure is- /sitecore/templates/Project/SiteName/Page Types, then you would have to set this path or ID of this to this field. If you have multiple locations where your page templates are stored, then you can pass multiple IDs or paths to this field. Root path/ID(Page Items) field is required to show the correct report of page templates and once done you will have the following details from each template:

PageTemplateReport

  • Page template folder path/ID to exclude– This field is to specify the folder path or ID which you want to exclude from your Page template report. Note– Only one path/ID is allowed to set here.

So- now when we have access to this page report we can see what are the things missing and what is required to fix them, Also- it’s not that we have to fix all the highlighted items as few things are requirement based, but this report provide you that starting point which you need to make your implementation follow best practices.

Similarly we have other reports also, for example- Data template report.

  • Root path/ID(Global Items)- This field is to specify Path or ID under which your data items(global/data items) exists. For example- If you site structure is sitecore->content->Global (under which you have all your global items) then you would have to set the ID of Global item or path of Global item to this field.
  • Data template folder path/ID- This field is to specify the folder path or ID under which you have your data templates created, for example- if your template structure is- /sitecore/templates/Project/SiteName/Content Types, then you would have to set this path or ID of this item to this field. If you have multiple locations where your data templates are stored, then you can pass multiple IDs or paths to this field. Root path/ID(Global Items) field is required to show the correct report of data templates and once done you will have the following details from each template:

DataTemplateReport

  • Data template folder path/ID to exclude- This field is to specify the folder path or ID which you want to exclude from your data template report. Note- Only one path/ID is allowed to set here.

This is how feature template report look if you solution is helix based:

FeatureTemplateReport

Renderings Report:

RenderingsReport

Placeholders Report:

PlaceholdersReport

Common folder template Report: (Items that are based on default folder template)

CommonFolderTemplateReport

We can generate the report based on our requirement, if we want to generate the page template report from specific location and you don’t want to include all the templates, you can just select that specific folder item and generate it.

I will keep adding more features/improvements to it based on the feedback, but i am sure this as our preliminary audit can give us a good visibility about the item management and best practices.

Please let me know for any questions.

Happy learning 🙂

Installing Sitecore 9.2 using Sitecore Install Assistant (SIA)

So we have Sitecore 9.2 available now, with Sitecore 9.2 we have two options to install :

  • Sitecore Installation Framework (SIF) and
  • Sitecore Install Assistant (SIA)

Sitecore Installation Framework (SIF) is the same old way to Install Sitecore since version 9, as part of this post i would like to go over the new way to Install Sitecore i.e using Sitecore Install Assistant (SIA)

So- let’s get started.

Step 1: Download the files (SIA)

You can download the Installation files from here- https://dev.sitecore.net/Downloads/Sitecore_Experience_Platform/92/Sitecore_Experience_Platform_92_Initial_Release.aspx (Please login before downloading the files)

SIA-Step1

Step 2: Create resources folder and extract the files there.

In my case i have created folder SIA under “D:\Deploy\SC9Install”

SIA-Step2

Step 3: SIA Config Updates

Before you run and execute setup.exe file you can update some of the settings of SIA using setup.exe.config file and some of the settings which you can update are as follows:

  • SQL Server name
  • SOLR URL
  • SOLR root
  • Solr Serverice

Step 4: Time for action

Right click on setup.exe and click on “Run as administrator” and you will be prompted with welcome screen where you will have basic details on what’s required to complete the installation successfully. Click on start and you will be navigated to prerequisites screen.

SIA-Step4-1

 

SIA-Step4-2.1

Click on Install and wait for all the prerequisites to get installed.

SIA-Step4-2.2

Once all the prerequisites are installed you can see the below screen:

SIA-Step4-2.22

Click Next and proceed for Sitecore Settings, populate the details which includes solution prefix, admin password and license file.

SIA-Step4-3

Click Next and populate SQL server details

SIA-Step4-4

In the next screen verify the SOLR details, if you have updated setup.exe.config file with the SOLR details it will be pre-populated for you here:

SIA-Step4-5

In the summary screen validate the details and make sure everything is correct.

SIA-Step4-6

Next screen- validate if we are good to proceed for the installation.

SIA-Step4-7

Click on Install, it will take a while to install.

SIA-Step4-8

And FINALLY

SIA-Step4-9

 

SIA-Step4-10

You can now login to Sitecore:

SIA-Step5

And with this we can also see the new SITECORE in the login screen 🙂

Hope this helps!

Happy learning 🙂

References:

https://dev.sitecore.net/Downloads/Sitecore_Experience_Platform/92/Sitecore_Experience_Platform_92_Initial_Release.aspx

 

Setup and Install SOLR 7.5.0 for Sitecore 9.2

It’s super easy to Setup SOLR 7.5.0 for Sitecore 9.2 and with the gist shared by Mark Cassidy  here, it will take just few seconds to install and make SOLR up and running.

solr7.5-default-script

I have used the same and updated few parameters like:

  • Solr Port
  • Solr Host
  • Solr Version (7.5.0)- (This is prerequisite for Sitecore 9.2)
  • OpenJDK Version

Ran the script and few seconds later SOLR 7.5.0 was up and running.

solr-7.7.0ps

SOLR admin was up and running.

solr-7.5.0-admin

Thanks to community members contributions.

Hope this helps!

Happy searching 🙂

References:

you-must-have-a-user-with-the-same-password-in-master-or-target-server error while installing Sitecore 9.0.2 in SQL 2017-fixed

Recently I upgraded my machine and installed SQL Server 2017 and after upgrade i got stuck in well known “same password in master or target server” error while installing Sitecore 9.0.2 instance.

Unable to connect to master or target server ‘sitenameXP_Processing.Pools’. You must have a user with the same password in master or target server ‘sitenameXP_Processing.Pools’.

SQL Version:

Microsoft SQL Server 2017 (RTM-CU15) (KB4498951) – 14.0.3162.1 (X64) May 15 2019 19:14:30 Copyright (C) 2017 Microsoft Corporation Express Edition (64-bit)

Sitecore 9 setup was not new but there was something different with SQL Server 2017.

All the installation prerequisites were in place, checked this post by BrandonMBruno and this was good too.

Microsoft Web Deploy dynamically loads SQL Server Data-Tier application framework, SQL ScriptDOM and SQL CLRTypes components using automatic version detection but in my case Web Deploy has not installed the correct version of SQL Server Data-Tier application framework.

So- I installed the correct version of SQL Server Data-Tier application framework from here:  https://www.microsoft.com/en-us/download/details.aspx?id=56508

This fixed the issue for me, so i would suggest to check if you have the correct version of SQL Server Data-Tier application framework installed if you run into similar issue.

Hope this helps!

Happy learning 🙂

References:

 

Disable index rebuild while installing sitecore package

Package-Install

If you also came across issue with failed package installation/taking lot of time to install because of the no of items package contains and the background activity it performs like index rebuilding- there are two options you can choose from to install Sitecore package successfully:

  1. Disable Index Rebuild while installing Sitecore package.
  2. Install package using SPE (https://doc.sitecorepowershell.com/).

Disable Index Rebuild while installing Sitecore package: In this option you can add/deploy a patch to temporarily disable index rebuild and set the indexing strategy to be manual. once the package installation is done this patch can be removed.

Disable-Index

We need to specify the indexes available and set the index update strategy to manual.

Install package using SPE: This option is handy and can be used as an alternative to install the package, here is the script which can be used to install package with SPE.

We can also disable index rebuild while installing the package.

PS master:\> Install-Package -Path SitecorePowerShellConsole.zip -InstallMode Merge -MergeMode Merge

This has saved lot of our time and you should give it a try if your package installation is taking a lot of time and failing.

Hope this helps!

Happy learning 🙂

 

Reference(s):

https://doc.sitecorepowershell.com/appendix/packaging/install-package

Sitecore Experience Commerce eLearning Course 100/200- Complete

Recently i completed Sitecore Experience Commerce 100 and 200 level course and i must say it’s definitely worth taking these courses.

Sitecore Commerce

If you are new to Sitecore commerce and would like to explore and get an understanding of the big picture- this course is for you, after taking Sitecore Experience Commerce 100-Overview and Sitecore Experience Commerce- Essentials course i feel much confident and i can use the info/details i got from the two course to drive my passion towards Sitecore Commerce journey.

If you want to get started with the Commerce here are the courses available to get you started:

  1. Sitecore® Experience Commerce™ 9 100: Overview
  2. Sitecore® Experience Commerce™ 9 200: Essentials
  3. Sitecore Experience Commerce 9.0 300: Developer

From the course contents perspective- here are some of the things which you see there and lot more.

Sitecore® Experience Commerce™ 9 100: Overview

  • Getting Familiar with Sitecore® Experience Commerce™
  • Managing the Catalog
  • Tracking Customers and Their Orders
  • Increasing Sales with Marketing

Sitecore® Experience Commerce™ 9 200: Essentials

  • Gaining an Insight into the Sitecore® Experience Commerce™ Architecture
  • Developing Storefronts Using Sitecore Commerce APIs
  • Developing Sitecore® Experience Commerce™ Storefront Pages Using SXA
  • Working with Sellable Items
  • etc…

Sitecore Experience Commerce 9.0 300: Developer

Please review the course modules here https://www.konabos.com/blog/sitecore-experience-commerce-9-0-developers-300-training-in-powerful-ways/ – this includes:

  • Create & configure a new Storefront Site
  • Creating a Site Page Framework – you go through how you create the header and footer components and assign those to a page layout for all the page.
  • Creating pages for the Storefront for displaying sellable items like category pages and product pages.
  • Creating account management pages for registration, login, my account page, addresses page, etc.
  • Creating the order flow pages for cart, billing, shipping, payment and confirmation.

I also like to thank my Company Valtech for providing me the code for 100 and 200 level courses, much appreciated.

I would suggest to go for this and check with you company if they can provide you the code for these course and if yes? what you are waiting for? let’s do it.

How to Register?

Login to https://elearning.sitecore.net and search for Experience commerce 100/200 courses, if you don’t have any account, please create one.

So far it’s been great- looking forward for it.

XC-100XC-200

Happy Learning 🙂

https://www.konabos.com/blog/category/sitecore-commerce/

https://elearning.sitecore.net

Why Sitecore-from my view

Different content management systems (CMSs) are available for creating and managing websites, but choosing the right CMS is always a big challenge and depends on several factors, Web content management system (WCMs) are not just a tool for creating pages now, it has gone beyond it and business now count on it to perform and manage many other functions.

Recently i was asked to list down why Sitecore is an ideal choice as content management system, you can find articles advocating for Sitecore and explaining the features which makes it an optimal choice as a content management system, here i want to share my view on why Sitecore is the best choice.

Before we start, just to mention that Sitecore has been awarded as a leader in Gartner’s assessment of the strengths and cautions of 18 web content management vendors for 9th year in the row. sourcehttps://www.sitecore.com/resources/index/analyst-reports/gartner-magic-quadrant-for-web-content-management

Sitecore-AEM

Here are some of the features/advantages of Sitecore from my perspective which makes it a product of “one stop shop” for all.

  1. Friendly Interface- Sitecore user interface was made keeping usability in mind.With its intuitive interface, even non-technical users can make changes and updates on the fly.
  2. Multisite development- Sitecore’s feature of Multisite development enables development team to work on multiple websites at the same time, this includes microsites/intranets applications and etc.
  3. Integration- Sitecore architecture is based on extensibility which supports integration with third party systems,you can integrate some of the third party systems like Salesforce/Active Directory/Brightcove connectors and etc. in your Sitecore solution smoothly.
  4. Multilingual Sites and translations– Sitecore helps your business to reach out to global or local market by translating the contents into regional languages by means of different connectors which can use to translate the content into different languages.you can translate the content manually or make use of connectors- choice is yours.
  5. Analytics– Experience Analytics is built in which gives business editors/users an insight of customer behavior and journey so that we can recognize patterns and update the content and personalize to present more relevant contents to end users.
  6. Devices-  System can target the content based on devices which has been used to request particular page.
  7. Scalability–  You can scale your application to any level you want right from content management servers to your experience database(xDB) and content delivery servers. Sitecore provides a system to make sure your data is safe and protected. We can setup multiple CD servers to load balance the traffic and making sure the nearest server is being used to serve the user request to improve the performance.
  8. Extensive Support from Sitecore– You are always in safe hand while working in Sitecore, for any issues and problems Sitecore has different channels available where you can raise your concerns and queries. Some of the tools which you can use are as follows:
    1. support.sitecore.net
    2. Sitecore slack
    3. Sitecore stackoverflow
    4. dev.sitecore.net
  9. Deploy on  Azure- We can deploy Sitecore on Azure using modals like PAAS and IAAS, and can leverage other cloud features to best serve the application and users.
  10. SXA (Sitecore Experience Accelerator)– SXA Speeds up the delivery while running different work steams in parallel.
    1. Web development teams use Sitecore Experience Accelerator (SXA) to speed up the production of websites and to reuse components, layouts, and templates across a variety of sites.
    2. SXA separates structure from design, so front-end designers, creative designers, content authors, and developers can work in parallel and you can deploy and maintain multiple sites quickly and cost effectively
    3. Once a basic user experience plan is in place, everyone can get started on the platform
    4. For example: the content author can start entering the content in the wireframe environment, while the front-end developer works on the theme, and the developer sets up the data templates.
  11. Personalization-
    1. Personalization is all about presenting relevant content to end users based on several factors like browsing history, campaigns, goals, visits and etc.
    2. Sitecore comes handy with several out of the personalization rules which you can use out of the box.
    3. We can also built custom rules to create and show specific component variant which can be displayed when custom personalization rule/condition is met.
  12. Marketing Automation- Business editors can make use of marketing automation feature to automate several steps and process which saves time like sending email when specific goal is triggered and etc.
  13. Experience profile- A profile is created for each site visitor (anonymous/known) and stores all related information into Experience Profile section while fetching the values from experience database(xDB).
  14. Helix/Habitat (Design principles)-
    1. Helix is a set of overall design principles and conventions for Sitecore development.
    2. As more and more people and organisations adopt the Helix conventions and principles, it will become a Sitecore standard.
    3. This means that people who are familiar with the conventions or the Habitat example will be able to work more easily on other convention-based projects with minimal training
    4. It will be easier for Sitecore Product Support to understand projects built using the conventions, enabling them to resolve issues more quickly.

Thanks for reading and see you in my next post!

Happy learning 🙂

Sitecore WFFM custom save actions not working in CD environments

Recently we had an issue in UAT site where WFFM custom save action was found not working on CD servers, but it was absolutely fine on CM server.

WFFM-SaveAction

After checking we found that settings that are required to be done on Sitecore.Forms.config on CD servers were missing, also- we observed that “Custom Action” checkbox was not checked on the custom save action item.

So, here are couple of things to double check when we see custom save action not working in CD servers:

  1. Make sure “Client Action” is checked on WFFM custom save action.ClientAction
  2. Make sure to configure CD server config as per WFFM Installation guide which includes:
    • On all the CD servers, in the \Website\App_Config\Include\Sitecore.Forms.Config file, remove or disable the following sections:
      • In the <sitecore> section, remove:
      • <!—HOOKS–>
        <hooks> <!—remote events hook–>
        <hook type=”Sitecore.Form.Core.WffmActionHook, Sitecore.Forms.Core”/>
        <hooks>

      • In the <events> section, remove:
      • <!–Remote events handler–>
        <event name=”wffm:action:remote”>
        <handler type=”Sitecore.Form.Core.WffmActionHandler, Sitecore.Forms.Core” method=”OnWffmActionEventFired” > <param name=”actionManager” ref=”/sitecore/wffm/wffmActionExecutor” /> </handler>
        </event>

      • Add the following node to the <settings> section:
      • <setting name=”WFM.IsRemoteActions” value=”true” />

      • Configure the following node according to the name of the connection string related to the target database. For example “web”.
      • <setting name=”WFM.MasterDatabase” value=”web” />

Hope this helps!

Happy learning 🙂

SXA redirect URL with country code

It is important to redirect user to new page from old page when we create new version of an existing web page, it helps both users and search engines to get redirected to a new URL from the one they originally requested.

sxa-redirects

There are several ways to setup redirects in Sitecore solution, with Sitecore SXA we have redirect tool in place that facilitates setting up old and new URLs in Sitecore. We can use the mapping tool to set up a 301/302 or server transfer redirect.

Recently we worked on setting up redirects using SXA redirect tool, for most of the redirects we had country code in the old URL.

Here are some example URLs:

Old URLen-au/sample-old-page-name   New URL– /new-page-name

Old URLen-au/mypage/pagelisting   New URL– /newpagelisting

What we observed that after setting up old URLs which has country code on it- all such URLs were redirecting to 404 page.

We can fix this by appending “sc_lang” querystring parameter to the new URL with the target country code, see below examples for ref:

Old URL– /sample-old-page-name   New URL– /new-page-name/?sc_lang=en-AU

Old URL– /mypage/pagelisting   New URL– /newpagelisting/?sc_lang=en-AU

After this redirects works as expected.

I hope this helps.

Happy Learning 🙂

AMP Integration with Sitecore

In my previous post on AMP we discussed about what is AMP (Accelerated Mobile Pages) all about, advantages of using AMP,constraints and some of the basic things which we should consider while using AMP with Sitecore.

As part of this blog post- i would like to go further and see how the integration of AMP can be done with Sitecore.

amp-project

Before we start i want to re-iterate some of the rules and constraints that comes with AMP and obviously all for good reasons.

  • No inline styles
  • All CSS in AMP Page should not be more than 50 KB
  • No custom JS plugin (iframe)
  • Strict validation rules and etc.

We have completed one AMP implementation successfully and want to share how we executed it with Sitecore. We targeted home page as our primary landing page and based on the analytics data we had business idea was to start with home and get some performance improvements there.

Thanks to Sitecore stack exchange which gave me idea on how to get started with this- https://sitecore.stackexchange.com/questions/1597/how-do-i-implement-accelerated-mobile-pages-amp-with-sitecore

Here are the steps we followed in our execution journey.

  1. Create AMP specific device layout to separate AMP and Non-AMP page and we leveraged query-string parameter to differentiate the layout- in our case we used querystring “amp=true” for the same.AMP-DeviceLayout
  2. Sitecore Page layout- As next step we created a new Sitecore layout file which was different from the regular layout file, you can refer the basic version of AMP HTML here
<!doctype html>
<html amp lang="en">
  <head>
    <meta charset="utf-8">
    <script async src="https://cdn.ampproject.org/v0.js"></script>
    <title>Hello, AMPs</title>
    <link rel="canonical" href="http://example.ampproject.org/article-metadata.html">
    <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
    <script type="application/ld+json">
      {
        "@context": "http://schema.org",
        "@type": "NewsArticle",
        "headline": "Open-source framework for publishing content",
        "datePublished": "2015-10-07T12:02:41Z",
        "image": [
          "logo.jpg"
        ]
      }
    </script>
    <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
  </head>
  <body>
    <h1>Welcome to the mobile web</h1>
  </body>
</html>

Also, you can have the same placeholders what you have defined in regular layout file, thing which you have to make sure is that you are aligned with the HTML which AMP follows.In addition to this you have to add all the AMP plugins in your layout file, this is again based on what feature you are building as part of AMP page, some of the plugins which we used are:

  1. amp-sidebar
  2. amp-accordion
  3. amp-carousel
  4. amp-social-share

https://cdn.ampproject.org/v0/amp-sidebar-0.1.js
https://cdn.ampproject.org/v0/amp-accordion-0.1.js
https://cdn.ampproject.org/v0/amp-carousel-0.1.js
https://cdn.ampproject.org/v0/amp-social-share-0.1.js

3. Linking AMP and Non-AMP versions– In some cases, you might want to have both non-AMP and an AMP version of the same page, If Google Search finds the non-AMP version of that page, how does it know there’s an AMP version of it?

From https://www.ampproject.org/docs/fundamentals/discovery  – In order to solve this problem, we add information about the AMP page to the non-AMP page and vice versa, in the form of <link> tags in the <head>

Add the following to the non-AMP page:

<link rel="amphtml" href="https://www.example.com/url/to/amp/document.html">

And this to the AMP page:

<link rel="canonical" href="https://www.example.com/url/to/full/document.html">

4. Renderings- Next step would be create separate renderings for the components you are planning to add as part of AMP version of your page. This is to make sure we can support both AMP and Non-AMP versions, prepare list of components that need to be converted to AMP and organize accordingly in Sitecore.

5. Set the presentation layout– Next step is to set the presentation of the page, in our case we had two presentations for the same page- one set for Default layout and one for AMP (Mobile specific) with different set of renderings.

6. Data Bind– As in our case page was already there- we didn’t do anything different to bind the data- we just pass the same data models to AMP renderings and we were all set. You just need to make sure you are calling correct renderings based on the device.

7. Test and Validate- Once you are done with the implementation you need to make sure that AMP page is working as expected, there ware two ways you can verify AMP page- in this case as we used different device for AMP with querystring- we just need to open the URL with correct querystring, so for example- if your page URL is http://www.something.com , then you can access AMP version of it using http://www.something.com/?amp=true

As part of your test you also make sure to run the validations to see if your AMP page version is aligned with the guidelines of AMP. In order to validate the page you can use browser developer console, for example- if your AMP page URL is http://www.something.com/?amp=true , you can append #development=1 to check for any validation errors- http://www.something.com/?amp=true#development=1, see the below AMP validation errors for ref:

validator_errors

8. Deploy–  Once the AMP changes are deployed it may take some time to crawl the page, and once the page is submitted to google you can see your AMP version in google search result with the lightening badge next to it.

google-lightning-badge

URL to verify if page is valid AMP or not- https://search.google.com/test/amp  and provide you AMP page URL.

Valid-AMP

Notes:

  • After the deployment we were able to see the AMP lightning badge in google search results- but few days after it was missing from google search results- we checked this and found that as content authors added some inline styles to one of the field which was making AMP not to submit the page to google because of AMP validation errors.
  • AMP can be used with both Mobile and Desktop, however it is more specific to Mobile user experience to get higher performance and engagement and reduce the bounce rates.
  • If you want your visitors to see AMP version even when the hit the page directly, this can be achieved by adding some device detection rules in Sitecore, we can identify the requesting device and based on which context device can be updated dynamically in Sitecore.

Next Step- As a next step we are checking on making AMP page responsive, but it depends on the components as some components heavily relies on custom JS plugins which can’t be integrated with AMP, there are several components available in AMP as well which can be leveraged, but if same UI & functionality can be achieved while making page responsive can only be confirmed after analyzing existing controls from AMP library- https://www.ampproject.org/docs/reference/components

Making AMP page responsive comes with an advantage that you don’t have to maintain two different versions of the page which make the maintenance part easy- but we should also make a note that we have to work within boundary of AMP guidelines- which sometimes can be a challenging part for responsive design.

I hope this would be useful for guys who are starting with AMP in Sitecore.

Please share your feedback and comments.

References:

Happy learning 🙂