ampproject / amp-wp

Enable AMP on your WordPress site, the WordPress way.
https://wordpress.org/plugins/amp/
GNU General Public License v2.0
1.79k stars 382 forks source link

When AMP is activated it conflicts with Google Product & Review rich snippet. ( Find Video and more details in Description ) #7846

Closed ronakganatra-multidots closed 1 month ago

ronakganatra-multidots commented 1 month ago

Bug Description

When AMP is activated it conflicts with Google Product & Review rich snippet.

When AMP is active, the AMP plugin adds a javascript in the head to redirect to the amp but that is somehow making some issues and in the google rich snippet testing tool when we try to test the URL or code it gives an error or doesn't show the product and review rich snippet and if we disable the AMP, it works correctly and show the Product and review rich snippets.

Video: https://www.loom.com/share/cfa9de8d2f724f8b8523f891fa0df56f?sid=26a8da85-eb63-4c5a-a853-8f6ae7c8058e

Code Affecting : plugins/amp/assets/js/mobile-redirection.js plugins/amp/src/MobileRedirection.php in the function : add_mobile_redirect_script - 'mobileUserAgents' => $this->get_mobile_user_agents(), ( due to below part the issue exist )

I tried with the latest plugin version 2.5.4

Expected Behaviour

it should correctly show the Product and review rich snippets.

Screenshots

Video: https://www.loom.com/share/cfa9de8d2f724f8b8523f891fa0df56f?sid=26a8da85-eb63-4c5a-a853-8f6ae7c8058e

Not Working Code on rich snippets:

<script type="text/javascript">
    /* <![CDATA[ */
    (()=>{var e={};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),function({ampUrl:n,isCustomizePreview:t,isAmpDevMode:r,noampQueryVarName:o,noampQueryVarValue:s,disabledStorageKey:i,mobileUserAgents:a,regexRegex:c}){if("undefined"==typeof sessionStorage)return;const d=new RegExp(c);if(!a.some((e=>{const n=e.match(d);return!(!n||!new RegExp(n[1],n[2]).test(navigator.userAgent))||navigator.userAgent.includes(e)})))return;e.g.addEventListener("DOMContentLoaded",(()=>{const e=document.getElementById("amp-mobile-version-switcher");if(!e)return;e.hidden=!1;const n=e.querySelector("a[href]");n&&n.addEventListener("click",(()=>{sessionStorage.removeItem(i)}))}));const g=r&&["paired-browsing-non-amp","paired-browsing-amp"].includes(window.name);if(sessionStorage.getItem(i)||t||g)return;const u=new URL(location.href),m=new URL(n);m.hash=u.hash,u.searchParams.has(o)&&s===u.searchParams.get(o)?sessionStorage.setItem(i,"1"):m.href!==u.href&&(window.stop(),location.replace(m.href))}({"ampUrl":"https:\/\/example.co?amp","noampQueryVarName":"noamp","noampQueryVarValue":"mobile","disabledStorageKey":"amp_mobile_redirect_disabled","mobileUserAgents":["Mobile","Android","Silk\/","Kindle","BlackBerry","Opera Mini","Opera Mobi"],"regexRegex":"^\\\/((?:.|\\n)+)\\\/([i]*)$","isCustomizePreview":false,"isAmpDevMode":true})})();
    /* ]]> */
    </script>`

   <script type="application/ld+json">{"@context":"https://schema.org/","@type":"Product","name":"The Nike Air Force 1 &#8220;Be The One&#8221; Inspires Athletes Ahead Of The 2024 Olympics","image":"https://example.com?w=780&#038;h=550&#038;crop=1","aggregateRating":{"@type":"AggregateRating","ratingValue":5,"reviewCount":10}}</script>

Working Code on Rich snippets:

<script type="text/javascript">
      /* <![CDATA[ */
      (()=>{var e={};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),function({ampUrl:n,isCustomizePreview:t,isAmpDevMode:r,noampQueryVarName:o,noampQueryVarValue:s,disabledStorageKey:i,mobileUserAgents:a,regexRegex:c}){if("undefined"==typeof sessionStorage)return;const d=new RegExp(c);if(!a.some((e=>{const n=e.match(d);return!(!n||!new RegExp(n[1],n[2]).test(navigator.userAgent))||navigator.userAgent.includes(e)})))return;e.g.addEventListener("DOMContentLoaded",(()=>{const e=document.getElementById("amp-mobile-version-switcher");if(!e)return;e.hidden=!1;const n=e.querySelector("a[href]");n&&n.addEventListener("click",(()=>{sessionStorage.removeItem(i)}))}));const g=r&&["paired-browsing-non-amp","paired-browsing-amp"].includes(window.name);if(sessionStorage.getItem(i)||t||g)return;const u=new URL(location.href),m=new URL(n);m.hash=u.hash,u.searchParams.has(o)&&s===u.searchParams.get(o)?sessionStorage.setItem(i,"1"):m.href!==u.href&&(window.stop(),location.replace(m.href))}({"ampUrl":"https:\/\/example.co?amp","noampQueryVarName":"noamp","noampQueryVarValue":"mobile","disabledStorageKey":"amp_mobile_redirect_disabled","regexRegex":"^\\\/((?:.|\\n)+)\\\/([i]*)$","isCustomizePreview":false,"isAmpDevMode":true})})();
      /* ]]> */
      </script>

      <script type="application/ld+json">{"@context":"https://schema.org/","@type":"Product","name":"The Nike Air Force 1 &#8220;Be The One&#8221; Inspires Athletes Ahead Of The 2024 Olympics","image":"https://example.com?w=780&#038;h=550&#038;crop=1","aggregateRating":{"@type":"AggregateRating","ratingValue":5,"reviewCount":10}}. </script>

PHP Version

No response

Plugin Version

2.5.4

AMP plugin template mode

Reader

WordPress Version

No response

Site Health

No response

Gutenberg Version

No response

OS(s) Affected

No response

Browser(s) Affected

No response

Device(s) Affected

No response

Acceptance Criteria

No response

Implementation Brief

No response

QA Testing Instructions

No response

Demo

No response

Changelog Entry

No response

westonruter commented 1 month ago

Closing in favor of the support topic you also opened: https://wordpress.org/support/topic/when-amp-is-activated-it-conflicts-with-google-product-review-rich-snippet/

We can reopen this if development work is required.

ronakganatra-multidots commented 1 month ago

Hello @westonruter ,

As there is not any help in that thread, could you reopen this issue here or someone from team could help over that ?

westonruter commented 1 month ago

There is help on the thread. Milind has responded and I responded as well.

ronakganatra-multidots commented 1 month ago

Thanks @westonruter . Appreciate your reply on it.