All 227 pages of the live store checked the way Google and AI assistants read them: speed on phone and desktop, HTML structure, structured data, images, links, AI-agent access.
The store is well built. Two things hold it back: mobile speed (score 35, main image after 29.9 seconds) and unfinished on-page work (collection titles, missing descriptions, 823 images without alt, a blog nobody links to).
Below: three tables, one task per row, with time and budget. Technical details under a task opens the page lists and code. Total 67.5 hours, $2,025.
robots.txt allows AI crawlers, and Shopify publishes agents.md, llms.txt and the UCP/MCP endpoint, so shopping agents can read the catalogue and check out.| # | Task | What to do | What it affects | Why it matters | Budget · Time | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Make the hero image load first on mobile | Mark the first hero slide loading="eager" and fetchpriority="high", add a <link rel="preload"> for it, and exclude it from the theme lazy-load loop. | Mobile speed · Google rankings · Conversion | Google scores your site on the phone version first. The main image on the phone appears after 29.9 seconds because the theme tells the browser to load it last. Until this is fixed every other speed fix is capped. | $602 h | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsLighthouse mobile: performance 35, LCP 29.9 s (target under 2.5 s), Speed Index 36.1 s, Time to Interactive 45.7 s. Desktop: 82, LCP 1.8 s. Raw homepage HTML: 371 images with Server response is 10 ms and Shopify CDN already serves AVIF (hero returns | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2 | Remove duplicate Google tags | Keep one copy of GA4 and one of Google Ads. Remove the two extra injections of each (theme, app embed or GTM double-firing) and the duplicate reCAPTCHA loader. | Mobile speed · Analytics accuracy | The same tracking scripts are downloaded three times, about 700 KB of pure repetition, and every copy runs on the main thread. Double counting can also inflate your GA4 and Ads numbers. | $602 h | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical details
Analytics beacons also fire in loops: Shopify monorail 19 requests, Microsoft Clarity 8 requests per page view. Check | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3 | Tame the Privy popup script | Load Privy only after the first user interaction (or after the page is fully painted), or replace it with a lighter signup tool. Review which Privy campaigns are actually running. | Mobile speed · Conversion | One app is responsible for 27 requests and 2.1 MB on every page view, more than all your product images together. On a phone this is several seconds of waiting before the page responds. | $1204 h | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsThird-party JavaScript is 4,814 KB in 164 requests, 52% of the 9,274 KB mobile page. Privy alone: 27 requests, 2,111 KB ( Options: defer the Privy script with a user-interaction trigger, restrict it to the homepage and collections, or move signup to the theme newsletter section plus Shopify Email. Measure before and after with Lighthouse mobile. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4 | Add alt text to images (823 across the site) | Fix two theme blocks that repeat on every page (the transparent-header logo has alt="", the mega-menu promo image has none), then write alt text for the 42 homepage images and the product and article images. | Google Images · Accessibility · AI understanding of pages | Alt text is how Google, screen readers and AI assistants know what a picture shows. It is the only failing item in the Lighthouse SEO check (score 92 instead of 100) and 454 of the missing ones come from just two theme elements. | $903 h | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical details823 of 24,230 image tags have no alt, on 227 of 227 pages. Theme-level: Homepage files without alt (42):
Pages with the most missing alt text:
Theme-level fallback: when an image has no alt, output the product or block title instead of an empty attribute. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5 | Fix heading order in the product template and broken JSON-LD on 4 articles | Turn the duplicate product title above the H1 into plain text, demote the first sub-heading from H3 to H2, remove the leftover second Article JSON-LD snippet from the article template, downgrade in-body H1s on 5 pages to H2 and add an H1 to the contact page. | How Google and AI read page structure · Rich results | Search engines and AI models read the heading outline like a table of contents. On every product page the outline starts with a second-level heading, then the real title, then a third-level heading. Four blog posts also ship a piece of structured data that is not valid and gets thrown away. | $752.5 h | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsProduct template (128 of 128 products): first heading is Invalid JSON-LD: H1 problems on pages:
Other heading skips outside the product template:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6 | Rewrite collection titles and write the missing meta descriptions | Give all 38 collections a keyword-first title of 50 to 60 characters and a 150 to 160 character description. 32 titles are under 30 characters today and 10 collections plus the blog hub have no description at all. | Rankings for category searches · Click-through from Google | Collection pages are the ones that should rank for searches like "silicone rings for women" or "silicone ring sets". A title such as "All", "SALE" or "QTED" tells Google and shoppers nothing, and an empty description lets Google pick random text for your listing. | $1204 h | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsTitles under 30 characters (55 pages, 32 of them collections):
Meta description missing (16 pages):
Homepage: title 47 characters, description 133 characters without a call to action. Suggested title: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 7 | Connect the blog to the store | Retitle the blog hub from "News" to a descriptive title, write its description, add Blog to the main menu and footer, and show related articles on collection and product pages. | AI answers · Rankings for question searches · Trust | You already have 40 articles on sizing, ring safety and care, exactly the questions people ask ChatGPT, Perplexity and Google. Nothing on the store links to them, so search engines and AI assistants treat them as unimportant. This is the cheapest way to get cited in AI answers. | $903 h | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsLinks to The hub itself links 64 articles under 20+ tags, so the cluster is well built internally. Add a "Guides" or "Blog" menu item, a footer column, and a related-articles block (Prestige "blog posts" section) on collections and products. Suggested hub title: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 8 | Complete product structured data for Google Shopping and AI shopping | Extend the Product JSON-LD with GTIN or MPN, shipping details, the return policy, price validity and per-variant data (ProductGroup with size and colour offers). | Google Shopping free listings · AI shopping assistants · Rich results | AI assistants and Google Shopping read prices, stock, shipping and returns from the code, not from the page text. Today the code has name, price and rating but no shipping, returns, GTIN or variants, so assistants cannot show "free US shipping" or the right size and colour, and merchant listings stay incomplete. | $903 h | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsCurrent Product JSON-LD keys: Implement as Validate with Google Rich Results Test and the Merchant Center listing diagnostics. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Critical subtotal · 23.5 hours | $705 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # | Task | What to do | What it affects | Why it matters | Budget · Time | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 9 | Fix long and duplicate product titles and descriptions | Set a dedicated SEO title (under 60 characters) for the 92 products whose titles run to 103 characters, and give the colour variants published as separate products distinct titles and descriptions. | Click-through from Google · Duplicate content | Google cuts titles at about 60 characters, so the brand and the differentiator at the end are never seen. Pages that share the same title and description compete with each other and Google shows only one of them. | $1204 h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsTitles over 60 characters (99 pages):
Duplicate titles (10 groups, 21 pages):
Duplicate descriptions (20 groups, 50 pages):
Where to edit: Shopify Admin, product page, "Search engine listing" section. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 10 | Add question-and-answer blocks with FAQ markup | Add short FAQ sections (with FAQPage JSON-LD) to product pages, the size guide, warranty and care pages. Cover the questions people actually ask: are silicone rings safe at the gym, why do nurses and electricians wear them, how to measure, how to clean. | AI answers · Featured snippets in Google | AI engines answer questions. Pages that literally contain the question and a short answer are the ones they quote and link. FAQ markup exists only on the FAQ page today; the pages that sell the rings have none. | $1806 h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsJSON-LD types per template today:
Question clusters to cover: Safety (silicone vs metal, ring avulsion, electricians, nurses, gym), Fitness (CrossFit, lifting, runners, swimmers), Professions (nurses, doctors, firefighters, mechanics), Pregnancy, Comparisons (Rinfit vs Enso vs QALO vs Groove Life). Implementation: a reusable FAQ section in Prestige with the questions stored in product and page metafields, plus a | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 11 | Correct the Store schema and fill in brand facts | Replace the Store entity that declares opening hours and a phone number with OnlineStore or Organization, and add founder, founding year (2015), a one-line description and the same social links everywhere. | AI answers about the brand · Trust signals | AI assistants and Google build their picture of "Rinfit" from this data. Right now the code claims a walk-in shop with opening hours that the site never shows, and it does not say the brand is female-founded and ten years old. Consistent facts get repeated by AI; inconsistent ones get ignored. | $451.5 h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsHomepage JSON-LD: Add to Organization: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 12 | Show breadcrumbs on collection and product pages | Render a visible breadcrumb trail (Home > Collection > Product) on collection and product templates. The BreadcrumbList data already exists in the code. | Navigation · Rich results · Internal linking | Google shows breadcrumbs under your listing when the page displays them, and shoppers use them to move up to the category. Today the data is in the code but nothing is on the page, which Google treats as a mismatch. | $602 h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 13 | Audit and trim third-party scripts | Inventory the 16 external script hosts, remove the ones that are unused or duplicated, and load the rest after the page is interactive. | Mobile speed · Best Practices score | Sixteen outside services run on every page (ads, analytics, reviews, popups). Each one costs loading time and several set third-party cookies that browsers are phasing out. Lighthouse Best Practices is 54 out of 100 mostly because of them. | $1204 h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsHosts counted on the homepage: googletagmanager, connect.facebook.net, analytics.tiktok.com, clarity.ms, s.adroll.com, assets1.adroll.com, d.adroll.com, shopify.privy.com, loox.io, api.socialsnowball.io, cdn.codeblackbelt.com, gstatic.com, shop.app, cdn.jsdelivr.net and more. AdRoll alone uses three hostnames. Lighthouse flags third-party cookies, deprecated APIs, image aspect-ratio mismatches and console errors. Start with a list of which apps are still in use. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14 | Replace the animated GIF banner and defer homepage videos | Re-encode the 777 KB mobile banner GIF as a muted autoplay MP4/WebM and load the 8 homepage videos only when they scroll into view. | Mobile speed | The GIF is the heaviest single image on the site and cannot be compressed by Shopify. The videos add 1.5 MB before anyone scrolls. Both are quick wins for the phone experience. | $1053.5 h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical details
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 15 | Enlarge small tap targets on mobile | Bring product-card links, colour swatches and footer links up to at least 44 by 44 px on phones. | Mobile usability · Conversion | 154 of 359 tappable elements on the mobile homepage are smaller than a fingertip. Google treats this as a mobile usability problem and shoppers mis-tap swatches and links. | $903 h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsMeasured at 390 px width: 154 of 359 interactive elements under 44 px, concentrated in product-card links, colour swatches and footer navigation. No horizontal overflow, viewport meta is correct. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 16 | Give "silicone rings" one home | Decide which page should rank for the head term: keep /collections/silicone-rings as the category page, make the homepage the brand page, and give /collections/shop-all a clearly different title or noindex it. | Rankings for the main keyword | Three pages currently target the same phrase with the same H1 and title. Google picks one of them, and it may not be the one you want customers to land on. | $451.5 h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 17 | Author bylines and article markup on blog posts | Add a visible author with a short bio to every article, put the author into the Article JSON-LD, and wrap posts in an <article> element. | AI trust · Google E-E-A-T | For health-adjacent topics like ring avulsion, Google and AI models look for who wrote the advice. Posts without an author are quoted less. The article element tells machines where the post starts and ends. | $602 h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsArticle JSON-LD is present on 39/39 posts but without an | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 18 | Open Graph images and descriptions on 13 pages | Set a featured image and description on the pages that have none so shared links show a preview. | Social sharing · Click-through | When these pages are shared in messages or social media they show no picture and no text. | $301 h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical detailsPages missing
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 19 | Two small server settings: HSTS and the bare-domain redirect | Raise the HSTS max-age to one year and collapse http://rinfit.com to a single 301 to https://www.rinfit.com. | Security grade · Crawl efficiency | Qualys gives the site an A instead of A+ only because the security header expires after 91 days. The bare domain currently redirects twice before reaching the store. | $301 h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical details
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Medium subtotal · 29.5 hours | $885 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # | Task | What to do | What it affects | Why it matters | Budget · Time | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 20 | Remove test and utility pages from the index | Set noindex on or unpublish the 6 utility pages that are in the sitemap, and 301 the duplicated size guide to the original. | Index quality | Pages like "test-zoom" and "include-footer-copyright" are visible to Google with 230 words of boilerplate. They add nothing and make the site look unfinished. | $451.5 h | |||||||||||||||||||||
Technical detailsPages under 300 words in the sitemap:
| ||||||||||||||||||||||||||
| 21 | Explicit width and height on images | Add width and height attributes to the 183 images that have none, mostly on product and article pages. | Layout stability | Without dimensions the page jumps while images load. Layout shift is already good; this keeps it that way as content grows. | $451.5 h | |||||||||||||||||||||
| 22 | Reduce the number of images on the homepage | Load product grids below the fold on demand and cut the 493 images the homepage ships today toward the 50 to 110 competitors use. | Mobile speed | Every image tag costs work for the browser even when lazy-loaded. The homepage has 4.4 times more images than the nearest competitor. | $903 h | |||||||||||||||||||||
| 23 | Real heading hierarchy on the homepage | Introduce H3 levels under the 17 flat H2 headings so sections and items are distinguishable. | How Google and AI read the page | A flat outline makes it harder for machines to tell which blocks are sections and which are items inside them. | $301 h | |||||||||||||||||||||
| 24 | Stop analytics beacons firing in loops | Reduce the repeated Shopify monorail (19 per view) and Clarity (8 per view) requests. | Mobile speed | Small requests, but dozens of them per page view on a phone connection. | $451.5 h | |||||||||||||||||||||
| 25 | Fix 4 links with no anchor text | Give the four empty links on the homepage a visible label or an aria-label. | Accessibility · Crawl clarity | A link with no text tells Google nothing about the page it points to. | $150.5 h | |||||||||||||||||||||
| 26 | Expand the About page | Add the founder story, the 2015 founding, the patent and the lifetime warranty to the About page (778 words today). Needs a short input from you. | AI answers about the brand · Trust | This is the page AI assistants and Google read to describe the company. The facts exist (female-founded, 2015, over 1M rings sold) but are not on it. | $602 h | |||||||||||||||||||||
| 27 | Review nodes in Product schema | Pass a handful of Loox reviews into the Product JSON-LD as review objects next to the aggregate rating. | Rich results · AI shopping | The rating (4.9 from 516 reviews) is in the code but no individual reviews are, which weakens the rating in Google and AI eyes. | $451.5 h | |||||||||||||||||||||
| 28 | hreflang, only if you start selling internationally | Add hreflang and locale handling when Shopify Markets goes live for other countries. Nothing to do today. | International search | No localisation is declared, which is correct for a US-only store. It becomes a task the day you open another market. | $602 h | |||||||||||||||||||||
| Low, but worth doing subtotal · 14.5 hours | $435 | |||||||||||||||||||||||||