Page Extractor

Visit a list of URLs and extract the same fields from every page — one row per URL. Feed it CSVs, previous extractions, or sitemaps. No URL count cap.

Visit a list of URLs and extract the same fields from every page Free & uncapped locally Runs in cloud Recipes supported

The Page Extractor visits a list of URLs and pulls the same fields from every page — one row per URL. It's built for "collection of similar pages" jobs: product pages, profiles, articles, Google Maps places.

URL LISTvisit eacha list of URLsone row per page
Point it at a list of URLs; it visits each and fills one row per page.
Page Extractor step 1 with a URL list loadedScreenshot coming soon
Feed it URLs — it visits each one and fills a row.

Step 1: Where the URLs come from

Five sources (there's no free-text paste box in this tool):

SourceWhat it does
Upload CSVAuto-detects which columns contain URLs; you pick the column
Data SourcePulls a URL column from a previous extraction stored locally — this is how List Extractor results chain into the Page Extractor: extract a list of links, then visit each link
Sitemap ExplorerDiscovers URLs from the current site's sitemaps — see Sitemap Explorer
Cloud Data SourceCloud-synced tables, when you're signed in to the cloud
RecipePrefilled by a saved recipe

The first URL loads into your active tab so you can pick elements against a real page. Individual URLs can be removed before starting.

Step 2: What to extract

You build an ordered list of extraction steps; each step adds columns to the row:

  • Element picker — click elements on the loaded page to define fields. Each picked element gets robust multi-selector fallbacks.
  • Automatic Extract — zero-config structured-data extraction (see below).
  • Page Metadata — the head tags only: title, description, image, author, dates, canonical URL (see below). A specialist step for when metadata is exactly what you're after. Free.
  • Phone Numbers — regex plus tel: link detection across the page. Free.
  • Google Maps — place name, rating, address, phone, website, hours and more from Google Maps listings. Offered when Maps URLs are detected in your list; needs no picked elements.

Automatic Extract: structured data without selectors

If a page publishes structured data, you may not need to pick anything. Automatic Extract reads a page's JSON-LD, microdata, and Open Graph/Twitter/standard meta tags, identifies the page's subject entity (Product, Article, JobPosting, Event, Recipe, LocalBusiness, real-estate listing and more), and flattens it into one clean row per URL. If the first page you load contains structured data, the step is added for you automatically.

For products, columns include: name, price, availability, currency, brand, color, size, material, rating with review count, category, SKU, GTIN, MPN, images, and more. It works on any site with structured data — WooCommerce, Magento, custom stores, news sites, job boards.

The Data Table showing auto-extracted product columns from Automatic ExtractScreenshot coming soon

Variants consolidate into one row per URL — a product with 12 variants stays one row, with multi-value cells joined by commas. Known limits: it doesn't read JavaScript globals or RDFa, and list-style pages collapse to a single row.

Page Metadata: the head tags as fixed columns

Most runs don't need this step — Automatic Extract above already reads Open Graph and meta tags, and falls back to them for name, description and image when a page publishes no structured data. Reach for Page Metadata when the metadata itself is the point: SEO audits, share-preview checks, or a content inventory where you want the head tags and nothing else. You get the same columns for every URL, whatever each page is about:

ColumnRead from
Titleog:titletwitter:title → JSON-LD headline/name → <title> → first <h1>
Descriptionog:descriptiontwitter:description<meta name="description"> → JSON-LD description
Imageog:imagetwitter:image<link rel="image_src"> → JSON-LD image
Site Name, Content Typeog:site_name, og:type (JSON-LD publisher/@type as backup)
Author, Published, Updated<meta name="author">, article:published_time/article:modified_time, JSON-LD author/dates
Keywords, Language, Canonical URL<meta name="keywords">/article:tag, <html lang>/og:locale, <link rel="canonical">
Title Tag, H1, Favicon, Robots, Twitter Card, Schema Typesthe raw document signals, kept separate from the resolved Title
The Data Table showing Title, Description and Image columns filled identically across a list of article URLsScreenshot coming soon

Nothing is invented: a field the page never declared stays empty rather than being guessed. Every meta tag outside the table above is still captured in a hidden All Meta Tags column — switch on Show debug columns in the Data Table to see it.

Only want titles and descriptions? Every field is on by default; hit Customize on the step (or the sliders icon) to un-check the ones you don't need. Each field you keep is one column, and the column order stays the same however you tick the boxes. The selection travels with the automation, so a cloud run and a saved recipe extract exactly the fields you chose.

The Page Metadata field picker with fields grouped into Core, Publishing, Technical & SEO, and Advanced, most checkedScreenshot coming soon

Running it in the cloud or via an AI agent

A Page Metadata step you build here runs unchanged in the cloud and in any scheduled run, field selection included. An AI agent can also start one from scratch — those always capture the full field set, so build the step here when you want a narrowed one.

Which one do I want? Start with Automatic Extract — it identifies what each page is about and is the right answer for catalogues and most page data, titles and descriptions included. Add Page Metadata when you specifically want the head tags in a fixed shape. They're additive steps, so running both is fine: Automatic Extract for the page's subject, Page Metadata for its metadata, each in its own columns.

Configuration highlights

SettingDefaultNotes
Concurrent tabs1Run several tabs in parallel with the Faster Extraction toggle for large batches
Request delay1000 ms0–5000 ms
Page timeout30 s5–120 s
Anti-bot randomizationoffWhen on: randomized delay variation plus extra random pauses between pages
Retries2 attempts per URLTransient failures (timeouts, network errors) retry with backoff; permanent ones (404, blocked) don't. Failures are reported per URL and never abort the batch

There is no cap on URL count — you can process as many pages as you like.

Recipes

Recipes are fully supported — URLs, steps, picked elements, and configuration all round-trip.

On this page