See What a Real ML-Ready Dataset Looks Like
A free, real-world SEO dataset showing the structure, schema, and format to aim for when you build your own.
Most "free dataset" downloads are a pile of columns with no explanation. This one is the opposite: 429 real rows, pulled from live Google Search Console data and live on-page HTML across 5 production sites, structured the way a dataset should be for training or testing a model, not just eyeballing in a spreadsheet.
Download it, but more importantly, look at how it's built. Every row pairs an input feature set (what the page is) with a target/label set (how it actually performed in search). That feature/label split is the schema shape you should aim for when you build your own dataset, whatever the domain.
Column-by-column: why each signal matters
Input features (content structure)
- title, meta_description, h1_text — Raw text features for NLP models: length, keyword presence, sentiment, readability.
- h2_count, word_count — Structural depth signals; strong correlates of topical coverage and dwell time.
- schema_types, has_structured_data — Categorical feature for structured-data richness, a known ranking-adjacent signal.
- internal_link_count, has_canonical — Site-architecture signals: internal authority flow and duplicate-content hygiene.
- template_type — Categorical page-type label useful for stratifying or one-hot encoding by template.
Target / label data (real performance)
- total_clicks, total_impressions — Raw GSC volume, the base unit most SEO ML models try to predict or explain.
- avg_ctr_pct, avg_position — Normalized performance targets; position is the most common regression target in SEO ML.
- clicks_first45, clicks_last45, click_trend — A pre-computed time-split, ready to use for trend classification or momentum features.
- fetch_status, fetch_error — Data-quality flags. Real pipelines fail sometimes; this models that honestly instead of hiding it.
Sample rows
| Domain | Page | Word Count | Schema Types | Clicks (90d) | Avg Position |
|---|---|---|---|---|---|
| agebettertoday.com | / | 910 | Organization;WebSite;Dataset;FAQPage | 65 | 32.9 |
| krisada.com | /directory/portfolio/ | 1204 | Organization;CollectionPage;ItemList | 38 | 18.4 |
| datasetsmaker.com | /dataset-library/ | 742 | Organization;WebSite;CollectionPage | 21 | 24.2 |
| as400system.com | /what-is-as400/ | 1560 | Organization;Article;BreadcrumbList | 112 | 9.6 |
| agebettertoday.com | /glossary/supplements/vitamin-k2-mk7 | 307 | DefinedTerm;DefinedTermSet | 0 | 65.8 |
25 columns total per row. Shown here: a readable subset.