Shopify SEO & Performance Auditor avatar

Shopify SEO & Performance Auditor

Pricing

from $4.25 / 1,000 findings

Go to Apify Store
Shopify SEO & Performance Auditor

Shopify SEO & Performance Auditor

Audits public Shopify stores for prioritized technical SEO, canonical, duplicate-content, structured-data, image, Lighthouse, and third-party bloat findings.

Pricing

from $4.25 / 1,000 findings

Rating

0.0

(0)

Developer

Trove Vault

Trove Vault

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Turn a Shopify storefront into a prioritized SEO and performance backlog. This Actor samples important store templates, checks Shopify-specific URL behavior, runs mobile Lighthouse, and returns consolidated findings with severity, affectedPages, evidence, recommendedFix, estimatedEffort, and confidence.

No Shopify admin access is required. Use it for onboarding, QA, and monitoring.

What does this Shopify SEO audit check?

  • Canonical tags on product variants and collection-scoped product URLs
  • Collection pagination, crawl directives, sitemap coverage, and response errors
  • Missing, duplicate, short, or long titles and meta descriptions
  • Duplicate sampled content and heading problems
  • Missing image alt text
  • Missing or conflicting Product JSON-LD
  • Mobile Lighthouse performance, lab LCP, CLS, Total Blocking Time, and page weight
  • JavaScript and third-party transfer weight with cautious provider attribution
  • Origin-level CrUX LCP, CLS, and INP when the Actor operator configures field-data access

The output includes healthScore, A–F grade, category scores, and a ranked action list. It does not estimate rankings, traffic, revenue, or conversion loss.

Who uses this Shopify performance checker?

  • Agencies scope client work from prioritized evidence.
  • Merchants identify technical issues before hiring specialists.
  • Consultants compare theme or app releases.
  • CRO teams isolate page-weight and third-party script risks.

How does the audit work?

The Actor confirms Shopify signals, reads robots.txt and XML sitemaps, and samples home, product, collection, content, and policy pages. Separate requests validate variant, collection-product, and pagination behavior.

A five-page quick audit measures Lighthouse on the homepage. Larger audits measure up to three templates: homepage, product, and collection. Coverage, Lighthouse measurements, CrUX availability, and soft failures are stored in RUN_SUMMARY.

How do I run the Actor?

  1. Open the Actor in Apify Console.
  2. Add one or more public Shopify storefront homepages.
  3. Keep Pages per Store at 5 for a quick test or use 25 for broader triage.
  4. Run the Actor and open Prioritized Shopify Audit Findings.
  5. Use priority for action order and sampleUrls to verify each finding.

Example input:

{
"startUrls": [{ "url": "https://www.deathwishcoffee.com" }],
"maxPagesPerStore": 25,
"runId": "client-audit-2026-08"
}

What input does the Shopify auditor accept?

FieldRequiredBehavior
startUrlsYesOne to ten public Shopify storefront URLs; homepage URLs provide the best discovery path.
maxPagesPerStoreNoRepresentative pages per store, 5500; default 25. Five pages use one Lighthouse target; larger runs use up to three.
proxyConfigurationNoLeave disabled for open stores; enable Apify Proxy for permitted access-denied, rate-limited, or regional cases.
datasetIdNoExisting dataset that receives a copy of every finding in addition to the default run dataset.
runIdNoClient, project, or workflow identifier copied into every finding and RUN_SUMMARY.

What data does it return?

Each dataset row is one consolidated finding, sorted by priority:

{
"recordType": "finding",
"storeUrl": "https://www.deathwishcoffee.com/",
"healthScore": 84,
"grade": "B",
"categoryScores": {
"technical_seo": 100, "crawlability": 91, "content": 87,
"images": 97, "structured_data": 100, "performance": 53,
"third_party_bloat": 67
},
"priority": 6,
"category": "performance",
"severity": "high",
"issueCode": "LOW_LIGHTHOUSE_PERFORMANCE",
"issue": "Representative pages have a weak mobile Lighthouse performance score",
"affectedPages": 1,
"affectedPercent": 20,
"sampleUrls": ["https://www.deathwishcoffee.com/"],
"pageTypes": ["homepage"],
"evidence": "Mobile Lighthouse performance score: 13/100.",
"recommendedFix": "Prioritize the largest Lighthouse opportunities on representative templates, then retest under the same conditions.",
"estimatedEffort": "medium",
"confidence": "high",
"metricValue": 13,
"metricUnit": "score",
"runId": "client-audit-2026-08"
}

healthScore is derived from weighted categoryScores. Use issueCode for dashboards, priority for action order, and affectedPages with sampleUrls for validation. affectedPercent covers only the sampled pages. Numeric findings add metricValue and metricUnit.

How can I integrate the audit?

Start an asynchronous run with the Apify API:

curl "https://api.apify.com/v2/acts/TroveVault~shopify-seo-performance-auditor/runs" \
-X POST \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url": "https://www.deathwishcoffee.com"}],
"maxPagesPerStore": 5,
"runId": "client-audit-2026-08"
}'

Or use the official Apify JavaScript client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('TroveVault/shopify-seo-performance-auditor').call({
startUrls: [{ url: 'https://www.deathwishcoffee.com' }],
maxPagesPerStore: 5,
runId: 'client-audit-2026-08',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Download results in Apify formats. RUN_SUMMARY contains coverage and measurements. Schedules rerun inputs; datasetId appends to a shared dataset. Apify MCP can start the Actor and inspect results. Nothing is written to Shopify.

How should Lighthouse and Core Web Vitals be interpreted?

Lighthouse provides laboratory measurements: lab LCP, CLS, and Total Blocking Time are not real-user Core Web Vitals. With sufficient Chrome UX Report coverage and configured field access, RUN_SUMMARY.fieldCoreWebVitals can include origin-level p75 LCP, CLS, and INP. Otherwise it records why field data is unavailable.

What are the limitations?

  • Only public storefront evidence is audited. Admin settings, unpublished themes, analytics, Search Console, conversion data, and server-side integrations are unavailable.
  • Protected stores can return partial rows. Headless storefronts may be reported as unsupported.
  • Exact duplicate detection is conservative; near-duplicate copy still requires specialist review.
  • Lighthouse varies with experiments, geolocation, network conditions, and third parties. Compare runs under similar conditions.
  • Third-party attribution identifies a provider, not definitive responsibility for a specific app or theme block.
  • Scores prioritize investigation; they do not predict rankings, traffic, revenue, or conversion uplift. The Actor never modifies the store.

How do I troubleshoot a run?

IssueLikely causeSolution
Site reported as non-ShopifyThe public HTML lacks reliable Shopify signalsSubmit the public homepage; fully headless builds may remain unsupported.
HTTP 403, 429, or access pageDatacenter traffic is blocked or rate-limitedEnable Apify Proxy, reduce the run to five pages, and retry using permitted locations.
Lighthouse unavailable but SEO rows existChrome failed or the page did not stabilizeCheck RUN_SUMMARY.lighthouse.reason, retain the usable SEO findings, and retry with default memory.
No field Core Web VitalsCrUX access is absent or the origin lacks eligible samplesUse Lighthouse for diagnostics and Search Console when you control the store.
Run takes too longThe page sample or number of stores is largeTest one store with five pages, then split large batches across runs.

Shopify SEO Auditor FAQ

Can it audit several stores? Yes. One run accepts up to ten and soft-fails individual targets.

Can it monitor changes? Yes. Schedule runs and use runId or datasetId for a shared history.

Does it need Shopify credentials? No. Never submit credentials, customer data, or private previews.

Is it legal to audit public stores? Use the Actor for authorized audits or legitimate public research, respect applicable terms and laws, and avoid personal data. This documentation is not legal advice.

Support

Open an issue from the Actor page with the run ID, storefront URL, and finding. Never include credentials, customer data, API tokens, or private previews.