Rinfit sells silicone rings direct-to-consumer on Shopify — 129 products, 38 collections, 20 content pages and 40 blog articles, all submitted in the sitemap. The technical foundation is genuinely good, and that is worth stating plainly before the problems: every page is server-rendered (H1, prices, Product schema and add-to-cart all present in the raw Googlebot HTML), canonicalisation is correct across parameters and pagination, redirects resolve cleanly to the www host, product pages carry complete Product schema including aggregateRating, and the homepage carries four schema types — more than any of the three competitors measured. This is not a broken site. It is a well-built site with one very expensive problem sitting on top of it.
That problem is mobile. Desktop scores 82 with an LCP of 1.8s; the same page on mobile scores 35 with an LCP of 29.9s — a 16× gap on the metric Google actually ranks on. The cause is not the server (the root document responds in 10ms) and not the images (Shopify's CDN correctly negotiates AVIF — the hero returns content-type: image/avif at 12KB when asked for it). It is third-party JavaScript: 164 third-party requests totalling 4,814 KB, which is 52% of the 9,274 KB page. A single app — Privy — accounts for 27 requests and 2,111 KB. On top of that, Google's own tags are loaded multiple times: gtag/js?id=G-TWY8KMWR3Q is fetched three times at 190KB each and AW-826433674 three times at 160KB, roughly 700KB of pure duplicate analytics payload. Total blocking time is 5,630ms and JavaScript bootup alone is 24.0s.
Compounding that, the hero image that is the LCP element is lazy-loaded. Across the homepage's raw HTML there are 371 images with loading="lazy", zero with loading="eager", and zero preload image hints. The browser is explicitly instructed to defer the one image it is being graded on. That single attribute is a large share of the 29.9s figure and is a same-day fix.
The second constraint is that Rinfit has a content asset it is not using. There are 40 blog articles in the sitemap, organised under 20+ topic tags, covering exactly the queries this category is searched with — ring sizing, ring avulsion safety, proposal ideas. The blog is completely orphaned: counting links to /blogs/* from the homepage, /collections/all and /pages/about-us returns zero on all three. It is absent from the main navigation. The hub page itself is titled "News" — four characters — with an empty meta description. Forty articles of genuine topical authority receive no internal link equity and describe themselves to Google as "News".
The third constraint is authority, and it explains ranking position more than anything else here. Rinfit's Open PageRank is 1.95 (global rank 47,713,068). Groove Life is 4.22 (rank 278,209), QALO 4.09 (557,590), Enso Rings 3.80 (1,508,069). Rinfit sits roughly two full points below every direct competitor on a logarithmic scale — that gap is the single largest structural handicap in this audit, and unlike everything else here it cannot be fixed in the theme. Finally the cheap wins: 43 homepage images have no alt (the only failing Lighthouse SEO audit, and the reason SEO scores 92 rather than 100), collection titles run far under length — /collections/best-sellers is 19 characters — and no page anywhere carries FAQPage schema despite the site having obvious FAQ content.
Top 3 quick wins
loading="eager" + fetchpriority="high" + a preload hint to the hero image and remove it from the lazy-load loop — the largest single lever on a 29.9s mobile LCP.News to a keyword-bearing title, write its missing meta description, and link the blog from the main nav and footer — unlocks 40 already-written articles.Open PageRank for rinfit.com is 1.95, global rank 47,713,068. Measured the same day: groovelife.com 4.22 (rank 278,209), qalo.com 4.09 (557,590), ensorings.com 3.80 (1,508,069). Open PageRank is logarithmic, so a 1.95 → 4.09 gap is not incremental — it is the dominant reason competitors outrank Rinfit on shared head terms regardless of on-page quality. This is a link-acquisition problem, not a theme problem, and it is the one item in this audit that cannot be fixed in code.
PRIORITY: CRITICAL · LONG-TERM
Qualys SSL Labs returns grade A (trust-ignored also A). The gap to A+ is the HSTS policy: the response sends strict-transport-security: max-age=7889238 — about 91 days. A+ requires max-age of at least one year (31536000). Platform-level setting, low effort.
PRIORITY: MEDIUM
227 URLs across four child sitemaps: 129 products, 38 collections, 20 pages, 40 blog articles. The product sitemap carries image:title on 128 of 129 entries — image metadata Google can use for Image Search.
/agents.md returns 200 and robots.txt advertises a UCP/MCP endpoint. Rinfit is already discoverable by AI shopping agents — ahead of most DTC stores on a surface that is starting to matter.
Note on indexed-page count: Google, Bing and DuckDuckGo all served bot-verification challenges to this audit's IP, so a site: count could not be measured reliably and none is claimed here. The 227 figure above is the submitted sitemap count, which is verified. Confirm the true indexed number in Google Search Console → Pages. Google Safe Browsing could not be queried either (the API key is not authorised for that service); no malware or phishing signal was observed on any page loaded during this audit.
Zero rel="alternate" hreflang tags on any page, while robots.txt is full of /*/collections/-style rules that exist to handle Shopify Markets locale prefixes. If Rinfit sells outside the US today this is a real gap; if it does not, the current state is correct and this only becomes a task when international selling starts.
PRIORITY: LOW · CONDITIONAL
Explicitly blocks /cart/, /checkout, /account, /services, and — importantly — faceted crawl traps: /collections/*sort_by*, /collections/*filter*&*filter*, and +/%2B tag-combination URLs. The sitemap is declared at the bottom.
All 12 pages audited return a self-referencing canonical and <html lang="en">. No stray noindex was found on any commercial page.
http://rinfit.com resolves through a two-hop redirect chainMeasured with curl -L: http://rinfit.com/ → 2 redirects → https://www.rinfit.com/. Every other entry point is a single hop (https://rinfit.com/ → 1, http://www.rinfit.com/ → 1). Chains leak a little crawl budget and add latency for anyone typing the bare domain. Collapsing to a single 301 is an edge-rule change.
PRIORITY: MEDIUM · QUICK WIN
?sort_by=price-ascending canonicalises to the clean collection URL. ?variant=12345 canonicalises to the clean URL. Neither creates an indexable duplicate.
/collections/shop-all?page=2 self-canonicalises and emits rel="prev" / rel="next". This is the correct modern pattern — page 2 stays indexable in its own right rather than being canonicalised away.
/pages/about-us/ returns 200 but canonicalises to the non-slash URL, so no duplicate is created. A non-existent collection returns a genuine 404, not a soft-200.
In the homepage's raw HTML: 371 loading="lazy", 0 loading="eager", 0 preload image hints, and only 2 fetchpriority="high". The hero banner that Lighthouse measures as the Largest Contentful Paint sits inside that lazy set, so the browser defers the single resource it is being graded on. Fix: mark the first hero slide loading="eager" fetchpriority="high", add a matching preload, and exclude it from the theme's lazy loop.
PRIORITY: CRITICAL · QUICK WIN
Fetched /products/silicone-ring-for-men-black with a Googlebot user-agent: 1 <h1>, prices present as "price":1999, 4 JSON-LD blocks, and add-to-cart markup — all in the raw response. No __NEXT_DATA__, no __NUXT__, no data-reactroot. Google does not need to execute JavaScript to read this store.
Shopify.theme reports Prestige 10.11.1. A supported Theme-Store base means the performance fixes below are template edits, not a rebuild.

Current (47): Rinfit™ Silicone Rings | Designed for Real Life. It is brand-first and leaves ~13 characters of SERP real estate unused — space that could carry a qualifier the category is actually searched with. Competitors use 55–70. Suggested (59): Silicone Wedding Rings for Men & Women | Rinfit™.
PRIORITY: MEDIUM · QUICK WIN
Current (133): Discover Rinfit™ silicone rings: patented styles, flexible comfort, and modern designs. Perfect for work, fitness, and everyday wear.. It describes but never asks. 27 characters spare — enough for the trust proof the brand already owns ("1M+ rings sold", "lifetime warranty") plus a CTA.
PRIORITY: MEDIUM · QUICK WIN
The homepage emits H1 then 17 consecutive H2s and no H3 at any point. Section headers and individual product-card titles all sit at the same level, so nothing signals which blocks are sections and which are items within them.
PRIORITY: LOW
Silicone Wedding Rings - Designed for Real Life — single H1, present in raw HTML, and it carries the commercial term ("silicone wedding rings") that the title tag itself omits.
og:title, og:description, og:image (2048px), og:type, twitter:card=summary_large_image and a favicon are all present. Shared links render correctly.
maximum-scale=5.0 rather than the accessibility-hostile 1.0 — pinch-zoom works.

| Page | Title | Title len | Meta desc len | H1 count | Raw words |
|---|---|---|---|---|---|
/blogs/news | News | 4 | 0 | 1 | 707 |
/collections/best-sellers | Rinfit Best Sellers | 19 | 140 | 1 | 1,349 |
/collections/silicone-rings | Rinfit Quality Silicone Rings | 29 | 144 | 1 | 1,463 |
/collections/men-rings | Silicone Rings For Men | Rinfit | 31 | 155 | 1 | 628 |
/pages/about-us | ABOUT US | Rinfit Quality Silicone Rings | 40 | 145 | 1 | 778 |
/products/womens-surprise-ring | Women's Surprise Silicone Ring | Rinfit | 39 | 122 | 1 | 949 |
/products/silicone-ring-for-men-black | Silicone Ring for Men- Black - LIFETIME WARRANTY! | Rinfit Design | 65 | 155 | 1 | 2,773 |
/products/new-heart-frame | NEW! Heart Frame Collection - Women's Silicone Rings with Metal Heart | 73 | 155 | 1 | 1,574 |
/blogs/news/measure-silicone-ring-size | How to Measure Your Silicone Ring Size | Rinfit Silicone Rings | 62 | 140 | 1 | 895 |
/blogs/news — title is 4 characters, meta description is 0 characters. This page is the entry point to 40 articles and 20+ topic tags. As written it competes for the word "news" and tells Google nothing about the site. Suggested title (51): Silicone Ring Guides: Sizing, Care & Safety | Rinfit, plus a 150–160 character description built from the existing tag taxonomy.
PRIORITY: CRITICAL · QUICK WIN
/collections/best-sellers is 19 characters ("Rinfit Best Sellers") — a commercial landing page using a third of the available SERP width and containing no product noun at all. /collections/silicone-rings is 29 ("Rinfit Quality Silicone Rings"), leading with the brand rather than the term being searched. Rewrite all 38 collection titles keyword-first, brand-last: e.g. Best Selling Silicone Rings for Men & Women | Rinfit (52).
PRIORITY: CRITICAL
/products/new-heart-frame runs 73 characters — Google truncates around 60, so "with Metal Heart" is cut. /products/womens-surprise-ring is 39 chars with a 122-char description — both short. The other two products sampled sit correctly at 65/155 and 70/155, so this is catalogue inconsistency rather than a template fault.
PRIORITY: MEDIUM
/collections/men-rings is thin at 628 raw wordsLess than half the content of the sibling collections (1,349–1,463 words) despite targeting "silicone rings for men" — one of the highest-volume commercial terms in this category. The H1 is also just MEN RINGS, which is not a phrase anyone searches.
PRIORITY: MEDIUM
All 11 inner pages return exactly one <h1> and a self-referencing canonical matching the fetched URL. No duplicate-H1 or cross-canonical errors anywhere in the sample.
Three of four products sampled hit 155 characters — effectively the ideal length. The product template is doing its job; the gaps are at collection and blog level.
/blogs/news/measure-silicone-ring-size: 62-char title, 140-char description, 895 words, Article schema. The articles are well-built — which is exactly what makes the orphaning in Block 5 so costly.
No duplicate title tags found across homepage, four collections, four products, blog hub and blog article.
FAQPage schema anywhere on the siteZero FAQPage blocks across all 12 pages audited. Rinfit has the source material — sizing, warranty, material safety, ring avulsion — and this category's SERPs are full of question-shaped queries. FAQPage markup is one of the few remaining ways to occupy extra vertical space in a result.
PRIORITY: MEDIUM
Store schema declares hours and a phone the site never showsThe homepage emits a Store entity with address, telephone, priceRange and openingHours. But no phone number, address or tel: link is visible anywhere on the homepage (Block 12). Structured data asserting a walk-in storefront that a national DTC brand does not operate is a mismatch risk — either surface the NAP on-site or switch the entity to OnlineStore.
PRIORITY: MEDIUM
ItemListCollections emit CollectionPage + BreadcrumbList only. Adding ItemList with the product set lets Google associate the individual products with the category page explicitly rather than inferring it.
PRIORITY: LOW
Product schema has aggregateRating but no review nodesAll four products sampled include aggregateRating — good — but none embed individual review objects, while Loox is installed and actively collecting them. Passing a handful of reviews into the markup strengthens the rating's credibility.
PRIORITY: LOW
4 of 4 products: name, image, description, sku, brand, offers and aggregateRating — the full set required for rich product results with stars and price.
Rinfit emits four entities (Organization, WebSite, Store, BreadcrumbList). QALO emits one (WebPage), Enso Rings two, Groove Life three. WebSite carries potentialAction, enabling a sitelinks search box.
Article present on blog posts; BreadcrumbList on every single page type audited. No JSON-LD parse errors on any page.
The product sitemap contains slugs such as /products/copy-of-couture-collection-by-rinfit-3-rings-set-silicone-rings-for-women-size-4-10 — a copy-of- prefix left over from a duplicated product, at 88 characters. Cosmetic rather than damaging, but copy-of- in a public URL reads as unfinished. Change with a 301 only if the page has meaningful traffic.
PRIORITY: LOW
No uppercase characters, no underscores, no query-string IDs in any canonical path. Shopify's /collections/ and /products/ structure keeps crawl depth at 2–3 clicks from the homepage.
Every entry point terminates at https://www.rinfit.com. Shopify reports the reason explicitly in the response header: x-redirect-reason: canonical_host_redirection.
The homepage (H1: Silicone Wedding Rings), /collections/silicone-rings (H1: SILICONE RINGS) and /collections/shop-all all target the same head term with no differentiation in title or H1. Google will pick one, and it may not be the one Rinfit wants ranking. Assign each a distinct intent — homepage = brand, /collections/silicone-rings = the category term, /collections/shop-all = full catalogue with a clearly distinct title or a noindex.
PRIORITY: MEDIUM
Sort and variant parameters canonicalise to the clean URL, and robots.txt blocks filter-combination crawl traps. The classic Shopify faceted-duplication problem does not exist here.
All nine titles in the Block 3 table are distinct, and every page self-canonicalises correctly.
Counting href values matching /blogs/ in the raw HTML of three key pages: homepage 0, /collections/all 0, /pages/about-us 0. The hub itself contains 64 internal blog links, so the cluster is well-connected internally — but nothing on the commercial site links into it. The main navigation (Shop · Best Sellers · Reviews · Size Guide · Company · Contact Us) has no Blog entry, visible in the screenshots. Forty articles carrying topical authority for exactly this category receive no link equity and are reachable only via the sitemap.
PRIORITY: CRITICAL · HIGH IMPACT
BreadcrumbList JSON-LD is emitted site-wide, but no breadcrumb element renders in the DOM on the homepage or collection pages. The markup asserts a navigational path that users cannot see and that Google cannot corroborate on-page.
PRIORITY: MEDIUM
Four <a> elements on the homepage contain neither text nor an alt-bearing image, passing no relevance signal to their destination.
PRIORITY: LOW
252 links on the homepage — 246 internal, 81 unique destinations, including 22 distinct collection URLs. Every collection is reachable in one click from the homepage.
The hub organises 40 articles under 20+ topic tags — Care for your silicone ring, Engagement Rings, Ring Chart, Silicone Ring Size. This is a ready-made topic-cluster structure; it only needs linking from the commercial pages to start working.
43 of 495 rendered images have a missing or empty alt (42 of 493 in raw HTML). This is the single reason the Lighthouse SEO category scores 92 instead of 100 on both mobile and desktop — image-alt is the only failure in the category. The fix is mechanical and also closes an accessibility gap.
PRIORITY: CRITICAL · QUICK WIN
Banner_29_Mobile_1.gif weighs 777KB — the largest single image on the page and heavier than any of the videos. GIF cannot be AVIF-converted by the CDN, so it bypasses the otherwise-working image pipeline entirely. Re-encoding as a muted autoplay MP4/WebM typically lands under 100KB for the same animation.
PRIORITY: MEDIUM · QUICK WIN
Rinfit's homepage carries 493 <img> tags in raw HTML. Groove Life: 111. Enso Rings: 89. QALO: 51. Even fully lazy-loaded, every one costs HTML bytes, DOM nodes and layout work — a direct contributor to the 36.5s of main-thread time in Block 9. Audit which merchandising sections actually earn their place.
PRIORITY: MEDIUM
10 of 495 declare neither width nor height. CLS is currently healthy (0.029 mobile), so this is preventative rather than urgent.
PRIORITY: LOW
File extensions read .jpg, which looks like a problem but is not. Requesting the hero with Accept: image/webp,image/avif returns content-type: image/avif at 12,356 bytes, versus image/jpeg at 14,548 bytes without the header. Shopify's CDN is negotiating AVIF correctly — no image-format conversion work is needed.
363 of 495 rendered images use native loading="lazy". The mechanism is right — the flaw is that it is applied to the LCP hero as well (Block 15).
128 of 129 product sitemap entries carry image:title, giving Google captions for Image Search.

43% of interactive elements measured at 390px width fall below the 44px minimum recommended for touch, concentrated in product-card links, colour swatches and footer navigation. Not an indexing issue, but it is a mobile-usability signal on a site where mobile is already the weak surface.
PRIORITY: MEDIUM
At 390px, document.body.scrollWidth = 390 and window.innerWidth = 390 — an exact match. Nothing breaks the viewport.
width=device-width declared; hero, navigation and product grid all reflow correctly, as the screenshot shows.
| Metric | Mobile | Desktop | Target |
|---|---|---|---|
| Performance score | 35 | 82 | 70+ / 90+ |
| Largest Contentful Paint | 29.9 s | 1.8 s | < 2.5 s |
| Total Blocking Time | 5,630 ms | 110 ms | < 200 ms |
| Cumulative Layout Shift | 0.029 | 0.037 | < 0.1 |
| Speed Index | 36.1 s | 4.7 s | < 3.4 s |
| Time to Interactive | 45.7 s | 6.6 s | < 3.8 s |
| JavaScript bootup time | 24.0 s | 2.7 s | < 2 s |
| Main-thread work | 36.5 s | 6.0 s | < 4 s |
| Total page weight | 9,274 KB | 7,770 KB | < 2,000 KB |
| Server response (TTFB) | 10 ms | 10 ms | < 600 ms |
| Lighthouse SEO score | 92 | 92 | 100 |
| Best Practices score | 54 | 54 | 90+ |
Mobile scores 35; the identical page scores 82 on desktop with a 1.8s LCP. The delta is entirely CPU and JavaScript under mobile throttling: 24.0s of script bootup and 36.5s of main-thread work. Time to Interactive is 45.7s — on a real phone the page is visually present but unresponsive for most of a minute.
PRIORITY: CRITICAL
Breakdown: 164 third-party requests, 4,814 KB of a 9,274 KB page. Scripts overall: 90 requests, 4,465 KB. The largest single contributor is Privy — 27 requests totalling 2,111 KB, including one widget.js at 850KB plus bundles at 460KB and 315KB. A popup app is consuming roughly a quarter of the entire page budget. Either defer it until after first interaction or replace it with a lighter capture tool.
PRIORITY: CRITICAL
The network log shows googletagmanager.com/gtag/js?id=G-TWY8KMWR3Q fetched 3× at 190KB, AW-826433674 3× at 160KB, plus GT-57S4SVG at 149KB — about 1,049 KB of Google tag payload where roughly 350KB would do. This is the classic Shopify symptom of the same GA4/Ads IDs installed via the native Shopify channel, GTM, and a hardcoded theme snippet simultaneously. recaptcha__en.js (347KB) is also requested 4×. Removing the duplicates changes no tracking behaviour.
PRIORITY: CRITICAL · QUICK WIN
Eight video files totalling 1,573 KB load as part of the initial homepage payload (largest 288KB). Combined with the 777KB GIF, media alone accounts for ~2.3MB before a single product image is counted.
PRIORITY: MEDIUM
Shopify's monorail/produce_batch endpoint is called 19× in a single page load, otlp…/v1/metrics 9×, clarity.ms/collect 8×, otlp…/v1/logs 6×. Individually small, but roughly 42 extra round-trips competing with content for the mobile network and main thread.
PRIORITY: LOW
Root document TTFB is 10ms on both runs. Shopify's infrastructure and the Cloudflare edge are doing their job; every second of delay measured here is added client-side by the theme and its apps. That is what makes all of this fixable without a platform change.
CLS is 0.029 mobile / 0.037 desktop against a 0.1 threshold — comfortably passing, and unusual for a page this heavy. First Contentful Paint is 1.1s mobile / 0.6s desktop, so initial render is fast; it is interactivity that collapses.
Desktop LCP 1.8s, TBT 110ms, CLS 0.037 — all three within threshold. Desktop visitors get a fast experience today.
Measured with Lighthouse 13.4.0 in local headless Chrome (mobile preset with standard throttling; desktop preset). The Google PageSpeed Insights API returned quota and authorisation errors for this project on the audit date, so lab data was generated directly rather than via the API. CrUX field data (real-user Core Web Vitals) is not included for the same reason — verify it in Google Search Console → Core Web Vitals, where it may differ from these lab figures.
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. Well past the 10-host threshold where third-party cost becomes the dominant performance factor. AdRoll alone spans three hostnames.
PRIORITY: MEDIUM
Lighthouse flags third-party cookies, deprecated API usage, image aspect-ratio mismatches and logged console issues. Not a direct ranking factor, but third-party cookie deprecation will degrade the retargeting stack this site leans on heavily.
PRIORITY: MEDIUM
strict-transport-security: max-age=7889238. Raising it to 31536000 (one year) is what moves the Qualys grade from A to A+ (see Block 0).
PRIORITY: MEDIUM · QUICK WIN
content-security-policy: block-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests, plus x-frame-options: DENY, x-content-type-options: nosniff, x-xss-protection, x-permitted-cross-domain-policies: none and HSTS. A stronger header set than most Shopify stores ship with.
No http:// images, scripts or stylesheets anywhere in the rendered DOM. HTTPS is clean end to end.
GTM, GA4, Google Ads, Meta Pixel, TikTok Pixel and Microsoft Clarity are all installed and firing. Measurement is not a gap here — consolidation is (Block 9).
The About page states Rinfit is a female-founded brand started in 2015, and the homepage carries an "Over 1M Rings Sold" section. Neither fact appears in the homepage title, the meta description, or any structured data. Meanwhile 40 articles on ring sizing, ring avulsion and ring care — the substance behind the expertise claim — sit orphaned (Block 5). E-E-A-T here is a packaging problem, not a substance problem.
PRIORITY: CRITICAL
Articles carry Article schema but no visible author byline or credentials. For safety-adjacent topics like ring avulsion, an attributed author materially strengthens the trust signal.
PRIORITY: MEDIUM
Thin for the page carrying the brand's entire credibility story — patents, materials, warranty and founder narrative are all available and mostly unused.
PRIORITY: LOW
About, Contact, Privacy and social profiles are all linked from the homepage; sameAs in Organization schema connects the brand to its social identities.
Loox is installed, a Reviews link sits in the main navigation, and aggregateRating flows into Product schema on every product checked.
3,315 raw words versus Groove Life 1,873, Enso Rings 1,040, QALO 587. Rinfit has the most substantive homepage in its competitive set.
The Store entity declares address, telephone and openingHours, but the homepage renders no address element, no tel: link and no map embed. For a national DTC brand with no walk-in retail this markup should be OnlineStore or plain Organization; if there is a real location, surface the NAP on-site so the claim is corroborated.
PRIORITY: MEDIUM
A Contact Us page is linked from the main navigation, and Organization schema includes a contactPoint. For a nationally-shipping DTC store, local-pack optimisation is not a relevant channel — no work is needed here beyond the schema correction opposite.
| Site | Authority | Title (chars) | Meta desc (chars) | Raw words | Schema types | Images |
|---|---|---|---|---|---|---|
| rinfit.com | 1.95 | 47 | 133 | 3,315 | 4 | 493 |
| groovelife.com | 4.22 | 55 | 141 | 1,873 | 3 | 111 |
| qalo.com | 4.09 | 70 | 166 | 587 | 1 | 51 |
| ensorings.com | 3.80 | 57 | 132 | 1,040 | 2 | 89 |
Rinfit 1.95 versus Groove Life 4.22, QALO 4.09, Enso Rings 3.80. In global rank terms that is 47,713,068 against 278,209 / 557,590 / 1,508,069. No amount of on-page work closes a gap this size — it requires sustained digital PR and link acquisition. The 40 orphaned blog articles are the most obvious existing asset to build that programme around.
PRIORITY: CRITICAL · LONG-TERM
Rinfit's 47-character title is the shortest of the four; its 133-character description is tied shortest. QALO uses 70 and 166. Rinfit is voluntarily surrendering SERP width to competitors who already outrank it.
PRIORITY: MEDIUM
493 versus 111 / 89 / 51. Rinfit's homepage HTML is 1,402 KB — comparable to Enso Rings' 1,887 KB, but Enso achieves it with 89 images. The image count is a structural outlier and feeds directly into the Block 9 main-thread problem.
PRIORITY: MEDIUM
4 schema entities versus 3 / 2 / 1. Rinfit is the only site of the four emitting both Organization and WebSite with potentialAction.
3,315 raw words — 1.8× Groove Life, 3.2× Enso Rings, 5.6× QALO. Combined with 129 products and 40 articles, Rinfit has more indexable substance than its competitors; the constraint is authority and internal linking, not content volume.
Live SERP-position data could not be captured: Google, Bing and DuckDuckGo all returned bot-verification challenges to this audit's IP, and no ranking positions are claimed here. The comparison above is built from directly-fetched competitor homepages and Open PageRank (dataset last updated 28 Mar 2026), both of which are verifiable. For ranking positions by keyword, pull Google Search Console → Performance.
/blogs/news and write its meta descriptionBlock 3 · criticalhttp://rinfit.com two-hop redirectBlock 14 · medium/collections/men-rings beyond 628 wordsBlock 3 · medium| Block | Task | Category | Fixed Price |
|---|---|---|---|
| 15 | Hero LCP fix — eager loading, fetchpriority, preload hint, exclude from lazy loop | Performance | $120 |
| 9 | Remove triplicate GA4 / Google Ads / reCAPTCHA injections, consolidate to one tag source | Performance | $100 |
| 9 | Privy audit — defer to post-interaction or replace with a lighter capture tool (2,111 KB) | Performance | $250 |
| 6 | Add descriptive alt text to 43 homepage images (closes the only Lighthouse SEO failure) | On-page | $100 |
| 5 | De-orphan the blog — nav and footer entries, related-article modules on collections and products | Architecture | $140 |
| 3 | Blog hub title and meta description, plus article-template meta review | On-page | $70 |
| 3 | Rewrite 38 collection titles and meta descriptions keyword-first | On-page | $150 |
| 11 | Surface founded-2015 / 1M-rings-sold proof in metadata and Organization schema | E-E-A-T | $60 |
| 0 / 13 | Authority gap — link-acquisition strategy, prospect list and outreach angles from the 40 articles | Off-page | $150 |
| Critical subtotal | $1,140 | ||
| Block | Task | Category | Fixed Price |
|---|---|---|---|
| 6 | Re-encode the 777KB GIF banner as muted autoplay MP4/WebM | Performance | $70 |
| 9 | Lazy-load or defer the 8 homepage videos (1,573 KB) | Performance | $70 |
| 2 / 13 | Expand homepage title to ~59 chars and meta description to 150–160 with a CTA | On-page | $50 |
| 3 | Normalise product title and description outliers across the catalogue | On-page | $70 |
| 4 | Add FAQPage schema to product, sizing and care pages | Structured data | $90 |
| 4 / 12 | Correct Store → OnlineStore, remove unsupported openingHours and NAP claims | Structured data | $50 |
| 5 | Render visible breadcrumbs on collection and product templates | Architecture | $80 |
| 10 | Third-party script audit across 16 hosts; address Best Practices failures (score 54) | Performance | $100 |
| 0 / 10 | Raise HSTS max-age to one year (unlocks SSL A+) | Security | $40 |
| 14 | Flatten the http://rinfit.com two-hop redirect to a single 301 | Technical | $35 |
| 8 | Enlarge 154 sub-44px tap targets across cards, swatches and footer | Mobile UX | $85 |
| 3 | Expand /collections/men-rings copy and rewrite its H1 | Content | $75 |
| 16 | Resolve "silicone rings" cannibalisation across homepage / silicone-rings / shop-all | Strategy | $75 |
| 11 | Author bylines and credentials across blog articles | E-E-A-T | $60 |
| Medium subtotal | $950 | ||
| Block | Task | Category | Fixed Price |
|---|---|---|---|
| 6 / 13 | Homepage image-count audit — reduce 493 images toward competitor norms | Performance | $80 |
| 4 | Add ItemList to collections and review nodes to Product schema | Structured data | $50 |
| 2 | Introduce H3 levels so the 17 flat H2s form a real hierarchy | On-page | $45 |
| 11 | Expand the About page beyond 778 words with patent and warranty detail | Content | $55 |
| 9 | Reduce duplicate analytics beacon loops (monorail 19×, Clarity 8×) | Performance | $50 |
| 5 / 6 | Fix 4 empty anchor-text links and add explicit dimensions to 10 images | Technical | $35 |
| 7 | Clean legacy copy-of- product slugs with 301s where traffic justifies it | Technical | $40 |
| 1 | hreflang implementation — only if international selling begins | Technical | $55 |
| Low subtotal | $410 | ||