Why add contact page JSON-LD
Search engines and AI crawlers read structured data to understand a contact page. A ContactPage node tied to an Organization or LocalBusiness node states the page URL, the brand name, and optional email, phone, and social profile URLs. That is different from the visible form. Schema does not submit leads. It labels the page.
This free generator builds that graph in the browser. You type the public URL and the details you already publish, then copy one <script type="application/ld+json"> block. Empty optional fields are omitted so you do not publish blank strings.
ContactPage vs Organization vs LocalBusiness
ContactPage is the page type. Its url is the contact URL you entered. Organization is the default entity: name, site origin, optional email, telephone, and sameAs profile links. LocalBusiness is the same entity plus an optional PostalAddress when you fill street, city, region, postal code, or country.
Pick LocalBusiness only when a physical address is real and public. Do not add opening hours, geo coordinates, logos, or ratings here.
How to paste the script
Put the script in the contact page <head> or just before </body>. Publish the page, then check it with Google Rich Results Test or the schema.org validator. Fix URL typos on your side; this tool does not crawl your site.
If the page already has JSON-LD, merge graphs carefully so @id values stay unique. This output uses #webpage on the contact URL and #org on the site origin.
FormsReach fit
This utility does not write form fields, api_key, or a submit action. Point a form at https://api.formsreach.com/submit with the HTML form tool or your own markup. After a successful POST you can send visitors to a thank-you URL from the dashboard - use the thank-you URL builder for that link.