# Simple SEO Data Extractor (`onescales/simple-seo-data-extractor`) Actor

Grab SEO data from any webpage / URL and export the URL, Title Tag, Meta Description, Meta Keywords, Status Code, H1, H2, Canonical Tag and Meta Robots easily. Run the scraper for 1-100,000 pages. Run one time or on schedule or via API and Get an SEO Report for Any Site.

- **URL**: https://apify.com/onescales/simple-seo-data-extractor.md
- **Developed by:** [One Scales](https://apify.com/onescales) (community)
- **Categories:** SEO tools, E-commerce, Developer tools
- **Stats:** 482 total users, 1 monthly users, 100.0% runs succeeded, 6 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $10.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

Grab SEO data from any webpage / URL and export the URL, Title Tag, Meta Description, Meta Keywords, Status Code, Canonical Tag and Meta Robots easily. Run the scraper for 1-100,000 pages. Run one time or on schedule or via API.

### Use Cases

- **SEO Monitoring**: Track SEO data for your websites or competitors over time.
- **Content Analysis**: Analyze meta tags to optimize webpage content for search engines.
- **SEO Audits**: Collect data for comprehensive SEO audits across multiple pages.
- **Competitor Analysis**: Track SEO data for your competitors over time.

### How to Use

1. **Input URLs**: In the Apify frontend UI, go to the "Input" tab and enter the list of URLs you want to scrape. By default, it’s prefilled with "https://onescales.com/" for your testing. Please change it to your URL's.
2. **Adjust Settings**: Optionally, modify the `timeout` (default: 600 seconds) or note the `memory` reference (default: 512MB). Set actual memory in the run settings if needed.
3. **Run the Scraper**: Click "Start" to begin scraping.
4. **View Results**: Once complete, check the "Dataset" tab for the extracted SEO data.

**Note**: For large batches (e.g., 10,000 pages), consider increasing memory in the run settings beyond 512MB for optimal performance as well as increasing the timeout.

### Output Example

The scraper outputs data to a dataset with these fields:

- `url`: The scraped webpage URL
- `title`: The page’s title tag
- `metaDescription`: The meta description tag content
- `metaKeywords`: The meta keywords tag content
- `metaRobots`: The meta robots tag content
- `canonicalTag`: The canonical tag content
- `numLinks`: Number of a href links on page
- `statusCode`: The status code of the page (i.e. 200, 404, 301)
- `h1Tags`: Lists all h1 tags
- `h2Tags`: Lists all h2 tags
- `h3Tags`: Lists all h2 tags

**Sample Output:**

```json
[
  {
    "url": "https://www.rossstores.com/",
    "statusCode": 200,
    "titleTag": "Ross Dress For Less",
    "metaDescription": "Ross Dress for Less offers the best bargains on the latest trends in clothing, shoes, home decor and more! Find your store today!",
    "metaKeywords": "",
    "metaRobots": "index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1",
    "numLinks": 38,
    "h1Tags": "Ross Stores Dress For Less",
    "h2Tags": "Summer Fun Starts at Ross!\nSummer Fun Starts at Ross!\nWarm Weather Style!\nWarm Weather Style!\nSave 10% today!\nSave 10% today!\nWe’re Hiring!\nWe’re Hiring!\nThe perfect gift for any occasion!\nThe perfect gift for any occasion!\nFound In-Store: Pop-tastic Fun!\nSign Up for Emails\nSign Up for Emails\nOur Company\nSupport\nCredit Card\nPrivacy & Terms",
    "h3Tags": "View More",
    "canonicalTag": "https://www.rossstores.com/"
  } 
]
```

### How to Export

Exporting your data is simple and seamless:

- Access Results: After running the scraper, view the collected data in Apify’s interface.
- Select Export Option: Choose the CSV export option to download your data.
- Open in Tools: Import the CSV file into Excel, Google Sheets, or your preferred analysis tool to visualize and explore the data.
- Share or Store: Save the file for future reference or share it with your team for collaborative analysis.

### Need Help

Have questions or need additional features? We’re here to support you!Just fill out the form at https://docs.google.com/forms/d/e/1FAIpQLSfsKyzZ3nRED7mML47I4LAfNh_mBwkuFMp1FgYYJ4AkDRgaRw/viewform?usp=dialog and we’ll try our best to help as quick as possible.

### Related Keywords

SEO, SEO Report, search engine optimization, h1, h2, h3, h4, h5, title tag, meta tag, meta description, SEO tool, actor, AI, API, apify, at scale, auditor, automated, automation, batch, bulk, checker, converter, crawler, cron, CSV, dataset, detector, downloader, Excel, export, exporter, extractor, fetcher, finder, free tool, generator, Google Sheets, HTML, ifttt, instant, JSON, lookup, make, make.com, maker, mass, MCP, monitor, n8n, no-code, no API key required, parser, PDF, pipeline, report, scanner, schedule, scheduled, scraper, spreadsheet, tool, validator, verifier, webhook, workflow, XML, zapier

# Actor input Schema

## `urls` (type: `array`):

An array of URLs to scrape. Example: \['https://example.com/']

## `timeout` (type: `integer`):

Maximum time in seconds to wait for each page to load.

## `memory` (type: `integer`):

Maximum memory in MB the actor can use.

## Actor input object example

```json
{
  "urls": [
    "https://onescales.com/"
  ],
  "timeout": 1200,
  "memory": 512
}
```

# Actor output Schema

## `extractedData` (type: `string`):

All extracted SEO data from the scraped URLs

# 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 = {
    "urls": [
        "https://onescales.com/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("onescales/simple-seo-data-extractor").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 = { "urls": ["https://onescales.com/"] }

# Run the Actor and wait for it to finish
run = client.actor("onescales/simple-seo-data-extractor").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 '{
  "urls": [
    "https://onescales.com/"
  ]
}' |
apify call onescales/simple-seo-data-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,onescales/simple-seo-data-extractor"
        }
    }
}
```

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/vYKIXfBDWmdWiY9hv/builds/ruhtsMVaXqgTbrIxa/openapi.json
