# Shopify Store Audit - CRO & SEO Score (`byusuklu/shopify-store-audit`) Actor

Audit any Shopify store against a CRO & SEO checklist: policies, product pages, tracking, email capture, reviews, SEO tags and more. Get a 0-100 score, what was found, and the top fixes in priority order.

- **URL**: https://apify.com/byusuklu/shopify-store-audit.md
- **Developed by:** [Hasan U.](https://apify.com/byusuklu) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $9.90 / 1,000 shopify store auditeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Shopify Store Audit — CRO & SEO Score (27 Checks)

A bulk **Shopify store audit**: run any Shopify store through a conversion and SEO checklist and get back a 0–100 score, what was found on each check, and the fixes that matter most, in order. Paste one store or a few thousand.

Agencies use it to open a sales conversation with something concrete ("your product pages have no structured data and no reviews"), and store owners use it to see what to fix first.

**Try it on 10 stores for $0.10** (the free credit on Apify's free plan covers it). Sites that aren't Shopify, are password-protected or don't load are listed with the reason and never charged.

### How to run it

1. Paste one or more Shopify store URLs into **Store URLs** (two are pre-filled so you can just press Start).
2. Optional: set `maxScore` to keep only stores with the most room to improve.
3. Press **Start**. Each store takes a few seconds; download the results as Excel, CSV or JSON.

### What it checks

These are the 27 checks from our 48-point store audit that can be measured reliably from outside the store. The other 21 (hero copy, imagery, mobile layout and the like) need a person looking at screenshots, so they aren't scored here.

| Area | Checks |
|---|---|
| Homepage | Theme customised (not a free default left as is), social proof / reviews visible |
| Navigation & collections | Menu built from real categories, search available, curated collections |
| Product pages | Description length, number of images, reviews on the page, H1 tag, Product structured data |
| Trust & policies | Refund policy, shipping policy, contact page, about page, Shop Pay, linked social profiles |
| Purchase path | Express checkout buttons |
| Marketing basics | Meta pixel, Google tag, email / SMS capture tool, reviews app, TikTok pixel, newsletter signup |
| SEO basics | Title tag, meta description, image alt text, social share image |

Up to three product pages are sampled per store.

### What you get for each store

| Field | Example |
|---|---|
| Store, country, currency, product count, theme | brooklinen.com, US, USD, 522, Dawn |
| Score and checks passed | 81 · 22 of 27 |
| Top fixes, in priority order | "Product structured data (schema): Most themes add it; if missing, re-enable in theme or add via a free app" |
| Every check | passed or failed, what was found, the fix, impact and effort |
| Homepage load time | 1.1 s |

Fixes are ordered by impact first, then by effort, so quick wins with a big effect come to the top. When several checks share one cause (for example no reviews app), the fix is listed once.

Download as Excel, CSV or JSON, or use the API.

### Filter

`maxScore` keeps only stores at or below a score, e.g. 60, which is handy when you're looking for stores with the most room to improve. Stores above it aren't charged.

### Pricing

$9.90 per 1,000 audited stores ($0.0099 each).

| Stores | Cost |
|---|---|
| 10 | $0.10 |
| 100 | $0.99 |
| 1,000 | $9.90 |

### Good to know

The audit reads public storefront pages only (around a dozen requests per store): `/meta.json`, the homepage, `/products.json`, `/collections.json`, up to three product pages, and the refund, shipping and contact pages. No login, no admin access, no personal data. It never adds anything to a cart.

A check can only see what the storefront shows. An app that loads only after a click, or a page with a non-standard address, may be reported as missing; the `found` field always says what was looked for, so you can verify.

### FAQ

**Do I need access to the store?**
No. The audit reads only public storefront pages, the same ones any visitor sees. No login, no admin or API access.

**Does it work on stores that aren't Shopify?**
No. Non-Shopify sites are listed with the reason and are not charged.

**How is the score calculated?**
It is the share of checks passed (for example 22 of 27 = 81). Each check also has an impact and effort rating, which is used to order the top fixes. Every check shows what was found, so you can verify it.

**Can it miss something?**
Yes. Apps that load only after a click or pages with non-standard addresses may show as missing. The `found` field says what was looked for.

**How many stores can I audit at once?**
One or a few thousand per run. You pay only for stores that were audited and passed your `maxScore` filter.

### Related tools

- [Shopify Store Leads - New Stores, Marketing Gaps & Emails](https://apify.com/byusuklu/shopify-store-auditor): find Shopify stores launched in the last few days, with their marketing gaps and published business emails.

- [Shopify Theme & Apps Detector - Bulk Store Checker](https://apify.com/byusuklu/shopify-apps-detector): see which apps and theme any Shopify store runs.

- [Bulk SPF, DKIM & DMARC Checker](https://apify.com/byusuklu/email-domain-health-checker): SPF, DKIM, DMARC, MX and blocklist check for any domain, with a 0-100 score and fixes.

- [Website Business Contact Finder](https://apify.com/byusuklu/website-business-contact-finder): role-based business emails, contact page, socials and platform for any website.

# Actor input Schema

## `storeUrls` (type: `array`):

Shopify store domains or URLs, one per line, e.g. mystore.com. Non-Shopify, password-protected or unreachable URLs are listed free of charge.

## `maxScore` (type: `integer`):

Optional. Keep only stores whose score (0-100) is at or below this number, e.g. 60 to find stores with the most room to improve. Stores above it are not charged.

## Actor input object example

```json
{
  "storeUrls": [
    "allbirds.com",
    "brooklinen.com"
  ]
}
```

# Actor output Schema

## `overview` (type: `string`):

One row per audited store.

## `fullResults` (type: `string`):

Every check with found value, fix, impact and effort.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "storeUrls": [
        "allbirds.com",
        "brooklinen.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("byusuklu/shopify-store-audit").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "storeUrls": [
        "allbirds.com",
        "brooklinen.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("byusuklu/shopify-store-audit").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "storeUrls": [
    "allbirds.com",
    "brooklinen.com"
  ]
}' |
apify call byusuklu/shopify-store-audit --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,byusuklu/shopify-store-audit"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/viVthmHk8aWA18MPB/builds/yYug2Iubs1IF0pu0V/openapi.json
