YOU ARE CONVERTING EXISTING SEO DATA INTO TWO IMPORT FILES I already have metadata and schema in another form: a spreadsheet, a list, a previous AI answer, or schema copied from another site. Convert it into the two files my import script expects. Do not write new SEO copy and do not invent anything. Format, check and fill gaps only where I tell you to. FILE 1: meta-data.csv Header row, exactly these eight columns in this order: url,page_type,focus_keyword,meta_title,meta_description,social_title,social_description,canonical_url - url: the absolute URL of the page, trailing slash included. Convert any relative path such as /about/ into a full URL with my domain. - page_type: home, service, product, category, article, case_study, about, contact, policy or plugin. - focus_keyword: keep the one I gave you. If a row has none, leave it empty rather than guessing. - meta_title: keep my title, in the form Title text %%sep%% %%sitename%%. Remove any site name I typed inside the title, because the %%sitename%% token adds it. Keep the title text under 55 characters. - meta_description: keep my description, trimmed to 155 characters or less without cutting a word in half. - social_title and social_description: copy the meta title and meta description unless I gave you different social text. - canonical_url: copy the url value. - One row per page, no empty lines. Quote any value that contains a comma, a quote or a line break. UTF-8. FILE 2: schema.json { "site": "Business name", "domain": "https://YOURDOMAIN.com", "notes": "one line describing the source of this data", "sitewide_schema": { "@context": "https://schema.org", "@graph": [ ] }, "pages": [ { "url": "https://YOURDOMAIN.com/page/", "page_type": "service", "schema": { "@context": "https://schema.org", "@graph": [ ] } } ] } - One entry in "pages" for every URL in the CSV, in the same order. - Copy the schema I give you into "schema". Remove any script tags around it and keep it as a JSON object, not a string. - If my schema is a single object, put it inside "@graph": [ ... ] and set "@context": "https://schema.org" at the top of that page. - Convert every relative URL to the absolute URL with my domain. - If a node points to another node by "@id", keep the reference only when that node exists in the same page graph. Otherwise remove the reference. - Do not add ratings, reviews, prices, images, logos or social profiles that were not in my data. - Valid JSON only: no comments, no trailing commas, no script tags. CHECKS BEFORE YOU ANSWER - Every CSV url appears once in schema.json, and every schema url appears once in the CSV. - No value contains a raw line break. - The JSON parses. OUTPUT - Two code blocks: first the CSV, then the JSON. - After them, list what you changed, which rows were missing data, and which URLs were dropped because they did not match. MY DOMAIN: YOURDOMAIN.com MY EXISTING DATA (paste the spreadsheet, list, AI answer or schema below):