Google Forms alternative for your website: Ikiform vs Google Forms
Google Forms is a free hosted builder tied to Google accounts; Ikiform is a backend for forms on your own site. When each fits, and how to replace a Google Forms iframe.
Google Forms is free, familiar and good at what it does: you build a form in Google's editor, share a link or paste an iframe, and responses land in a summary view or a Google Sheet. For surveys, sign-up sheets and internal requests it is often all anyone needs.
It is less suited to forms inside your own website. The embed is an iframe with Google's look, file uploads need respondents to sign in to Google, and there are no webhooks without writing an Apps Script trigger. Ikiform takes the opposite approach: the form is your own HTML, and Ikiform is only the backend behind it.
At a glance
| Feature | Ikiform | Google Forms |
|---|---|---|
| What it is | A backend for forms you build | A hosted form builder inside Google Workspace |
| Price | Pro from $6/mo for 500 submissions, up to $399/mo for 1,000,000. Every feature on every tier. Yearly is 10 months' price for 12 | Free with a Google account, and part of paid Workspace plans |
| Design | Your own markup and CSS | Google's layout with theme colours and a header image, embedded as an iframe |
| Where answers go | Your workspace, then webhooks, email, CSV and the API | The form's summary and an optional linked Google Sheet |
| File uploads | Not supported yet. A post with a file gets 422 files_not_supported | Yes, saved to the owner's Drive. Respondents must sign in to a Google account |
| Webhooks | 3 endpoints per workspace, signed with HMAC-SHA256, 9 attempts over about 3 d 6 h, with delivery logs | None built in. An installable Apps Script form-submit trigger can call a URL |
| Spam protection | Honeypot (_gotcha), content scoring, per-form rate limits, allowed domains and an optional Cloudflare Turnstile check, with no keys needed | Optional sign-in requirement and one response per person, which also need a Google account |
| Validation | Optional typed field definitions, enforced on the server with field-level errors | Per-question response validation in the editor |
| Posting from code | JSON, urlencoded or multipart from any client | No documented way to create responses from your own code |
| Data location | Cloudflare, with the database in Asia-Pacific. EU Standard Contractual Clauses in the DPA | Governed by your Google account. Data region policies exist on some paid Workspace editions |
Where Google Forms is the better choice
- It's free, and everyone already has a Google account.
- Responses should land straight in a Google Sheet that your team already works in.
- You need file uploads and your respondents are signed in to Google anyway, as in a school or company.
- You want a form on its own link, built in minutes by anyone, with no website involved.
- Your organisation is on Google Workspace and wants forms under the same admin, retention and data region controls.
Where Ikiform is the better choice
- The form sits on your website and should look like it, not like a Google page in an iframe.
- You want webhooks to your own app, Slack or an automation tool without writing and maintaining Apps Script.
- You want spam protection that doesn't force visitors to sign in to Google.
- You submit from your own front end or server code. Ikiform's endpoint takes JSON and answers with JSON.
- You want each submission checked against typed rules on the server, with errors your own form can show.
Who should pick which
Use Google Forms for internal forms, quick surveys and anything where a shared link and a Sheet are enough. It is free and hard to beat there.
Use Ikiform for forms that belong on your public website or in your app, where design, spam handling and delivery to your own systems matter more than a free price.
Moving a Google Forms form into your own code
A Google Form can't be exported to HTML, so you rebuild it as a normal form on your page. Each question becomes an input whose name is the field id, and Ikiform stores the answers under those names.
Field mapping
| Google Forms | Ikiform | Notes |
|---|---|---|
Embedded viewform?embedded=true iframe | A <form> in your page | Remove the iframe. Set action to the Ikiform endpoint. |
| Short answer, paragraph | <input>, <textarea> | Field types text and textarea. |
| Multiple choice | Radio buttons, field type radio | |
| Checkboxes | Checkboxes named choices[], field type multi_select | A single checkbox with no options maps to field type checkbox, stored as true or false. |
| Dropdown | <select>, field type select | |
| Linear scale, rating | Field type rating | Whole numbers from 1 to the maximum you set. |
| Date | <input type="date">, field type date | |
| Response validation (email, number, regex) | Field types email and number, or pattern on text | Enforced on the server, with messages per field. |
| Collect email addresses | An email field | Ikiform can't verify who the person is; it only checks the address is valid. |
| Limit to 1 response | None | Ikiform has no sign-in. Rate limits and duplicate detection reduce repeats, but can't enforce one per person. |
| Confirmation message | _redirect or Redirect after submit | Send people to a thank-you page on your site. |
| File upload | None | Not supported. |
| Linked Google Sheet | Webhook to Google Sheets | The blog has a step-by-step guide: a small relay checks the signature and an Apps Script web app appends the row. |
Before and after
<iframe
src="https://docs.google.com/forms/d/e/1FAIpQLSexample/viewform?embedded=true"
width="640"
height="900"
frameborder="0"
marginheight="0"
marginwidth="0"
>Loading…</iframe>Steps
- Write down each question, its type, its options and whether it is required.
- Create an Ikiform form and define matching fields with lowercase snake_case ids.
- Write the form in your page and replace the iframe with it.
- Set a redirect to your own thank-you page.
- If your team works from the Sheet, add a webhook and follow the Google Sheets guide so new rows keep arriving.
- Keep the Google Form open until the new one has received real submissions, then close it to responses.
What doesn't carry over
- Sign-in, one response per person, quizzes and file uploads have no Ikiform equivalent.
- Existing responses stay in Google Forms and the linked Sheet.
FAQ
Can I keep sending answers to Google Sheets?
Yes, through a webhook. The guide on our blog sets up a small receiver in Google Sheets that verifies each delivery and appends a row.
Can I make my Google Form look like my site instead?
Only a little: Google lets you change colours, fonts and a header image, but it stays an iframe with Google's layout. Rebuilding it as your own HTML with a backend like Ikiform is the way to get full control.
Does Ikiform need my visitors to sign in?
No. There are no visitor accounts. That also means Ikiform can't limit people to one response each the way Google Forms can with sign-in.
I already have an Apps Script trigger that calls my server. What changes?
The trigger goes away. Ikiform calls your server itself for every submission, signs the request so you can check it came from Ikiform, and retries for about 3 days if your server is down.
Related docs
- Send submissions to Google Sheets
- HTML forms
- Field types and validation
- Spam protection
- Forms in site builders
Sources
Checked on October 24, 2026.
- Google Forms file upload help
- Apps Script installable triggers
- Google Workspace data regions
- Google Forms
Trademarks and accuracy
Google Forms and the other product names on this page are trademarks of their owners. Ikiform isn't affiliated with, endorsed by or sponsored by any of them. What this page says about Google Forms comes from its public pricing pages and docs as of October 24, 2026, linked under Sources. If anything here is wrong or out of date, email hello@ikiform.com and we'll correct it.