SEO Tools
Bulk SEO Metadata Checker
Review titles and meta descriptions from a local CSV export. Map columns, find missing or duplicate metadata, and export findings without uploading your data.
Import your page metadata
Open a local CSV export or paste comma, semicolon, or tab-separated data. Nothing is uploaded or crawled.
Limits: 5 MiB UTF-8, 5,000 data rows, 100 columns, and 10,000 characters per cell. Quoted commas, escaped quotes, and multiline fields are supported. Blank lines are skipped; empty records with separators remain. Malformed data is rejected without a partial import.
Map your columns
Confirm the suggested columns. A URL column and at least one metadata column are needed. Unmapped fields are not checked or counted as missing.
Review settings
These are editable editorial review ranges, not Google limits or ranking rules. Search snippets depend on device width and query, and search engines may rewrite supplied titles or descriptions.
Imported rows
Missing titles
Missing descriptions
Duplicate title groups
Duplicate description groups
Rows with findings
Metadata review
Scroll inside the table to see more rows and columns. Expand a field to inspect its original value.
| Record / URL | Title | Meta description | Findings |
|---|
Understand your metadata export
What does this checker inspect?
It inspects supplied URL/title/description columns. Missing titles and malformed URLs are imported-data issues. Missing descriptions, duplicate text, repeated URLs, conflicting records, and length outliers are review notes. A missing description is not a universal SEO error. Unmapped metadata fields are not checked. Verify that your export is current and complete before changing a page.
How are duplicates and characters counted?
Metadata is trimmed, control characters are replaced, whitespace is collapsed, and Unicode is normalized to NFC. Counts use Unicode code points, not pixels or visual grapheme clusters. HTML entities and markup are treated as supplied text. Duplicate text groups require at least two distinct valid imported URLs. Case is ignored unless you turn that setting off. Repeated URL rows are retained separately; fragments are ignored for URL grouping, while paths, trailing slashes, and query order remain significant.
Do filters change duplicate groups?
No. Findings and group IDs refer to the complete imported dataset. Filters only change which rows are shown or exported. Use a group button in a finding to inspect all its members. Exports include all filtered rows across pages, not just the visible 25 rows. Record numbers refer to logical CSV records, not physical lines inside quoted multiline fields.
What is included in CSV exports?
Exports contain mapped original values, normalized URLs, normalized character counts, mapping flags, duplicate group IDs, and findings. Unmapped extra columns are not exported. Source values are retained; spreadsheet formula prefixes receive a leading apostrophe to prevent execution. Files use comma-separated UTF-8 with a BOM for spreadsheet compatibility. HTML-like metadata is displayed as text and is never executed.
Are my pages fetched or data saved?
No. Files are decoded locally as UTF-8, with no processing endpoint, crawling, API requests, uploads, or browser storage. The checker cannot verify live metadata, canonical URLs, indexability, rankings, or AI visibility. Edits clear stale results and exports; failed file reads preserve existing input.
References: Google title links · Google snippets.







